如图所示,当 Linux 内核收到数据包时,它会经过预路由链,然后做出路由决策,决定是否将其转发到其他地方或将其传递到本地进程。
输入接口的IP地址如何影响路由决策?
其他接口的 IP 地址如何影响路由决策?
路由表如何影响路由决策?
是否有任何好的资源来描述内核如何做出此入站路由决策?
我想要实现的目标是将目标地址为 95.123.123.62 的 eno1 数据包转发到 virbr0(libvirtd
虚拟网络交换机)。然而,它们似乎只是被放入输入链中,即使目标 IP 属于 virbr0 接口。这是输出ip address
:
83: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:39:d0:49 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
inet 95.123.123.62/32 scope global virbr0
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 30:9c:23:b8:c2:08 brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
inet 95.123.123.20/26 brd 95.216.225.63 scope global eno1
valid_lft forever preferred_lft forever