Я новичок в iptables и NAT. Но я работаю над этим с помощью различных материалов как в Интернете, так и в книгах. У меня есть сомнения по поводу реализации NAT с помощью iptables.
Предположим, мой сетевой сценарий показан ниже.
linuxbox2 (10.0.0.3)
|
|
linuxbox1-------- Switch ----- INTERNET
(10.0.0.2) (194.160.1.1)
Мои Linux-боксы 1 и 2 подключаются к Интернету через коммутатор, и у меня только один публичный IP-адрес (194.160.1.1). Но общение немного странное. box2 не подключается напрямую к внешнему миру через коммутатор. Но он есть во влане с box1. Следовательно, трафик от box2 идет к box1, а затем спускается вниз, чтобы подключиться к внешнему миру. Мы делаем наттинг в box1
Поскольку мы пытаемся замаскироваться на один и тот же публичный IP-адрес, какими должны быть правила в iptable.
Мой вопрос может показаться странным, но я не могу его объяснить ясно ...
Начат новый поток с более подробной информацией и выводами на
Если я хорошо понимаю ваш вопрос, Box 2 находится в VLAN с Box 1, а Box 1 также находится в другой VLAN, у которой есть доступ к Интернету.
Предполагая, что первая VLAN, например, VLAN 100 и вторая VLAN - это VLAN 200, я предполагаю, что вы правильно настроили VLAN в блоке 1 и, следовательно, у вас есть два сетевых интерфейса для двух VLAN (обычно eth0.100 и eth0.200).
В этом случае решение простое, на Блоке 1:
iptables -t nat -A POSTROUTING -o eth0.200 -j MASQUERADE
С помощью этой команды Box 1 будет маскировать NAT-пакеты в Интернет в VLAN 200. Таким образом, когда Box 2 будет отправлять пакеты в Box 1 в VLAN 100, Box 1 пересылает их в VLAN 200.
Убедитесь, что переадресация IP включена в Box 1 (sysctl -w net.ipv4.ip_forward=1
).