2

У меня есть несколько карт Ethernet с двумя различными наборами сетей, настроенных на них.

Вывод route -n приведен здесь:

     Kernel IP routing table 
      Destination  Gateway        Genmask        Flags Metric Ref Use Iface
   0.0.0.0         192.168.3.1     0.0.0.0         UG    0      0        0 eth0
   169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
   192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth1
   192.168.3.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

Исходящие соединения в порядке. Проблема с входящими соединениями: как я могу направить входящий трафик, чтобы пройти через 192.168.1.ИКС ?

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

2 ответа2

3

Я сам нашел решение для этого: маршрутизация для нескольких каналов связи / провайдеров

Обычной конфигурацией является следующая, в которой есть два провайдера, которые подключают локальную сеть (или даже одну машину) к большому Интернету.

                                                               ________
                                          +------------+        /
                                          |            |       |
                            +-------------+ Provider 1 +-------
        __                  |             |            |     /
    ___/  \_         +------+-------+     +------------+    |
  _/        \__      |     if1      |                      /
 /             \     |              |                      |
| Local network -----+ Linux router |                      |     Internet
 \_           __/    |              |                      |
   \__     __/       |     if2      |                      \
      \___/          +------+-------+     +------------+    |
                            |             |            |     \
                            +-------------+ Provider 2 +-------
                                          |            |       |
                                          +------------+        \________

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

Давайте сначала установим несколько символических имен. Пусть $ IF1 будет именем первого интерфейса (if1 на рисунке выше), а $ IF2 - именем второго интерфейса. Затем пусть $ IP1 будет IP-адресом, связанным с $ IF1, а $ IP2 - IP-адресом, связанным с $ IF2. Далее, пусть $ P1 будет IP-адресом шлюза у провайдера 1, а $ P2 - IP-адрес шлюза у провайдера 2. Наконец, пусть $ P1_NET будет IP-сетью, в которой находится $ P1, а $ P2_NET - IP-сетью, в которой находится $ P2.

Один создает две дополнительные таблицы маршрутизации, скажем, T1 и T2. Они добавлены в /etc /iproute2 /rt_tables. Затем вы настраиваете маршрутизацию в этих таблицах следующим образом:

  ip route add $P1_NET dev $IF1 src $IP1 table T1
  ip route add default via $P1 table T1
  ip route add $P2_NET dev $IF2 src $IP2 table T2
  ip route add default via $P2 table T2

Ничего особенного, просто создайте маршрут к шлюзу и создайте маршрут по умолчанию через этот шлюз, как вы это сделали бы в случае единственного вышестоящего поставщика, но поместили маршруты в отдельную таблицу для каждого поставщика. Обратите внимание, что сетевого маршрута достаточно, так как он говорит вам, как найти любой хост в этой сети, включая шлюз, как указано выше. Далее вы настраиваете основную таблицу маршрутизации. Хорошая идея направить вещи к непосредственному соседу через интерфейс, связанный с этим соседом. Обратите внимание на аргументы `src ', они гарантируют, что выбран правильный исходящий IP-адрес.

    ip route add $P1_NET dev $IF1 src $IP1
    ip route add $P2_NET dev $IF2 src $IP2

Затем, ваши предпочтения для маршрута по умолчанию: IP-маршрут добавить по умолчанию через $ P1

Далее вы устанавливаете правила маршрутизации. Они на самом деле выбирают, с какой таблицей маршрутизации идти. Вы хотите убедиться, что вы маршрутизируете данный интерфейс, если у вас уже есть соответствующий адрес источника: ip rule add из таблицы $ IP1 T1 ip rule add из таблицы $ IP2 T2

1

Вы не маршрутизируете входящие к определенному - вы маршрутизируете исходящие ...

последний прыжок (маршрутизатор или что-то еще), на который вы нацелены, вы решите, с каким интерфейсом вы связались ... например, если соединение установлено с 192.168.1.x, оно не будет маршрутизироваться на ник, подключенный к 192.168.3.x.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .