previously mentioned attchements From: Gowen Sent: 11 September 2019 12:19 To: David Ahern ; Alexis Bauvin Cc: netdev@vger.kernel.org Subject: Re: VRF Issue Since kernel 5   Hi there, Your perf command:   isc-worker0000 20261 [000]  2215.013849: fib:fib_table_lookup: table 10 oif 0 iif 0 proto 0 0.0.0.0/0 -> 127.0.0.1/0 tos 0 scope 0 flags 0 ==> dev eth0 gw 10.24.12.1 src 10.24.12.10 err 0   isc-worker0000 20261 [000]  2215.013915: fib:fib_table_lookup: table 10 oif 4 iif 1 proto 17 0.0.0.0/52138 -> 127.0.0.53/53 tos 0 scope 0 flags 4 ==> dev eth0 gw 10.24.12.1 src 10.24.12.10 err 0   isc-worker0000 20261 [000]  2220.014006: fib:fib_table_lookup: table 10 oif 4 iif 1 proto 17 0.0.0.0/52138 -> 127.0.0.53/53 tos 0 scope 0 flags 4 ==> dev eth0 gw 10.24.12.1 src 10.24.12.10 err 0 Also I set all iptables to policy ACCEPT and flushed the rules, enabled forwarding, checked the sysctl settings are all '1'. I've looked at tracing DNS through the iptables and I see that DNS uses a loopback interface as source and destination - this would be odd on a Cisco box but having looked around this appears to be normal? I also gathered an strace of updating the package cache as well as a perf of the same command - will send if interested (is more verbose and not sure if the spam filter will block it) Gareth From: Gowen Sent: 11 September 2019 06:09 To: David Ahern ; Alexis Bauvin Cc: netdev@vger.kernel.org Subject: RE: VRF Issue Since kernel 5   Thanks for the link - that's really useful. I did re-order ip rules Friday (I think) - no change -----Original Message----- From: David Ahern Sent: 10 September 2019 17:36 To: Alexis Bauvin ; Gowen Cc: netdev@vger.kernel.org Subject: Re: VRF Issue Since kernel 5 On 9/9/19 1:01 PM, Alexis Bauvin wrote: > Could you try swapping the local and l3mdev rules? > > `ip rule del pref 0; ip rule add from all lookup local pref 1001` yes, the rules should be re-ordered so that local rule is after l3mdev rule (VRF is implemented as policy routing). In general, I would reverse the order of those commands to ensure no breakage. Also, 5.0 I think it was (too many kernel versions) added a new l3mdev sysctl (raw_l3mdev_accept). Check all 3 of them and nmake sure they are set properly for your use case. These slides do not cover 5.0 changes but are still the best collection of notes on VRF: http://schd.ws/hosted_files/ossna2017/fe/vrf-tutorial-oss.pdf