У меня есть машина с Ubuntu, которая является моим брандмауэром
В аппарате есть 2 карты NIC. eth0 и eth1. eth1 подключен к модему, который дает ему IP-адрес 10.10.1.X
eth1 требуется для предоставления DHCP на 192.168.2.X и наличия другого IP-адреса от коммутатора, который подключен к маршрутизатору, который предоставляет DHCP на 192.168.1.X
В настоящее время эта машина имеет следующие IP-адреса
eth0 - 10.10.0.4
eth1 - 192.168.2.1 (DHCP Server, Gateway)
eth1:0 - 102.168.1.103
Я пытаюсь выполнить следующее
Если машина подключена к eth1 через коммутатор, она должна иметь возможность пинговать 192.168.1.10, который
[Modem+Router 10.1.1.0/24]
|
|
|
(eth0) |----- [ Server 192.168.1.10]
Ubuntu |
Firewall (eth1) ----- [Switch]-----[Modem+Router 192.168.1.0/24]
(eth1:0)--------| \
\
\--------[EndPoint 192.168.2.4]
Моя основная проблема заключается в том, что я получаю пакеты из 2.4, которые предназначены для Интернета, и я могу правильно их маршрутизировать с помощью IpTables. Принимая во внимание, что если пакет прибывает для 1.10, я должен отправить его обратно на коммутатор с соответствующими установленными параметрами.
Я пробовал следующее
bridge-utils
а затем применил переадресацию iptables для всех в 2.X, желающих выйти в Интернет с 10.10.0.1Ваша конфигурация обычно должна работать из коробки. Маршрутизация в принципе поддерживается кодом маршрутизации Linux и не имеет ничего общего с Netfilter. «iptables» - это утилита пользовательского пространства для настройки ядра Netfilter framework, которая выполняет фильтрацию и модификацию пакетов (изменение и преобразование адресов), но не выполняет никакой маршрутизации. Поэтому неверно говорить «Я маршрутизирую с помощью iptables».
Мосты - это тоже разные вещи, и они не должны вам здесь помогать. Мостовое соединение интерфейсов с псевдонимами, вероятно, должно создать петлю и, таким образом, нарушить работу сети в этом сегменте Ethernet.
Вам нужны маршруты в обе стороны, например, ip route add 192.168.2.0/24 via 192.168.1.103
на хостах в сети 192.168.1.0/24 и настроить 192.168.2.1 в качестве шлюза по умолчанию на хостах в сети 192.168.2.0/24.
Если вы жестко настроили брандмауэр на брандмауэре, вам необходимо включить пересылку трафика с eth1 на eth1: 1 и обратно:
iptables -A FORWARD -i eth1 -o eth1:0 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth1:0 -j ACCEPT
Или вам может понадобиться только одно первое правило, если вы уже настроили брандмауэр с отслеживанием состояния с iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
или с -m состоянием (устарело).
Специальная конфигурация iptables необходима только в том случае, если вы хотите замаскировать этот трафик, чтобы хосты в 192.168.1.0/24 не знали, что вы подключаетесь из сети 192.168.2.0/24. Тогда вам не нужны дополнительные маршруты на стороне .1.0 / 24, но нужно правило NAT и правило включения пересылки:
iptables -t nat -A POSTROUTING -o eth1:1 -s 192.168.2.0/24 -o 192.168.1.0/24 -j SNAT --to-source 192.168.1.103
iptables -A FORWARD -i eth1 -o eth1:0 -j ACCEPT