<>>
Een tunnel2.11 is het incapsuleren van een protocol in een ander protocol zodat de bovenliggende laag niets doorheeft van het andere protocol. Op die manier kan je ook IP2.12 in IP tunnelen, zodat je een virtueel subnet creërt over een bestaande IP-netwerk. Het nadeel van zo'n setup is dat je aan beide kanten van de firewall een computer moet hebben die de tunnel in stand houdt en zorgt voor de routing2.13 . In dit geval is het omslachtig te kiezen voor een tunnel omdat er een eenvoudige en meer voor de hand liggende oplossing is.
Een desbetreffende poort openen waarlangs het script kan worden aangeroepen is een simpele manier om een dergelijk probleem op te lossen. Dit is enkel mogelijk als de systeembeheerder toegang heeft tot de firewall zelf. Ook moet het script dan draaien op een computer achter de server die wel toegang heeft tot alle andere servers (achter de firewall). Dit is wellicht de meest veilige (dus qua beveiliging meest strikte) manier om een dergelijke verbinding toe te laten. Zó kan je bepalen dat enkel en alleen die bepaalde computer een verbinding kan maken met de server (waar het script draait) op een welbepaalde poort. Doch als je dit doet creëer je een nieuw probleem. Je gaat op die manier een speciale manuele interventie nodig hebben en op die manier decentraliseer je speciale gevallen wat in alle omstandigheden te mijden is.
De firewall zelf is de enige computer die op beide netwerken (of subnets) rechtstreeks toegang heeft. En door speciale zaken (zoals ons script) op de firewall zelf te runnen voorkom je dat later iemand de hele setup om zeep helpt door de firewall te herconfigureren (centralisatie van het beheer). In ons geval zal dus door middel van netcat op een poort gewacht worden op een verbinding en van zodra die er is wordt het resultaat teruggestuurd.
<>>