在日常操作和维护操作中,您经常会遇到路由表操作. 让我们整理一下Linux操作和维护中的路由操作:
--------------------------------------------------- -------------------------------
首先谈谈有关路由的一些基本知识:
1)路由概念
路由: 通过互联网将数据包从源主机转发到目标主机的过程
路由器: 一种能够将数据包转发到正确的目的地并在转发过程中选择最佳路径的设备
路由表: 路由器中维护的路由条目,路由器根据路由表进行路径选择
直接连接路由: 在路由器上配置接口的IP地址并且接口状态为up时,直接连接路由条目会出现在路由表中
静态路由: 它是由管理员手动配置的,并且是单向的.
默认路由: 当路由器在路由表中找不到目标网络的路由条目时,路由器会将请求转发到默认路由接口.
2)静态路由和默认路由的功能
静态路由功能:
手动设置路由表;
除非网络管理员进行干预,否则静态路由不会更改;
路由表的形成不需要网络资源;
适用环境: 通常用于网络规模较小,拓扑固定的网络中.
默认路由功能:
在所有路由类型中,默认路由的优先级最低
适用环境: 通常用于只有一个出口的终端网络或作为其他路由的补充
浮动静态路由:
当路由表中存在同一目标网络的路由条目时,请求将根据路由条目的优先级转发到相应的端口;
链路冗余的作用;
3)路由器转发数据包时的封装过程
源IP和目标IP不变. 传输网络的每个网段时,源MAC和目标MAC都会更改并重新封装,这是每个网段的源地址和目标地址.
4)要完成数据包的路由,路由器必须至少了解以下内容:
a)目的地址
b)连接到路由器,在哪里可以获取远程网络的信息
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
2)三种路由指令
a)主机路由
主机路由是指向路由表中单个IP地址或主机名的路由记录. 主机路由的标志字段为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)网络路由
网络路由是指主机可以访问的网络. 网络路由的标志字段为N. 例如,在下面的示例中,本地主机将发送到网络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地址或网络路由时,数据包将发送到默认路由(默认网关). 默认路由的“标志”字段为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
3)配置路由的命令
您可以使用route命令来设置和查看路由表. 设置内核路由表的命令格式为:
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
参数说明:
添加添加路由规则
del删除路由规则
-net目标地址是一个网络
-host目标地址是主机
目标目标网络或主机
netmask目标地址的网络掩码
gw通过其路由数据包的网关
开发人员指定用于路由的网络接口
4)路由命令用法示例
添加到主机的路由 # 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 默认没有这个文件 ,得手动创建一个
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]
参数分析:
ip route是用于创建静态路由的命令.
目标网络需要在路由表中通告到该网段.
掩码此网络上使用的子网掩码.
下一跳地址下一跳路由器的地址.
administrative_distance默认情况下,静态路由的管理距离为1. 在此命令的末尾添加管理权限以修改此默认值.
例如
ip route 172.16.1.0 255.255.255.0 172.16.2.1
除了使用route -n命令查看路由表之外,您还可以使用ip route
[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 ----- ---------------------------------------
如上图所示,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 ----- ---------------------------------------
如上图所示,使用主机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,并启用路由转发功能.
操作记录:
本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-301471-1.html
……