《LINUX教学:Linux模拟路由器实验》要点: 本文介绍了LINUX教学:Linux模拟路由器实验,希望对您有用。如果有疑问,可以联系我们。
实验目标: 将3台主机设置成路由器 实现两台终端能够相互通信 网络结构如下:

准备工作: 1、批量复制虚拟机文件,创建多个系统,提前把mac地址修改 2、关闭防火墙 service iptables? stop? //CentOS6版本 systemctl? stop firewalld.service? //centos7版本 3、关闭selinux setenforce 0? //关闭 getenforce? //查看 4、在三台“路由器”上启用路由转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward
操作过程: 第1步:配置网卡地址,测试直连 配置ip地址 ? ? ifconfig 接口 ip地址/掩码 ? ? 或者 ? ? ip addr add ip地址/掩码? dev 接口 检查ip配置 ? ? ip add ? ? 或者 ? ? ifconfig 12345678910111213 PC-A: ifconfig eth2 10.10.1.1/24 R_x: ifconfig eth1 10.10.1.254/24? //PC-A的网关 ifconfig eth2 10.10.12.1/24? ? //与R_y直连 R_y: ifconfig eth0 10.10.12.2/24? ? //与R_x直连 ifconfig eth2 10.10.23.1/24? ? //与R_z直连 R_z: ifconfig eth0 10.10.23.2/24? ? //与R_y直连 ifconfig eth1 10.10.2.254/24? //PC-B的网关 PC-B: ifconfig eth1 10.10.1.1/24
测试直连地址使用工具:ping 如果直连不通,后续就无法操作,一定要保证ip配置正确 网卡的配置文件存放在下述目录中: /etc/sysconfig/network-scripts/ 如果想要永久生效可以修改目录中对应的网卡文件
第2步:添加路由,测试 配置路由 ? ? ip route add 目的网段/掩码 via? 下一跳ip地址 ? ? 或者 ? ? route add -net 目的网段/掩码 dev 本机出接口 ? ? 意思就是要想到达某一网络,就要从本机指定接口出去,或者指定的邻接路由器接口ip地址,而这就是下一跳 查看路由信息 ? ? route -n ? ? 或者 ? ? ip route PC-A: ip route default via 10.10.1.254? ? //主机A不管去哪里的网络,都会把数据包交给网关10.10.1.254也就是R_x R_x: ip route add 10.10.2.0/24 via 10.10.12.2? ? ip route add 10.10.23.0/24 via 10.10.12.2? ? //要想到达目标网络,本段必须有去的路由,但是并不关心回的路由,因为那是由对端设备负责的 R_y: ip route add 10.10.1.0/24 via 10.10.12.1 ip route add 10.10.2.0/24 via 10.10.23.2 R_z: ip route add 10.10.1.0/24 via 10.10.23.1 ip route add 10.10.12.0/24 via 10.10.23.1 PC-B: ip route default via 10.10.2.254 //每条路由是只负责去的路径,由对方负责回来的路径.对本段而言回的路由就是对端去的路由
查看各个设备的路由表 [root@PC_A ~]#ip route? 192.168.1.0/24 dev eth1? proto kernel? scope link? src 192.168.1.100? metric 1? 10.10.1.0/24 dev eth2? proto kernel? scope link? src 10.10.1.1? default via 10.10.1.254 dev eth2? ? ? ? //主机A有一条默认路由,去往目标的数据包全部交给eth2接口
[root@R_x ~]#ip route? 10.10.23.0/24 via 10.10.12.2 dev eth2? 10.10.2.0/24 via 10.10.12.2 dev eth2? ? ? ? //路由器R_x到达目的网络的路径是10.10.12.2,也就是R_y 10.10.1.0/24 dev eth1? proto kernel? scope link? src 10.10.1.254? 10.10.12.0/24 dev eth2? proto kernel? scope link? src 10.10.12.1? //以上两条路由是直连网络
[root@R_y ~]#ip route? 10.10.23.0/24 dev eth2? proto kernel? scope link? src 10.10.23.1? 10.10.2.0/24 via 10.10.23.2 dev eth2? 10.10.1.0/24 via 10.10.12.1 dev eth0? ? ? //由于R_y是3台路由器的中间一台,所以需要配置到两端的路由,因此下一跳也不一样 10.10.12.0/24 dev eth0? proto kernel? scope link? src 10.10.12.2
[root@R_z ~]#ip route? 10.10.23.0/24 dev eth0? proto kernel? scope link? src 10.10.23.2? 10.10.2.0/24 dev eth1? proto kernel? scope link? src 10.10.2.254? 10.10.1.0/24 via 10.10.23.1 dev eth0? 10.10.12.0/24 via 10.10.23.1 dev eth0? ? //至此经过的路由器有三个了,到达目的网络网关
[root@PC-B ~]#ip route default via 10.10.2.254 dev eth1? ? ? //到达目的主机B 10.10.2.0/24 dev eth1? proto kernel? scope link? src 10.10.2.1? 192.168.2.0/24 dev eth0? proto kernel? scope link? src 192.168.2.100? 192.168.122.0/24 dev virbr0? proto kernel? scope link? src 192.168.122.1
出现的192.168.x.x网络可以忽略
测试: 配置没问题的话,到这一步PC-A就能够ping通PC-B [root@PC_A ~]#ping -c 5 10.10.2.1 PING 10.10.2.1 (10.10.2.1) 56(84) bytes of data. 64 bytes from 10.10.2.1: icmp_seq=1 ttl=61 time=0.752 ms? ? //ttl之所以是61,是经过3个路由器R_x、R_y、R_z,ttl值原是64,经过1个路由器减一 64 bytes from 10.10.2.1: icmp_seq=2 ttl=61 time=0.983 ms 64 bytes from 10.10.2.1: icmp_seq=3 ttl=61 time=1.74 ms 64 bytes from 10.10.2.1: icmp_seq=4 ttl=61 time=2.12 ms 64 bytes from 10.10.2.1: icmp_seq=5 ttl=61 time=1.34 ms --- 10.10.2.1 ping statistics --- 5 packets transmitted,5 received,0% packet loss,time 4007ms rtt min/avg/max/mdev = 0.752/1.389/2.123/0.498 ms
下面是在PC-A上traceroute到PC-B的路径 [root@PC_A ~]#traceroute 10.10.2.1 traceroute to 10.10.2.1 (10.10.2.1),30 hops max,60 byte packets ?1? 10.10.1.254 (10.10.1.254)? 0.195 ms? 0.066 ms? 0.051 ms? //先到网关R_x ?2? 10.10.12.2 (10.10.12.2)? 0.816 ms? 0.795 ms? 0.764 ms? //再到R_y ?3? 10.10.23.2 (10.10.23.2)? 0.730 ms? 0.701 ms? 0.670 ms? //然后到达R_z ?4? 10.10.2.1 (10.10.2.1)? 0.920 ms? 0.893 ms? 0.862 ms? //最后到达PC-B //能到PC-B说明已经通了,如果在PC-B上traceroute得到的结果正好与此相反
拓展: 在R_x和R_z两台路由器上,由于他们的下一跳ip地址都是指向邻接路由器,所以可以考虑把他们的两条合并成一条默认路由.从而减少路由条目
? 《LINUX教学:Linux模拟路由器实验》是否对您有启发,欢迎查看更多与《LINUX教学:Linux模拟路由器实验》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|