linux网关/路由

2021-05-26 14:21:13 浏览数 (1)

Linux上分为3种路由: 主机路由:直接指明到某台具体的主机怎么走,主机路由也就是所谓的静态路由 网络路由:指明某类网络怎么走 默认路由:不走主机路由的和网络路由的就走默认路由。操作系统上设置的默认路由一般也称为网关。

若Linux上到某主机有多条路由可以选择,这时候会挑选优先级高的路由。在Linux中,路由条目的优先级确定方式是先匹配掩码位长度,再比较管理距离(比如metric)。也就是说,掩码位长的路由条目优先级一定比掩码位短的优先级高,所以主机路由的优先级最高,然后是直连网络(即同网段)的路由(也算是网络路由)次之,再是网络路由,最后才是默认路由。若路由条目的掩码长度相同,则比较节点之间的管理距离,管理距离短的生效。

例如下面的路由表中,若ping 192.168.5.20,则先比对192.168.100.78发现无法匹配,然后比对192.168.100.0,发现也无法匹配,接着再匹配192.168.0.0这条网络路由条目,发现能匹配,所以选择该路由条目。

  1. [root@xuexi ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 0.0.0.0 192.168.100.2 0.0.0.0 UG 100 0 0 eth0
  5. 172.16.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth1
  6. 192.168.0.0 192.168.100.70 255.255.0.0 UG 0 0 0 eth0
  7. 192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
  8. 192.168.100.78 0.0.0.0 255.255.255.255 UH 0 0 0 eth0

再比如下面的路由表。由于两块网卡eth0和eth1都是192.168.100.0/24网段地址,所以它们的路由条目在掩码长度的匹配上是相同的,但是和eth0直连的网段主机通信时,肯定会选择eth0这条路由条目,因为eth1和该网段主机隔了一个eth0,距离增加了1。

  1. [root@xuexi ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 0.0.0.0 192.168.100.2 0.0.0.0 UG 100 0 0 eth0
  5. 192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
  6. 192.168.100.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1

route命令

route命令用于显示和管理路由表。当使用了add或del选项时,route命令将设置路由条目,否则route命令将显示路由表。

要显示路由表信息,只需简单的route -n即可,其中-n选项表示不解析主机名。

例如:

  1. [root@xuexi ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 0.0.0.0 192.168.100.2 0.0.0.0 UG 100 0 0 eth0
  5. 172.16.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth1
  6. 192.168.0.0 192.168.100.70 255.255.0.0 UG 0 0 0 eth0
  7. 192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
  8. 192.168.100.78 0.0.0.0 255.255.255.255 UH 0 0 0 eth0

对于CentOS 6以上的系统,请忽略Metric和Ref两列,它们已经不被内核使用,只是有些路由软件可能会用上。

对于Flags列,如果没有安装路由软件,则只可能出现下面的3种值: U (route is up) H (target is a host) G (use gateway,也即是设置了下一跳的路由条目)

若要管理路由表,则使用add或del选项。

  1. route [add/del] [-host/-net/default] [address[/mask]] [netmask] [gw] [dev]
  2. 选项说明:
  3. add/del:增加或删除路由条目
  4. -net:增加或删除的是一条网络路由
  5. -host:增加或删除的是一条主机路由
  6. default:增加或删除的是一条默认路由
  7. netmask:明确使用netmask关键字指定掩码,要可以不使用该选项直接在地址上使用cidr格式的掩码,即IP/MASK。
  8. gw:指定下一跳的地址。要求下一跳地址必须是能到达的,且一般是和本网段直连的接口。
  9. dev:强制将路由条目关联到指定的接口上。一般内核会自动判断路由条目应该关联到哪个网络接口。

0 人点赞