Hi,
I'm looking at doing some MPLS/VPLS stuff with OpenBSD, in particular
using 'mpw' pseudowires. I've created a test network comprising two
"PE" and two "P" hosts, to transport Ethernet traffic between service
ports on the PE hosts across the MPLS network, based on an example I
found online. I'm using a 6.3 snapshot from March 11th.
[firewall] = [em0][mpw0][PE1][em1] - [em0][P1][em1] - [em1][P2][em0]
- [em1][PE2][mpw0][em0] = [host]
PE1 em0 and mpw0 are in a bridge, PE1 em1 is MPLS, P1 em0/1 are MPLS etc.
This is all working great, except for short outages which turn out to
coincide with the ARP cache expiry time for the P router's IP address on
the PE host.
When the ARP entry times out (or is manually deleted), the PE host
doesn't ARP for the P router IP, but instead sends ARP who-has queries
for other, definitely non-local things, such as the IP address for the
other PE host's router-id. After a minute or so it finally ARPs for the
P router IP and things work again.
This only happens when "ldpd" is running (and I think only when the
pseudowires are actually up). If I stop "ldpd" on the PE host, ARP
works fine as expected every time.
I guess I could fix this with static ARP entries, but that doesn't seem
like quite the right thing. My test setup is running in Virtualbox
VMs. I also replicated the issue under VMWare ESX using 'vic' interfaces.
Does anyone have any clues on this?
Thanks in advance,
Adrian Close