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

3726 次点击
所在节点    Linux
22 条回复
lcy630409
2022-03-21 10:08:30 +08:00
.....
搞混淆概念了
192.168.5.0 网关为 0000 ,意思是 这个 192.168.5.0 网段 是不出路由的。你说的正常上网 是客户端 用了 192.168.5.2 这种 ip 可以上网吧?客户端得到了 192.168.5.2 但是他的上级网关是路由啊,路由的上级网关 是根据路由表 0.0.0.0 去了 115.218.232.1 这个网关
XiLingHost
2022-03-21 10:11:32 +08:00
试试添加 152.69.0.0/16 的路由表而非使用通配符
huangya
2022-03-21 10:13:22 +08:00
不要用 route add -host 152.69.*.* dev eth0.3 。  直接 route add -net 152.69.0.0/16 gw 10.1.1.1
defunct9
2022-03-21 10:13:42 +08:00
你得搞策略路由
Getting
2022-03-21 10:24:45 +08:00
@lcy630409 貌似懂了一点了 假设网关是 192.168.5.1 客户端确实是写了网关才出去了 但是到了 br-lan 这条 他的路由网关是 0000 所以走了 115.218.232.1 这个网关出去了呀 我 152.69.*.*不该走 0.0.0.0 从 10.1.1.1 出去吗? hhhh
Getting
2022-03-21 10:25:16 +08:00
@huangya 不是呀 我想试试这个 dev 参数为什么会行不通 加 gw 我知道可以出去
Getting
2022-03-21 10:26:29 +08:00
@defunct9 不会写策略路由呀 我想找到简单的方法 感觉就路由表最简单实现功能了 mwan3 整了很久太复杂了感觉
Getting
2022-03-21 10:27:18 +08:00
@XiLingHost 我没用通配符 我就是写了准确的 ip 地址 只是发出来的时候写了*号 不然暴露 ip 了额
Getting
2022-03-21 10:39:28 +08:00
@lcy630409
第一行:是一个默认路由,这表明如果没有精确匹配路由,就会将 IP 报文发送到 IP 地 址 192.168.43.1 上。UG 表示一个启用的网关地址。br-lan 表示出接口地址。
第二行:是一个接口路由,为局域网接口的路由项,表示局域网为 192.168.43.0 网段。br-lan 表示通过该网卡和局域网网络相连接。
第三行:是一个接口路由,表示目的地址是主机地址。这在接口配置 IP 和掩码时会默认自动设置上。如果不设置掩码则默认 A 类地址为 8 位掩码,B 类地址为 16 位掩码,C 类地址为 24 位掩码。


看了这个 懂了懂了 意思就是指定外网 ip 必须要用网关 不然就只能在路由内部跑了 出不去了 是这个意思了吧?
yanqiyu
2022-03-21 11:56:11 +08:00
route add -host 152.69.*.* dev eth0.3 这一跳就成了 on-link 了。但实际上这一跳要发给网关。
Getting
2022-03-21 12:58:12 +08:00
@yanqiyu 对对 搞明白了现在
guoooo00oohao
2022-03-21 15:13:35 +08:00
在 linux 下面可以使用 ip route get 的命令测试一下 target ip match 到哪个路由, 验证你的配置.
lcy630409
2022-03-21 17:14:16 +08:00
@Getting
多条出口的时候 看跃点数,115 的这个跃点数是 40, 10.1 这个是 41
按小的走
CallMeReznov
2022-03-21 17:17:24 +08:00
route 还支持*?
学到了....
Getting
2022-03-21 17:18:46 +08:00
@guoooo00oohao
root@OpenWrt:~# route add -host 152.69.198.162 dev eth0.3
root@OpenWrt:~# ip route get 152.69.198.162
152.69.198.162 dev eth0.3 src 10.1.1.123 uid 0
cache


root@OpenWrt:~# route add -host 152.69.*.* gw 10.1.1.1
root@OpenWrt:~# ip route get 152.69.*.*
152.69.198.162 via 10.1.1.1 dev eth0.3 src 10.1.1.123 uid 0
cache

就是少了个 via 10.1.1.1
Getting
2022-03-21 17:19:17 +08:00
@CallMeReznov 是我发的时候脱敏了
Getting
2022-03-21 17:20:24 +08:00
@lcy630409 不是的 我指定了接口 不会按跃点走了吧 40 和 41 不在一个接口
lcy630409
2022-03-21 20:59:23 +08:00
@Getting 指定路由不会 默认路由会
xtinput
2022-03-21 21:15:10 +08:00
0.0.0.0 表示走默认网关,数据报文要到下一跳就得路由网关包装,指定了端口,但网关 0.0.0.0 变成默认,那就是网关配置有误了,然后就跳不过去了

多出口都是只配网关,不指定接口的吧
Getting
2022-03-22 08:20:38 +08:00
@xtinput 现在知道多出口是配网关了 那指定接口什么时候用得到呀?

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

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

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

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

© 2021 V2EX