2 votes

Traversée NAT simulée sur Virtual Box

J'ai installé une boîte virtuelle (avec deux adaptateurs virtuels (de type NAT)) - Hôte (Ubuntu -10.10) - Invité-Opensuse-11.4. Mon objectif est de simuler les quatre types de NAT comme suit défini ici . La simulation des différents types de NAT peut être réalisée à l'aide de Linux iptables . Dans ces exemples, eth0 est le réseau privé et eth1 est le réseau public.

Plein cône :

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source <public ip goes here>
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination <private ip goes here>

Cône restreint :

iptables -t nat POSTROUTING -o eth1 -p tcp -j SNAT --to-source <public ip goes here> 
iptables -t nat POSTROUTING -o eth1  -p udp -j SNAT --to-source <public ip goes here> 
iptables -t nat PREROUTING -i eth1 -p tcp -j DNAT --to-destination <private ip goes here> 
iptables -t nat PREROUTING -i eth1 -p udp -j DNAT --to-destination <private ip goes here> 
iptables -A INPUT -i eth1 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i eth1 -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i eth1 -p tcp -m state --state NEW -j DROP 
iptables -A INPUT -i eth1 -p udp -m state --state NEW -j DROP 

Cône à port restreint :

 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source <public ip goes here>

Symétrique :

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables --flush
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE --random
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

J'ai configuré un invité OpenSuse avec deux adaptateurs virtuels, eth0 et eth1.

  • eth1 avec l'adresse 10.0.3.15 / eth1:1 avec l'adresse 10.0.3.16
  • eth0 avec l'adresse 10.0.2.15

Ensuite, il a exécuté le stund client/serveur...

Serveur :

eKimchi@linux-6j9k:~/sw/stun/stund> ./server -v -h 10.0.3.15 -a 10.0.3.16

Client :

eKimchi@linux-6j9k:~/sw/stun/stund> ./client -v 10.0.3.15 -i 10.0.2.15

...sur les quatre cas Il donne les mêmes résultats :

test I = 1 test II = 1 test III = 1 test I(2) = 1 is nat = 0 mapped IP same = 1 hairpin = 1 preserver port = 1 Primary : Open Return value is 0x000001

Q-1 : Si quelqu'un l'a déjà fait, il devrait se comporter comme un NAT selon la description mais nulle part il ne fonctionne comme un NAT.

Q-2 : Comment la NAT est mise en œuvre dans les routeurs domestiques (généralement avec restriction de port), mais aussi avec des règles iptables préconfigurées et un système d'exploitation Linux adapté.

1voto

user48838 Points 7385

Si vous souhaitez "contrôler" les différents types de NAT avec les invités fonctionnant sous n'importe quel type d'hyperviseur, vous devez faire fonctionner les invités en mode réseau "ponté".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X