Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: Waseihou 29. 06. 2012, 21:19:01

Název: Emulace symetrického NATu?
Přispěvatel: Waseihou 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.
Název: Re:emulace symetrického NATu?
Přispěvatel: Waseihou 29. 06. 2012, 21:23:06
Tady se snaží řešit metody na spojení dvou klientů za symetrickým NATem:

http://www.goto.info.waseda.ac.jp/~wei/file/wei-apan-v10.pdf

http://tools.ietf.org/id/draft-takeda-symmetric-nat-traversal-00.txt
Název: Re:emulace symetrického NATu?
Přispěvatel: Waseihou 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