linux双网卡配置路由的实战讲解,linux双网卡


一、环境:

三台直接相连的计算机主机

PC1<------>PC2<------>PC3

其中PC2上有两块网卡eth0、eth1,分别与PC3、PC1相连

------代表网线

二、需求:

将PC2配置为路由器模式,用来在PC1、PC3之间转发报文

三、方法:

将三台主机按照环境所要求用交叉线直接连网后,为三台主机分配网段并配置IP地址。

网段及IP地址分配如下:

主机名 所在网段 分配IP 网关

PC1: 192.168.2.0/24 192.168.2.2/24 192.168.2.1

PC2: 192.168.2.0/24 192.168.2.1/24 '与PC1相连的网卡的配置' eth1

192.168.1.0/24 192.168.1.1/24 '与PC3相连的网卡的配置' eth0

PC3: 192.168.1.0/24 192.168.1.2/24 192.168.1.1

按照上表所示分别将主机IP地址配置好,其中要注意的是,要想使PC2具有报文转发功能,在PC2

上检查/proc/sys/net/ipv4/ip_forward中的值是否为1

命令:

#more /proc/sys/net/ipv4/ip_forward

如果显示其值不为1而是0 输入以下命令:

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

打开IP转发功能

PC2中的其它配置:

为PC2添加路由,命令:

#route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0

#route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1

四、验证:

PC1:

ping网关

#ping 192.168.2.1

#ping 192.168.1.1

ping PC3:

#ping 192.168.1.2

PC3:

ping网关

#ping 192.168.1.1

#ping 192.168.2.1

pint PC1

#ping 192.168.2.2

五、Bug调试:

出错的原因主要集中在PC2两个地方

1.检查PC2是否允许IP报文转发(/proc/sys/net/ipv4/ip_forward的值是否为1)

2.路由设置是否正确(#route 回车查看)

其中可能出现问题:(默认路由的改变)

linux主机原网卡eth0,IP地址为172.19.74.X/24,新增一块网卡eth1,配置另外一个网段的IP 10.219.17.X/24,发现各自到网关都通,但原172.19.74.X段的主机不能访问这台主机了。

查看路由表发现,默认路由走到新增的那块网卡eth1上去了:

要删掉这条默认的路由,再亲增一条默认路由走原来的eth0

命令:

route del default gw 10.219.17.1 dev eth1

route add default gw 172.19.74.1 dev eth0

再查看路由表:

[root@CallCenter-SIP ~]# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

172.19.74.0 * 255.255.255.0 U 0 0 0 eth0

10.219.17.0 * 255.255.255.0 U 0 0 0 eth1

link-local * 255.255.0.0 U 0 0 0 eth1

default 172.19.74.1 0.0.0.0 UG 0 0 0 eth0

然后,组网的一切设备都恢复正常了。

另一种方法可以通过iptables端口转发来实现

共享语句:192.168.1.0/24内网 221.235.206.51外网

iptables-APOSTROUTING-tnat-s192.168.1.0/24 -oeth1-jSNAT--to-source221.235.206.51

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

相关内容