在日常运维作业中,常常会遇到路由表的操作。下边就linux运维中的路由操作做一梳理:------------------------------------------------------------------------------先说一些关于路由的基础知识:1)路由概念路由:跨越从源主机到目标主机的一个互联网络来转发数据包的过程路由器:能否将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备路由表:在路由器中维护的路由条目,路由器按照路由表做路径选择直连路由:当在路由器上配置了插口的IP地址,但是插口状态为up的时侯,路由表中就出现直连路由项静态路由:是由管理员手工配置的,是双向的。默认路由:当路由器在路由表中找不到目标网路的路由条目时,路由器把恳求转发到默认路由插口。

2)静态路由和默认路由的特征静态路由特性:路由表是手工设置的;除非网路管理员干预,否则静态路由不会发生变化;路由表的产生不须要占用网路资源;适用环境:通常用于网路规模很小、拓扑结构固定的网路中。

默认路由特性:在所有路由类型中,默认路由的优先级最低适用环境:通常应用在只有一个出口的末端网路中或作为其他路由的补充

浮动静态路由:路由表中存在相同目标网路的路由条目时,依据路由条目优先级的高低,将恳求转发到相应端口;链路冗余的作用;

3)路由器转发数据包时的封装过程源IP和目标IP不发生变化,在网路的每一段传输时linux手册,源和目标MAC发生变化,进行重新封装,分别是每一段的源和目标地址

4)要完成对数据包的路由,一个路由器必须起码了解以下内容:a)目的地址b)相连路由器linux路由器,并可以从那里获得远程网路的信息c)到所有远程网路的可能路由d)抵达每位远程网路的最佳路由e)怎样维护并验证路由信息f)路由和交换的对比路由工作在网路层a)按照“路由表”转发数据b)路由选择c)路由转发交换工作在数据链路层d)依据“MAC地址表”转发数据e)硬件转发

------------------------------------------------------------------------------接着说下linux运维中关于路由的一些操作1)使用route-n查看Linux内核路由表

[root@dev ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.17    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.1.32.14      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.1.32.12      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.4.8.2        192.168.9.254   255.255.255.255 UGH   0      0        0 eth0
10.4.9.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.9.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.2.0.0        0.0.0.0         255.255.0.0     U     0      0        0 tun0
10.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 tun0
10.1.0.0        0.0.0.0         255.255.0.0     U     0      0        0 tun0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 tun0
0.0.0.0         192.168.9.254   0.0.0.0         UG    0      0        0 eth0

复制

linux路由器配置实例_linux系统路由器_linux无线路由器

linux无线路由器_linux系统路由器_linux路由器配置实例

2)三种路由类型说明a)主机路由主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags数组为H。诸如,在下边的示例中,本地主机通过IP地址192.168.1.1的路由器抵达IP地址为10.0.0.10的主机。

Destination    Gateway       Genmask        Flags     Metric    Ref    Use    Iface
-----------    -------     -------            -----     ------    ---    ---    -----
10.0.0.10     192.168.1.1    255.255.255.255   UH       0    0      0    eth0

复制

b)网路路由网路路由是代表主机可以抵达的网路。网路路由的Flags数组为N。诸如,在下边的示例中linux系统路由器,本地主机将发送到网路192.19.12的数据包转发到IP地址为192.168.1.1的路由器。

Destination    Gateway       Genmask      Flags    Metric    Ref     Use    Iface
-----------    -------     -------         -----    -----   ---    ---    -----
192.19.12     192.168.1.1    255.255.255.0      UN      0       0     0    eth0

复制

c)默认路由当主机不能在路由表中查找到目标主机的IP地址或网路路由时,数据包就被发送到默认路由(默认网段)上。默认路由的Flags数组为G。诸如,在下边的示例中,默认路由是IP地址为192.168.1.1的路由器。

Destination    Gateway       Genmask    Flags     Metric    Ref    Use    Iface
-----------    -------     ------- -----      ------    ---    ---    -----
default       192.168.1.1     0.0.0.0    UG       0        0     0    eth0

linux路由器配置实例_linux无线路由器_linux系统路由器

复制

3)配置路由route的设置和查看路由表都可以用route命令,设置内核路由表的命令格式是:

route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

复制

参数解释:add添加一条路由规则del删掉一条路由规则-net目的地址是一个网路-host目的地址是一个主机target目的网路或主机netmask目的地址的网路网段gw路由数据包通过的网段dev为路由指定的网路插口

4)route命令使用举例

添加到主机的路由
# route add -host 192.168.1.2 dev eth0:0
# route add -host 10.20.30.148 gw 10.20.30.40
 
添加到网络的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route add -net 192.168.1.0/24 eth1
 
添加默认路由
# route add default gw 192.168.1.1
 
