您的位置:首页 > 理论基础 > 计算机网络

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

2016-09-05 23:07 435 查看
Linux之网络管理(3)静态路由小案例在日常网络中,总有有这么一种情况,在只有很少的路由器、交换机链接起来的网络会产生很多不同的网段,但是各个接口又不是都指向同一个,至少在一个线路而已,类似于各个公司部门的网段不同,但连在一起,因此产生了各个主机的网段不同。为了解决这种问题,可以对某些连在中间的主机模拟成路由器,来实现不同网段ip主机通信。 模拟测试:这里模拟3个主机设备来进程跨网点组网准备工作:1、使用vm虚拟机模拟3个主机的linux系统环境,这里我准备了3个主机,这里标记3个主机分别为lab1、lab2、lab42、规划好一些私有网络、ip来使用3、3个主机的网卡连接模式必须相同,这里因为物理主机只有2块网卡,且只有2个网关,因此要使用多网关这里我设置3个虚拟LAN区域:xx、yy、zz4、规划网络ip5、测试主机的网卡设备是否能正常使用 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.20yy : lab2 eth2 172.0.0.10 lab4 eth0 172.0.0.20zz : lab4 eth1 192.168.0.10
试验阶段:查看各个网卡ipLab1 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指明为哪个网卡设备配置,因为lab1在xx网络,只有一个eth0网卡,而lab2其中的eth1网卡也在xx网络并在同一网段,因此,两种直接可以ping通,但是想要访问lab2其中的eth2网卡,也就是yy网络,就需要将数据给lab2的eth1网卡,然后由lab2来转发数据。
2、查看lab1主机的route表
ip  route  show



解析:这里最后一行显示了刚才添加的默认路由条目
3、下面测试lab1的eth0接口能不能通过lab2的eth1去访问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网络,而能访问lab4的eth0,是因为lalb2的eth1和其在同一个网络(yy)网络172.0.0.0网段,所以这里要进行对lab2的eth2设置一个网关。
2、设置网关
#给lab2的eth2添加一个能访问192.168.0.0网段的route条目
ip  route  add  192.168.0.0/24  via  172.0.0.20   dev  eth2
解析:这里同样和添加lab1的默认路由类似,而lab1需要将数据传给通网段的lab2的eth1接口,所以,lab2要想访问lab4 的192.168.0.0网段,就要将数据给与lab4网络接口相连的接口,也就是lab2 的eth2接口,而 172.0.0.20是 lab4的eth0接口,然后建立访问。#查看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的数据包通过lab2的eth2接口转发给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_forward的value,这里过程和lab2配置一样,可以参考lab2配置系统内核参数过程。 额外说明:这里我默认都关闭了防火墙功能,默认如果防火墙中有条目,如果再启动ip_forward 转发任然不能ping同,可以使用关闭服务或者清空防火墙,使用方法:
iptables  -F         #清空防火墙
service  iptables stop  #关闭防火墙服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息