Hi Dmitry, Please try this with 17.01 as the behaviour has changed for cross VRF scenarios like this. Also a diagram, even if it’s just a photo of a white board, will help significantly.
Thanks, neale From: Dmitry Bufistov <dmi...@midokura.com> Date: Wednesday, 11 January 2017 at 15:10 To: "Neale Ranns (nranns)" <nra...@cisco.com> Cc: vpp-dev <vpp-dev@lists.fd.io> Subject: Re: [vpp-dev] Get IPv6 neighbors MACs Hi Neale, Your understanding is correct. However I don't see any collision here. There is following route in VRF1: vpp# ip route table 1 add bbbb::/64 via 2001::2 Q when packet hits this rule it will be sent via device Q, right? The problem is that first the MAC address of 2001::2 should be obtained and VPP sends neighbour discovery request. When the response arrives VPP assumes it is for device P, since it has the same MAC address. If I add MAC address of the next hop for device Q: vpp# set ip6 neighbor Q 2001::2 76:5c:87:1a:09:eb egress packets are correctly sent via interface Q. Remember, that interface Q cannot receive any ingress packet from external world. So my problem is to obtain the MAC address for set ip6 neighbour command. Thank you very much for your help! Dmitry On Tue, Jan 10, 2017 at 5:56 PM, Neale Ranns (nranns) <nra...@cisco.com<mailto:nra...@cisco.com>> wrote: Hi Dmitry, IIUC you have two devices with identical IPv6 addresses, which we’ll call P and Q, connected on two different interfaces. These interfaces are in different VRFs so the addresses do not collide. Now if we succeed in importing the discovered neighbours from VRF 0 to VRF 1, these addresses will now collide. Put another way, if a packet arrives in VRF 1 destined to 2001::2 which device, P or Q, do you want to send it to? Regards, neale From: <vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io>> on behalf of Dmitry Bufistov <dmi...@midokura.com<mailto:dmi...@midokura.com>> Date: Tuesday, 10 January 2017 at 15:39 To: vpp-dev <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>> Subject: [vpp-dev] Get IPv6 neighbors MACs Hi list, I ended up with a weired VPP configuration: there are two host interfaces in VPP: A and B. They both have identical MAC and IP addresses. The IP address of B is on VRF 1. Only interface A can get traffic from "real world", and it have one valid entry in its neighbour table: DBGvpp# sh ip6 neighbors Time Address Flags Link layer Interface 40.7989 2001::2 G 00:00:00:00:00:00 B 106.3092 2001::2 76:5c:87:1a:09:eb A Now, from external application I would like to figure out the MACs of neighbours of interface A and add corresponding neighbours for interface B. Basically: copy neighbours table of A to the neighbours table of B. It should be preferably done via java binding VPP API (JVPP). VPP is good ad discovering neighbours so I believe there should be simple solution for my problem. There is JVPP ipNeighborAddDel() call that adds neighbour for given interface, but there is nothing I can find to query neighbours. Could please somebody point out if there is a simple way to achieve what I want? Thank you a lot in advance for any help, Dmitry
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev