如何使用linux服务器实现路由器的功能?

实验目的 理论分析 配置并搭建实验环境 第一步: 克隆五台虚拟机 第二步:设置并分配网卡 第三步:更改每台虚拟机的网卡名称 第四步:修改ip地址 第五步:开启linux中的路由转发功能 修改路由表 实验结果

实验目的

利用四台linux服务器,两台充当主机,三台充当路由器。我们要实现的是这两台pc通过这三台路由器连接起来。如图所示:

如何使用linux服务器实现路由器的功能?

图一

准确的来说,我们最终的目的是要实现左边的主机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

如下图所示

如何使用linux服务器实现路由器的功能?

图二

而我们的最终目标是用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服务器实现路由器的功能?

关机状态下

右击->管理->克隆

创建链接克隆(在克隆源开机的情况下,该克隆可用) 全部克隆(克隆出来一个独立的linux系统)

建议:使用全部克隆,克隆一个当前的副本,然后使用这个副本创建四个链接克隆。这样五个虚拟机就构造好了。

第二步:设置并分配网卡

我们从理论中分析出来我们需要四个仅主机的网络,我们可以在VMWRAE的网络设置中重新加入四块儿网卡,用来进行试验。

如何使用linux服务器实现路由器的功能?

进入虚拟网络编辑器添加四个网卡,如下图所示

如何使用linux服务器实现路由器的功能?

根据上面的网络分析进行网卡分配

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地址

如何使用linux服务器实现路由器的功能?

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

实验结果

如何使用linux服务器实现路由器的功能?

成功实现用主机6.6.6.6Ping9.9.9.9并成功返回ping包。

在实验的过程中,为了减少干扰,我将桥接的网卡关闭,路由表中仅有我添加的路由,而不可能通向外部网络

相关推荐