Два интернет-провайдера, один компьютер: нужен ли SNAT?

Вопрос или проблема

У меня есть компьютер с двумя сетевыми картами и двумя провайдерами интернет-услуг.

Провайдер 1 – это мой основной шлюз, используемый для всех публичных подключений (ETH0, 192.168.0.0/24)

Провайдер 2 – используется только для одного адреса, скажем, 8.8.8.8 (ETH1, 10.0.0.0/24)

Теперь я создал таблицу маршрутизации, которая, похоже, работает.

Мой вопрос: когда мне нужен SNAT? Или с каких пор мне нужен SNAT…

Я думаю, что SNAT мне не нужен, так как я мог пинговать 9.9.9.9 по eth0 и 8.8.8.8 по eth1 без потерь данных (TCP, состояние сохраняется)… но мой сетевой администратор считает, что это может привести к проблемам без SNAT….

Так кто прав…

Спасибо, ребята.

Ответ или решение

Ваша ситуация с маршрутизацией и использованием двух ISP требует тщательного анализа, чтобы понять, нужен ли SNAT (Source Network Address Translation) в вашем конкретном сценарии.

  1. Объяснение SNAT:
    SNAT — это метод, который позволяет изменять IP-адрес источника в IP-пакетах, когда они покидают интерфейс. Это полезно, когда у вас есть несколько сетевых интерфейсов с различными IP-адресами, и вам нужно сделать так, чтобы внешние хосты могли взаимодействовать с вашей сетью правильно.

  2. Анализ ситуации:
    У вас есть два сетевых интерфейса (NIC):

    • ETH0 с ISP 1 (192.168.0.0/24), который настроен как ваш основной шлюз для всех публичных соединений.
    • ETH1 с ISP 2 (10.0.0.0/24), который используется только для конкретного IP-адреса (например, 8.8.8.8).

    Вы упомянули, что можете пинговать 9.9.9.9 через ETH0 и 8.8.8.8 через ETH1 без потери пакетов. Это говорит о том, что у вас правильно настроена маршрутизация.

  3. Когда нужен SNAT:
    Вам нужен SNAT, если вы хотите, чтобы внешний хост мог корректно ответить на ваши запросы, поступающие с ETH1. Проблема заключается в том, что, когда вы отправляете пакеты через ETH1 к 8.8.8.8, адрес источника будет 10.0.0.x, и когда 8.8.8.8 попытается отправить ответ, он направит его на этот IP-адрес. Однако для внешнего хоста, скорее всего, нет маршрута обратно в вашу локальную сеть 10.0.0.0.

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

  4. Ваш вопрос: кто прав?
    Хотя вы удачно можете пинговать как через ETH0, так и через ETH1, ваш сетевой специалист прав в том, что без SNAT могут возникнуть проблемы с обратной маршрутизацией. Если сторонние источники, такие как 8.8.8.8, должны ответить на запросы с ETH1, это может привести к тому, что пакеты зависнут без ответа, так как у них не будет маршрута обратно в вашу локальную сеть 10.0.0.0.

  5. Рекомендация:
    Рекомендуется настроить SNAT для трафика, который проходит через ETH1, если вы ожидаете входящих ответов от IP-адресов за пределами вашей сети. Это обеспечит корректную работу всех соединений и предотвратит возможные проблемы с маршрутизацией.

Таким образом, для уверенности в правильной маршрутизации и взаимодействии с внешними хостами крайне желательно использовать SNAT в вашем сетевом окружении.

Оцените материал
Добавить комментарий

Капча загружается...