15.6. 20231229-记录一次路由不正确导致访问不了目标地址的解决过程
15.6.1. 现象
git pull
ssh: connect to host 192.168.200.250 port 22: No route to host
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
从提示来看,应该没有路由到目标IP。
跟踪一下路由:
$ traceroute 192.168.200.250
traceroute to 192.168.200.250 (192.168.200.250), 30 hops max, 60 byte packets
1 chenjie (192.168.192.1) 3049.793 ms !H 3049.745 ms !H 3049.717 ms !H
可用看到唯一的一条路由是:192.168.192.1。
查看一下当前路由表:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default router.lan 0.0.0.0 UG 100 0 0 enp12s0
10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0
10.196.126.0 0.0.0.0 255.255.255.0 U 0 0 0 lxdbr0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp12s0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-1282a5d5c83c
172.22.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-c3013f10200f
172.25.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-ba14f99a2778
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr3
192.168.88.0 0.0.0.0 255.255.255.0 U 100 0 0 enp12s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.160.0 0.0.0.0 255.255.240.0 U 0 0 0 br-83c0155b0adf
192.168.192.0 0.0.0.0 255.255.240.0 U 0 0 0 br-eba29d1b9b76
192.168.220.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr1
192.168.228.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr5
192.168.229.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr4
192.168.230.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr2
发现这是一个桥接设备。通过Genmask可用看到192.168.192.0的这一条路由的Genmask是:255.255.240.0,刚好覆盖192.168.200.0。
因此使用了这一条错误的路由记录,导致访问不了。
我们看一下桥接设备的信息:
$ brctl show br-eba29d1b9b76
bridge name bridge id STP enabled interfaces
br-1282a5d5c83c 8000.024242ba397f no
br-83c0155b0adf 8000.024257504816 no
br-ba14f99a2778 8000.0242e3cf04a4 no
br-c3013f10200f 8000.02425df19f78 no
br-eba29d1b9b76 8000.02425fbdd99b no
docker0 8000.0242ef50f094 no veth10a6df1
lxcbr0 8000.00163e000000 no
lxdbr0 8000.00163ef43dae no
virbr0 8000.525400674ab1 yes virbr0-nic
virbr1 8000.5254001748ca yes virbr1-nic
virbr2 8000.525400c21a5a yes virbr2-nic
virbr3 8000.525400c3a19a yes virbr3-nic
virbr4 8000.525400f50a47 yes virbr4-nic
virbr5 8000.525400ac6e24 yes virbr5-nic
br-eba29d1b9b76这个桥接设备的interfaces没有内容,说明是一个没有被使用的桥接设备。
我们先停掉该设备,不停掉是删除不掉这一条记录的。
$ sudo ifconfig br-eba29d1b9b76 down
删除该桥接设备
$ sudo brctl delbr br-eba29d1b9b76
删除后,在跟踪一下路由,可用正常访问了。