On 4/12/16 4:09 AM, Darwin Dingel wrote:
Hi All,

Have anyone tried the following setup on a single machine with 2 TCP
sockets on different VRF's and succeeded?

- client_socket on VRF1
- server_socket on VRF2
- ip rules and iproutes for inter-VRF set up
- client_socket sends TCP connect to server_socket. skb was sent using
VRF1 interface
- skb received in loopback interface

That is the key problem there.

- TCP code got SYN but cannot route back to VRF1 to send ACK.

I was wondering if this is a known limitation of VRF as of the moment,
or could work with proper iprules/iproute.

In general local (within a single system) routing does not work with top of tree. e.g., within a VRF you can not connect sockets or ping a VRF local address. Inter-vrf connections within a system also do not work.

I have patches from our 4.1 kernel that I have rebased to top of tree. I hope to test and send those out in the next week or so. It addresses the first problem -- connections within a VRF. While it does not resolve your problem of connecting across VRFs within a system I think it is the foundation for how to fix it.

Reply via email to