VRF内接口发起的ICMP Echo请求无法收到回复的问题排查求助
VRF内接口发起的ICMP Echo请求无法收到回复的问题排查求助
大家好,我最近碰到一个Linux网络配置的问题,折腾了好久没解决,想请教下各位大佬。
我的环境是一台Linux服务器,有一块物理网卡连接到另一台设备。这块物理网卡上配置了两个VLAN接口:VLAN100和VLAN200,具体配置如下:
- VLAN100分配了
10.10.10.0/31的IP,并且被加入到了名为TEST的VRF中 - VLAN200分配了
10.10.10.1/31的IP,没有关联任何VRF,属于主路由表
连接的另一台设备相当于一个"物理交叉连接器",会把收到的VLAN100的帧转发到VLAN200,VLAN200的帧转发到VLAN100,完全不检查帧的内容。
现在的问题是:当我从10.10.10.0(指定使用TEST这个VRF的源接口)发起ICMP Echo请求到10.10.10.1时,始终收不到回复!
我抓包观察到,VLAN100确实发出了ARP请求,而且这个请求也到达了VLAN200,但VLAN200就是没有返回ARP回复,导致后续的ICMP包根本发不出去。
下面是我的相关配置输出,供大家参考:
查看VLAN100接口信息:
test:~ $ ip addr show eth0.100 269: eth0.100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9100 qdisc noqueue master TEST state UP group default qlen 1000 link/ether 52:b6:07:e5:00:0c brd ff:ff:ff:ff:ff:ff inet 10.10.10.0/31 scope global eth0.100 valid_lft forever preferred_lft forever
查看VLAN200接口信息:
test:~ $ ip addr show eth0.200 270: eth0.200: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9100 qdisc noqueue state UP group default qlen 1000 link/ether 52:b6:07:e5:00:0c brd ff:ff:ff:ff:ff:ff inet 10.10.10.1/31 scope global eth0.200 valid_lft forever preferred_lft forever
主路由表的相关路由:
test:~ $ ip route show 10.10.10.0/31 10.10.10.0/31 dev eth0.200 proto kernel scope link src 10.10.10.1
VRF TEST对应的路由表(表200)的相关路由:
test:~ $ ip route show 10.10.10.0/31 table 200 10.10.10.0/31 dev eth0.100 proto kernel scope link src 10.10.10.0
查看VRF状态:
test:~ $ ip -br link show type vrf TEST UP 8a:50:09:bc:b5:fa <NOARP,MASTER,UP,LOWER_UP>
我原本的预期是:ARP表中应该存在两条条目,一条在主表对应10.10.10.1,另一条在VRF TEST的ARP表中对应10.10.10.0,而且它们的MAC地址应该是相同的(因为来自同一个物理网卡),但实际情况是这个逻辑根本没生效。
有没有大佬能帮我分析下,我到底哪里配置错了或者忽略了什么细节?
备注:内容来源于stack exchange,提问作者Mohamed Kamal




