欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-27 15:55:24
一、环境: 三台直接相连的计算机主机 PC1<------>PC2<------>PC3 其中PC2上有两块网卡eth0、eth1,分别与PC3、PC1相连 -...

一、环境:

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

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