删除路由
# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1                  //route del default   删除所有的默认路由
添加一条默认路由
# route add default gw 10.0.0.1      //默认只在内存中生效
开机自启动可以追加到/etc/rc.local文件里
# echo "route add default gw 10.0.0.1" >>/etc/rc.local
添加一条静态路由
# route add -net 192.168.2.0/24 gw 192.168.2.254
要永久生效的话要这样做:
# echo "any net 192.168.2.0/24 gw 192.168.2.254" >>/etc/sysconfig/static-routes
添加到一台主机的静态路由
# route add -host 192.168.2.2 gw 192.168.2.254
要永久生效的话要这样做:
# echo "any  host 192.168.2.2 gw 192.168.2.254 " >>/etc/sysconfig/static-routes
注:Linux 默认没有这个文件 ,得手动创建一个

复制

linux无线路由器_linux系统路由器_linux路由器配置实例

5)设置包转发在Linux中默认的内核配置已然包含了路由功能,但默认并没有在系统启动时启用此功能;开启Linux的路由功能可以通过调整内核的网路参数来实现,技巧如下:

  临时开启路由功能:
# echo 1 > /proc/sys/net/ipv4/ip_forward
或者
# sysctl -w net.ipv4.ip_forward=1
  永久开启路由功能 
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p

复制

6)静态路由配置添加静态路由到路由表的句型如下:

ip route [destination_network] [mask] [next-hop_address] administrative_distance]

复制

参数解析:iproute用于创建静态路由的命令。Destination_network须要发布到路由表中的网关。Mask在这一网路上使用的子网网段。Next-hop_address下一跳路由器的地址。administrative_distance默认时,静态路由有一个取值为1的管理性距离。在这个命令的尾部添加管理权来更改这个默认值。

比如

ip route 172.16.1.0 255.255.255.0 172.16.2.1

复制

查看路由表不仅使用route-n命令外,还可以使用iproute

[root@dev ~]# ip route
192.168.1.17 dev ppp0  proto kernel  scope link  src 192.168.1.190 
10.1.32.14 dev tun0  scope link 
10.1.32.12 dev tun0  scope link 
10.4.8.2 via 192.168.9.254 dev eth0  src 192.168.9.200  mtu 1500 advmss 1460
10.4.9.0/24 dev tun0  scope link 
192.168.9.0/24 dev eth0  proto kernel  scope link  src 192.168.9.200  metric 1 
10.2.0.0/16 dev tun0  scope link 
10.0.0.0/16 dev tun0  scope link 
10.1.0.0/16 dev tun0  scope link 
192.168.0.0/16 dev tun0  scope link 
default via 192.168.9.254 dev eth0 

复制

----------------------------------------实例1--------------------------------------------

linux无线路由器_linux系统路由器_linux路由器配置实例

如上图所示,PC0机器和PC1机器之间经过两个路由器,要想使这两台机器通讯,路由设置如下:1)Route0路由器设置:

ip add 192.168.1.1 255.255.255.0
ip add 192.168.2.1 255.255.255.0
ip route 192.168.3.0 255.255.255.0 192.168.2.2

复制

2)Route1路由器设置:

ip add 192.168.2.2 255.255.255.0
ip add 192.168.3.1 255.255.255.0
ip route 192.168.1.0 255.255.255.0 192.168.2.1

复制

----------------------------------------实例2--------------------------------------------

linux无线路由器_linux路由器配置实例_linux系统路由器

如上图所示,使用A主机192.168.1.2才能ping通E主机192.168.4.2,这两台机才能通讯。操作思路:1)在主机B上设置默认路由下一跳为192.168.2.2,并开启路由转发功能;2)在主机C上设置2条静态路由,分别去192.168.1.0/24网关的下一跳为192.168.2.1,去192.168.4.0/24网关的下一跳为192.168.3.2,并开启路由转发功能;3)在主机D上设置默认路由下一跳为192.168.3.1查看linux是什么系统,并开启路由转发功能。

操作记录:

1)A主机上操作:ip为192.168.1.2,设置网关为192.168.1.1
# route add default gw 192.168.1.1
2)B主机上操作:第一块网卡为192.168.1.1,第二块网卡为192.168.2.1
# ifconfig eth0 192.168.1.1
# ifconfig eth1 192.168.2.1   //可以在一块网卡上设置两个ip,比如是eth0,eth0:0
B主机设置默认路由,下一跳为192.168.2.2
# route add default gw 192.168.2.2
B主机开启路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward   //临时转发,可以在/etc/sysctl.conf里设置永久转发
3)C主机上操作:第一块网卡为192.168.2.2,第二块网卡为192.168.3.1
# ifconfig eth0 192.168.2.2
# ifconfig eth1 192.168.3.1   //如果就一块网卡,可以设置ifconfig eth0:0 192.168.3.1
C主机设置2条默认路由
# route add -net 192.168.1.0/24 gw 192.168.2.1
# route add -net 192.168.4.0/24 gw 192.168.3.2
C主机开启路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
4)D主机上操作:第一块网卡为192.168.3.2,第二块网卡为192.168.4.1
# ifconfig eth0 192.168.3.2
# ifconfig eth1 192.168.4.1
D主机设置默认路由,下一跳为192.168.3.1
# route add default gw 192.168.3.1
D主机开启路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward 
5)E主机上操作:ip为192.168.4.2,设置网关为192.168.4.1
# route add default gw 192.168.4.1

复制

本文原创地址://q13zd.cn/lywzdlyczzys.html编辑:刘遄,审核员:暂无