Имитация прохождения NAT на виртуальной коробке

Я установил виртуальный ящик (с двумя виртуальными адаптерами (тип NAT)) - Host (Ubuntu -10.10) - Guest-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>

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

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

  • eth1 с адресом 10.0.3.15 / eth1:1 как 10.0.3.16
  • eth0 с адресом 10.0.2.15

Затем запустил каскад клиент / сервер...

Сервер:

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 является естественным = 0 сопоставленных IP-адресов одинаковы = 1 шпилька = 1 порт сохранения = 1 Основной: открытый Возвращаемое значение 0x000001

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

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

1 ответ

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

Другие вопросы по тегам