现在有A,B两台主机,中间有Ra,Rb,Rc,Rd四个路由器,目标是实现A,B两台主机互通。
准备工作:
准备工作的部分主要是在VMware部分。由于我们的目的是为了更好的理解路由转发,所以这个可能并没有什么实际意义。下面的所有内容都是基于linux虚拟机进行的操作。让我们 先开始准备工作,由于我们是用系统代替路由器,所以6个linux虚拟机是必须的。为了方便是用网卡来模拟路由器的端口也就是说,除A,B两台主机,其余四台linux虚拟机都是用两个网卡。
1、6台linux虚拟机,两台作为主机,四台作为路由器
2、给作为路由器的虚拟机添加两块网卡
3、在虚拟网络编辑器中添加五个网络并分配给对应的网卡
比如在VMware中添加了VMnet10、11、12、13、14这四个网络,那么对应的设置就可以是A和Ra1使用VMnet10,Ra2和Rb1使用VMnet11等等以此类推,其拓扑图大致如下:
第一步:规划IP,划分子网
四个路由器也就是五个子网,为了方便区分,IP划分如下。
主机A IP:192.168.1.141
Ra1 IP:192.168.1.1
Ra2 IP:192.168.2.2
Rb1 IP:192.168.2.1
Rb2 IP:192.168.3.3
Rc1 IP:192.168.3.1
Rc2 IP:192.168.4.4
Rd1 IP:192.168.4.1
Rd2 IP:192.168.5.5
主机B IP:192.168.5.1
掩码全部为:255.255.255.0
第二步:配置主机和路由IP
这部分内容主要是修改各个网卡的配置文件,大体格式如下按照事先分配的IP修改各个配置文件之后重启网络服务即可。
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.141
PREFIX=24
GATEWAY=192.168.1.1
配置完成后应该是这样的
第三步:开启转发功能,关闭防火墙
在四个路由器上执行
echo 1 > /proc/sys/net/ipv4/ip_forward
查看此文件的值,确保都为1
关闭防火墙,在Centos7中执行systemctl stop firewalld,通过systemctl status firewalld确保防火墙已经关闭
在Centos6中执行service iptables stop,通过service iptables status确保防火墙关闭
第四步:添加路由
为了避免默认路由带来的干扰,我这里忽视默认路由的存在,直接添加路由信息。
A 、ip route add 192.168.5.0/24 via 192.168.1.1 dev ens33
Ra、ip route add 192.168.5.0/24 via 192.168.2.1 dev ens34
Rb、ip route add 192.168.5.0/24 via 192.168.3.1 dev ens34
Rc、ip route add 192.168.5.0/24 via 192.168.4.1 dev ens34
Rd、ip route add 192.168.5.0/24 via 192.168.5.1 dev ens34
去路的路由信息就是这些,然后是回路的路由信息
B 、ip route add 192.168.1.0/24 via 192.168.5.5 dev ens33
Rd、ip route add 192.168.1.0/24 via 192.168.4.4 dev ens33
Rc、ip route add 192.168.1.0/24 via 192.168.3.3 dev ens33
Rb、ip route add 192.168.1.0/24 via 192.168.2.2 dev ens33
Ra、ip route add 192.168.1.0/24 via 192.168.1.1 dev ens33
但是只有这些的话其实并不可以,确切的说如果真正的忽视默认路由的话,上面的路由表很可能都无法添加,所以在添加上面的路由之前应该先确保临近的网段互通。所以,在添加上面的路由之前需要在每个路由上先添加两条路由。原因是每个路由器都连接着两个网段,这两条路由的作用就是把对应的地址抛给对应的网关。具体应该如下:
主机A
ip route add 192.168.1.0/24 via 0.0.0.0 dev ens33
Ra、
ip route add 192.168.2.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.1.0/24 via 0.0.0.0 dev ens33
(其实有了这个,上面Ra回去的路由可以不用添加,不过个人觉得这样更容易理解)
Rb、
原理是了一样的,Rb需要把去往192.168.3.0网段的通过ens34的网关发出,把去往192.168.2.0的通过ens33发出所以这两条应该是
ip route add 192.168.3.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.2.0/24 via 0.0.0.0 dev ens33
Rc、
ip route add 192.168.4.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.3.0/24 via 0.0.0.0 dev ens33
Rd、
ip route add 192.168.5.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.4.0/24 via 0.0.0.0 dev ens33
主机B
ip route add 192.168.5.0/24 via 0.0.0.0 dev ens33
完成之后确保每个路由器上都有去与其相连的两个网段的路由以及去A和B的路由。完成之后使用ping命令查看是否已经连通。
原文地址:http://blog.51cto.com/13672361/2113275