Как настроить маршрутизацию трафика с использованием двух сетевых карт для выхода на перечень адресов (сайтов) ТОЛЬКО через одну сетевую карту?
Вводные данные: ПК подключается к двум разным физическим сетям (провайдерам), материнская плата с ethernet-адапетром и Wi-Fi, по кабелю подключение к роутеру (основной провайдер, "Сеть 1"), по Wi-Fi подключение к другому роутеру (другой провайдер, "рабочий", "Сеть 2"). Далее на каждом роутере (и сетевом адаптере, соответственно) настраиваются две подсети (допустим, 192.168.1.* и 192.168.2.*).
Теперь самое главное: 1) как сделать так, чтобы через "Сеть 2", "рабочая" (Wi-Fi) шёл трафик ТОЛЬКО на определённые сайты/адреса (в принципе, список IP-адресов почти весь есть), и 2) весь остальной трафик шёл ТОЛЬКО через "Сеть 1" (ethernet), и, соответственно, никак не попадал в "Сеть 2"?
Понимаю, что надо, наверное, настроить маршруты для "Сети 2", тут сразу вопрос: как лучше и правильнее это сделать - через route в командной строке или через NAT в роутере? Прокси, как я понял, не подойдёт, т.к. в этой "Сети 2" будет идти служебный трафик для корректной работы криптографии (ЭЦП и всё такое), если я понял неправильно, поправьте меня, пожалуйста!
А вот как оградить "Сеть 2" от попадания в неё трафика из "Сети 1"? Т.е. чтобы у ethernet-соединения был безусловный приоритет использования, исключительно кроме случаев, которые будут прописаны в таблице маршрутизации (роутер или таблица в Windows, как писал выше).
Суть в том, что основное соединение будет использоваться для всего подряд - от простого сёрфинга по интернету до торрентов, а вторя сеть чисто для работы в служебном веб-приложении. И, соответственно, попадание основного трафика в служебную сеть не то, чтобы недопустимо, но крайне нежелательно, и при этом нужна безотказная работа служебной сети. ПК один, роутеров 2, варианты "перетыкать кабель" прошу не предлагать. :)
И не совсем разобрался с метриками в Windows (установлена Win10) - какие параметры нужно задавать для каждой из этих 2 сетей?
Заранее спасибо за ответы!!!
1) как сделать так, чтобы через "Сеть 2", "рабочая" (Wi-Fi) шёл трафик ТОЛЬКО на определённые сайты/адреса (в принципе, список IP-адресов почти весь есть), и 2) весь остальной трафик шёл ТОЛЬКО через "Сеть 1" (ethernet), и, соответственно, никак не попадал в "Сеть 2"?
Оставляем Default gateway только через тот роутер, который "Сеть 1" (ethernet). На втором сетевом соединении шлюза по умолчанию быть не должно.
Прописываем частные маршруты на "ТОЛЬКО определённые сайты" через роутер в "Сеть 2", "рабочая" (Wi-Fi). Если к этим сайтам выполняется обращение по именам - все имена занести в файл HOSTS.
Всё собственно.
как оградить "Сеть 2" от попадания в неё трафика из "Сети 1"?
Убедиться, что служба "Маршрутизация и удалённый доступ" - остановлена.
не совсем разобрался с метриками в Windows (установлена Win10) - какие параметры нужно задавать для каждой из этих 2 сетей?
Большое Вам спасибо за подробный ответ!
Сделал всё, как Вы сказали, шлюз удалил, сначала добавил через командную строку маршрут: route -add 10.0.0.0 mask 255.0.0.0 192.168.2.1 (адрес шлюза (роутера)), успешно пропинговал один из адресов в 10.*. Через nslookup с ноута посмотрел адреса всех нужных сайтов, уточнил маршрут до 0 в четвёртом числе назначаемого адреса (и маски) в маршруте, поправил hosts, всё работает, ура! Служба маршрутизации остановлена по умолчанию. В принципе, отсутствие шлюза на втором сетевом адаптере обозначает невозможность по умолчанию для ОС ходить во вторую сеть за всем, кроме обозначенного в маршруте, я же всё правильно понял? :)
У меня теперь остался вопрос: в самом роутере можно(нужно) писать маршруты вместо(вместе с) маршрутов в ОС? Или же, как я понимаю, если в ОС не будет прописан маршрут, она и не будет знать, на какой из сетевых адаптеров стучаться за доступом на определённый адрес (будет использовать адаптер по умолчанию)?
И ещё вопрос, с позволения - с файрволом в ОС надо что-то делать особенное в данном случае? Просто последним файроволом, который я "трогал руками", был ещё Agnitum Outpost версии, кажется, аж 3.0. :)
Ещё раз спасибо!!!
Это до перезагрузки. Нужно либо добавить ключ -p, либо эту команду поместить в автозагрузку.
В принципе, отсутствие шлюза на втором сетевом адаптере обозначает невозможность по умолчанию для ОС ходить во вторую сеть за всем, кроме обозначенного в маршруте, я же всё правильно понял?
Скорее нет, чем да. Изучите таблицу маршрутизации - именно по ней выбирается , через какой интерфейс отправить пакет.
в самом роутере можно(нужно) писать маршруты вместо(вместе с) маршрутов в ОС?
Вы должны для КАЖДОГО подконтрольного вам узла посмотреть (или реконструировать) таблицу маршрутизации и убедиться, что как прямые, так и обратные пакеты будут направляться правильно.
Или же, как я понимаю, если в ОС не будет прописан маршрут, она и не будет знать, на какой из сетевых адаптеров стучаться за доступом на определённый адрес (будет использовать адаптер по умолчанию)?
Не адаптер, а маршрут. Адаптер - это всего лишь один из параметров маршрута.
с файрволом в ОС надо что-то делать особенное в данном случае?
Поставить статикой ip маску (шлюз не указывать)
Прописать два маршрута по умолчанию
Прописать маршрут на нужный ip
Самое главное - указать правильную метрику.
Допустим есть два интерфейса. Wi-fi и Ethernet
Ethernet 192.168.0.0/24
wi-fi 192.168.1.0/24
В командной строке - от имени администратора
netsh interface ipv4 show interface
получаем индификатор интерфейсов. (в маршруте указывается после if)
пишем три маршрута (последовательность важна)
Первый маршрут - на то соединение, через которое будет интернет.
route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 200 if 7
Проверяем командой route print
далее второй маршрут
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 100 if 20
Где метрика меньше, через то соединение и будет ходить интернет.