Назад | Перейти на главную страницу

Имитация прохождения NAT на Virtual Box

Я установил виртуальный ящик (с двумя виртуальными адаптерами (типа NAT)) - Хост (Ubuntu -10.10) - Гость-Opensuse-11.4. Моя цель - смоделировать все четыре типа NAT как определено здесь. Моделирование различных типов NAT можно выполнить с помощью Linux. iptables. В этих примерах eth0 - это частная сеть, а eth1 - общедоступная.

Полный конус:

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>

Ограниченный конус:

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 

Конус с ограничением порта:

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

Симметричный:

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

Я настраиваю гостя OpenSuse с двумя виртуальными адаптерами, eth0 и eth1.

Затем запустил оглушить клиент / сервер ...

Сервер:

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

Клиент:

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

... во всех четырех случаях он дает одинаковые результаты:

тест I = 1 тест II = 1 тест III = 1 тест I (2) = 1 is nat = 0 сопоставленный IP такой же = 1 шпилька = 1 порт preserver = 1 Primary: Open Возвращаемое значение 0x000001

Q-1: Пожалуйста, дайте мне знать. Если это когда-либо делалось, он должен вести себя как NAT согласно описанию, но нигде он не работает как NAT.

Q-2: Как NAT реализован в домашних маршрутизаторах (обычно с ограничениями по портам), но также с предварительно настроенными правилами iptables и настроенным Linux

Если вы хотите «контролировать» различные типы NAT с гостевыми системами, работающими под любым гипервизором, вам необходимо запустить гостевые системы в «мостовом» сетевом режиме.