2

Мой домашний сервер имеет два интерфейса с именами eth0 и eth1. eth0 подключен напрямую к входящему порту WAN, поэтому шлюз для eth0 определяется в зависимости от DHCP-сервера провайдера. eth1 подключен к моему маршрутизатору, который подключен к другому порту WAN.

Ниже вывод команды netstat -rn -rn (111.111.111.126 - фиктивный публичный адрес):

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         111.111.111.126 0.0.0.0         UG        0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
111.111.111.126 0.0.0.0         255.255.255.128 U         0 0          0 eth0

Я хочу иметь возможность свободно выбирать интерфейс для исходящих соединений, но не знаю как. curl www.google.com --interface eth1 должен подключиться к www.google.com через eth1, он не работает в текущей конфигурации. route add default gw 192.168.0.1 исправляет это, но затем curl www.google.com --interface eth0 breaks.

2 ответа2

1

Не уверен в своих целях, но звучит как вопрос балансировки нагрузки. На этой странице приведены некоторые рекомендации по настройке нескольких таблиц маршрутизации для использования преимуществ нескольких подключений к Интернету: Руководство по администрированию сети на уровне IP с Linux, раздел 10.4.

Обратите внимание, что этот подход использует исходный IP-адрес для выбора исходящего соединения. Это все еще может работать в системе с одним сервером, если вы привязываете сокеты вашего сервера к определенным интерфейсам. Например, Apache для IP-адреса eth0 и bittorrent для IP-адреса eth1. Не все серверы будут предоставлять хуки конфигурации, необходимые для этого, но многие - даже Minecraft! ;)

1

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

Прочитайте эти две страницы:

http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/

а также

http://generationip.com/documentation/network-documentation/93-howto-setup-multiple-default-gateway-on-linux

Они должны помочь.

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