Linux之网络管理(3)静态路由小案例

免费杀毒   2024年02月16日 5:39  

Linux之网络管理(3)静态路由小案例

在日常网络中,总有有这么一种情况,在只有很少的路由器、交换机链接起来的网络会产生很多不同的网段,但是各个接口又不是都指向同一个,至少在一个线路而已,类似于各个公司部门的网段不同,但连在一起,因此产生了各个主机的网段不同。为了解决这种问题,可以对某些连在中间的主机模拟成路由器,来实现不同网段ip主机通信。

模拟测试:

这里模拟3个主机设备来进程跨网点组网

准备工作:

1、使用vm虚拟机模拟3个主机的linux系统环境,这里我准备了3个主机,这里标记3个主机分别为lab1、lab2、lab4

2、规划好一些私有网络、ip来使用

3、3个主机的网卡连接模式必须相同,这里因为物理主机只有2块网卡,且只有2个网关,因此要使用多网关这里我设置3个虚拟LAN区域:xx、yy、zz

4、规划网络ip

5、测试主机的网卡设备是否能正常使用

LAN区域网段介绍:

xx网段:10.0.0.0/8 网段

yy网段:172.0.0.0/16 网段

zz网段:192.168.0.0/24 网段

主机网卡网段分配:

LAN 主机 使用网卡 IP地址

xx : lab1 eth0 10.0.0.10

lab2 eth2 10.0.0.20

yy : lab2 eth3 172.0.0.10

lab4 eth0 172.0.0.20

zz : lab4 eth2 192.168.0.10

试验阶段:

查看各个网卡ip

Lab1 eth0

Lab2 eth2

Lab2 eth3

Lab4 eth0

Lab4 eth2

规法网关路由:

因为只有3个LAN区域,所以网段为固定,这里可以直接给lab1 设置一条默认路由

设置lab1主机的eth0网卡:

1、测试同一网络:

lab1 访问lab2 在xx网络的接口 10.0.0.10 --> 10.0.0.20

2、设置lab1网关

1、使用ip命令添加默认网关:

iproueadddefaultvia10.0.0.20deveth0

解析:其中default表示默认,也就是0.0.0.0网络,via表示下一条的地址,dev指明为哪个网卡设备配置,因为lab1在xx网络,只有一个eth0网卡,而lab2其中的eth2网卡也在xx网络并在同一网段,因此,两种直接可以ping通,但是想要访问lab2其中的eth3网卡,也就是yy网络,就需要将数据给lab2的eth2网卡,然后由lab2来转发数据。

2、查看lab1主机的route表

iprouteshow

解析:这里最后一行显示了刚才添加的默认路由条目

3、下面测试lab1的eth0接口能不能通过lab2的eth2去访问eth3(172.0.0.10)

解析:能ping通表示已经可以访问了

设置lab2主机的网卡:

1、测试网络

#下面重启lab2网络进程测试

说明:这里启动失败,是因为此网络服务的进程与NetworkManager服务进程发送冲突,这里我们查看NetworkManager是否正在运行:

#下面查看lab2NM服务进程

serviceNetworkManagerstatus

#这样已经发现NM服务真的已经启动了,下面关闭此服务:

serviceNetworkManagerstop

#lab2再次开启network 服务

解析:这里显示eth2和eth3重新获取了ip地址,当然还是刚才的配置下面测试ping

#ping名称测试通信(lab2测试)

1、Lab2 去访问 lab1 的eth0网卡

2、Lab2去访问lab4 的eth0网卡

3 、Lab2去访问lab4 的eth2网卡

解析:这里为什么ping不同,因为lab2没有设置通往192.168.0.0的网络,也就是zz网络,而能访问lab4的eth0,是因为lalb2的eth2和其在同一个网络(yy)网络172.0.0.0网段,所以这里要进行对lab2的eth3设置一个网关。

2、设置网关

#给lab2的eth3添加一个能访问192.168.0.0网段的route条目

iprouteadd192.168.0.0/24via172.0.0.20deveth3

解析:这里同样和添加lab1的默认路由类似,而lab1需要将数据传给通网段的lab2的eth2接口,所以,lab2要想访问lab4 的192.168.0.0网段,就要将数据给与lab4网络接口相连的接口,也就是lab2 的eth3接口,而 172.0.0.20是 lab4的eth0接口,然后建立访问。

#查看lab2的路由表,确认添加成功

iprouteshow

说明:第二行以及显示了新增加的路由,下面测试访问lab4的eth2接口

3、再次访问测试

lab2测试

#lab2访问192.168.0.0网段

解析:同样也能ping通,那么我们下面想一下,lab1是不是可以访问lab2而去间接访问lab4呢,下面测试一下:

lab1测试

#lab1访问 lab4 eth0 172.0.0.20

解析:看来不能通过此来访问,这里网关虽然设置好,但是linux内核内部默认是不会讲lab1的数据包通过lab2的eth3接口转发给lab4的。

4、设置开启转发功能

1、查看和开启lab2的ip转发功能

cat/proc/sys/net/ipv4/ip_forward#为0关闭,为1开启

解析: /proc为系统内核模块的系统进程产生的文件,是无法直接修改的,因此可以使用重定向,注意,这里只接收一个参数。

解析:想一想lab2接收lab1传来的数据,想经过 eth2,然后转发到eth3,但是lab4并不识别,因此需要再开启lab4的转发来接收数据

设置lab4的网卡:

1、设置lab4路由和转发

#开启lab4的转发功能

echo1>/proc/sys/net/ipv4/ip_forward

#lab1 再次访问 lab4 的 172.0.0.20

发现仍然失败,这是因为lab4并没有同向10.0.0.0网段的路由表,下面对lab4添加xx网段的路由

#给lab4添加访问10.0.0.0 网段的路由条目

iprouteadd10.0.0.0/8via172.0.0.10deveth0

#再次使用lab1 访问 lab4 的172.0.0.20

#再次使用lab1 访问 lab4 的192.0.0.10

解析:也是能访问的,因为根据路由条目linux内核的转发功能以及可以随意转发数据了

2、测试lab4访问lab1

#那么同时lab4也能访问10.0.0.0网段的地址了

进行优化

当我们添加路由都是临时生效,重启主机或网络服务都会失效,因此可以将路由配置写入配置文件

lab1设置:

1、设置路由配置

cd/etc/sysconfig/network-scripts/#切换到网络脚步目录vimroute-eth0#创建并编辑文件

2、再次启动服务,测试是否读取配置文件的数据来设置

解析:这里显示0.0.0.0表示所有网段,这里了表示读取配置以及成功。

lab2设置:

1、设置路由配置

2、设置ip转发永久生效

当然还有修改的linux系统内核参数,这里要到/etc/sysctl.conf文件去修改

#将 ip_forward = 这里的值设置为1表示开启,默认为0表示关闭

vim/etc/sysctl.conf

#再修改保存后,并不能直接生效,需要使用命令来重读系统参数配置文件

sysctl-p

lab4配置:

1、lab4路由配置

注意:设置后当然也去修改其系统下的/etc/sysctl.conf文件中的ip_forward的value,这里过程和lab2配置一样,可以参考lab2配置系统内核参数过程。

额外说明:这里我默认都关闭了防火墙功能,默认如果防火墙中有条目,如果再启动ip_forward 转发任然不能ping同,可以使用关闭服务或者清空防火墙,使用方法:

iptables-F#清空防火墙serviceiptablesstop#关闭防火墙服务

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部