This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DNAT Entries work for a short period, only a reboot enables them again

Folks,

I have specific NAT entries for my home-use UTM9 software box running current firmware to allow Xbox LIVE traffic inbound through DNAT (for partying, matchmaking, etc).  I'm not sure if this happens to anyone else, but it seems that the DNAT rules get dropped from iptables prerouting after an unspecified period of time.  Only rebooting the firewall has re-instated them.  Disabling and re-enabling the rules in WebAdmin has no effect.  NAT Type on XBL stays Moderate until UTM9 is rebooted and only then does it report again as being Open.  In anywhere from a few hours to a few days time... without having changed any part of the firewall configuration it will flip back to Moderate.

Just to make sure we're all grasping what's going on, XBL requires four port and protocol combinations inbound to work reliably for Multiplayer.  Note: connecting to XBL never fails as this only requires ports to be open outbound.  So I have four individual DNAT rules to include two UDP and two TCP entries.  All rules have the box checked to implement a firewall rule automatically.

UDP 88 to External -> UDP 88 to Xbox
TCP 88 to External -> TCP 88 to Xbox
UDP 3074 to External -> UDP 3074 to Xbox
TCP 3074 to External -> TCP 3074 to Xbox

Has anyone else seen this behavior, either associated with XBL or otherwise under UTM 9?  I'm beginning to wonder if the feature for automatically adding a firewall rule for each NAT rule somehow gets pushed out of the firewall config after a certain amount of time.  To date I haven't tried creating the firewall rules manually.  Think I should and see how it goes?

Thanks for your time,

Chris


This thread was automatically locked due to age.
Parents
  • I was going to tell you to use -L, but I tried it and noticed the DNAT forwards weren't really listed, so I ran it with --help and found the other option.

    Barry
  • Barry,

    Below is the iptables output for 88 and 3074 grepped.

    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p udp -m udp --sport 1:65535 --dport 88 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p tcp -m tcp --sport 1:65535 --dport 88 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p tcp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m tcp --sport 1:65535 --dport 88 -m policy --dir in --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p udp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m udp --sport 1:65535 --dport 88 -m policy --dir in --pol none -j CONFIRMED

    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p udp -m udp --sport 1:65535 --dport 3074 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p tcp -m tcp --sport 1:65535 --dport 3074 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p tcp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m tcp --sport 1:65535 --dport 3074 -m policy --dir in --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p udp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m udp --sport 1:65535 --dport 3074 -m policy --dir in --pol none -j CONFIRMED

    From what I can discern, the AUTO_FORWARD chain is used to tell IPtables to allow the inbound traffic first (ACL check) and then translate the traffic to the new destination second.    The USR_FORWARD chain entries are the rules to allow the Xbox to PAT while egressing the external interface to logon to Xbox LIVE and should have little to no effect on the DNAT statements.

    For reference, below is the rule for AirVideo inbound, which works flawlessly.  As AirVideo is a server first and a client never, there aren't any outbound rules for this port in the USR_FORWARD chain.

    -A AUTO_FORWARD -d X.X.X.251/32 -i eth0 -o eth1 -p tcp -m tcp --sport 1024:65535 --dport 45631 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED

    .251 - Internal Media Server
    .252 - Public IP via Cable Modem
    .254 - Internal Xbox IP
Reply
  • Barry,

    Below is the iptables output for 88 and 3074 grepped.

    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p udp -m udp --sport 1:65535 --dport 88 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p tcp -m tcp --sport 1:65535 --dport 88 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p tcp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m tcp --sport 1:65535 --dport 88 -m policy --dir in --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p udp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m udp --sport 1:65535 --dport 88 -m policy --dir in --pol none -j CONFIRMED

    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p udp -m udp --sport 1:65535 --dport 3074 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A AUTO_FORWARD -d X.X.X.254/32 -i eth0 -o eth1 -p tcp -m tcp --sport 1:65535 --dport 3074 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p tcp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m tcp --sport 1:65535 --dport 3074 -m policy --dir in --pol none -j CONFIRMED
    -A USR_FORWARD -i eth1 -p udp -m set --match-set Kug3d/97UVjedF/Vxa5MFw src -m udp --sport 1:65535 --dport 3074 -m policy --dir in --pol none -j CONFIRMED

    From what I can discern, the AUTO_FORWARD chain is used to tell IPtables to allow the inbound traffic first (ACL check) and then translate the traffic to the new destination second.    The USR_FORWARD chain entries are the rules to allow the Xbox to PAT while egressing the external interface to logon to Xbox LIVE and should have little to no effect on the DNAT statements.

    For reference, below is the rule for AirVideo inbound, which works flawlessly.  As AirVideo is a server first and a client never, there aren't any outbound rules for this port in the USR_FORWARD chain.

    -A AUTO_FORWARD -d X.X.X.251/32 -i eth0 -o eth1 -p tcp -m tcp --sport 1024:65535 --dport 45631 -m conntrack --ctorigdst X.X.X.252 -m policy --dir out --pol none -j CONFIRMED

    .251 - Internal Media Server
    .252 - Public IP via Cable Modem
    .254 - Internal Xbox IP
Children
No Data