Linux上静态路由

网络环境如下:
在这里插入图片描述

PC机192.168.10.12/32要往192.168.80.11/32发送数据包,中间经过两个中转路由器,分别为路由器1和路由器2。每个路由器有两个网卡,分别连通两个不同的子网。路由器采用centos7代替。

要想实现PC1和PC2的通信畅通,需要:
1 两台linux设备启动linux的路由转发功能
默认情况下linux系统是不器用转发功能的,即它只能发送/接收数据包,而不能转发数据包。linux关于ipv4网络进程的相关内核参数在/proc/sys/net/ipv4/目录下:其中ip_forward参数用于控制是否启动转发功能,该值为1表示启用:

# echo 1 > /proc/sys/net/ipv4/ip_forward

这是临时设置的方法,系统或者网络重启后便恢复为默认值0,还可以永久生效的方法,修改/etc/rc.d/init.d/network文件:

# vim /etc/rc.d/init.d/network +227

将net.ipv4.ip_forward设置为1:

sysctl -w net.ipv4.ip_forward=1 > /dev/null 2>&1

2 在路由器1中增加目的地址为192.168.80.0/24网段的路由规则

# route add -net 192.168.80.0 netmask 255.255.255.0 gw 192.168.20.20

3 在路由器2增加目的地址为192.168.10.0/24网段的路由规则

# route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.20.10

gw是网关地址,即数据包的下一跳。如上图网络环境,路由器1已经配置了一个192.168.20.10的地址,即将目的地址为192.168.10.0的数据包的下一跳为192.168.20.20,那么该数据包会从ip地址为192.168.20.10的网卡发出,换句话说若当前主机中不存在192.168.20.0/24段的任何ip地址时,该路由规则是配置失败的,因为指定gw为192.168.20.20,但是本系统并无与该gw同网段的ip地址。

以上配置是临时生效的,即网络重启后将会丢失。要想永久保存,常规做法是(eth2的ip地址为192.168.20.10,以它为例):

# vim /etc/sysconfig/network-scripts/eth2
ADDRESS0=192.168.80.0	#目标网段
NETMASK0=255.255.255.0	#目标网段的子网掩码
GATEWAY0=192.168.20.20	#下一跳

#ADDRESS1=
#NETMASK1=
#GATEWAY1=

到这里,192.168.10.12的PC1就能喝192.168.80.12的PC2通信了,中间经过两个路由器。但是注意,若路由器的防火墙规则过滤了数据包,或者PC1、PC2的防火墙开启防护同样无法通信,这个需要进行排查关闭。

下面讲一下默认路由。在上面的两个路由器配置的路由规则并没有配置默认路由,而只是配置了目的地址是192.168.80.0/32网段或192.168.10.0/24网段的路由规则。默认路由是指数据包默认遵循的路由规则,其等级最低。默认路由其实就是网关(下一跳)。配置默认路由的方法(以上述的路由器1为例):
方法(1):

# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.20.20

目的地址和掩码都为0.0.0.0,表示该路由规则为默认路由。当删除掉刚才在路由器1增加的目的地址为192.168.80.0/24的路由规则后,通信依旧畅通,这便是这条默认路由的功劳。

方法(2):
通过给网卡增加网关的方式也可以产生默认路由:

# vim /etc/sysconfig/network-scripts/ifcfg-eth2

设置:

GATEWAY=192.168.20.20

静态路由还一种叫做策略路由的,下面再讲。

中秋节3天假期过去了,明天上班啦!

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页