Блог

Dual-WAN setting in IPFire

У меня есть следующая настройка:

  • КРАСНЫЙ + ЗЕЛЕНЫЙ + ОРАНЖЕВЫЙ
  • У Orange есть пара хостов (в основном используемых в качестве веб-сервера).
  • У GREEN есть несколько рабочих станций (около 10) и NAS (также используемый как репозиторий GIT).
  • У RED есть ДВА, в настоящее время асимметричных) оптоволоконных модема:
    • Быстрый (1000 Мбит/с) с динамическим общедоступным IP-адресом (недоступен из Интернета).
    • Медленный (200 Мбит/с) со статическим общедоступным IP-адресом (подключен к моему домену)

В настоящее время я использую «медленный» для всего своего трафика, но мне хотелось бы немного «оптимизировать».

В общем, я думаю, мне следует настроить все так, чтобы соединения, исходящие из ЗЕЛЕНОГО
(и, возможно, также ОРАНЖЕВОГО) проходили через быстрый режим, в то время как соединения, исходящие
из Интернета (предположительно, в медленном режиме, но это может измениться), должны были возвращаться по
«правильному маршруту». (то есть: откуда бы они ни пришли).
Входящие соединения в настоящее время могут идти по адресу:

  • сервер на ORANGE (80 и 443 минимум)
  • NAS горит зеленым (доступ к GIT через защищенное соединение SSH через нестандартный порт).
  • Мне интересно перенести всю обработку обратного прокси-сервера/виртуального сервера на IPFire
    (в настоящее время все данные http[s]:// отправляются на один сервер в ORANGE и обрабатываются там).

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

 

Нужна настройка DUAL-WAN. В дистрибутиве Linux это должно быть возможно в IPFire, однако он не поддерживается «из коробки» и требует большой работы с вашей стороны.

Вам необходимо создать второй красный интерфейс, отредактировав файл /var/ipfire/ethernet/settings.

Например:

CONFIG_TYPE=4
RED_DEV=red0
RED_MACADDR=00:00:00:00:00:00
RED_DESCRIPTION='"pci: Intel Corporation I210 Gigabit Network Connection (rev 03)"'
RED_DRIVER=igb

RED1_DEV=red1
RED1_MACADDR=11:11:11:11:11:11
RED1_DESCRIPTION='"pci: Intel Corporation I210 Gigabit Network Connection (rev 03)"'
RED1_DRIVER=igb

GREEN_DEV=green0
GREEN_MACADDR=22:22:22:22:22:22
GREEN_DESCRIPTION='"pci: Intel Corporation I210 Gigabit Network Connection (rev 03)"'
GREEN_DRIVER=igb

ORANGE_DEV=orange0
ORANGE_MACADDR=33:33:33:33:33:33
ORANGE_DESCRIPTION='"pci: Intel Corporation I210 Gigabit Network Connection (rev 03)"'
ORANGE_DRIVER=igb

BLUE_DEV=blue0
BLUE_MACADDR=44:44:44:44:44:44
BLUE_DESCRIPTION='"pci: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter"'
BLUE_DRIVER=ath10k_pci

GREEN_ADDRESS=10.1.1.1
GREEN_NETMASK=255.255.255.0
GREEN_NETADDRESS=10.1.1.0

ORANGE_ADDRESS=10.1.2.1
ORANGE_NETMASK=255.255.255.0
ORANGE_NETADDRESS=10.1.2.0

BLUE_ADDRESS=10.1.3.1
BLUE_NETMASK=255.255.255.0
BLUE_NETADDRESS=10.1.3.0

RED_DHCP_HOSTNAME=ipfire
RED_DHCP_FORCE_MTU=

RED_ADDRESS=0.0.0.0
RED_NETMASK=0.0.0.0
DEFAULT_GATEWAY=0.0.0.0
RED_TYPE=DHCP
RED_NETADDRESS=0.0.0.0

 

Дальше самое сложное — манипулировать таблицей маршрутизации, что делается в /etc/sysconfig/rc.localили firewall.local. Вам потребуется добавить необходимые записи маршрутизации, чтобы гарантировать, что правильный шлюз используется для правильного исходящего интерфейса. Это сложная область, и может потребоваться глубокое понимание механизма маршрутизации Linux. Затем вам может потребоваться создать правила брандмауэра для управления трафиком для двух разных интерфейсов WAN. Наконец, если вы хотите, чтобы каждый интерфейс WAN использовал отдельный DNS-сервер, вам может потребоваться изменить настройки DNS.

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

РЕДАКТИРОВАТЬ: я попросил GPT4 показать мне пример того, как будут выглядеть манипуляции с маршрутизацией в rc.local.

Это результат модели:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

# Define gateways for red0 and red1 interfaces
GW_RED0="192.0.2.1"
GW_RED1="203.0.113.1"

# Define table IDs
TID_RED0="100"
TID_RED1="101"

# Define marks
MARK_RED0="1"
MARK_RED1="2"

# Flush existing rules
ip route flush table $TID_RED0
ip route flush table $TID_RED1

ip rule del fwmark $MARK_RED0 table $TID_RED0
ip rule del fwmark $MARK_RED1 table $TID_RED1

# Create routing tables for red0 and red1
ip route add default via $GW_RED0 dev red0 table $TID_RED0
ip route add default via $GW_RED1 dev red1 table $TID_RED1

# Add rule to use specific table for marked packets
ip rule add fwmark $MARK_RED0 table $TID_RED0
ip rule add fwmark $MARK_RED1 table $TID_RED1

Лично я бы не стал пробовать это в производстве и не стал бы полагаться на модель GPT, пока она не будет тщательно проверена.

Средний рейтинг 0

ipfirelinux

Комментарии:

Здесь нет комментариев.
Здесь пока нет ни одного комментария, вы можете стать первым!

16+ Сайт может содержать контент, не предназначенный для лиц младше 16 лет