Emulace symetrického NATu?

Waseihou

Emulace symetrického NATu?
« kdy: 29. 06. 2012, 21:19:01 »
Nezná někdo nějaký simulátor routerů s NATy, nejlépe symetrickými ale také jakýmikoliv? Nebo jak to udělat? Potřeboval bych si vytvořit testovací prostředí pro vyzkoušení knihovny libnice: http://nice.freedesktop.org/wiki/

Jinak kdo má zájem tak jsem našel example pro NAT traversal zde: http://code.google.com/p/mricetest/

bohužel ani ICE neřeší problém symetrického NATu jinak než za pomocí TURN serveru který slouží jako proxy, což je samozřejmě další zátěž, ale furt lepší než drátem do oka.
« Poslední změna: 09. 07. 2012, 14:41:48 od Petr Krčmář »


Waseihou

Re:emulace symetrického NATu?
« Odpověď #1 kdy: 29. 06. 2012, 21:23:06 »

Waseihou

Re:emulace symetrického NATu?
« Odpověď #2 kdy: 30. 06. 2012, 00:30:28 »
Simulation
Simulating the various kinds of NATs can be done using Linux iptables. In these examples, eth0 is the private network and eth1 is the public
network.

Full-cone
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>

Restricted cone
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

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

Symmentric
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