Как сделать два шлюза на одном компьютере

Обновлено: 05.07.2024

Как разграничить трафик

Так как же построить такую схему локальной сети, при которой разные устройства в локальной сети будут выходить в Интернет через разных провайдеров или просто через разные шлюзы? А схема эта довольно проста.

Настройка подключения к Интернету разных устройств через разные шлюзы

Коммутационная схема

1. Два роутера подключаются к двум разным провайдерам через WAN-порты.

2. Между собой роутеры соединяются Ethernet-кабелем (витой парой) через LAN-порты.

3. К роутерам подключены компьютеры, сетевые МФУ через LAN-порты и ноутбуки по Wi-Fi.

Настройка роутеров

Роутер №1.

Подключён к Провайдеру А .
IP-адрес 192.168.1.1
Маска подсети 255.255.255.0
DHCP-сервер включён.

Роутер №2.

Подключён к Провайдеру Б .
IP-адрес 192.168.1.254
Маска подсети 255.255.255.0
DHCP-сервер выключен.

Настройка компьютеров

1. Все компьютеры и другие устройства, которые должны подключаться к Интернету через провайдера А (соответственно, через шлюз №1), должны быть настроены на автоматическое получение сетевых параметров в свойствах сетевых адаптеров:

Автоматическое получение сетевых параметров

2. На компьютерах, которые должны использовать провайдера Б (шлюз №2), нужно вручную задать IP-адреса, а в качестве шлюза и DNS-сервера указать IP-адрес роутера №2, т.е. в нашем примере 192.168.1.254:

Ручная настройка ip-адреса, шлюза и dns

Назначая IP-адреса вручную, важно не указать уже используемый адрес. Мы советуем на роутере №1 задать пул DHCP с запасом, а вручную указывать адреса из другого диапазона. Например, на роутере с включённым DHCP-сервером указываем диапазон DHCP 192.168.1.20-100, а на устройствах, которые должны выходить в Интернет через шлюз №2, будем указывать вручную адреса из диапазона 192.168.1.150-200.

Схема локальной сети с двумя шлюзами (провайдерами)

Выводы

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

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

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

Чтобы решить эту проблему, выполните следующие действия:

Настройка шлюза по умолчанию

  1. Откройте окно «Сетевые подключения».
  2. Щелкните правой кнопкой мыши сетевой адаптер, для которого необходимо настроить шлюз по умолчанию и выберите пункт Свойства.
  3. Откройте вкладку Сети.
  4. В разделе Компоненты, используемые этим подключением установите флажок Протокол Интернета версии 4 (TCP/IPv4) или Протокол Интернета версии 6 (TCP/IPv6) и нажмите кнопку Свойства .
  5. В диалоговом окне, которое появится, выберите Получить IP-адрес автоматически или Использовать текущий IP-адрес.

Если сетевой адаптер настроить для автоматического получения IP-адреса, шлюз по умолчанию назначается сервером DHCP. Если назначить альтернативную конфигурацию (только для IPv4), шлюз по умолчанию – это IP-адрес в поле «Шлюз по умолчанию» на вкладке «Альтернативная конфигурация». Можно выбрать только один шлюз по умолчанию.

Если назначить конфигурацию IP-адреса вручную, шлюзом по умолчанию будет IP-адрес в поле «Шлюз по умолчанию» на вкладке «Общее».

Чтобы включить прослушиватель RIP-протокола

  1. Откройте окно «Программы и компоненты».
  2. На левой панели выберите Включение или отключение компонентов Windows. По запросу введите пароль администратора или подтвердите действие.
  3. Установите флажок Прослушиватель RIP и нажмите кнопку ОК .

Добавление маршрутов для IPv4-протокола вручную

  1. Откройте окно командной строки.
  2. В командной строке введите route -p add [destination] [mask <маска сети>] [gateway] [metric <показатель>] [if <інтерфейс>] .

В следующей таблице описаны параметры команды route-p add.

