ip route
从 切换到时,我无法通过“正确”接口发送响应数据包netplan
。
设置:
服务器 - 两个接口
eth1
,vlan 101, 10.0.1.2/24,默认路由,10.0.1.1 gateway
eth2
,vlan 102, 10.0.2.2/24
客户端
eth0
VLAN 102、10.0.2.3/24、默认路由、10.0.2.1 网关
中间有一个路由器(pfsense),允许vlan之间的流量。
重现步骤
当使用从客户端连接到服务器时,10.0.2.2
一切都按预期工作。
当从客户端连接到服务器时,10.0.1.2
连接保持打开状态 30 秒,然后通信停止。我相信来自服务器的返回数据包是使用eth2
接口发送的,因为该路由是“更好”的匹配。
我发现这篇 suse 文章https://www.suse.com/support/kb/doc/?id=000016626只要我这样做,它就适用于我的情况ip route
。例如:
ip route add 10.0.1.0/16 dev eth1 src 10.0.1.2 table T101
ip route add default via 10.0.1.1 dev eth1 src 10.0.1.2 table T101
ip rule add from 10.0.1.2 table T101 prio 1
ip route add 10.0.2.0/16 dev eth2 src 10.0.2.2 table T102
ip route add default via 10.0.2.1 dev eth2 src 10.0.2.2 table T102
ip rule add from 10.0.2.2 table T102 prio 1
问题
但我无法使用 netplan 得到类似的结果。
我的网络计划尝试:
network:
ethernets:
eth0:
dhcp4: false
optional: true
vlans:
vlan101:
id: 101
link: eth0
addresses: [10.0.1.2/24]
routing-policy:
- from: 10.0.1.2
table: 101
priority: 1
routes:
- to: default
via: 10.0.1.1
scope: link
from: 10.0.1.2
table: 101
- to: default
via: 10.0.1.1
vlan102:
id: 102
link: eth0
addresses: [10.0.2.2/24]
macaddress: dc:a6:32:c7:09:15
routing-policy:
- from: 10.0.2.2
table: 102
priority: 1
routes:
- to: default
via: 10.0.2.1
scope: link
from: 10.0.2.2
table: 102
version: 2