Я задавался вопросом о следующем сценарии:

+-------+        +-------+
| ISP 1 |        | ISP 2 |
+-------+        +-------+
  |                    |
  |     +--------+     |
  --eth0| ROUTER |eth1--
        +--------+
           eth2
             |
             |
          +----+
          | PC |
          +----+

ROUTER - это Linux-машина с тремя сетевыми интерфейсами:

Интерфейс eth0 подключен к основному интернет-провайдеру и настроен на выполнение исходного NAT.
Интерфейс eth1 подключен к резервному интернет-провайдеру и настроен на выполнение исходного NAT.
Интерфейс eth2 подключен к обычному ПК.

Интерфейс eth0 настроен как маршрут по умолчанию, поэтому ПК будет подключаться к Интернету через интернет-провайдера 1.

Допустим, пользователь начал загружать большой файл из Интернета на ПК, а затем провайдер 1 отключился. Что произойдет, если маршрут по умолчанию на ROUTER был изменен на eth1? загрузка продолжится?

1 ответ1

1

Итак, установленный сеанс загрузки будет между IP-адресом ISP1, внешним NAT-адресом на Eth0 и удаленным хостом (скажем, netflix), когда ISP1 становится недоступным, netflix не будет знать о ISP2 и не будет отправлять какие-либо данные из сеанс, который он установил с адресом ISP1 через ISP2. Если маршрутизатор на пути к ISP1 не создал ошибку ICMP, такую как "HOST UNREACHABLE" или "NO ROUTE TO HOST", соединение истечет после истечения времени таймеров TCP, если от вашей системы с AC-адресом ISP1 не получено ACK-сообщений.

Ваша система может попытаться подтвердить свои последние принятые пакеты с NAT-адресом ISP2, но netflix будет игнорировать их, так как сеанс между ISP1 и netflix.

Если бы вы не использовали NAT, имели собственное переносимое распределение IP-адресов и пиринговое соглашение BGP с обоими Интернет-провайдерами, то ваша передача продолжалась бы с минимальным прерыванием, если маршрутизатор не выдал ошибку ICMP, как указано выше, в промежуточный период, в качестве маршрутизации таблицы изменились.

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