Subtle annoyance #67 - "OK, we had a power failure. Where is my static out2in 
nat44 mapping?" - explained.

I use vpp as a home gateway, in conjunction with a cable modem.

The following debug CLI command works perfectly, except in a full power-cycle 
router and cable modem scenario: "nat44 add static mapping local 192.168.1.2 
xxxx external GigabitEthernet3/0/0 xxxx tcp"

It turns out that the vpp home gateway boots pretty quickly, relative to the 
length of time it takes the cable modem to receive its routeable IP address. As 
a courtesy / so one can talk directly to the cable modem at 192.168.100.1, the 
cable modem DHCP server (temporarily) gives issues vpp the DHCP address 
192.168.100.xx.

Unfortunately, this consumes the pending resolution queue entry for the static 
mapping, which is subsequently lost in the sands of time:

Mar 25 11:40:39 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2713: 
add: sw_if_index 6, address 192.168.1.1
Mar 25 11:40:39 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2735: 
bail
Mar 25 11:40:44 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2713: 
add: sw_if_index 1, address 192.168.100.10
Mar 25 11:40:44 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2719: 
match auto add address
Mar 25 11:40:44 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2750: 
added address
Mar 25 11:40:44 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2755: 
walk resolution vector, 1 items
Mar 25 11:40:44 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2762: 
found sw_if_index 1
Mar 25 11:40:44 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2771: 
add static map local 192.168.1.2, remote 192.168.100.10
Mar 25 11:41:05 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2713: 
delete: sw_if_index 1, address 192.168.100.10
<ouch, this kills the static mapping>
Mar 25 11:41:05 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2719: 
match auto add address
Mar 25 11:41:06 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2713: 
add: sw_if_index 1, address <real-ip-address>
Mar 25 11:41:06 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2719: 
match auto add address
Mar 25 11:41:06 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2750: 
added address
Mar 25 11:41:06 vppg2 vnet[1169]: snat_ip4_add_del_interface_address_cb:2755: 
walk resolution vector, 0 items
<and the resolution event is long gone>

Although it's completely straightforward to work around this situation in my 
setup - add an address filter to the static map resolver - I'm not 100% sure 
how fix it in general.

Thoughts?

Thanks... Dave

  • [vpp-dev] Power-c... Dave Barach

Reply via email to