Параметр Описание
destination Определяет сетевой маршрут. Назначением может быть IP-адрес или префикс подсети (его также называют сетевым адресом или сетевым идентификатором) (где биты высокого порядка имеют значение 0), IP-адрес маршрута хоста или 0.0.0.0 для маршрута по умолчанию.
mask Определяет маску подсети, связанную с сетевым местом назначения. Маской подсети может быть соответствующая маска подсети IP-адреса или префикса подсети 255.255.255.255 для маршрута хоста или 0.0.0.0 для маршрута по умолчанию. Если этот параметр пропущен, используется маска подсети 255.255.255.255. Через связь между местом назначения и маской подсети при определении маршрутов, место назначения не может иметь более детальный формат, чем соответствующая маска подсети. То есть, если для бита в месте назначения установлено значение 1, соответствующий бит в маске подсети не может иметь значение 0.
gateway Определяет IP-адрес перенаправления или следующего сетевого сегмента, где можно найти набор адресов, определенный сетевым местом назначения и маской подсети. Для локально подключенных подсетевых маршрутов адреса шлюза – это IP-адрес, предназначен для интерфейса, подключенного к подсети. Для удаленных маршрутов, доступных через один или несколько маршрутизаторов, адрес шлюза – это непосредственно доступный IP-адрес, предназначеный для соседнего маршрутизатора.
metric Определяет показатель затрат (целое число от 1 до 9999) для маршрута используется при выборе из нескольких маршрутов из таблицы маршрутизации, которые наиболее соответствуют адресу места назначения пакета. Выбирается маршрут с низким показателем. Показатель может отражать количество сетевых сегментов, скорость пути, его надежность, пропускную способность или административные свойства.
if Определяет индекс интерфейса для интерфейса, через который можно добраться до места назначения. Для списка интерфейсов и соответствующих индексов интерфейсов используйте отображение команды «route print». Для индекса интерфейса можно использовать десятичные или шестнадцатеричные значения. Перед шестнадцатеричными значениями следует писать 0х. Если параметр «if» пропущен, интерфейс определяется через адрес шлюза.

С помощью параметра -г указанный маршрут добавляется в реестр и используется для инициализации таблицы IP-маршрутизации при запуске протокола TCP / IP.

Добавление маршрутов для протокола IPv6 вручную

  1. Откройте окно командной строки.
  2. В командной строке введите netsh interface ipv6 add route [prefix =] <IPv6-адреса> / <целое число> [interface =] <строка> [[nexthop =] <IPv6-адреса>] [[siteprefixlength =] <целое значение> ] [[metric =] <целое значение>] [[publish =] <значение>] [[validlifetime =] <целое число> | infinite] [[preferredlifetime =] <целое число>] [[store =] <значение> ] .

В следующей таблице описаны параметры команды netsh interface ipv6 add route.

Необходимо сделать так, чтобы в приоритете был интернет предприятия и лишь при его исчезновении трафик шел через модем.

