Linux 内、外网双网卡路由配置

1. 路由信息的影响

Linux 系统中如果有多张网卡的情况下,如果路由信息配置不正确,可能会导致其中一张网卡不能正常使用。 比如原网卡eth0的IP是192.168.1.x/24。 新增加一张网卡eth1, 配置的网段是是:10.16.1.x/24,各自到网关都通,但原eth0的网段的主机不能访问这台主机。可以通过查看路由表,确认默认的路由是否走到正确的网卡上了。 如果路由错误,删除这个默认的路由,重新添加一条默认路由即可。

比如命令:
route del default gw 10.16.1.1 dev eth1
route add default gw 192.168.1.1 dev eth0

查看路由表信息:
[root@ ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *               255.255.255.0   U         0 0          0 eth1
192.168.56.0    *               255.255.255.0   U         0 0          0 eth0
link-local      *               255.255.0.0     U         0 0          0 eth0
default         Hiwifi.lan      0.0.0.0         UG        0 0          0 eth1

2.双网卡路由信息配置

--现在看一个双网卡的配置路由的过程:
--如果eth1为192.168.1.173/255.255.255.0,eth0为192.168.56.101/255.255.255.0,

#则路由配置命令如下:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1
route add -net 192.168.56.0 netmask 255.255.255.0 dev eth0

上面的命令把发送给192.168.1.0网段的IP包交给eth1转发,把192.168.56.0网段的IP包交给eth0转发。
如果还有可能有发送给其他目的IP的包,那么你肯能希望设置一个“默认网关”:
route add default gw 192.168.1.1 dev eth1

上面的命令把所有发送给其他目的IP的包都转发给192.168.1.1。

一般情况下,默认网关已经自动设置好了,不用重复设置。可以用route命令加-n参数进行检查。

如果要删除某一条,命令格式为:
route del -net 192.168.1.0 netmask 255.255.255.0

配置时的一种思路是把192.168.10.0网段路由至eth0,192.168.20.0网段路由至eth1,再设置默认路由。另一种思路是,只指定其中一个,然后把默认的0.0.0.0路由至另一个。其实效果一样,就是两种思路。

3.route命令解析

#添加到主机的路由:
 route add –host 192.168.1.10 dev eth0
 route add –host 192.168.1.10 gw 192.168.1.1

#添加到网络的路由:
 route add –net 192.168.1.0  netmask 255.255.255.0 eth0
 route add –net 192.168.1.0  netmask 255.255.255.0 gw 192.168.1.1
 route add –net 192.168.1.0/24 eth1

#添加默认网关:
 route add default gw 192.168.1.1

#删除路由:
 route del –host 192.168.1.10 dev eth0

4.配置路由永久生效的方法:

方法一:
# vi /etc/rc.local(添加到末尾)
语句: 
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254

方法二:添加默认网关,即默认路由
两块网卡在配置文件ifcfg-ethX中不配置网关,在/etc/sysconfig/network中设置默认网关

vi /etc/sysconfig/network
GATEWAY=192.168.14.254

方法三:添加路由 创建/etc/sysconfig/static-routes配置文件
# vi /etc/sysconfig/static-routes (没有static-routes的话就手动建立一个这样的文件)
any net  192.168.15.0/24   gw 192.168.14.254
any host 123.57.223.144    gw 192.168.14.254
any host 123.57.190.33/32  gw 192.168.8.1

方法四:在/etc/sysconfig/network-scripts/下创建配置文件route-ethX
vim /etc/sysconfig/network-scripts/route-eth0
0.0.0.0/0       via 192.168.14.254 dev eth0     
#这条为默认路由,另一种格式 default 192.168.14.254 dev eth0
192.168.15.0/24 via 192.168.14.254 dev eth0
123.57.223.144  via 192.168.14.254 dev eth0

vim /etc/sysconfig/network-scripts/route-eth1
123.57.190.33   via 192.168.8.1 dev eth1
配置完重启network服务生效 service network restart
注:
linux双网卡默认路由问题linux在加载网卡配置文件的时候是先加载eth0,再加载eht1的,这样,如果eth1设置了gateway项,则会覆盖掉eth0中的gateway设置,因此解决方法就是删除eth1的gateway设置,在配置/etc/sysconfig/network添加网关。

你可能感兴趣的:(Linux,linux)