在日常的运维中,经常有使用多张网卡的需求,比如服务器需要同时连接两个网络,或者是需要提供远程环境供对方访问内网.但是在pc或者服务器上做好网络配置后常常有只能上外网,无法连接内网,或者是只能上内网,无法连接公网的情况.这主要是因为配置多个默认网关引起的.
PC或者服务器上的默认网关相当于一条默认路由,当你在多张网卡上配置了默认网关,那么你的设备就会有多条默认路由.而且它们的优先级常常是不同的.当你在两张网卡上都配置了默认网关时,有以下两种情况.
1.访问公网的默认路由优先级高
2.访问内网的默认路由优先级高
第一种情况下,你可以访问公网,正常浏览网页,上qq.但是你无法跨三层访问内网.
第二种情况下,你可以跨三层访问内网,但是不能访问公网,网页和QQ都不能正常使用.
大多教程都是让你修改访问内网的优先级,使其访问公网的优先级变高,然后添加一条静态的明细路由.但是常常有修改后不生效的情况.
还有一种是将所有默认路由删除,然后添加一条默认路由(访问公网的接口),然后再添加一条访问内网的路由..这是一种可行的方法.
而我的做法是在配置网络时就不配置内网网卡的默认网关.这样只需要配置一条静态的明细路由就可以实现.
举个例子
我电脑有线网卡的地址是192.168.31.105/24 网关192.168.31.1(ipv6地址均做了处理)
无线网卡为192.168.43.118/24 网关192.168.43.1
1.首先我测试下网络连通性,ping8.8.8.8(谷歌dns地址)是可达的.
2.Tracert 8.8.8.8(我并没有tracert完,因为中间太多跳,且不影响实验结果), 可以发现现在是通过有线网卡访问,且第二跳为192.168.1.1
3.Ping192.168.1.1是通的.
4.查看路由表,有两条优先级均为35的默认路由(这就很奇妙,此时应该是负载均衡吧,第一次遇到)
5.然后将有线网卡拔出,ping192.168.1.1不通,说明用无线网卡访问不到192.168.1.1
6.查看路由表,只有一条下一跳为192.168.43.1的默认路由
7.将有线网卡插入,并将地址获取模式修改为手动且不设置默认网关
8.此时除了多了到192.168.31.0网段的路由外,并没有其他变化
9.Ping192.168.1.1还是不通
10.添加一条静态的明细路由
11.查看路由表,路由添加成功
12.可以ping通192.168.1.1
在配置多网卡时,需要做的步骤是7-12,前面的步骤只是说明无线网卡无法访问到192.1681.1.
,在工作中,常常有网关ping的通设备,但是跨三层不通的情况.这一般有两种情况,
1.没有配置默认网关
2.使用了两张网卡,且想要ping通的ip的默认路由优先级比较低.
第一种情况只要配置默认网关就可以了.
如果遇到第二种情况,此时的做法也是和要同时访问内外网一样,访问公网(如果都是内网业务,那就是访问网络多的网卡)的网卡配置默认网关.另一张网卡不设置默认网关,添加永久的静态路由.