您尚未登录。

#1 2022-10-10 16:58:13

fejich
会员
注册时间: 2022-10-10
帖子: 6

[已解决]路由器设置了静态路由,ArchLinux 主机上不生效

最后发现是由于 虚拟机环境 运行,所造成的问题
2022.10.10

---

## 环境

OpenWRT 路由器(192.168.168.4)
添加了 10.24.0.0/24 网段的静态路由, 由局域网内 ip 地址为 192.168.168.4 的主机作跳板

```
ip route add 10.24.0.0/24 via 192.168.168.4

```

至此局域网内的设备都可以直接访问 10.24.0.0/24 网段


## 正常通信的设备

```
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.168.1   0.0.0.0         UG    0      0        0 eth0
192.168.168.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

# traceroute 10.24.0.5
traceroute to 10.24.0.5 (10.24.0.5), 30 hops max, 46 byte packets
1  192.168.168.1 (192.168.168.1)  0.327 ms  0.216 ms  0.260 ms
2  192.168.168.4 (192.168.168.4)  0.324 ms  0.357 ms  0.310 ms
3  10.24.0.5 (10.24.0.5)  27.103 ms  29.186 ms  28.411 ms
```



## ArchLinux 主机

```
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.168.1   0.0.0.0         UG    1024   0        0 eth0
192.168.168.0   0.0.0.0         255.255.255.0   U     1024   0        0 eth0
192.168.168.1   0.0.0.0         255.255.255.255 UH    1024   0        0 eth0

# traceroute 10.24.0.5
traceroute to 10.24.0.5 (10.24.0.5), 30 hops max, 60 byte packets
1  360v6.lan (192.168.168.1)  0.351 ms  0.319 ms  0.326 ms
2  * * *
3  * * *
4  * * *
```

---

是什么原因造成这情况?

最近编辑记录 fejich (2022-10-10 21:03:40)


ArchLinux 萌新

离线

#2 2022-10-10 17:09:24

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,964
个人网站

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

你反向 traceroute 看看,是不是 192.168.168.4 直接把回复包发给你了?

另外 route 命令过时了,请使用 ip r 替代。

离线

#3 2022-10-10 17:26:39

fejich
会员
注册时间: 2022-10-10
帖子: 6

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

依云 说:

你反向 traceroute 看看,是不是 192.168.168.4 直接把回复包发给你了?

另外 route 命令过时了,请使用 ip r 替代。


感谢回复,请问 反向 traceroute 具体要怎么操作?


## ArchLinux 主机
```
# ip r
default via 192.168.168.1 dev eth0 proto dhcp src 192.168.168.238 metric 1024
192.168.168.0/24 dev eth0 proto kernel scope link src 192.168.168.238 metric 1024
192.168.168.1 dev eth0 proto dhcp scope link src 192.168.168.238 metric 1024
```


ArchLinux 萌新

离线

#4 2022-10-10 17:32:54

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,964
个人网站

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

就是去 10.24.0.5 上 traceroute 你遇到问题的机器。

另外你可以直接先 sysctl net.ipv4.conf.all.rp_filter=2 试试

离线

#5 2022-10-10 18:25:19

fejich
会员
注册时间: 2022-10-10
帖子: 6

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

依云 说:

就是去 10.24.0.5 上 traceroute 你遇到问题的机器。

另外你可以直接先 sysctl net.ipv4.conf.all.rp_filter=2 试试



ArchLinux 运行完 `sysctl net.ipv4.conf.all.rp_filter=2` 后,情况依旧无法通信


10.24.0.5 主机反向 traceroute 正常连通
```
# ip r
default via 192.168.2.1 dev eth0 onlink
10.24.0.1 dev wg0 scope link
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.222
192.168.168.0/24 dev wg0 scope link

# traceroute 192.168.168.238
traceroute to 192.168.168.238 (192.168.168.238), 30 hops max, 60 byte packets
1  10.24.0.1 (10.24.0.1)  28.650 ms  28.216 ms  28.096 ms
2  192.168.168.238 (192.168.168.238)  27.864 ms  27.604 ms  27.412 ms
```


ArchLinux 萌新

离线

#6 2022-10-10 18:43:33

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,964
个人网站

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

果然不对称。但是设置 rp_filter=2 也不通就奇怪了,要不你试试 0?记得把 all 同级的接口名和 default 下的值也改了。
另外可以考虑各处抓包看看(用 tcpdump)。

离线

#7 2022-10-10 19:41:02

fejich
会员
注册时间: 2022-10-10
帖子: 6

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

依云 说:

果然不对称。但是设置 rp_filter=2 也不通就奇怪了,要不你试试 0?记得把 all 同级的接口名和 default 下的值也改了。
另外可以考虑各处抓包看看(用 tcpdump)。

```
# sysctl -p

vm.swappiness = 100
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
```

问题依旧,放弃了。
我猜可能是跟我用虚拟机镜像有关
官网 VM images,Arch-Linux-x86_64-basic-20221009.92908.qcow2

```
# neofetch

root@archlinux
--------------
OS: Arch Linux x86_64
Host: KVM/QEMU (Standard PC (Q35 + ICH9, 2009) pc-q35-4.2)
Kernel: 5.19.13-arch1-1
Uptime: 3 mins
Packages: 184 (pacman)
Shell: zsh 5.9
Resolution: 1024x768
CPU: Intel i3-6100 (4) @ 3.696GHz
GPU: 00:01.0 Red Hat, Inc. QXL paravirtual graphic card
Memory: 128MiB / 969MiB
```

---

最后用笔记本电脑实机安装了 Arch Linux,默认设置下网络就通


ArchLinux 萌新

离线

#8 2022-10-10 20:41:09

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,964
个人网站

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

原来是虚拟机啊,怎么不早说呢……

离线

#9 2022-10-10 21:01:58

fejich
会员
注册时间: 2022-10-10
帖子: 6

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

依云 说:

原来是虚拟机啊,怎么不早说呢……


抱歉,我的错。
日常我折腾系统都跑在虚拟机里边,还是头一次碰到现在这个情况

再次感谢你的耐心解答


ArchLinux 萌新

离线

#10 2022-10-10 22:19:35

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,964
个人网站

Re: [已解决]路由器设置了静态路由,ArchLinux 主机上不生效

虚拟机要看它的网络是怎么设置和处理的,会多一层要考虑。

离线

页脚