1英寸鲁赫普

1英寸鲁赫普

我需要一些帮助来解决策略路由问题。

我有一台带有多个 VLAN 的 Linux 主机。我正在尝试为每个 VLAN 创建一个唯一的路由表,并且可以在 VLAN20 上的主机和路由器之间进行双向 ping 操作,但是,在上游路由器上,我看到的是针对远程 IP 的 ARP 请求,而不是针对网关的 ARP 请求,或者从 Linux 主机发送到网关的流量。

Linux主机VLAN20:192.168.20.50

路由器接口VLAN20:192.168.20.1

创建表“vlan20

$ cat /etc/iproute2/rt_tables

# # 保留值

#255 本地

第254章

253 默认

220 VLAN20

0 未指定#

#当地的

1英寸鲁赫普

创建规则以使用表 vlan20 发送源自 VLAN20 接口的所有流量

$ ip rule show

0:从所有本地查找

32765:从所有 iif eth0.20 查找 vlan20

32766:从所有查找主要

32767:从所有查找默认值

将所有流量路由到路由器 vlan20 接口e

$ ip route list table vlan20

默认通过 192.168.20.1 dev eth0.20

从Linux主机测试

ping 8.8.8.8 -I eth0.20

从 192.168.20.50 eth0.20 PING 8.8.8.8 (8.8.8.8):56(84) 字节数据。来自 192.168.20.50 icmp_seq=1 目标主机无法访问

来自路由器 VLAN20 接口

9.568940 arp 谁有 8.8.8.8 告诉 192.168.20.50

10.565495 arp who-has 8.8.8.8 告诉 192.168.20.50

感谢你的协助!

答案1

我想这里存在与默认主机路由的冲突。假设您的 Linux 主机接口是 eth0 并且主机网络是10.77.0.0/24,请运行以下命令:
$ sudo ip route add 10.77.0.0/24 via 192.168.20.1 dev eth0.20 table vlan20 $ sudo ip rule add to 192.168.20.0/24 lookup vlan20 prio 10000

以避免您看到的循环。我仍然无法发表评论,并且由于我之前的答案已被删除(这实际上是一个问题而不是答案),我还想说应该提供ip -4 addr show和的输出,以便我们也可以看到网络掩码和路由详细信息。ip route show

相关内容