静态路由配置
本质上通过配置虚拟机实现不同网段之间进行通信
第一步:准备3台虚拟机
- 第一台网卡配置NAT模式;第二台配置两个网卡,分别为配置NAT模式 + LAN区段;第三台配置LAN区段
第二步:配置网卡相关信息
-
先查看宿主机(物理机)VMnet8网卡的
IP
和子网掩码
-
配置网卡相关信息【具体的根据自己的来调整】
-
第一台
vim etc/sysconfig/network-scripts/ifcfg-ens33
# 修改主机名 hostnamectl set-hostname network01# 重启网卡 systemctl restart network# 退出重新登录查看网卡的相关信息 exit 登录 ip a
-
第二台
除了ip地址换一下,但一定要在同一网段,修改最后一位即可,我上面那个是
192.168.129.160
,这一台改为192.168.129.161
即可!子网掩码不变
除此之外,还需要做一件事
cd /sysconfig/network-scripts cp ifcfg-ens33 ifcfg-ens36
修改ip地址,只要是内网地址就都可以,别上去一个公网ip,我的如下,ip改为
172.16.1.12
# 修改主机名 hostnamectl set-hostname network02# 重启网卡 systemctl restart network# 退出重新登录查看网卡的相关信息 exit 登录 ip a 就能看到有两块网卡的具体信息了
-
第3台
其他不变,唯一的就是ip地址,这次要和第2台主机的第二块网卡要处于一个网段,我改成
172.16.1.14
vim etc/sysconfig/network-scripts/ifcfg-ens33
# 修改主机名 hostnamectl set-hostname network03# 重启网卡 systemctl restart network# 退出重新登录查看网卡的相关信息 exit 登录 ip a 就能看到有这块网卡的具体信息了
-
第三步:测试
# 用第二台主机ping第一台主机
ping 192.168.129.160# 用第二台主机ping第二台主机
ping 172.16.1.14这些都ping通就说明没问题了,但是你会发现第一台ping第三台报错Network is unreachable,网络不可达
说明我们的主机是不能跨ip地址段进行互相访问的,我们设置一个路由规则就可以了。
第四步:设置静态路由规则
刚才我们使用主机1ping主机3看到报错,网络不可达,就是因为ping3主机的ip地址时,主机01发现你要找的ip地址不在我这个网段【192.168.129.0网段】,就会自动查找路由表的记录,看不到03主机所在网段的路由,所以报错,找不到。
给主机1配置静态路由:
# 添加一条静态路由,访问172.16.1.0这个网段,那么先跳到192.168.129.161这个网关上,通过它去访问,gw即设置网关,设置了路由的下一次跳转位置
route add -net 172.16.1.0/24 gw 192.168.129.161# ping主机2的第二块网卡的ip地址,也就是172那个网段的
ping 172.16.1.12# 但是通过01ping主机3的话,还是ping不通,显示的不是网络不可达了:而是卡住了,如何测试数据包是否到了主机3
tcpdump -i ens33 -nn# 可以看到主机3也卡住不动,说明数据包没到主机3,数据包丢了,主机2并没有做转发,需要配置一下转发才行
给主机2打开转发功能:
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
cat /etc/sysctl.conf
sysctl -p # 让配置生效
然后,先在主机2上抓个包,同时在用主机1ping
主机3
# 主机2
tcpdump -i ens33 -nn# 主机3
tcpdump -i ens33 -nn# 主机1 ping 主机3
ping 172.16.1.14# 这个时候,数据包到了主机2,主机2给做了转发到了 172.16.1.14,但是主机1ping并没有收到回应的数据包,这是因为主机3不知道该怎么回给主机1,看主机3的路由表就知道了:
给主机3也加上一条静态路由规则
route add -net 192.168.129.0/24 gw 172.16.1.12
再用主机1ping
主机3就可以ping通了。
这就是通过虚拟机来模拟了静态路由规则的设定方式。