Вопрос или проблема
У меня есть компьютер с двумя сетевыми картами и двумя провайдерами интернет-услуг.
Провайдер 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) в вашем конкретном сценарии.
-
Объяснение SNAT:
SNAT — это метод, который позволяет изменять IP-адрес источника в IP-пакетах, когда они покидают интерфейс. Это полезно, когда у вас есть несколько сетевых интерфейсов с различными IP-адресами, и вам нужно сделать так, чтобы внешние хосты могли взаимодействовать с вашей сетью правильно. -
Анализ ситуации:
У вас есть два сетевых интерфейса (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 без потери пакетов. Это говорит о том, что у вас правильно настроена маршрутизация.
-
Когда нужен 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), что позволит ответам возвращаться корректно.
-
Ваш вопрос: кто прав?
Хотя вы удачно можете пинговать как через ETH0, так и через ETH1, ваш сетевой специалист прав в том, что без SNAT могут возникнуть проблемы с обратной маршрутизацией. Если сторонние источники, такие как 8.8.8.8, должны ответить на запросы с ETH1, это может привести к тому, что пакеты зависнут без ответа, так как у них не будет маршрута обратно в вашу локальную сеть 10.0.0.0. -
Рекомендация:
Рекомендуется настроить SNAT для трафика, который проходит через ETH1, если вы ожидаете входящих ответов от IP-адресов за пределами вашей сети. Это обеспечит корректную работу всех соединений и предотвратит возможные проблемы с маршрутизацией.
Таким образом, для уверенности в правильной маршрутизации и взаимодействии с внешними хостами крайне желательно использовать SNAT в вашем сетевом окружении.