Маршрут Между двумя виртуальными интерфейсами на одном сетевом адаптере Linux

У меня есть машина 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, я должен отправить его обратно на коммутатор с соответствующими установленными параметрами.

Я попробовал следующее

  • , установив шлюз по умолчанию для 1.0, равный 2.1 на 2.4, и установил следующий 4, которые предназначены для Интернета, и я могу правильно маршрутизировать их с помощью IpTables. Принимая во внимание, что если пакет прибывает для 1.10, я должен отправить его обратно на коммутатор с соответствующими установленными параметрами.

    Я попробовал следующее

    • , установив шлюз по умолчанию для 1.0, равный 2.1 на 2.4, и установил следующий 4, которые предназначены для Интернета, и я могу правильно маршрутизировать их с помощью IpTables. Принимая во внимание, что если пакет прибывает для 1.10, я должен отправить его обратно на коммутатор с соответствующими установленными параметрами.

      Я попробовал следующее

      • , установив шлюз по умолчанию для 1.0, равный 2.1 на 2.4, и установил следующий hop as 1.1, который, как я надеялся, будет выполнять правильную переадресацию
      • . Я также подключил мосты eth1 и eth1: 0 с помощью bridge-utils , а затем применил пересылку iptables для всех, кто в 2.X желает выйти на Интернет из 10.10.0.1
3
задан 17 December 2015 в 10:32
1 ответ

Ваша конфигурация, как правило, должна работать нестандартно. Маршрутизация в принципе поддерживается кодом маршрутизации Linux и не имеет никакого отношения к Netfilter. "iptables - утилита для настройки фреймворка ядра Netfilter, которая выполняет фильтрацию и модификацию пакетов (искажение и трансляцию адресов), но не маршрутизацию. Поэтому некорректно говорить "я маршрутизирую с помощью iptables".

Мосты - это тоже разные вещи и не должно помочь вам здесь. Пересечение алиасных интерфейсов, вероятно, должно привести к зацикливанию и, таким образом, разрыву сети в этом сегменте ethernet.

Вам нужны маршруты с обеих сторон, например, ip маршрут добавляет 192.168.2.0/24 через 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

Или вам может понадобиться только одно первое правило, если вы настроили брандмауэр со статусом -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
3
ответ дан 3 December 2019 в 06:30

Теги

Похожие вопросы