Назад | Перейти на главную страницу

Разделение доступа из нескольких восходящих каналов

Наша настройка такова:

                                    +---------+    +------------+        /
                                    |         |    |  Modem     |       /
                 +-----------+------| Firewall|----+ Provider 1 +-------
        __       |           |      |         |    |            |    /
    ___/  \_     |    +------+----+ +---------+    +------------+   |
  _/        \__  |    |     p4p1  |                               /
 /             \ |    |           |                              |
| Local network -+    |Ubuntu srv |                              |Internet
 \_           __/     |           |                              |
   \__     __/        |     em1   |                               \
      \___/           +------+----+     +------------+             |
                             |          |  Router    |              \
                             +----------+ Provider 2 +----------------
                                        |            |                |
                                        +------------+         

Мы бы хотели, чтобы сервер Ubuntu мог использовать em1 интерфейс, специально для ftp трафика.

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

Нам не нужна и не нужна балансировка нагрузки, и локальная сеть не будет выходить в Интернет через em1, так что это должно упростить задачу, поскольку серверу Ubuntu не нужно перенаправлять что-либо, исходящее из em1.

У нас есть статический публичный адрес, присвоенный брандмауэру, но маршрутизатор провайдера 2 будет иметь динамический адрес, который нам понадобится для DynDNS или чего-то еще.

Я нашел это КАК и этот вопрос о переполнении стека но меня смущают значения этого скрипта.

Какие на самом деле значения IP1 и IP2? Какой будет маршрут по умолчанию для пакетов, исходящих с сервера ubuntu? Где установлен этот маршрут по умолчанию и какое значение? В моем случае P0_NET не нужен?

Как мне изменить этот сценарий, чтобы он соответствовал моему сценарию? Я считаю, что это должно по крайней мере быть

#!/bin/bash -v
#IPs of device connected to the internet
IP1=192.168.30.240 (or is it the public ip 85.12.34.56?)
#static IP provided by ISP2
IP2=192.168.0.10 (or is it the dynamic ip 190.12.34.56?)

#Your Gateways (type route in terminal it should be in the same line as default)
P1=192.168.30.1 #gateway provided by ISP1
P2=192.168.0.254 #gateway provided by ISP2

#Your Subnets
P1_NET=192.168.30.0/24 #local network subnet + p4p1
P2_NET=192.168.0.0/24 #em1 LAN
# NICs your internet interfaces
IF1=p4p1
IF2=em1

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
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip route add $P2_NET dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add $P1_NET dev $IF1 table T2
ip route add 127.0.0.0/8 dev lo table T2

Это не вопрос маршрутизации. Маршрутизация работает на уровне 3, т.е. IP-адреса, но для сортировки FTP-трафика вам понадобится информация уровня 4.

Убедитесь, что вы привязываете FTP-сервер только к IP-адресу em1, и он будет доступен только на этой стороне, а также с использованием пассивных портов на этом IP-адресе.

Для vsftpd привязка IP описана в https://askubuntu.com/questions/301028/how-to-use-specific-ip-with-vsftpd

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

Вы должны установить имя таблицы в /etc/iproute2/rt_tables

255     local
254     main
253     default
0       unspec
200 wan3table
201 wan1table

а затем добавьте следующие маршруты:

ip route add 192.168.30.0/24 dev p4p1 table wan1table
ip route add default via 192.168.30.1 table wan1table

ip route add 192.168.0.0/24 dev em1 table wan3table
ip route add default via 192.168.0.254 table wan3table

ip rule  add from 192.168.30.240 table wan1table
ip rule  add from 192.168.0.10 table wan3table
ip route add 127.0.0.0/8 dev lo table wan1table
ip route add 127.0.0.0/8 dev lo table wan3table
ip route add 192.168.0.0/24 dev em1 table wan1table
ip route add 192.168.30.0/24 dev p4p1 table wan3table