如何使用linux服务器实现路由器的功能?
实验目的 理论分析 配置并搭建实验环境 第一步: 克隆五台虚拟机 第二步:设置并分配网卡 第三步:更改每台虚拟机的网卡名称 第四步:修改ip地址 第五步:开启linux中的路由转发功能 修改路由表 实验结果
实验目的
利用四台linux服务器,两台充当主机,三台充当路由器。我们要实现的是这两台pc通过这三台路由器连接起来。如图所示:
图一
准确的来说,我们最终的目的是要实现左边的主机Ping右边的主机并且能够ping通
理论分析
1、划分网络:
我们使用三个路由器隔离开了四个网络段。所以我们要设置四个网段,用来连接主机和路由器。其中的网络ID和主机ID都是可任意的。可以按照Ip规则选择合适的即可,不一定必须是这几个网络。
网络一:6.6.6.0/24
包含设备:pc1(6.6.6.6)和route1(6.6.6.1)
使用VMNET11.
网络二:7.7.7.0/24
包含设备:route1(7.7.7.1)和route2(7.7.7.2)
使用VMNET12
网络三:8.8.8.0/24
包含设备:route2(8.8.8.2)和route3(8.8.8.3)
使用VMNET13
网络四:9.9.9.0/24
包含设备:route3(9.9.9.3)和pc2(9.9.9.9)
使用VMNET14
如下图所示
图二
而我们的最终目标是用PC1ping通PC2
2、路由表设置分析
PC1添加路由信息
根据图二,我们可以设置一条default路由
route add default gw 6.6.6.1
PC2添加路由信息
route add default gw 9.9.9.3
route1添加路由信息
route add -net 8.8.8.0/24 gw 7.7.7.2
route add -net 9.9.9.0/24 gw 7.7.7.2
route2添加路由信息
route add -net 6.6.6.0/24 gw 7.7.7.1
route add -net 9.9.9.0/24 gw 8.8.8.3
route3添加路由信息
route add -net 6.6.6.0/24 gw 8.8.8.2
route add -net 7.7.7.0/24 gw 8.8.8.2
配置并搭建实验环境
第一步: 克隆五台虚拟机
首先我们需要有5台这样的服务器,VMWARE给我们提供了克隆功能,我们按照步骤克隆出5台服务器就行。
关机状态下
右击->管理->克隆
创建链接克隆(在克隆源开机的情况下,该克隆可用) 全部克隆(克隆出来一个独立的linux系统)
建议:使用全部克隆,克隆一个当前的副本,然后使用这个副本创建四个链接克隆。这样五个虚拟机就构造好了。
第二步:设置并分配网卡
我们从理论中分析出来我们需要四个仅主机的网络,我们可以在VMWRAE的网络设置中重新加入四块儿网卡,用来进行试验。
进入虚拟网络编辑器添加四个网卡,如下图所示
根据上面的网络分析进行网卡分配
PC1
添加VMNET11
PC2
添加VMNET14
route1
添加VMNET11
添加VMNET12
route2
添加VMNET12
添加VMNET13
route3
添加VMNET13
添加VMNET14
第三步:更改每台虚拟机的网卡名称
克隆之后的虚拟机网卡不是规范的,大部分都是eth3或者eth4开始的,下面我们对这五台虚拟机,进行命名规范。
我们以虚拟机route1为例,讲述如何更改将网卡名规范化
1、[root@centos6 ~]# vim /etc/udev/rules.d/70-persistent-net.rules
将其中对应要修改的网卡最后的NAME=”eth2”改为所需要的名称。比如我们将桥接用的网卡改为NAME=”eth0”;
2、[root@centos6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
将其中的DEVICE=改为对应网卡名
将HWADDR=改为对应的MAC地址
3、
ethtool -i eth2 查看驱动模块名
modprobe -r e1000 卸载模块e1000是上条命令查到的驱动名
modprobe e1000 重新加载模块
4、
[root@centos ~]# service network restart
[root@centos ~]#ifconfig
网卡改名成功,并成功启动。
使用同样的方法对route1中的其他网卡进行相同的改名处理,对其余四台linux主机进行相同的处理
第四步:修改ip地址
我们以route1为例子,其他主机更改地址的方式与之相同
1、将VMNET11对应的网卡接口修改为静态分配ip,并自定义Ip为6.6.6.1,配置如下:
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=6.6.6.1
NETMASK=255.255.255.0
HWADDR=00:0C:29:2F:31:70
name="System eth1"
2、将VMNET12对应的网卡接口修改为静态分配ip,并定义为ip为7.7.7.1
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=7.7.7.1
NETMASK=255.255.255.0
HWADDR=00:0C:29:2F:31:7A
name="System eth2"
使用同样的方法对其他的主机的ip进行同样的处理
第五步:开启linux中的路由转发功能
将route1,route2,route3这三台机器都开启路由转发功能。永久配置过程如下
将文件/etc/sysctl.conf里面的net.ipv4.ip_forward=0这一行,将0改为1.这样就能实现路由转发功能
sysctl -p
该命令意思为从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
至此实验环境搭配完成
修改路由表
根据我们的理论分析情况,开始设置每台设备的路由表。
PC1添加路由
route add default gw 6.6.6.1
PC2添加路由信息
route add default gw 9.9.9.3
route1添加路由信息
route add -net 8.8.8.0/24 gw 7.7.7.2
route add -net 9.9.9.0/24 gw 7.7.7.2
route2添加路由信息
route add -net 6.6.6.0/24 gw 7.7.7.1
route add -net 9.9.9.0/24 gw 8.8.8.3
route3添加路由信息
route add -net 6.6.6.0/24 gw 8.8.8.2
route add -net 7.7.7.0/24 gw 8.8.8.2
实验结果
成功实现用主机6.6.6.6Ping9.9.9.9并成功返回ping包。
在实验的过程中,为了减少干扰,我将桥接的网卡关闭,路由表中仅有我添加的路由,而不可能通向外部网络