20.07.2015

Как Windows работает с несколькими шлюзами по умолчанию

Для обеспечения отказоустойчивости сетей применяется практика использования нескольких шлюзов по умолчанию. В таком случае при доступности одного из шлюзов, трафик будет идти через него (шлюзы не эквивалентны, постоянно активен только один). При отказе этого шлюза, трафик пойдет через второй шлюз. С соединениями по TCP проблем это не создаст. Единственное, TCP коннект должен будет пересоединиться по новому маршруту после завершения таймаута соединения. С трафиком же UDP могут возникнуть проблемы при переключении шлюза - телефония начнет заикаться, видео будет пропадать. Но по прошествии какого-то времени проблема исчезнет. А как Windows определяет доступность шлюза? Об этом ниже.



Когда TCP-соединение маршрутизируется через основной шлюз, хост пытается отправить пакет к получателю столько раз, сколько указано в ключе реестра TcpMaxDataRetransmissions, деленное пополам. И если ответ от получателя за это количество попыток ни разу не пришел, то алгоритм меняет Route Cache Entry (RCE) (кэш маршрутов). Наше соединение (отправившее TcpMaxDataRetransmissions/2 пакетов и не получившее ни одного ответа) переключается на шлюз, указанный вторым в настройках адаптера. Когда 25% TCP-соединений переключатся на второй шлюз, он становится шлюзом по умолчанию. Новый шлюз по умолчанию будет использоваться до возникновения аналогичных проблем с ним, либо до перезагрузки системы.

Вольный перевод KB171564

Комментариев нет:

Отправить комментарий