Добавление и удаление маршрутов Windows и Linux

  • Михаил
  • 12 мин. на прочтение
  • 127
  • 04 Feb 2015
  • 04 Feb 2015

Маршрутизация работает на сетевом уровне модель взаимодействия открытых систем OSI. Маршрутизация —  это поиск маршрута доставки пакета в крупной составной сети через транзитные узлы, которые называются маршрутизаторы. Для определения и задания маршрутов в сетях существуют динамическая и статическая маршрутизации. В первом случае маршруты задаются специальным демоном маршрутизации, который модифицирует соответствующим образом таблицу маршрутизации ядра. Во втором случае маршруты задаются администратором/пользователем при помощи команды route. Маршруты, заданные командой route не изменяются, даже если включена динамическая маршрутизация.

Маршруты в Windows
 

route print - вывести список всех маршрутов, ключ -4 выведет все маршруты только по протоколу ipv4

Добавить маршрут в Windows

Синтаксис добавления маршрута в CMD

route add -p <SUBNET_ID> mask <SUBNET_MASK> <GATEWAY> <METRIC> IF <INTERFACE_ID>

где:

Ключ -p (persistent) добавит статический маршрут, т.е. он сохранится после перезагрузки. Во избежание стрельбы себе в ногу лучше сначала добавить без -p, протестить и потом уже добавить с -p.

SUBNET ID - подсеть которую мы добавляем

SUBNET MASK - маска для нового маршрута

METRIC - вес маршрута от 1 до 9999, чем меньше значение, тем выше приоритет маршрута

GATEWAY - гейтвей для новой подсети, по сути первый hop в который сервер отправит трафик

INTERFACE ID - необязательно, нро лучше указываем интерфейс, иначе может забиндиться на другой NIC и отправить трафик в неверном направлении, прописываем route print и смотрим внутренний номер интерфейса

Добавить маршрут в CMD

route add -p 192.168.0.0 MASK 255.255.255.0 192.168.1.1 metric 7 IF 11

Прочитать можно так: чтобы трафик попал в подсеть 192.168.0.0/24, нужно обратиться к узлу 192.168.1.1 через сетевой интерфейс с айди 11

Добавить маршрут в PowerShell
Тут вместо route print используется Get-NetRoute
Get-NetAdapter используется чтобы узнать Interface Index

New-NetRoute -DestinationPrefix "192.168.0.0/24" -RouteMetric 7 -InterfaceIndex 11 -NextHop 192.168.1.1

Удалить маршрут в Windows

Удалить маршрут в CMD

route delete 192.168.0.0 MASK 255.255.255.0 192.168.1.1 IF 11

Удалить маршрут в PowerShell

Remove-NetRoute -DestinationPrefix "192.168.0.0/24" -RouteMetric 7 -InterfaceIndex 11 -NextHop 192.168.1.1

 

Маршруты в Linux Линукс

route -n - вывести список всех маршрутов

Добавить маршрут в Linux Линукс

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

или

route add -net 192.168.0.0/24 gw 192.168.1.1 dev eth0

Добавить статический маршрут в Linux

В /etc/network/interfaces, после описания интерфейса, следует добавить:

post-up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1

Удалить маршрут в Linux

route delete -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1