net/mpd5: proxy arp don't work on FreeBSD 8
Bernd Walter
ticso at cicely7.cicely.de
Tue Mar 2 13:43:50 UTC 2010
On Tue, Mar 02, 2010 at 07:08:37AM +0000, Anton Yuzhaninov wrote:
> On Mon, 1 Mar 2010 23:33:27 +0100, Bernd Walter wrote:
> BW> On Mon, Mar 01, 2010 at 03:33:41PM +0000, Anton Yuzhaninov wrote:
> >> mdp can't add proxy arp record. From mpd logs:
> >>
> >> Mar 1 15:10:34 x0001 mpd: [B-1] IFACE: Add address 10.25.1.240/32->10.25.1.241 to ng0
> >> Mar 1 15:10:34 x0001 mpd: [B-1] exec: /usr/sbin/arp -S 10.25.1.241 0:15:17:35:1c:22 pub
> >> Mar 1 15:10:34 x0001 mpd: [B-1] system: command "/usr/sbin/arp" returned 256
> >>
> >> Same command from shell:
> >>
> >> # arp -S 10.25.1.241 0:15:17:35:1c:22 pub
> >> delete: cannot locate 10.25.1.241
> >> cannot intuit interface index and type for 10.25.1.241
> BW>
> BW> It looks like you don't have a network configured for 10.25.1.241, so
> BW> arp(8) can't find the interface to configure the ARP entry to.
> BW> You either need to supply -i in case the host shouldn't get a local
> BW> IP in the given network or configure the interface to be a real part
> BW> of it.
>
> Network for this ip is configured. Before ng0 created:
>
> # route -n get 10.25.1.241
> route to: 10.25.1.241
> destination: 10.25.1.0
> mask: 255.255.255.0
> interface: vlan408
> flags: <UP,DONE>
>
> When ng0 is created route get point to ng0.
Ok - looks like you've done everything right.
I remember that it was broken when new ARP code went in, but thought it
was fixed already before FreeBSD-8 came out.
I get an ugly error message on current, but at least it setups the address:
[98]chipmunk.cicely.de# arp -an
? (10.1.1.9) at 00:1c:c0:94:2c:d7 on vlan0 expires in 1016 seconds [vlan]
? (10.1.1.38) at 00:0e:42:02:00:42 on vlan0 permanent [vlan]
? (10.1.1.4) at 00:0e:42:02:00:21 on vlan0 expires in 1076 seconds [vlan]
? (10.1.1.16) at 00:1c:c0:30:16:a1 on vlan0 expires in 1195 seconds [vlan]
[99]chipmunk.cicely.de# arp -S 10.1.1.179 0:e:42:2:0:42 pub
arp: writing to routing socket: Invalid argument
[100]chipmunk.cicely.de# arp -an
? (10.1.1.9) at 00:1c:c0:94:2c:d7 on vlan0 expires in 1194 seconds [vlan]
? (10.1.1.38) at 00:0e:42:02:00:42 on vlan0 permanent [vlan]
? (10.1.1.4) at 00:0e:42:02:00:21 on vlan0 expires in 1037 seconds [vlan]
? (10.1.1.179) at 00:0e:42:02:00:42 on vlan0 permanent published [vlan]
? (10.1.1.16) at 00:1c:c0:30:16:a1 on vlan0 expires in 1186 seconds [vlan]
[101]chipmunk.cicely.de# arp -d 10.1.1.179
10.1.1.179 (10.1.1.179) deleted
[102]chipmunk.cicely.de# arp -an
? (10.1.1.9) at 00:1c:c0:94:2c:d7 on vlan0 expires in 1186 seconds [vlan]
? (10.1.1.38) at 00:0e:42:02:00:42 on vlan0 permanent [vlan]
? (10.1.1.4) at 00:0e:42:02:00:21 on vlan0 expires in 1029 seconds [vlan]
? (10.1.1.16) at 00:1c:c0:30:16:a1 on vlan0 expires in 1199 seconds [vlan]
But with a route added for this IP arp fails completely:
[104]chipmunk.cicely.de# ifconfig vlan3 10.1.89.1/24
[105]chipmunk.cicely.de# route add 10.1.1.179/32 10.1.89.92
add net 10.1.1.179: gateway 10.1.1.92
[106]chipmunk.cicely.de# arp -S 10.1.1.179 0:e:42:2:0:42 pub
delete: cannot locate 10.1.1.179
set: proxy entry exists for non 802 device
Exit 1
[107]chipmunk.cicely.de# arp -an
? (10.1.89.1) at 00:0e:42:02:00:42 on vlan3 permanent [vlan]
? (10.1.1.9) at 00:1c:c0:94:2c:d7 on vlan0 expires in 1199 seconds [vlan]
? (10.1.1.38) at 00:0e:42:02:00:42 on vlan0 permanent [vlan]
? (10.1.1.4) at 00:0e:42:02:00:21 on vlan0 expires in 1080 seconds [vlan]
? (10.1.1.16) at 00:1c:c0:30:16:a1 on vlan0 expires in 1184 seconds [vlan]
[108]chipmunk.cicely.de# arp -i vlan0 -S 10.1.1.179 0:e:42:2:0:42 pub
arp: -i not applicable to this operation
Exit 1
[109]chipmunk.cicely.de# uname -a
FreeBSD chipmunk.cicely.de 9.0-CURRENT FreeBSD 9.0-CURRENT #23 r204418:204463M: Sun Feb 28 18:45:04 CET 2010 ticso at cicely14.cicely.de:/data/builder/arm-current/head/sys/arm/compile/FBOX arm
So yes - it looks like it is still broken for proxy-ARP.
I don't heve enough clue about ARP code in FreeBSD to fix it.
You should file a PR so it can get picked up by the guys who designed
the new code.
--
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
More information about the freebsd-net
mailing list