linux 通过虚拟ip出路由器,linux模拟路由器实验

实验目标:

将3台主机设置成路由器

实现两台终端能够相互通信

网络结构如下:

1240

准备工作:

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

或者

ifconfigPC-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 routePC-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地址都是指向邻接路由器,所以可以考虑把他们的两条合并成一条默认路由。从而减少路由条目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值