Nutzt man einen Citrix Netscaler für externes NAT-ing und hat zusätzlich noch weitere interne Netze über statische Routen definiert, so wird man sehr schnell feststellen, dass sich der NetScaler hier untypisch verhält. Herkömmliche Routing- und Firewalling-Appliances benötigen extra ACLs für das NAT-ing von privaten IP Adressen, da diese normalerweise standardmäßig ausgeschlossen sind.
Der NetScaler arbeitet hier aber genau umgedreht und wendet NAT erst mal auf alle IP Adressen an, die nicht per ACL ausgeschlossen wurden.
Kurz zur Demotopologie:
Die bisherige RNAT Config des NetScalers beinhaltet lediglich:
set rnat 10.0.0.0 255.255.255.0 -natip 88.99.88.99
Versucht man also vom Client, einen externen Service zu erreichen, greift die RNAT Config wie gewollt und maskiert den Client hinter der IP des externen NetScaler Interfaces (88.99.88.99).
Möchte man allerdings vom Client 1 einen Gerät im Netzwerk 10.11.1.0/24 erreichen, wird man schnell feststellen, dass die RNAT-Config hier zu einem ungewollten Nebeneffekt führt. Ein Auszug der Firewall Logs macht den Administrator sehr schnell darauf aufmerksam:
Der NetScaler nutzt – da nicht anders definiert – auch bei der Verbindung zwischen Client 1 und Client 2 NAT Masquerading. Um dieses Verhalten der Topologie anzupassen und NAT für das Netz 10.11.1.0/24 abzuschalten, kann man mit der folgenden ACL das Netz ausschließen:
add ns acl ACL_RNAT ALLOW -srcIP = 10.0.0.0-10.0.0.254 -destIP "!=" 10.11.1.0-10.11.1.254 apply ns acls set rnat ACL_RNAT -natIP 88.99.88.99
Sobald diese Policy aktiviert und die vorher angelegte RNAT Rule gelöscht wurde, wird NAT Masquerading für dieses Netz deaktiviert.
http://faq-o-matic.net/?p=8047