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

У меня есть сервер CentOS в двух сетях:

  • NIC1 находится на общедоступном IP-адресе с установленным шлюзом на коммутаторе 1. (ADSL Интернет)
  • NIC2 настроен на 10.10.10.2 без шлюза, установленного на коммутаторе 2. (Кабельный интернет)
  • Шлюз / маршрутизатор коммутатора 2 - 10.10.10.1. (Роутер ASUS)

Внутри локальной сети другие компьютеры локальной сети имеют доступ к 10.10.10.2 на открытых портах. Когда правило переадресации порта установлено для шлюза / маршрутизатора 10.10.10.1 -> 10.10.10.2, это не работает. Переадресация портов на шлюзе / маршрутизаторе с 10.10.10.1 - по 10.10.10.3 работает (машина Windows со шлюзом, настроенным на 10.10.10.1).

Возможно ли достичь 10.10.10.2 из общедоступного интернета через маршрутизатор ASUS 10.10.10.1?

2 ответа2

1

IP политика маршрутизации.

Я нашел две записи той же самой, которые я использовал для обновления моего сервера CentOS, чтобы позволить 2-й сетевой карте принимать и отправлять пакеты. Также удалось обновить еще один аналогичный сервер с двумя сетевыми картами / шлюзами.

http://jensd.be/468/linux/two-network-cards-rp_filter <- я занялся настройкой политик IP в разделе «лучшее решение» и не изменил значение rp_filter. Эта статья также имеет хорошие диаграммы.

http://www.microhowto.info/howto/ensure_symmetric_routing_on_a_server_with_multiple_default_gateways.html <- дополнительный пример вышеупомянутого, который прояснил его для меня.

Если вы хотите, чтобы изменения были постоянными, следуйте инструкциям по первой ссылке выше.

Мой пример:

  • ip route add 99.88.77.66/24 dev eth0 таблица 1 (пример публичного IP # 1)
  • ip route add default через таблицу 99.88.77.1 (пример шлюза Public IP # 1)
  • ip route add 10.10.10.0/24 dev eth1 таблица 2 (второй сетевой адаптер в другой сети)
  • ip route add default через таблицу 10.10.10.1 (шлюз маршрутизатора ASUS)
  • IP-правило добавить от 99.88.77.66/32 таблица 1 приоритет 100
  • IP-правило добавить от 10.10.10.4/32 таблица 2 приоритет 110
  • ip route flush cache

/24 для вас может меняться в зависимости от маски подсети вашего IP.

0

Сначала мы должны понять, почему ваша установка не работает. Для этого нам нужно рассмотреть, что происходит.

  • Попытка подключения происходит через "кабельное" подключение к Интернету.
  • Маршрутизатор NAT изменяет адрес назначения и устанавливает запись в таблице сопоставления.
  • Пакет достигает вашего сервера, и генерируется ответ.
  • Ваш сервер ищет пункт назначения для ответа в своей таблице маршрутизации и отправляет пакет на шлюз по умолчанию (например, по направлению к интернет-соединению "ADSL").
  • Скорее всего, пакет отбрасывается за фиктивный адрес источника. Даже если он вернется к клиенту, его исходный адрес не будет совпадать с тем, который ожидает клиент, поэтому клиент отбросит его как фальшивый.

Теперь мы понимаем, что происходит не так, мы можем что-то с этим сделать. Есть несколько вариантов.

Вариант 1 - использовать "политику маршрутизации" на сервере для маршрутизации трафика на основе исходного IP-адреса. Это лучший вариант сервера, который его поддерживает (последние версии linux делают). Ответ Стила описывает, как настроить политику маршрутизации на сервере Linux для маршрутизации на основе адреса источника.

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

Вариант 3 состоит в том, чтобы сделать NAT-блок Masqurade для трафика, который он перенаправляет через порт. Я бы посчитал это последним вариантом, поскольку он скрывает реальный адрес источника трафика.

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