tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Static interface routes for IP address on different subnet doesn't send an ARP who-has



I tried the route cloning suggestion to see if it would work for the /32, on NetBSD 6.1:

# ifconfig vioif0 inet 198.50.219.49 netmask 255.255.255.255 broadcast 198.50.219.49
# route add -host 198.50.219.62 -link -cloning -iface vioif0
add host 198.50.219.62: gateway vioif0
# ping 198.50.219.62
PING 198.50.219.62 (198.50.219.62): 48 data bytes
arplookup: unable to enter address for 198.50.219.62@ff on null (could not allocate llinfo)
arpresolve: can't allocate llinfo on vioif0 for 198.50.219.62
^C
----198.50.219.62 PING Statistics----
1 packets transmitted, 0 packets received, 100.0% packet loss

As for FreeBSD 9.1, here is the output of "route -n monitor" when I add the static interface route for the gateway:

# route -n monitor
got message of size 224 on Thu Aug 22 16:55:41 2013
RTM_ADD: Add Route: len 224, pid: 706, seq 1, errno 0, flags:<UP,HOST,DONE,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY>
 198.50.219.62 em0:52.54.0.40.aa.16

And an output of "netstat -rn" from the host (please excuse any formatting issues, I am running this under qemu as VNC since I don't have SSH access to the host when I'm doing this):

# netstat -rn
Routing tables

Internet:

Destination       Gateway            Flags    Refs Use    Netif    Expire
127.0.0.1         link#3             UH       0 4      lo0
198.50.219.49     link#2             UHS      0 0      lo0 =>
198.50.219.49/32  link#2             U        0 0      em0
198.50.219.62     52:54:00:40:aa:16  UHS      0 4      em0

.. (Output omitted as it's IPv6)

I can also change the MAC address of the Gateway, and FreeBSD updates it after the ARP timeout period.

-Peter

On 2013-08-22 9:39 AM, Greg Troxel wrote:
You should look at the actual routes in the kernel on FreeBSD, with
route -n monitor, and understand all the flags and sockaddrs.  Please
also send the result of 'netstat -nr' on FreeBSD.

As David suggests, you may need a /32 cloning route.

Sorry, but you are basically doing something that does not conform to
Internet standards, and that will probably require some code reading.  I
think we'd be inclined to take a change that enables doing this
(assuming it doesn't break other things), and it's quite possible that
kernel code changes will be required.

I would also suggest looking through the history of FreeBSD to see if
they made an explicit change to support this multiple-/32-on-a-wire
case.



Attachment: smime.p7s
Description: S/MIME Cryptographic Signature



Home | Main Index | Thread Index | Old Index