首页 > 代码库 > Linux之网络管理(3)静态路由小案例

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

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

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

 

模拟测试:

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

准备工作:

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

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

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

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    eth1     10.0.0.20

yy : lab2    eth2     172.0.0.10

    lab4    eth0     172.0.0.20

zz : lab4    eth1     192.168.0.10  


试验阶段:

查看各个网卡ip

Lab1  eth0

技术分享 

Lab2  eth1

技术分享 

Lab2  eth2

技术分享Lab4  eth0

技术分享Lab4  eth1

技术分享

 

 

规法网关路由:

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

设置lab1主机的eth0网卡:

1、测试同一网络:

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

技术分享 

2、设置lab1网关

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

ip  roue  add  default  via  10.0.0.20  dev  eth0

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


2、查看lab1主机的route

ip  route  show

技术分享 

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


3、下面测试lab1eth0接口能不能通过lab2eth1去访问eth2(172.0.0.10)

技术分享 

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


设置lab2主机的网卡:

1、测试网络

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

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

#下面查看lab2NM服务进程

service NetworkManager status

技术分享 

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

service  NetworkManager  stop

技术分享 

#lab2再次开启network 服务

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

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

1、Lab2 去访问 lab1 eth0网卡

技术分享 

2、Lab2去访问lab4 eth0网卡

技术分享

3 、Lab2去访问lab4 eth1网卡

技术分享 

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


2、设置网关

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

ip  route  add  192.168.0.0/24  via  172.0.0.20   dev  eth2

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

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

ip route show

技术分享 

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


3、再次访问测试 

lab2测试

#lab2访问192.168.0.0网段

技术分享 

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

lab1测试

#lab1访问 lab4  eth0   172.0.0.20

技术分享 

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


4、设置开启转发功能 

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

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

技术分享 

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

技术分享

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

 

设置lab4的网卡:

1、设置lab4路由和转发

#开启lab4的转发功能

echo   1   >  /proc/sys/net/ipv4/ip_forward

#lab1 再次访问 lab4  172.0.0.20

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

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

ip  route   add   10.0.0.0/8   via   172.0.0.10   dev  eth0

#再次使用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/   #切换到网络脚步目录
vim   route-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_forwardvalue,这里过程和lab2配置一样,可以参考lab2配置系统内核参数过程。

 

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

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



本文出自 “神剑特兰克斯” 博客,请务必保留此出处http://mengzhaofu.blog.51cto.com/10085198/1846594

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