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.


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