Linux路由表的重要性以及配置

Posted Evan_Wolf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux路由表的重要性以及配置相关的知识,希望对你有一定的参考价值。

    路由,顾名思义,就是把一个数据包从一个设备发送到不同网络里的另一个设备上去,这些工作依靠路由器来完成。路由器只关心网络的状态和决定网络中的最佳路径,路由的实现依靠路由器中的路由表来完成。路由器的工作职责如下:

  • 分隔广播域
  • 选择路由表中到达目标最好的路径
  • 维护和检查路由信息
  • 连接广域网

    路由器可以分为三类:

  • 主机路由
  • 网络路由
  • 默认路由

    路由表的构成:

  • 目标:数据包发送的目标路径{单个主机|网段|0.0.0.0默认路由}
  • 子网掩码:配合目标地址来确定网段
  • 接口:路由器的出口
  • 网关:直连(网关不需要配置);非直连(下一个路由器邻近本路由器的接口地址)

   

 

    如上图如示,位于10.120.2.0网段的主机和位于172.16.1.0网段的主机进行通信就需要路由器来协助完成。

    在Linux服务器上,IP地址、网关、DNS、子网掩码、路由等的管理都是Linux内核在管理,而不是网卡,内核在管理此类对象时需要网卡这个载体来操作。同时,在用户空间用命令调用内核的TCP/IP模块配置网络时能在内存空间立即更改,但是重启网络服务或重启服务器就会丢失,要永久保存更改就需要把配置写入磁盘的相应文件中,如下图如示

 

    本文将详细描述两种模式下配置IP和三类路由的具体操作方法(注:所有的操作指令以CentOS7为准)。

   主机路由

    一般情况下,Linux在给网卡分配IP的过程中同时会配置路由。

    实验步骤:

  • 在虚拟机A上新加一块网卡,选择桥接模式
  • 在目录/etc/sysconfig/network-scripts下新建此网卡的配置文件ifcfg-eth2,内容如下  

          NAME=eth2
          IPADDR=192.168.40.222
          PREFIX=24

  • 启动此网卡 ip link set eth2 up
  • 查看新加的路由ip route: 192.168.40.0/24 dev eth2 proto kernel scope link src 192.168.40.222;也可以用旧的命令route -n来查看,其中Flags值为U表示启用,一般情况下Flags为UG表示网关,只有U时表示本机路由

       Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

       192.168.40.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2

  • 同一网络内有一台IP为192.168.40.144的主机B可以ping通主机A192.168.40.222
  • 在主机A上删除本机路由ip route del 192.168.40.0/24 dev eth2 proto kernel scope link src 192.168.40.222,主机Bping主机A失败

    默认路由   

      默认路由的适用场景一般是公司通过宽带提供商实现公司多台私有网络主机的上网。如下图所示:

     此时,所有的公司内部主机上Internet都会通过默认路由转发到外网互联网。

     实验步骤:

  • 本网段的网关IP是172.20.0.1/16
  • 配置DNS /etc/resolv.conf nameserver 114.114.114.114
  • 配置主机A的eth2的IP和网关在一个网段ip address add 172.20.44.144/16 dev eth2
  • 在主机A上ping www.baidu.com, 失败。
  • 在主机A上增加默认网关ip route add default via 172.20.0.1
  • 可以查看到默认路由

    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 172.20.0.1 0.0.0.0 UG 100 0 0 eth2

  • 在主机A上ping www.baidu.com, 成功。

  • 修改ifcfg-eth2文件,永久保存默认路由

DEVICE=eth2
IPADDR=172.20.44.144
GATEWAY=172.20.0.1
PREFIX=16
DNS1=114.114.114.114

    网络路由

     网络路由的优先级介于主机路由和默认路由之前,精度越高,优先级越高。

     实验步骤:

     需求:配置路由,使A主机192.168.1.100/24能ping通B主机192.168.0.100/24

  •     准备5台Linux虚拟机,两台模拟A、B主机,三台模拟路由器R1,R2,R3,模拟路由器的主机必须有两块网卡

第一种配置方法:

  • 在R1路由器上,配置两条路由记录,分别到达10.0.0.0/8和192.168.0.0/24网段

ip route add 10.0.0.0/8 via 172.16.0.3
ip route add 192.168.0.0/24 via 172.16.0.3

  • 在R2路由器上,配置两条路由记录,分别到达192.168.0.0/24和192.168.1.0/24两个网段

ip route add 192.168.1.0/24 via 172.16.0.2
ip route add 192.168.0.0/24 via 10.0.0.3

  • 在R3路由器上,配置两条路由记录,分别到达172.16.0.0/16和192.168.1.0/24网段

route add -net 172.16.0.0/16 gw 10.0.0.2
route add -net 192.168.1.0/24 gw 10.0.0.2

第二种配置方法:

即然要求是只关心主机A能否ping到主机B,所以只配置到达对方网段的路由,不配置中间路由:

  • 在R1路由器上,配置一条路由记录,只到达192.168.0.0/24网段

ip route add 192.168.0.0/24 via 172.16.0.3

  • 在R2路由器上,配置两条路由记录,分别到达192.168.0.0/24和192.168.1.0/24两个网段

ip route add 192.168.1.0/24 via 172.16.0.2
ip route add 192.168.0.0/24 via 10.0.0.3

  • 在R3路由器上,配置一条路由记录,只到达192.168.1.0/24网段

route add -net 192.168.1.0/24 gw 10.0.0.2

第三种配置方法:

通过配置默认路由实现:

  • 在R1路由器上,只配置默认路由

ip route add default via 172.16.0.3

  • 在R2路由器上,配置两条路由记录,分别到达192.168.0.0/24和192.168.1.0/24两个网段

ip route add 192.168.1.0/24 via 172.16.0.2
ip route add 192.168.0.0/24 via 10.0.0.3

  • 在R3路由器上,只配置默认路由

ip route add default via 10.0.0.2

永久生效的方法是创建相应网口的路由文件,/etc/sysconfig/network-scripts/route-ethX,内容DEST/netmask via NEXTHOP

以上是关于Linux路由表的重要性以及配置的主要内容,如果未能解决你的问题,请参考以下文章

简述静态路由、RIP和OSPF动态路由的原理以及各自的优缺点。

Linux route命令详解和使用,以及网卡命令详解

思科路由器删除单条路由表和删除全部路由表的命令分别是啥?

Linux下路由配置梳理

静态路由原理与配置

关于Windows路由表的问题