Quantcast
Channel: EdgeRouter topics
Viewing all articles
Browse latest Browse all 20028

Interesting NAT behavior...

$
0
0

I have an ER-Pro 8 that I rebooted last night.  This morning, half of the IP phones in the office fail to register.

 

Everything behaves as before EXCEPT that now some traffic that I expect to be SNAT to outside address traverses the outside address as ROUTED traffic.

 

Assume a VoIP Provider ip address of p.p.p.p

Assume an Public WAN address of x.x.x.x

Assume an Internal Subnet of y.y.y.0/24

 

10:46:29.479324 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 639: y.y.y.70.5060 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.0
10:46:33.509131 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 639: y.y.y.70.5060 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.0
10:46:38.489155 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 640: y.y.y.54.5060 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.0
10:46:49.274006 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 640: y.y.y.64.5060 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.0
10:46:50.127639 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 640: y.y.y.54.5060 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.0
10:46:51.304007 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 640: y.y.y.64.5060 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.010:46:51.379316 44:d9:e7:95:f6:54 > 00:a0:c8:b3:1b:28, ethertype IPv4 (0x0800), length 906: x.x.x.x.1095 > p.p.p.p.5060: SIP: REGISTER sip:p.p.p.p:5060 SIP/2.0

The bold packet is an example of a working phone.  Below, I can confirm that it is going through NAT as expected.

ubnt@hostname:~$show nat translations  | grep 1095
y.y.y.39:5060       x.x.x.x:1095      snat  udp   173

 

It's very interesting to me that only some of the phones are behaving this way.  Some and not all made me think that it might be because my LAN interface is actual a bonded LACP link.  Sure enough, a common factor is that the phones that are NOT working are on the same link.  However, some of the phones that AREworking are on that link as well - I can watch calls take place over both links.

 

show nat translations | grep<internal ip of broken phone>

 yields nothing, but working phones all have the appropriate translation:

 

y.y.y.71:5060       x.x.x.x:1099      snat  udp   172
y.y.y.53                x.x.x.x       snat  tcp   7438
y.y.y.58:5060       x.x.x.x:1034      snat  udp   172
y.y.y.26:5060       x.x.x.x:1087      snat  udp   172
y.y.y.34                x.x.x.x       snat  udp   45
y.y.y.59:5062       x.x.x.x:1083      snat  udp   172

nat rules below make me feel like I should be seeing the entire subnet translating properly..

 

ubnt@hostname:~$show nat rules

Type Codes:  SRC - source, DST - destination, MASQ - masquerade
              X at the front of rule implies rule is excluded

rule   type  intf     translation
----   ----  ----     -----------
1      DST   WAN      daddr ANY to y.y.z.26
    proto-tcp         dport 636 to 636

2      DST   WAN      daddr ANY to y.y.z.27
    proto-udp         dport ANY

3      DST   WAN      daddr ANY to y.y.z.27
    proto-esp         dport ANY

4      DST   WAN      daddr ANY to y.y.z.27
    proto-tcp         dport ANY

5      DST   WAN      daddr ANY to y.y.z.27
    proto-gre         dport ANY

5000   MASQ  bond0    saddr v.v.v.v/24 to i.i.i.i
    proto-all         sport ANY

5020   MASQ  bond0    saddr u.u.u.u/30 to i.i.i.i
    proto-all         sport ANY

5030   MASQ  WAN      saddr y.y.y.y/24 to x.x.x.x
    proto-all         sport ANY

5040   MASQ  WAN      saddr y.y.x.y/24 to x.x.x.x
    proto-all         sport ANY

5050   MASQ  WAN      saddr t.t.t.t/24 to x.x.x.x
    proto-tcp_udp     sport ANY

I'm tempted to flush the connection table and restart the iptables service to see if that makes a difference, but I can't do that in the middle of the day...

 


Viewing all articles
Browse latest Browse all 20028

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>