当前位置:首页 > 综合

route 默认网关

route 默认网关

你敲下 ip route 或者 route -n 的认网时候,第一行往往写着 default via 192.168.1.1。认网这行字就是认网默认网关,没它,认网你的认网数据包就像没头苍蝇,出门左转还是认网右转全靠猜。我见过不少同事,认网一遇到网络不通就重启路由器,认网其实多半是认网默认网关被改乱了,或者干脆丢了。认网

默认网关的认网本质是“最后一条退路”。你的认网机器要访问一个不认识的IP地址,查路由表,认网发现没有精确匹配,认网也没有更具体的认网网段条目,那就走default。它不挑食,什么目标都接,但只负责把包扔给下一跳——那个叫网关的邻居。这个邻居通常是路由器,它再帮你继续问路。整个过程像极了你在陌生城市打车,司机不认识目的地,但知道先上高架,高架总能把车带到能问路的地方。

有一次我调一个客户的服务器,ping外网不通,但内网全通。我上去一看,路由表里压根没有default行,只有一条/8的静态路由。客户说“昨天还好好的”,我猜是某次配置回滚把默认网关带走了。补上 ip route add default via 192.168.10.1,三秒后通了。就这么简单,但排查时容易绕远路,因为默认网关太基础,基础到没人愿意先看它。

默认网关还有个坑:它不一定是路由器接口IP。有人习惯把网关配成运营商分配的地址,但如果你在同一个二层里有多台设备,网关其实可以是任何一台能转发流量的机器。我甚至见过有人把网关指向一台Windows电脑,那台电脑开了ICS共享,居然也能跑。但这不推荐,因为Windows更新一重启,你的网络就断了。网关要选稳定的、永远在线的设备,最好是企业路由器或三层交换机。

多网卡机器上,默认网关会打架。你装了双网卡,一张连内网,一张连外网,系统会默认只保留一个default。这时候你得靠策略路由告诉系统:去内网的走内网卡,去外网的走外网卡。否则数据包可能从内网卡出去找公网IP,结果被网关直接丢弃。我调过不少这样的环境,最后都靠 ip rule 加 ip route add table 解决。默认网关不是越多越好,它更像独木桥,只能有一根主梁,剩下的都是辅助。

还有个细节容易被忽略:默认网关的ARP行为。网关设备如果做了VRRP(虚拟路由冗余协议),那网关IP是虚拟的,实际由主备两台路由器承担。你ping网关IP能通,但万一主设备挂了,备设备要等几秒才能接管。这期间你的包会丢,但不会一直丢。你要是写了静态ARP绑定网关MAC,那就惨了,备设备接管后MAC变了,你的包全发到空气里。所以默认网关别绑定MAC,让它动态学。

最后说个实操判断。你如果发现网络时通时断,先别急着骂运营商。打开终端,连续ping网关IP一百次,看丢包率。如果网关都丢包,那是二层问题,查网线、查交换机端口。如果网关稳定不丢,但外网丢,那才轮到运营商背锅。默认网关是分界线,它帮你把问题切成两半,一半自己管,一半别人管。用好这条线,你能省下大把甩锅时间。

路由表里那行default,平时不显山不露水,一旦出事,它就是第一个该被审问的对象。别总盯着DNS,别总怀疑防火墙,先看一眼默认网关还在不在,在的话对不对。多半问题就解决了。

分享到: