As you can see below. The first clear arp hostname I do, it immediately 
re-requests the arp.
It's like a reset. If the request fails or if I issue the clear arp hostname 
command a
second time, the arp entry is deleted. The router will not issue any more arps 
unless I
delete and readd the static host route, or if a arp request comes from the 
client. When an arp entry
expires, it also issues an arp request to refresh it.

While I was working with a demux in this case, I also changed it to talking 
directly
on the unnumbered interface without demux. Same results. Also, client packets 
aren't enough to re-establish
the arp entry. It MUST be an arp request from the client. If arp was already 
cached on the client,
pings would timeout. Once the router's arp entry was deleted on the client, the 
client sends an arp
request and the router automatically cached the client when it does an arp 
response.

Overall, it does work. You can clear the entry once if need be. Just don't do 
it twice. Odds are, if
the client isn't online when the arp cache times out and refreshes, the client 
will probably issue an arp
request itself upon coming back online (though no guarantees).

I haven't tried older codes. Currently running this through support, as it 
looks like a hack done to
the code (based on the refresh on the first clear) rather than proper arp 
handling. It's problematic for
layouts that have manually configured statics spread across unnumbered vlans. 
Untested yet, but it could also have issues
with dhcp clients that you can't insert the dhcp mac into the table due to the 
clients doing proxy-arp for
data traffic, but not for dhcp (ie, you have to arp to get the proxy-arp 
address). Since the dhcp server
still puts a host route in the table, I suspect the rules apply the same as 
above, just with dynamic routes.

jbates@lab-mx80# show route 192.168.83.6/32
qualified-next-hop demux0.84;


jbates@lab-mx80# activate route 192.168.83.6/32

[edit routing-options static]
jbates@lab-mx80# commit
commit complete

<wireshark on client>
11204   20694.267999    JuniperN_0b:fb:c0       Broadcast       ARP     60      
Who has 192.168.83.6?  Tell
192.168.83.1
11205   20694.268025    Dell_8a:94:5a   JuniperN_0b:fb:c0       ARP     42      
192.168.83.6 is at
d4:be:d9:8a:94:5a

jbates@lab-mx80# run clear arp hostname 192.168.83.6

<wireshark on client>
11301   20883.937639    JuniperN_0b:fb:c0       Broadcast       ARP     60      
Who has 192.168.83.6?  Tell
192.168.83.1
11302   20883.937659    Dell_8a:94:5a   JuniperN_0b:fb:c0       ARP     42      
192.168.83.6 is at
d4:be:d9:8a:94:5a

[edit routing-options static]
jbates@lab-mx80# run clear arp hostname 192.168.83.6
192.168.83.6     deleted

<nothing on wireshark capture>

[edit routing-options static]
jbates@lab-mx80# run ping 192.168.83.6
PING 192.168.83.6 (192.168.83.6): 56 data bytes
^C
--- 192.168.83.6 ping statistics ---
8 packets transmitted, 0 packets received, 100% packet loss

[edit routing-options static]
jbates@lab-mx80# run show arp no-resolve | match 192.168.83.6

[edit routing-options static]

[edit routing-options static]
jbates@lab-mx80# deactivate route 192.168.83.6/32

[edit routing-options static]
jbates@lab-mx80# commit
commit complete

[edit routing-options static]
jbates@lab-mx80# activate route 192.168.83.6/32

[edit routing-options static]
jbates@lab-mx80# commit
commit complete

<wireshark on client>
11402   21067.146859    JuniperN_0b:fb:c0       Broadcast       ARP     60      
Who has 192.168.83.6?  Tell
192.168.83.1
11403   21067.146880    Dell_8a:94:5a   JuniperN_0b:fb:c0       ARP     42      
192.168.83.6 is at
d4:be:d9:8a:94:5a

[edit routing-options static]
jbates@lab-mx80# run show arp no-resolve | match 192.168.83.6
d4:be:d9:8a:94:5a 192.168.83.6    demux0.84            none



_______________________________________________
juniper-nsp mailing list juniper-nsp@puck.nether.net
https://puck.nether.net/mailman/listinfo/juniper-nsp

Reply via email to