当前位置: 技术问答>linux和unix
linux 怎么实现数据包转发
来源: 互联网 发布时间:2016-06-26
本文导语: 机器有6个网卡,red hat系统。现在要求从eth0 收到的数据包,从eth2转发出去, eth0:192.168.20.110 eth2:10.3.10.159 隐约知道应该开启linux路由功能,可具体怎么设置就不知道了,急用,能有详细步骤最好,不胜感激 ...
机器有6个网卡,red hat系统。现在要求从eth0 收到的数据包,从eth2转发出去,
eth0:192.168.20.110
eth2:10.3.10.159
隐约知道应该开启linux路由功能,可具体怎么设置就不知道了,急用,能有详细步骤最好,不胜感激
eth0:192.168.20.110
eth2:10.3.10.159
隐约知道应该开启linux路由功能,可具体怎么设置就不知道了,急用,能有详细步骤最好,不胜感激
|
Linux环境下双网卡主机路由配置
一、环境:
三台直接相连的计算机主机如图
PC1PC2PC3
其中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 回车查看)
一、环境:
三台直接相连的计算机主机如图
PC1PC2PC3
其中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主机做路由,为子网实现共享上网。2个IP,一个公网IP(22.33.44.55),一个内外网关(192.168.0.254)。
首先打开路由转发,并且为了保证开机重启后生效。如下操作:
1:修改/etc/sycctl.conf,打开路由转发。
[root@kook ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
2:立即生效
[root@kook ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
添加iptables的NAT,同样保证开机路由生效。
1:添加iptable的NAT
[root@kook ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
2:修改默认iptables,保障重启开机后仍然生效。
[root@kook ~]# iptables-save > /etc/sysconfig/iptables
3:让iptables开机启动
[root@kook ~]# chkconfig iptables on
[root@kook ~]# chkconfig ——list iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
在子网下测试,是否可以上网。完成。
首先打开路由转发,并且为了保证开机重启后生效。如下操作:
1:修改/etc/sycctl.conf,打开路由转发。
[root@kook ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
2:立即生效
[root@kook ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
添加iptables的NAT,同样保证开机路由生效。
1:添加iptable的NAT
[root@kook ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
2:修改默认iptables,保障重启开机后仍然生效。
[root@kook ~]# iptables-save > /etc/sysconfig/iptables
3:让iptables开机启动
[root@kook ~]# chkconfig iptables on
[root@kook ~]# chkconfig ——list iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
在子网下测试,是否可以上网。完成。
|