因为一个系统只允许一个默认网关,所以你的双网卡配置文件,只有一个进行配置,另一个注释掉,以软路由的方式实现双网卡网络通信正常。 *** 作如下:
1、内网卡的IP配置文件正常配置;
2、外网卡的IP配置文件网关位置去掉;
3、启动2个网卡;
4、执行路由命令添加软路由显示外网只允许指定网段通信使用外网,命令如下:
route add -net 网段 netmask 掩码 gw 外网网关以上请使用对应IP替换网段,掩码,外网网关
注意: 2 张网卡,只能有1张网卡配置网关,另1张网卡不能配置网关,通过route add 添加路由功能来完成第2张网卡的网关配置。如 : eth1 (192.168.2.2)不需要配置网关, 但到 192.168.3.0 的网段,需要从eth1 去实现通信,其余的全部走eth0 网卡,eth0 配置 网关.
eth0 的配置如下,配置网关参数
[root@REDHAT network-scripts]# cat ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HOTPLUG=no
TYPE=Ethernet
IPADDR=192.168.1.2
NETMASK=255.255.255.0
HWADDR=d8:d3:85:fb:d4:60
GATEWAY=192.168.1.1
USERCTL=no
IPV6INIT=no
PEERDNS=yes
eth1 的配置如下,不需要配置网关
[root@SERVER network-scripts]# cat ifcfg-eth1
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HOTPLUG=no
TYPE=Ethernet
IPADDR=192.168.2.2
NETMASK=255.255.255.0
USERCTL=no
IPV6INIT=no
PEERDNS=yes
Linux 命令行下添加路由,192.168.3.0 走 eth1 的网关 192.168.2.1
route add -net 192.168.3.0 netmask 255.255.255.0 dev eth1
1.不通是什么概念?TCP不通还是ICMP不通?2.内向外不通还是外向内不通?
3.外部不通的那个对端是同一子网还是不同子网?
4.你的双网卡配置了两个默认网关,这种做法是错的。你需要在其中一个网口上指定一个默认网关,另一个网口用静态路由逐条指定。
比如,上网通过eth0,gateway=10.213.1.1这个没错。
访问另外几个局域网172.16.0.0/16、192.168.111.0/24通过eth1
ip route add 172.16.33.0/16 via 192.168.2.1
ip route add 192.168.111.0/24 via 192.168.2.1
如果不通的对端是其他子网,用ip route 或者route -n看看你的路由表是否正确。不正确的路由表删除,删除方法类似上面两个命令,add换成del
5.其他检查方法
a.fconfig eth1看看你的IP是否设置正确,并真实存在
b.用mii-tool看看你的物理连接是否网线松动
c.看看iptables
iptables -nvL INPUT
如果有规则,就清空规则:
redhat、fc、centos用一条命令搞定:
service iptables stop
其他版本用三个命令:
iptables -P INPUT ACCEPT
iptables -F
iptables -X
三楼说用ip rules,简单问题复杂化了,那是网关的做法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)