Эти команды мне не помогли =(

route -p add 10.0.0.0 mask 255.255.255.0 10.0.0.1 metric 2
route -p add 31.13.133.0 mask 255.255.255.252 31.13.133.97 metric 1

route -p add 10.0.0.10 mask 0.0.0.0 10.0.0.1 metric 2
route -p add 0.0.0.0 mask 0.0.0.0 31.13.133.97 metric 1

Просто у интернет предприятия после выставления метрик таким образом исчезает адрес шлюза и назначается какой-то альтернативный IP (DHCP на моем порту в предприятии отключили).

Подскажите, пожалуйста, мне чайнику в матчасти.

  • Вопрос задан более трёх лет назад
  • 11521 просмотр
Вы можете указать несколько шлюзов по умолчанию - в этом случае Windows будет перебирать их по очереди. Если отказал первый, трафик пойдёт через второй и т.д. Проблема здесь в том, что обратно трафик на первый шлюз также вернётся только в случае сбоев, то есть 3g/4g модемы не совсем подходят для такого сценария работы (а было бы так красиво), так как пока они в свою очередь не лягут, трафик так и будет идти через них независимо от того, поднялся "проводной" шлюз или нет.
Подробнее можете поискать про Dead Gateway Detection.
Других вариантов построить какое-то подобие отказоустойчивости стандартными средствами, насколько я знаю, в Windows нет.

garlp

Спасибо. Решил проблему именно так: на обоих интерфейсах прописал шлюз второго плюс поставил метрики не через командную строку а все там же в свойствах подключения

Можно так попробовать.
Уберите постоянные маршруты. И вручную назначьте метрики интерфейсам.

Автоматическое переключение между основным и резервным интернет каналом

У нас в конторе наконец то появился резервный интернет-канал. Но со всей очевидностью встала задача автоматического выбора канала интернет. Схема подключения такая: стоит сервер на винде, работающий, как шлюз (недавно переезжали с фрибсд, по никем не понятой причине - приказ гендира). В него входит один сетевой кабель из внутренней сети и уходит на свич, в который, в т.ч., воткнуто оборудование провайдера. Теперь там появилась еще одна железка, которая также находится в инете и раздает его (в простанародье - маршрутизатор).

Спустя какое то время я родил скрипт (batch-файл - он же .bat), который просто поместил в автозагрузку и запустил. Несомненно, это временное решение, но если надо сейчас или даже прямо сейчас, а работы другой непочатый край, то подойдет. Ниже исходники скрипт автоматического переключения на резервный канал:

:first_ping
Ping -n 4 -l 1 8.8.8.8>Nul
If "%ERRORLEVEL%"=="1" goto reserv
if "%ERRORLEVEL%"=="0" Echo First IP OK.
set Timer=60
ping -n %Timer% 127.0.0.1>nul
goto first_ping

:second_ping
Ping -n 4 -l 1 192.168.0.50>Nul
If "%ERRORLEVEL%"=="1" echo First IP is not response.
if "%ERRORLEVEL%"=="0" goto first
set Timer=60
ping -n %Timer% 127.0.0.1>nul
goto second_ping

Хочу заметить, что проверка доступности происходит раз в 60 секунд. Вы можете это изменить на любое время, необходимое вам, изменив соответствующий параметр. Но слишком большое время сделает смену адреса не актуальной, а слишком маленькая задержка даст небольшую, но неприятную (возможно, при очень плохих или загруженных сетях) задержку. Смешно про байт конечно говорить, но все же.

Проблема в следующем: Есть локальная сеть в которой я успешно состою, так же в ней есть несколько компов с которых раздается инет от YOTA. Что получать это инет достаточно просто прописать ip раздающего компа как основной шлюз и предпочитаемый днс.

Как получать инет со всех компов?

Т.е. один будет основным, а остальные будут подключаться если основной не отказывает в доступе (напрмиер выключен).

Актуально все кроме установки доп. железа. Хотя для общего развития тоже не плохо бы это знать.

-------
- Пал Андреич, Вы шпион?
- Видишь ли, Юра.

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

ievgeniy88,
Ставьте сторонее ПО. Например Automate.

-------
В некоторые головы мысли приходят умирать

А еще какие варианты? Как сформулировать эту функцию для поиска например в гугле?
ievgeniy88,
Как получать инет со всех компов?
Т.е. один будет основным, а остальные будут подключаться если основной не отказывает в доступе (напрмиер выключен).

При наличие несколько шлюзов (например по выходу в интернет) в одной локальной сети (из одного диапазона) необходимо иметь два или более маршрутов по умолчанию, т.е.

0.0.0.0 0.0.0.0 IP_шлюз_1 IP_интерфейс_1 Метрика_10
0.0.0.0 0.0.0.0 IP_шлюз_2 IP_интерфейс_1 Метрика_20

при такой конфигурации имеем два маршрута Метрика_10 и Метрика_20, приоритетней Метрика_10 следовательно маршрут на IP_шлюз_1, для автоматического переключения по маршрутам при пропадании основного с наименьшей метрикой т.е. если небудет доступен шлюз некоторое время, то нужно переключится на следующий маршрут 0/0. Только вот обратно ни как, только перезапуск.

В реестре за это отвечают два параметра
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DeadGWDetectDefault - включить или выключить на всех интерфейсах сразу
. Interfaces\
EnableDeadGWDetect - позволяет контролировать на уровне каждого интерфейса по отдельности

Как и любые маршруты маршрут 0/0 может быть добавлен как
route ADD -p 0.0.0.0 MASK 0.0.0.0 IP_шлюза METRIC 1 IF 3

где
-p при использовании с командой ADD задает сохранение маршрута при перезагрузке системы, по умолчанию маршруты не
сохраняются при перезагрузке.

3 после IF номер сетевого интерфейса.

На всякий случай
-f очистка таблиц маршрутов от записей для всех шлюзов, при указании одной из команд, таблицы очищаются до выполнения команды.

Читайте также: