语法:
[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颈椎保健枕