用Linux操作系统实现软“路由”功能

摘要:讨论通过对Linux操作系统进行设置,来提供软件路由器的功能,并以实例加以说明。

关键词:操作系统 路由器

我们知道不同网络之间的计算机要通过路由器才能通信,路由器分为硬件路由器和软件路由器。我们可以利用硬件路由器连接不同的网络,例如Cisco路由器。或利用某种操作系统来扮演软件路由器的角色,例如Windows Server 2003可以通过“路由和远程访问”服务来提供软件路由器的功能。

作为以服务器为主LINUX操作系统,它也具有很强的路由器功能,只要经过非常少的几步设置,就会使用LINUX系统成为一台出色的路由,运用好LINUX操作系统的这一特点,对于中小型企业来说,是非常有用的。

下面以图1为例,来说明如何将图中的Server1(Red Hat Enterprise Linux 4.0)设置成路由器,将两个网段连接在一起。

1 配置前的准备工作

1.1 在要配置为路由器的计算机中(图1中的Server1)中安装RHEL4(略)。

1.2 在1.1中的计算机上安装两个网卡(需要连接几个网段就安装几个网卡),连局域网1用eth0网卡,连局域网2用eth1网卡。然后配置网卡的 ip地址和默认网关。具体配置如下:

第一种配置(手工设置):

选择屏幕左上角的【应用程序】——【系统设置】——【网络】命令,打开【网络配置】窗口,选择【新建】——【以太网连接】——点击【前进】——选择网卡(eth0还是eth1)——输入IP、掩码和网关——点击【前进】——点击【应用】——选择【激活】

第二种配置(命令方式):

方法一,右击“桌面空白位置”——选择“打开终端”,输入以下命令

# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up

# route add default gw 192.168.0.254

# ifconfig eth1 192.168.1.1 netmask 255.255.255.0 up

# route add default gw 192.168.1.254

注意:这种配置是不写入系统脚本的(可通过查看脚本文件得到 /etc/sysconfig/network-scripts/ifcfg-eth0),如果系统关机,那刚刚配置的IP和网关就会丢失。这种配置适合测试的时候使用!

方法二,用netconfig命令启用图形界面配置

#netconfig eth0

在出现的配置环境中输入IP,netmask 和default gateway。同样在输入#netconfig eth1配置第二块网卡。

注意:这种配置是写入系统脚本的,系统关机重新启动之后,配置的内容还在。这种配置适合服务器长期配置使用。

配置完之后要重新启动服务

方法三,直接修改网卡的脚本文件。第一块网卡的操作如下:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0文件,修改为如下格式:

DEVICE=eth0

ONBOOT=yes

BROADCAST=192.168.0.255

NETWORK=192.168.0.0

NETMASK=255.255.255.0

IPADDR=192.168.0.1

GATEWAY=192.168.0.254

第二块网卡的操作和第一块网卡相同,

# vi /etc/sysconfig/network-scripts/ifcfg-eth1文件,把上面加粗的0改为1即可。

1.3 配置完之后要重新启动服务

第一种启动方法:#service network restart(前提:有这个服务)。

第二种启动方法:#/etc/init.d/network(直接启动脚本,不会出问题)。

2 启动路由功能

首先查看LINUX系统的内核中是否打开了IP转发功能,可以通过下列命令来查看:

#cat /proc/sys/net/ipv4/ip_forward

如果用此命令返回的结果是0,那么就表明LINUX内核没有启用IP转发的路由器功能。通过命令来启用:

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

但这种方式只能保证当次有效,如果你不小心或应某种需要重启了系统,那么又得重新输入上述这个命令一次。因此,为了保证每次系统都能自动设置,需要用VI编辑器修改配置文件

# vi /etc/sysctl.conf

将net.ipv4._ip_forward=0,改为net.ipv4._ip_forward=1保存(按Esc键后输入:wq)退出后,这样,每次重启系统都不用重新设置内核IP转发了。

3 添加静态路由

除了默认的路由(通过命令route可查看)外,可以自行添加静态路由,例如让路由器通过所添加的路径来传送数据包。可以通过以下两种方式来添加静态路由。

3.1 添加到主机的路由

到局域网1上的某台主机(假设IP为192.168.0.2)

# route add -host 192.168.0.2 dev eth1或者# route add -host 192.168.0.2 gw 192.168.0.254

到局域网2上的某台主机(假设IP为192.168.1.2)

# route add -host 192.168.1.2 dev eth1或者# route add -host 192.168.1.2 gw 192.168.1.254

3.2 添加到网络的路由

到局域网1的,下面的三条命令任选其一

# route add-net 192.168.0.0 netmask 255.255.255.0 eth0

# route add-net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.254

# route add-net 192.168.0.0/24 eth0

同理到局域网2的,下面的三条命令任选其一

# route add-net 192.168.1.0 netmask 255.255.255.0 eth1

# route add-net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254

# route add-net 192.168.1.0/24 eth1

4 测试路由器

4.1 测试服务器自身网络是否工作正常,执行如下命令

#ping 192.168.0.1 按ctrl+c退出

#ping 192.168.1.1

如果这些地址都能ping通,则第一步通过,否则查找原因,排除错误。

4.2 测试服务器与上一级网关之间是否连通

#ping 192.168.0.254 按ctrl+c退出

#ping 192.168.1.254

如果通畅,则正常;否则查找错误原因。

4.3 两个局域网分别测试

在局域网2内测试,假设它的地址是192.168.1.2,

第一步,测试自身是否工作正常,#ping 192.168.1.2

第二步,测试与网关是否连通,#ping 192.168.1.254

第三步,测试与192.168.0.0网段是否连通,#ping 192.168.0.2如果连通了,表示路由器配置正确,否则,查找原因,并排除之。同理在局域网1内测试。

5 结束语

虽然软路由的效率无法满足网络间的高速通讯,但在价格方面,就是一台计算机的价格。而硬件路由的价格则根据性能的不同有较大的差别。如果花费昂贵的价钱购买一台路由器,仅仅用于连接局域网中的两个网段通信,这时候就最好采用软路由。

参考文献:

[1]林晓飞等.Red Hat Enterprise Linux 4.0网络服务与管理,北京:清华大学出版社,2008.

[2]骆耀祖.Linux网络服务器管理教程,北京:电子工业出版社,2007.

[3]唐华.Linux操作系统高级教程,北京:电子工业出版社,2008.