Route 路由表问题

2022-03-21 09:58:33 +08:00
 Getting
因为双 WAN 接入 移动 eth0.3 电信 pppoe-wan
想让 152.69.*.*走移动( eth0.3 )
使用路由表:route add -host 152.69.*.* dev eth0.3
ping 不通 152.69.*.*





然后写了网关就能 ping 通了 这是为什么? 不是网关带*会自动选该接口默认的网关吗?没搞懂,
如果要指定网关的话 为什么路由表里内网网段 192.168.5.0 也是 0.0.0.0 (*) 都可以正常上网呢?

route add -host 152.69.*.* gw 10.1.1.1

3729 次点击
所在节点    Linux
22 条回复
qbqbqbqb
2022-03-28 16:15:37 +08:00
@Getting

二层网络是以太网的话,路由表项是需要同时包含“出接口”和“下一跳”(俗称“网关”)两个字段的。
1 ) 出接口是不能不指定的,如果不填写的话系统会帮你自动推断,实际上还是相当于有指定接口;
2 ) 下一跳不指定,代表二层直连,目标机器必须在同一个广播域(通俗地说就是通过交换机连接,或者“同网段”)内才能连接;跨网段,需要经过三层路由的,必须配置下一跳,否则肯定连不通的;
3 ) 配置 IP 的时候填写的“子网掩码”和“默认网关”实际上就相当于一种简化的路由表配置,子网掩码自动生成相应前缀的二层直连路由;默认网关会生成一条 0 前缀的路由;和手动添加的路由属于平行关系,遵循相同的优先规则(最长匹配前缀优先,如果有前缀相同的则是 metric 值低的优先);所以不存在所谓“不写就走默认网关”的说法。

如果是 PPP 之类的点对点网络,路由表里就只需要指定“出接口”一个字段,“下一跳”对于这类网络是没有意义的,比如说有时候你在电脑上 PPPoE 拨号也会显示一个“默认网关”但其实这个地址并没有什么实际意义。也只有在这类网络环境里才能不填或乱填“网关”。
Getting
2022-03-28 17:53:59 +08:00
@qbqbqbqb 谢谢老哥 很专业回答!!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/841765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX