I have 2 VLANs over a bonded connection I can't get to work with policy-based-routing. Actually I can make them work manually, but I'm unable to persist the configuration in order to survive reboots. I've read a dozen of articles, tutorials, how-tos and official docs. I'm listing just the relevant entries from the connection list here:
# nmcli con NAME UUID TYPE DEVICE bond0 slave 1 ...-91ef-... ethernet eno1 bond0 slave 2 ...-242e-... ethernet eno2 Bond connection bond0 ...-0fbe-... bond bond0 VLAN connection bond0.3410 ...-3ebd-... vlan bond0.3410 VLAN connection bond0.3411 ...-91a9-... vlan bond0.3411
The new tables have been added to the
# cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec 1 3410 2 3411
Then I've created custom rules for both VLAN interfaces:
# cat /etc/sysconfig/network-scripts/rule-bond0.3410 iif bond0.3410 table 3410 from 10.129.240.0/23 table 3410 # cat /etc/sysconfig/network-scripts/rule-bond0.3411 iif bond0.3411 table 3411 from 10.129.242.0/24 table 3411
And defined the wished routing rules.
# cat /etc/sysconfig/network-scripts/route-bond0.3410 10.129.240.0/23 dev bond0.3410 scope link table 3410 default via 10.129.241.254 dev bond0.3410 table 3410 # cat /etc/sysconfig/network-scripts/route-bond0.3411 10.129.242.0/24 dev bond0.3411 scope link table 3411 default via 10.129.242.254 dev bond0.3411 table 3411
What bothers me is that none of the rules and routes get picked up. I've tried restarting the networking service
systemctl restart network, rebooting the node, bringing up the connections via
nmcli con up <con_name>.
All these modifications brought no change:
# ip route list 10.129.240.0/23 dev bond0.3410 proto kernel scope link src 10.129.240.1 metric 400 10.129.242.0/24 dev bond0.3411 proto kernel scope link src 10.129.242.1 metric 401 # ip rule list 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
The only thing I'm sure of is that the custom routing tables
3411 exist (as no error is thrown when listing routes by the table, e.g.
ip route list table 3411).
I should also say that when I'm running the entries manually (e.g.
ip route add default <ip> dev <dev> table <table>) then the entries take effect.