实验:实现三个路由器与两个主机互通
拓扑图:
路由表配置图:
实现原理:R1配置路由器,是A访问B的过程,A主机和R1路由器1接口为直连,然后从R1本机的2接口出去,在R1上添加相邻路由器R2的3接口Ip地址作为网关,同理,在R1上添加R2路由器3接口(IP地址作为网关)和B主机(172.18.0.0)的网段。
R2路由器同理,左侧出去的是3接口,在R2上添加相邻的R1路由器接口IP地址(2接口)就是网关,从右侧出去(4接口),在R2上添加R3路由器的5接口IP地址作为网关。
R3路由器同理,B主机与R3路由器的6接口直连,不需要网关,R3出去的5接口与10.100.0.0在同一个网段,不需要网关,R3的5接口出去,在R3上添加相邻的R2路由器4接口Ip地址作为网关;再将192.168.34.0网段添加网关(即为R2路由器4接口的IP地址),出口为R3的5接口。
在A主机上配置IP地址和网关:
将主机A的网络与路由器R1的1接口在同一个物理网络上:
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.34.100 GATEWAY=192.168.34.200 PREFIX=24 DNS1=114.114.114.114
配置R1路由器
R1的1接口与A主机在一个物理网段
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.34.200 # IP地址改为A主机的网关地址 PREFIX=24 DNS1=114.114.114.114
配置R1的2接口IP地址,2接口和A主机不在一个物理网段,但是路由器工作在内核中,只要有一个接口可以通,另外的一个跨网段的接口也可以通。
cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static IPADDR=10.0.0.1 PREFIX=8 DNS1=114.114.114.114
配置R2路由器
R2的3接口路由器要与R1的2接口路由器在同一个网段
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=10.0.0.1 PREFIX=8 DNS1=114.114.114.114
配置R2的4接口路由器
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=10.100.0.100 PREFIX=16 DNS1=114.114.114.114
配置R3路由器
配置R3的5接口,要与R2的4接口在一个网段
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=10.100.0.200 PREFIX=16 DNS1=114.114.114.114
配置R3的6接口,IP地址为B主机的网关地址
cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static IPADDR=172.18.0.200# IP地址改为B主机的网关地址 PREFIX=16 DNS1=114.114.114.114
配置B主机IP和网关
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=172.18.0.100 GATEWAY=172.18.0.200 PREFIX=16 DNS1=114.114.114.114
在R1路由器上添加路由规则
# route add -net 10.100.0.0/16 gw 10.0.0.2 # route add -net 172.18.0.0/16 gw 10.0.0.2
在R2路由器上添加路由规则
# route add -net 192.168.34.0/24 gw 10.0.0.1 # route add -net 172.18.0.0/16 gw 10.100.0.200
在R3路由器上添加路由规则
# route add -net 10.0.0.0/8 gw 10.100.0.100 # route add -net 192.168.34.0/24 gw 10.100.0.100
在R1/R2/R3路由器上开启路由功能
# vim /etc/sysctl.conf # 修改到配置文件中 net.ipv4.ip_forward=1 # sysctl -p # 使路由配置生效
测试效果:
可以看到,此时A主机可以访问到B主机,B主机也可以访问A主机。