随笔 - 194  文章 - 0  评论 - 3  0

语法:
[root@test root]# route [-nee]
[root@test root]# route add [-net|-host]目标主机或网域[netmask] [gw|dev]
[root@test root]# route del [-net|-host]目标主机或网域[netmask] [gw|dev]
参数说明:
-n:列出的资讯以IP来显示
-ee :列出较长列的资讯
add :增加路由资讯
del :删除一个路由资讯
-net:增加一个『网域』的路由,例如C Class的网域!
-host :增加到某个IP主机的路由!
netmask :就是netmask呀!
gw :这个是路由的通讯闸! gw是以IP来建置的
dev :这个是路由的通讯闸! dev是以介面( internet )代号来建置的!

 

范例:

[root@test root]# route
Kernel IP routing table
Destination      Gateway         Genmask         Flags  Metric   Ref    Use   Iface
192.168.30.0    *               255.255.255.0     U       1         0        0     eth1
default            XiaoQiang       0.0.0.0            UG      0         0        0     eth1

 

[root@test root]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
Destination     Gateway         Genmask           Flags  Metric  Ref    Use    Iface
192.168.30.0    0.0.0.0         255.255.255.0    U        1       0        0      eth1
0.0.0.0         192.168.30.1    0.0.0.0              UG       0       0        0      eth1

注意到route, route -n这两个范例喔!使用-n与否会使domain是否进行查询,
一般来说,我都喜欢加上-n的,因为不必去查询正反解,显示速度较快,
此外, default gateway就是0.0.0.0喔!

 

[root@test root]# route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
#新增一个路由规则! 意思是所有以192.168.*.*开头的IP的数据都通过eth1口出。
 
[root@test root]# route del -net 192.168.0.0 netmask 255.255.255.0 dev eth1
#删除一个路由啰
 

[root@test root]# route add -net 192.168.0.0 netmask 255.255.255.0  gw 192.168.30.1

#新增一个路由规则! 意思是所有以192.168.*.*开头的IP的数据的网关是192.168.30.1。

 

[root@test root]# route add -net 192.168.0.0 netmask 255.255.255.0  gw 192.168.30.1 dev eth1

#新增一个路由规则! 意思是所有以192.168.*.*开头的IP的数据的网关是192.168.30.1,并指定通过eth1口出。


[root@test root]# route add default gw 192.168.1.2
#增加一个default gateway呢!
注意一下, gw后面接的是IP ,而dev后面接的则是装置代号。

Destination:目标,可以是IP也可以是网域!至于没有规定到的,则是以default来表示!

以上面为例,当我的机器要去192.168.30.0的时候,则以上表的192.168.1.0那一行的设定为主,但如果我要去tw.yahoo.com的时候,由于没有规定到!所以就要以default的资讯为主要的路由!因此,我就会经由192.168.30.1这个gateway来传送出去我的封包!


Gateway :该目标要经由哪一个网关传送?就是这一个设定值!

Genmask :就是该Destination的netmask啰!例如140.116.141.253为255.255.255.255 ,因为他是一个host而不是一个network呀!至于192.168.1.0就是255.255.255.0这个C Class啰!那如果是default的话,就显示0.0.0.0 ,也就是不论是哪里,都出自这一个gateway就是了!

Flages :旗标,有底下几种Flage呢:

U (route is up):该路由已经启动了;

H (target is a host):目标是一个主机( IP ;

G (use gateway):用来作为gateway的设定;

R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;

D (dynamically installed by daemon or redirect):已经由服务或转port功能设定为动态路由;

M (modified from routing daemon or redirect):路由已经被修改了;

! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)


Iface :该设定使用的网路介面为何?

 

 

实际应用:

       公司业务需求,一台服务器,双网卡,需要同时访问外网和内网。在设置过程中,同事反映原本好用的内网地址(192.168.1.100)在设置上外网地址后变的不好用,只要停止外网那个网卡内网就可以正常访问了。

       其实是因为,你先设置了内网之后,又设置外网,在给外网设置了网关之后,由于没有设置默认网关,导致,内网的IP也会走外网的网关,肯定是不可以的。我们要做的仅仅是让内网走自己的网卡(注意:要先确认两个网关都可以ping通,即正常工作,如果ping不通,你又没有设置禁止ping网关,那就有可能是网卡没有启动,像esxi 5.1中用双网卡,就需要手动让两个网卡都启动,默认是一个启动,一个备用)

       内网网卡:eth0 192.168.1.100    网关:192.168.1.100

       外网网卡 : eth1  119.222.222.222 网关:119.222.222.1

       首先设置默认网关,让所有IP包默认情况下均通过 119.222.222.1 进行转发:

       route add default gw 119.222.222.1

       然后,单独为内网设置转发特例,所有192.168开头的,全部走eth0

       route add -net 192.168.0.0 netmask 255.255.0.0 dev eth0

       路由添加的最好是要加到开机启动上

       vi /etc/rc.local

       另:删除默认网关的命令如下:

       route  del default

 

 

做个小推广:程序员经常久坐,颈椎毛病比较多,特别推荐ventry颈椎保健枕

posted on 2015-01-13 10:26 龙种人 阅读(...) 评论(...) 编辑 收藏