Da ich nach langem “verstauben” mal wieder meine Animal Crossing Karte für die Nintendo Switch ausgegraben habe und jetzt total angefixt bin, wollte ich auch mal die Inseln meiner Freunde besuchen. Am Flughafen angekommen dann die Enttäuschung – die Zielinsel wird zwar gefunden, aber da hinfliegen schlug immer Fehl. Grund dafür waren keine Corona-Einreisesperren, sondern NAT-Rules.

Ich verwende bei mir zuhause eine Netgate 6100, welche mit der Firewall-Lösung pfSense betrieben wird. Sozusagen ein normaler Router, halt einfach mit viel mehr Features, als es ein Normalverbraucher braucht.

Da ich 2 unabhängige Uplinks verwende, habe ich meinen Outbound NAT-Modus auf Manuell, damit ich genau steuern kann, welche VLAN-Netze welchen Uplink verwenden.

Nun zum Problem. In diesem Setup ist der Outbound-NAT Level ziemlich restriktiv und viele Spiele kommen damit nicht klar. Ein Verbindungstest in den Switch-Einstellungen zeigt ein klares Bild – NAT Typ D.

Um dies zu lösen schlägt Nintendo offiziell vor (!), sämtliche Ports an die Switch mittels Portforwarding weiterzuleiten. Braucht da jemand Nachhilfe in Sachen Netzwerk?

Richtig lösen kann man es, in dem man zwei Dinge aktiviert.

1. Outbound NAT rule (Firewall -> NAT -> Outbound)

Hier muss eine neue NAT-Rule erstellt werden, in welcher folgende Settings gesetzt werden müssen.

  • Interface: WAN-Interface des Routers
  • Protocol: TCP/UDP
  • Source: Network / *source IP der Switch, bestenfalls DHCP fixed*
  • Destination: Any
  • Address: Interface Address (des Gateways)
  • Wichtig: Static Port aktivieren

Wichtig ist hierbei, dass die Rule für die Switch vor der eigentlichen Outbound-NAT Rule gesetzt wird, da hier das Motto “der Erste gewinnt” zählt.

2. UPnP aktivieren (Services -> UPnP & NAT-PMP)

Damit die Switch (bzw. auch gewisse Games) eigenständig Ports aufmachen darf, kann UPnP aktiviert werden. Das Feature an Sich ist aus sicherheitstechnischer Sicht nicht sehr toll, aber man kann es mittels ACLs gut einschränken.

Folgende Settings sollten gesetzt werden:

  • Enable UPnP & NAT-PMP aktivieren
  • UPnP Port Mapping aktivieren
  • NAT-PMP Port Mapping aktivieren
  • External Interface: WAN Interface des Gateways
  • Interfaces: LAN Interface des Gateways
  • Default deny aktivieren (um das Feature zu limitieren)
  • ACL-Entries: Entsprechende ACL-Rules für die Switch(en)

Die ACL-Entries bauen sich nach der folgenden Logik auf:

<Regel> <externer Portbereich> <IP der Switch> <Interner Portbereich>

Also zB. in meinem Fall:

allow 1024-65535 10.0.0.16/32 1024-65535

Anschliessend kann man wieder einen Verbindungstest machen und sollte mit den Angegeben Rules nun nicht mehr ein D, sondern ein B-NAT-Level erhalten, mit welchem ein Onlinespiel möglich ist. Ich habe gelesen, dass es Voraussetzung für gewisse Spiele ist, dass man eine öffentliche IP-Adresse hat. Befindest du dich also hinter einem CGNAT oder ähnlichem, kann es sein, dass du ein anderes NAT-Level erhältst – zumindest mit einer Swisscom SIM-Karte hat es bei mir nicht geklappt, mit einem Fiber-Internet von Init7 oder Netstream aber schon.

– Jan, 07. Februar 2022