[关闭]
@cdmonkey 2016-12-02T09:49:49.000000Z 字数 4191 阅读 1060

route

命令总结


指令说明

每一台主机都有自己的路由表,也就是说,你必须要通过自己的路由表将主机的数据包转发到下一个路由器。

Linux系统的route命令用于显示和操作路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。

注意:在命令行下执行route命令来添加路由,不会永久保存,当网卡或者机器重启之后,该路由就失效了。

增加永久路由(重启网络服务和重启系统都会生效)的方法:

  1. [root@WEB-A1 ~]# vim /etc/sysconfig/static-routes
  2. ----------------
  3. any net 192.168.9.0/24 dev eth0
  4. any net 172.16.3.0/24 gw 172.17.3.1 dev eth1
  5. #其中『any』是必须的,而且必须位于行首,不能有前置空格,后面的参数就是route add命令所需要的参数。
  6. #并且参数前面的横杠需要去掉,不要出现在配置文件中。
  1. [root@WEB-A1 ~]# vim /etc/sysconfig/network-scripts/route-eth0
  2. ----------------
  3. 192.168.1.0/24 via 192.168.1.1

如果是配置默认路由网关可以再网卡配置里:

  1. [root@WEB-A1 ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0
  2. GATEWAY=10.0.0.254

命令格式:

route  [-CFvnee]
route  [-v] [-A  family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M]
       [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route  [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route  [-V] [--version] [-h] [--help]

常用选项:

此处输入图片的描述

Route命令是用于操作基于内核IP路由表,它的主要作用是创建一个静态路由,指定一个主机或一个网络通过一个网络接口,例如eth0。当使用“add/del”参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。

显示路由表

  1. [root@WEB-A1 ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  5. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  6. 0.0.0.0 172.16.1.2 0.0.0.0 UG 0 0 0 eth0
  7. #最后一行就是系统的默认网关信息,表示去任何地方(0.0.0.0),都发给网关地址。
  8. #因为是默认网关,所以放在了最后一条。路由也是有顺序的,如果不符合任何一条规则就交给默认网关处理。
路由条目 说明
172.16.1.0 第一行表示主机所在网络的地址,若数据传送目标网络是在本局域网内,则可以直接通过eth0转发数据包。之所以会有这一条目,是因为这台主机的网卡拥有172.16.1.10这个地址的关系。也就是说,主机上面有几个网络接口存在时,就一定会存在一条与之相对应的路由条目。
169.254.0.0 上面的路由表中的169.254.0.0是私有保留地址,一般开启了DHCP服务的设备但是又无法获取到有效地址的,会随机使用此网段的地址。
0.0.0.0 默认网关路由条目,如果都不满足上面的路由规则,则通过默认网关发送。

Gateway为0.0.0.0表示数据包不经过网关的而直接送达。

下面这台主机拥有两块网卡:

  1. [root@LVS-A ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
  5. 172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  6. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  7. 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
  8. 0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth1

路由表的字段信息说明:

字段 说明
Destination 指定该路由的网络目标。
Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点IP地址。
Flags 为路由标志,标记当前网络节点的状态,另见附表说明。
Metric 路由算法用以确定到达目的地的最佳路径的计量标准。为路由指定一个整数成本值标(1-9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用。
Use 对此路由的查找。

此处输入图片的描述

修改路由表

增加及删除路由条目:

  1. [root@WEB-A1 ~]# route add -net 192.168.5.0 netmask 255.255.255.0 dev eth0
  2. #增加一条屏蔽路由:
  3. [root@WEB-A1 ~]# route add -net 192.168.6.0 netmask 255.255.255.0 reject
  4. #查看一下刚刚增加的路由条目,请注意屏蔽路由的路由标志。
  5. [root@WEB-A1 ~]# route -n
  6. Kernel IP routing table
  7. Destination Gateway Genmask Flags Metric Ref Use Iface
  8. 192.168.6.0 - 255.255.255.0 ! 0 - 0 -
  9. 192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  10. 172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  11. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  12. 0.0.0.0 172.16.1.2 0.0.0.0 UG 0 0 0 eth0
  13. ----------------------
  14. #删除路由条目:
  15. [root@WEB-A1 ~]# route del -net 192.168.5.0 netmask 255.255.255.0
  16. [root@WEB-A1 ~]# route del -net 192.168.6.0 netmask 255.255.255.0
  17. SIOCDELRT: No such process
  18. [root@WEB-A1 ~]# route del -net 192.168.6.0 netmask 255.255.255.0 reject
  19. #在删除路由条目时如果指定的参数不完全,有可能无法执行删除操作。

此处输入图片的描述

增加及删除默认网关:
默认网关就是数据包不匹配任何设定的路由规则,最后流经的地址关口!网关按字面意思就是网络的关口,就相当于我们家里房子的门一样,如果外出就要经过房门,数据包也是一样。

  1. [root@WEB-A1 ~]# route del default gw 172.16.1.2
  2. [root@WEB-A1 ~]# route -n
  3. Kernel IP routing table
  4. Destination Gateway Genmask Flags Metric Ref Use Iface
  5. 172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  6. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  7. #可以看到,最后一条的默认网关已经被删除,现在还要添加回来,要不然无法连接互联网。
  8. [root@WEB-A1 ~]# route add default gw 172.16.1.2 eth0
  9. #其实就相当于下面这条指令:
  10. route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.1.2

配置网络路由

即去往某一网络或网段的路由。一般多网段之间互相通信,希望建立一条优先路由,而不是通过默认网关时就可以配置网络路由。还是拿房子比喻,你现在不是要出门,而是卧室,卫生间,去卧室就要经过卧室的门,去卫生间也要经过卫生间的门,这里的卧室和卫生间的门就可以认为是去往某一网段的路由,而不是默认路由(即房子的门)。

示例:192.168.1.0网段,网关为192.168.1.1,其中某一台服务器想连入172.16.1.0/24段,该如何添加路由?

  1. route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
  2. # OR:
  3. route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0

实际工作中会有需求,两个不同的内部网络之间互访,而不是出网访问,就是上面例子的情况。

参考资料:http://oldboy.blog.51cto.com/2561410/974194

配置主机路由

就是去往某个主机地址如何配置路由。

  1. [root@WEB-A1 ~]# route add -host 192.168.2.13 dev eth1

FIB(Forward Information Base,转发信息库),每个设备中都保存着一个转发信息库,用于存储设备的转发信息,指导设备进行三层转发。从概念上讲类似于路由表或信息库。它维护着一个IP路由表中包含的转发信息的镜象。当网络中的路由或拓朴结构发生了变化时,IP路由表就被更新,而这些变化也反映在FIB中。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注