Как прописать статический маршрут? и зачем он нужен?

Примеры использования утилиты route

Хватит теории, переходим к практике. Сейчас мы с Вами пропишем маршрут, который разрешит нам получить доступ к локальной сети при включенном VPN соединении, пригодится обычным пользователям, у которых дома более одного компьютера, а в Интернет выходят по средствам VPN.

Имеем локальную сеть: 192.168.1.0/24

Локальный IP первого компьютера (пусть он будет компьютер — A) – 192.168.1.2 (на котором присутствует VPN соединение)

Локальный IP второго компьютера (а этот компьютер — B) – 192.168.1.3

IP адрес шлюза т.е. модема – 192.168.1.1

Нам нужно прописать маршрут на компьютере A, чтобы он смог видеть компьютер B при включенном VPN соединении. Делается это следующем образом: запускаем командную строку Пуск->Выполнить->cmd и набираем следующую команду:

route –p add 192.168.1.0 mask 255.255.255.0 192.168.1.1

route – сама программа, которая работает с таблицей маршрутизации;
-p – ключ, который говорит, что маршрут будет постоянный, так как (Важное замечание!) без этого ключа все маршруты, которые Вы добавите удалятся после перезагрузке, поэтому если Вы хотите использовать маршрут всегда, то пропишите этот ключ, если только один раз, то его можно не писать;
add – команда, добавляющая запись в таблицу маршрутизации;
192.168.1.0 – сеть, с которой Вы хотите иметь связь;
mask 255.255.255.0 – маска подсети;
192.168.1.1 – адрес шлюза, обычно это адрес модема. Добавив всего один маршрут, Вы получаете доступ к своей сети при подключенном Интернете, т.е

VPN соединении

Добавив всего один маршрут, Вы получаете доступ к своей сети при подключенном Интернете, т.е. VPN соединении.

Вот еще один небольшой пример, у Вас дома подключение к Интернету через модем ADSL и Вам иногда (ну или постоянно) требуется подключение к VPN сети, и соответственно выхода в Интернет через свой канал у Вас уже не будет. Но с помощью статического маршрута Вы можете получить доступ к определенным сайтам (узнав предварительно их ip адреса, с помощью команды ping в командной строке, например ping yandex.ru), к которым Вам бы хотелось иметь постоянный доступ (и при подключенном VPN соединении и неподключенном). Например, сайт имеет ip адрес 172.18.24.13, а шлюз (маршрутизатор, модем) имеет IP адрес 192.168.0.1, Вам необходимо прописать следующее:

route –p add 172.18.24.13 mask 255.255.255.255 192.168.0.1

Просмотр маршрутов в Linux

Команда выводит на экран все содержимое таблицы IP-маршрутизации и позволяет изменять записи.

$ $ route --help
Использование: route    Отобразить таблицу маршрутизации ядра
       route   {add|del|flush} ... Изменить таблицу маршрутизации для AF.

       route {-h|--help}  Детальное описание использование указанной AF.
       route {-V|--version} Отобразить версию/автора и выйти.

        -v, --verbose более детальный вывод
        -n, --numeric не преобразовывать адреса в имена
        -e, --extend отображать другую/больше информации
        -F, -fib отобразить информацию форвардинга базы (по умолчанию)
        -C, --cache отобразить кэш маршрутизации вместо FIB

  <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inet
  Список возможный адресных семейств (которые поддерживают маршрутизацию):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25)

Просмотр таблицы маршрутизации:

$ route
Таблица маршрутизации ядра протокола IP
Destination     Gateway    Genmask         Flags   Metric   Ref   Use   Iface
default         _gateway   0.0.0.0         UG      100      0     0     enp0s3
link-local      0.0.0.0    255.255.0.0     U       1000     0     0     enp0s3
192.168.110.0   0.0.0.0    255.255.255.0   U       100      0     0     enp0s3
$ route -n
Таблица маршрутизации ядра протокола IP
Destination     Gateway         Genmask         Flags   Metric   Ref   Use   Iface
0.0.0.0         192.168.110.1   0.0.0.0         UG      100      0     0     enp0s3
169.254.0.0     0.0.0.0         255.255.0.0     U       1000     0     0     enp0s3
192.168.110.0   0.0.0.0         255.255.255.0   U       100      0     0     enp0s3

Утилита предоставляет возможность определить маршрут, по которому проходит пакет до заданного узла:

$ sudo apt install traceroute
$ traceroute ya.ru
traceroute to ya.ru (87.250.250.242), 30 hops max, 60 byte packets
 1  _gateway (192.168.110.1)  0.697 ms  0.607 ms  0.584 ms
 2  78.107.125.69 (78.107.125.69)  2.050 ms  1.967 ms  1.777 ms
 3  stpert-bng1-local.msk.corbina.net (85.21.0.172)  1.679 ms  1.605 ms  1.499 ms
 4  10.2.254.10 (10.2.254.10)  2.215 ms  2.180 ms  2.167 ms
 5  korova-bb-be5.corbina.net (195.14.54.195)  3.577 ms  3.544 ms  3.824 ms
 6  85.21.224.96 (85.21.224.96)  2.645 ms  2.208 ms  2.149 ms
 7  m9-crs-be13.corbina.net (85.21.224.54)  3.762 ms  3.207 ms  3.794 ms
 8  m9-br-be3.corbina.net (195.14.62.85)  3.716 ms  3.639 ms m9-br-be1.corbina.net (195.14.54.79)  3.559 ms
 9  corbina-gw.dante.yandex.net (83.102.145.178)  6.750 ms  11.716 ms  16.226 ms
10  ya.ru (87.250.250.242)  5.330 ms  8.678 ms  8.628 ms

Поиск:
Linux • Windows • Локальная сеть • route • Маска сети • Шлюз • Маршрут • Таблица • Адрес • Команда

Динамическая маршрутизация, протокол RIP

Протокол RIP (Routing Information Protocol или Протокол передачи маршрутной информации) является одним из самых распространенных протоколов динамической маршрутизации.

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

Есть две версии протокола RIP. Версия 1 не поддерживает маски, поэтому между сетями распространяется только информация о сетях и расстояниях до них. При этом для корректной работы RIP на всех интерфейсах всех маршрутизаторов составной сети должна быть задана одна и та же маска.

Протокол RIP полностью поддерживается только серверной операционной системой, тогда как клиентская операционная система (например, Windows XP) поддерживает только прием маршрутной информации от других маршрутизаторов сети, а сама передавать маршрутную информацию не может.

Настраивать RIP можно двумя способами:

  • В графическом режиме с помощью оснастки “Маршрутизация и удаленный доступ”.
  • В режиме командной строки с помощью утилиты netsh.

Рассмотрим настройку в режиме командной строки с помощью утилиты netsh.

Netsh – это утилита командной строки и средство выполнения сценариев для сетевых компонентов операционных систем семейства Windows (начиная с Windows 2000).

Введите в командной строке команду netsh, после появления netsh> введите знак вопроса и нажмите Enter, появиться справка по команде.

Введите последовательно команды:

  1. routing
  2. Ip
  3. rip
  4. ?

Вы увидите, что среди доступных команд этого контекста есть команда add interface, позволяющая настроить RIP на заданном интерфейсе. Простейший вариант этой команды – add interface «Имя интерфейса».

Если ввести в Windows XP в контексте команду , то получим сообщение «RIP должен быть установлен первым». Дело в том, что Установить RIP можно только в серверной операционной системе. В Windows Server 2003 в RIP включается в оснастке «Маршрутизация и удаленный доступ» (Пуск –> Программы –> Администрирование –> Маршрутизация и удаленный доступ). Таким образом, включить RIP в нашем случае можно только на маршрутизаторах Server1 и Server2.

Настроим RIP на Server1. Но сначала нужно выключит брандмауэр.

Теперь в оснастке «Маршрутизация и удаленный доступ» в контекстном меню пункта SERVER1 (локально) выберите пункт «Настроить и включить Маршрутизация ЛВСмаршрутизацию и удаленный доступ».

В появившемся окне мастера нажмите «Далее».

На следующем этапе выберите «Особая конфигурация» и нажмите «Далее».

После чего нужно выбрать «Маршрутизация ЛВС» и завершить работу мастера.

То же самое нужно выполнить на Server2.

Метрика

Можно заметить, что в нашей схеме в одну и ту же сеть, например вот в эту (10.2.0.0/16) можно попасть двумя путями, первый путь проходят через один маршрутизатор F, а второй путь через два маршрутизатора B и E.

В этом отличие сетевого уровня от канального. На канальном уровне у нас всегда должно быть только одно соединение, а на сетевом уровне допускаются и даже поощряются для обеспечения надежности несколько путей к одной и той же сети.

Какой путь выбрать? Для этого используются поле метрика таблицы маршрутизации.

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

Раньше, метрика измерялось в количестве маршрутизаторов, таким образом расстояние через маршрутизатор F было бы один, а через маршрутизаторы B и E два.

Однако сейчас метрика учитывает не только количество промежуточных маршрутизаторов, но и скорость каналов между сетями, потому что иногда бывает выгоднее пройти через два маршрутизатора, но по более скоростным каналам. Также может учитываться загрузка каналов, поэтому сейчас метрика — это число, которое учитывает все эти характеристики. Мы выбираем маршрут с минимальной метрикой в данном примере выше, будет выбран первый маршрут через маршрутизатор F.

Статическая маршрутизация

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

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

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

Но вернемся к нашему примеру. Наша задача, имя исходные данные, установить соединения между хостом XP и Server2 который находится в сети Net3, то есть нужно что бы проходил пинг на 192.168.2.1.

Начнем выполнять на хосте XP команды постепенно удаляясь от самого хоста. Выполните в Командной строке команды для адресов 192.168.0.2, 192.168.0.1, 192.168.1.1.

Мы видим, что команды ping по адресу собственного интерфейса хоста XP и по адресу ближайшего интерфейса соседнего маршрутизатора Server1 выполняются успешно.

Однако при попытке получить ответ от второго интерфейса маршрутизатора Server1 выводится сообщение «Заданный узел недоступен» или «Превышен интервал ожидания для запроса».

Добавим в таблицу маршрутизации XP запись о маршруте к сети 192.168.1.0. Для этого введем команду route add с необходимыми параметрами:

Параметры команды имеют следующие значения:

  • адресат — адрес сети или хоста, для которого добавляется маршрут;
  • mask — если вводится это ключевое слово, то следующий параметр интерпретируется как маска подсети, соответственно маска — значение маски;
  • шлюз — адрес шлюза;
  • metric — после этого ключевого слова указывается метрика маршрута до адресата (метрика);
  • if — после этого ключевого слова указывается индекс интерфейса, через который будут направляться пакеты заданному адресату.

Индекс интерфейса можно определить из секции Список интерфейсов (Interface List) выходных данных команды route print.

Выполним команду .

Теперь мы видим , что хост XP имеет два интерфейса: логический интерфейс замыкания на себя (Loopback) и физический интерфейс с сетевым адаптером Intel(R) PRO/1000. Индекс физического интерфейса – 0x2.

Теперь, зная индекс физического интерфейса, на хосте добавьте нужный маршрут, выполнив следующую команду:

Выполним пинг на 192.168.1.1 и убедимся, что связь есть.

Продолжим пинговать серверы, теперь проверьте отклик от второго маршрутизатора, присоединенного к сети Net2 (Server2). Он имеет IP-адрес 192.168.1.2.

Получаем сообщение «Превышен интервал ожидания запроса». В данном случае это означает что наш хост XP знает как отправлять данные адресату, но он не получает ответа.

На Server2 выполним команду route print и посмотрим индекс первого физического интерфейса. Далее, с помощью команды route add добавьте на Server2 маршрут до сети Net1, аналогично тому, как мы добавляли маршрут хосту XP.
В моем случае это команда:

— это индекс физического интерфейса сервера 2.

Индекс физического интерфейса может быть разным, обязательно обращайте на него внимание. После того, как удостоверитесь в наличии связи между узлами XP и Server2, выполните команду ping 192.168.2.1, т.е

проверьте наличие маршрута узла XP до сети Net3 (192.168.2.1 – IP-адрес маршрутизатора Server2 в сети Net3)

После того, как удостоверитесь в наличии связи между узлами XP и Server2, выполните команду ping 192.168.2.1, т.е. проверьте наличие маршрута узла XP до сети Net3 (192.168.2.1 – IP-адрес маршрутизатора Server2 в сети Net3).

Вместо ответа вы получите сообщение «Заданный узел недоступен». С этой проблемой мы сталкивались еще в самом начале лабораторной работы, машина XP не знает путей до сети 192.168.2.0.

Добавьте в таблицу маршрутизации хоста XP запись о маршруте к сети 192.168.2.0. Это можно сделать путем ввода в командной строке хоста XP команды route add с соответствующими параметрами:

Выбор подключения к Интернету

Компьютер может быть подключён сразу к нескольким сетям: например, к проводной сети и к беспроводной; или к двум Wi-Fi сетям; или использовать телефон в качестве модема через Bluetooth и при этом быть подключённым к проводной и Wi-Fi сети; или быть подключённым к четырём Wi-Fi сетям – да что угодно!

Если вы выходите в Интернет, как операционная система выбирает, какое именно из нескольких подключений использовать? Система действует очень мудро – она не пренебрегает ни одним из подключений. И в случае потери связи с одним из них – использует другое.

Но ведь ей в любом случае нужно выбрать, какое подключение использовать в данный момент! И система опять поступает мудро – она использует лучшее подключение. Чтобы узнать, какое подключение является лучшим, для каждого из них вычисляется так называемая Метрика – условное значение, которое учитывает сразу несколько параметров – скорость сети, потери пакетов и другое.

Рассмотрим реальный пример. Мой компьютер подключён к двум Wi-Fi сетям. Чтобы узнать характеристики маршрутов, откроем командную строку Windows, для этого нажмите Win+x, и выберите Windows PowerShell (Администратор). В открывшемся окне командной строки наберите команду

Особое внимание обратите на строки:

Сетевой адрес 0.0.0.0 и маска сети 0.0.0.0 это обозначение маршрута по умолчанию (default route). Это тот маршрут, куда отправляется трафик, для которого явно не прописан другой маршрут.

Например, там же мы можем увидеть строку

В ней есть сетевой адрес 192.168.56.0 с маской подсети 255.255.255.0 – то есть это любые IP адреса в диапазоне 192.168.56.0-192.168.56.255. Так вот, для этих адресов явно прописан маршрут – они будут отправлены в 192.168.56.1.

Но если будет запрошен любой другой IP, который отсутствует в таблице (т.е. для которого не указан конкретный маршрут), то он будет отправлен по маршруту по умолчанию – это то, что указано для сети 0.0.0.0 с маской 0.0.0.0. Самым типичным трафиком, отправляемым по default route является Интернет-трафик (а также трафик в другие локальные сети, к которым ваш компьютер непосредственно не подключён – но для домашних сетей это редкая ситуация).

Для выбора Интернет-подключения по умолчанию нужно изменить маршрут по умолчанию.

Статический маршрут в Windows — как прописать? Примеры использования утилиты route

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

Предлагаю ознакомиться с предложениями моих партнёров

Статический маршрут — это заданный администратором маршрут, который заставляет пакеты, перемещающиеся между источником и адресатом, отправляться по указанному пути — явно указанный путь, по которому должен пройти пакет из пункта A в пункт B.

Синтаксис и основные ключи утилиты route

Поподробней о команде route.

Общий синтаксис route:

route

Основные ключи route:

  • -f — удаляет из таблицы маршрутизации все маршруты;
  • -p – сохраняет маршрут на постоянную основу;
  • add – добавляет новый маршрут;
  • change — меняет текущий маршрут в таблице маршрутизации;
  • delete — удаляет маршрут из таблицы маршрутизации;
  • print — отображает содержимое таблицы маршрутизации;
  • destination — при добавлении или изменении маршрута этот параметр используется для указания идентификатора сети назначения;
  • mask — при добавлении или изменении маршрута этот параметр используется для указания маски подсети для сети назначения;
  • gateway — при добавлении или изменении нового маршрута этот параметр используется для указания шлюза (маршрутизатора или модема);
  • metric — используется для указания целого числа в диапазоне от 1 до 9999, являющегося метрикой стоимости для маршрута. Если для определенной сети назначения существует несколько возможных маршрутов, будет использован маршрут с наименьшим значением метрики;
  • if — используется для указания номера индекса интерфейса, который подключен к сети назначения.

Для того чтобы просто посмотреть таблицу маршрутизации у себя на компьютере введите в командную строку следующие:

Думаю Вам интересней, о статическом маршруте на обыкновенном компьютере с операционной системой Windows.

Если у Вас дома два компьютера, один из которых имеет доступ в Интернет по средствам VPN, также он соединен со вторым компьютером локальной сетью, и каждый раз, когда он подключается к Интернету, то связь между двумя компьютерами теряется, так как первый компьютер (который подключился к VPN) уже находится в другой сети, и поэтому недоступен со второго компа.

Примеры использования утилиты route

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

Имеем локальную сеть: 192.168.1.0/24

Локальный IP первого компьютера (пусть он будет компьютер — A) – 192.168.1.2 (на котором присутствует VPN соединение)

Локальный IP второго компьютера (а этот компьютер — B) – 192.168.1.3

IP адрес шлюза т.е. модема – 192.168.1.1

Вам нужно прописать маршрут на компьютере A, чтобы он смог видеть компьютер B при включенном VPN соединении. Делается это следующем образом: запускаем командную строку Пуск->Выполнить->cmd и набираем следующую команду:

route –p add 192.168.1.0 mask 255.255.255.0 192.168.1.1

route – сама программа, которая работает с таблицей маршрутизации;
-p – ключ, который говорит, что маршрут будет постоянный, так как (Важное замечание!) без этого ключа все маршруты, которые Вы добавите удалятся после перезагрузке, поэтому если Вы хотите использовать маршрут всегда, то пропишите этот ключ, если только один раз, то его можно не писать;
add – команда, добавляющая запись в таблицу маршрутизации;
192.168.1.0 – сеть, с которой Вы хотите иметь связь;
mask 255.255.255.0 – маска подсети;
192.168.1.1 – адрес шлюза, обычно это адрес модема.

Добавив всего один маршрут, Вы получите доступ к своей сети при подключенном Интернете, т.е. VPN соединении.

Или у Вас дома подключение к Интернету через модем ADSL но Вам требуется подключение к VPN сети, и соответственно выхода в Интернет через свой канал у Вас уже не будет. Но с помощью статического маршрута можно получить доступ к определенным сайтам (узнав предварительно их ip адреса), к которым Вам бы хотелось иметь постоянный доступ (и при подключенном VPN соединении и не подключенном). Если сайт имеет ip адрес 172.18.24.13, а шлюз имеет IP адрес 192.168.0.1, надо прописать так:

route –p add 172.18.24.13 mask 255.255.255.255 192.168.0.1

Примеры использования

Определить маршрут к сети, которая должна быть достигнута через сетевой интерфейс eth0:

$ ifconfig eth0 nodeone netmask 255.255.255.0$ route add -net 192.168.1.0

Здесь для команды route не указывается сам интерфейс, поскольку предполагается, что узлу nodeone соответствует адрес 192.168.1.2. Далее, route «узнаёт», что маршрут нужно проложить именно через eth0 благодаря тому, что системное ядро анализирует все доступные интерфейсы на предмет их конфигурации и сравнивает адрес пункта назначения с сетевой частью сетевых (сконфигурированных) интерфейсов. В данном случае ядро обнаруживает, что eth0 – тот интерфейс (с адресом 192.168.1.2), которому соответствует конечный адрес, т. е. 192.168.1.0.

Задание шлюза по-умолчанию:

$ route add default gw 192.168.1.1 eth0

Доступ в локальную сеть Ethernet через сетевой интерфейс eth0:

$ route add -net 192.168.10.0 netmask 255.255.255.0 eth0

Здесь 192.168.10.0 – сеть, к которой нужно установить доступ (маршрут).

Вывод содержимого таблицы маршрутов ядра осуществляется командой route без параметров, для подробных результатов используется опция -ee.

Также можно использовать сокращённую запись для задания маски подсети:

$ route add -net 192.168.10.0/24 eth0

Следует отметить, что шлюзы, установленные командой route будут существовать до перезагрузки системы. Для их использования на постоянной основе необходимо нужные команды прописать в файле. В Ubuntu это /etc/network/interfaces.

Например для настройки маршрутизации сети 192.168.10.0/24 через шлюз 192.168.10.1 интерфейс eth0, это команда

$ route add -net 192.168.10.0/24 gw 192.168.10.1 eth0

файл /etc/network/interfaces будет выглядеть следующим образом

auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 192.168.10.8hwaddress ether 00:E0:4C:A2:C4:48netmask 255.255.255.0broadcast 192.168.10.255up route add -net 192.168.10.0/24 gw 192.168.10.1 eth0auto eth1iface eth1 inet staticaddress 172.16.0.34netmask 255.255.255.0gateway 172.16.0.1broadcast 172.16.0.255

В Centos/Redhat это файл /etc/sysconfig/network-scripts/route-eth0 для интерфейса eth0 если же название интерфейса другое, то название файла будет route-<название интерфейса>. Если этого файла нет, то его нужно создать. Для настройки выше указанного примера, добавьте в файл следующие строки

192.168.10.0/24 via 192.168.10.1

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

systemctl restart network

Принципы маршрутизации

Перед началом настройки стоит определиться с тем, для чего нужна маршрутизация вообще.Рассмотрим такую сеть:

Вот к примеру с компьютера ПК1 — 172.16.3.2 я хочу подключиться по telnet к L3-коммутатору с адресом 172.16.17.1.Как мой компьютер узнает что делать? Куда слать данные?

1) Как вы уже знаете, если адрес получателя из другой подсети, то данные нужно отправлять на шлюз по умолчанию.

2) По уже известной вам схеме компьютер с помощью ARP-запроса добывает MAC-адрес маршрутизатора.

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

4) А сам кадр при этом попадает сначала на коммутатор, где решается его судьба согласно таблице MAC-адресов. А потом достигает маршрутизатора RT1.

5) Поскольку маршрутизатор ограничивает широковещательный домен — здесь жизнь этого кадра и заканчивается. Циска просто откидывает заголовок канального уровня — он уже не пригодится — извлекает из него IP-пакет.

6) Теперь маршрутизатор должен принять решение, что с ним делать дальше. Разумеется, отправить его на какой-то свой интерфейс. Но на какой?Для этого существует таблица маршрутизации, которая есть на любом рутере. Выяснить, что у нас в данный момент находится в таблице маршрутизации, можно с помощью команды show ip route:

172.16.0.0/16 is variably subnetted, 10 subnets, 3 masksC 172.16.3.0/24 is directly connected, FastEthernet0/0.101C 172.16.2.0/30 is directly connected, FastEthernet0/1.4S 172.16.17.0/24 [1/0] via 172.16.2.2

Каждая строка в ней — это способ добраться до той или иной сети.

Вот к примеру, если пакет адресован в сеть 172.16.17.0/24, то данные нужно отправить на устройство с адресом 172.16.2.2.

Таблица маршрутизации формируется из:

— непосредственно подключенных сетей (directly connected) — это сети, которые начинаются непосредственно на нём. В примере 172.16.3.0/24 и 172.16.2.0/30. В таблице они обозначаются буквой

C

— статический маршруты — это те, которые вы прописали вручную командой

ip route

. Обозначаются буквой

S

— маршруты, полученные с помощью протоколов динамической маршрутизации (OSPF, EIGRP, RIP и других).

7) Итак, данные в сеть 172.16.17.0 (а мы хотим подключиться к устройству 172.16.17.1) должны быть отправлены на следующий хоп — следующий прыжок, которым является маршрутизатор 172.16.2.2. Причём из таблицы маршрутизации видно, что находится следующий хоп за интерфейсом FE0/1.4 (подсеть 172.16.2.0/30).

8)Если в ARP-кэше циски нет MAC-адреса, то надо снова выполнить ARP-запрос, чтобы узнать MAC-адрес устройства с IP-адресом 172.16.2.2. RT1 посылает широковещательный кадр с порта FE0/1.4. В этом широковещательном домене у нас два устройства, и соответственно только один получатель.

9) Изначальный IP-пакет, пришедший на RT1 не меняется, он инкапсулируется в совершенно новый кадр и отправляется в порт FE0/1.4, получая при этом метку 4-го влана.

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

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

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

Пример для Ubuntu/Debian

Чтобы прописать маршруты в ОС Ubuntu, проверьте существующие маршруты командой или :

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

Добавьте статический маршрут в подсеть 192.168.2.0 с 24 маской (255.255.255.0), в роли шлюза укажите, например, 192.168.0.100.
Команда будет выглядеть следующим образом:

Проверьте существующие маршруты:

Начиная с версии Ubuntu 17.10 Netplan используется по умолчанию как утилита для конфигурирования сетевых настроек.

В предыдущих версиях Ubuntu использовалась утилита и конфигурационный файл .

В нашем случае все образы OS Linux используют систему Cloud-init для инициализации системы при первом запуске.
В ОС Ubuntu утилита Netplan установлена, но не используется.

Обратите внимание! Если произойдет перезагрузка сервера, то маршрут пропадет, как и с семейством RHEL

Сохранение маршрута при перезагрузке сервера

Чтобы при перезагрузке сервера маршрут не пропал, нужно для соответствующего сетевого интерфейса, в нашем случае это , пропишите нужный маршрут в файле конфигурации :

  1. Отключите возможность настройки сети через Cloud-init и создайте файл:

  2. Добавьте в созданный файл необходимые параметры конфигурации Cloud-init, отключающие конфигурирование сети:

  3. Добавьте в файл конфигурации маршрут :

    Пример:

  4. Перезагрузите сервис:

    Для Ubuntu 18 используйте команду:

  5. Проверьте существующие маршруты:

Маршрут успешно прописался и не пропадет, если перезагрузить сервис.

Как прописать статический маршрут? И зачем он нужен?

В данной статье мы рассмотрим, что такое статический маршрут и зачем его вообще прописывать. Мы будем использовать так называемые «руты» или другими словами будем прописывать маршруты с помощью команды route add в командной строке Windows.

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

Для начала пару определений:

Статическая маршрутизация — вид маршрутизации, при котором маршруты указываются в явном виде при конфигурации маршрутизатора. Вся маршрутизация при этом происходит без участия каких-либо протоколов маршрутизации.

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

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

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

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

Это можно исправить как раз с помощью статического маршрута. Или другой случай, пригодится сисадминам, (пример из жизни) есть организация, у которой имеются небольшие удаленные офисы, связь с которыми идет по средствам OpenVPN. Был случай, когда мне пришлось узнать внешние ip адреса у этих удаленных офисов, я подключался к компьютеру по VPN сети и соответственно не мог узнать внешний ip, так как он мне бы показал внешний ip нашего VPN соединения. В итоге я просто на всего прописал один статический маршрут на удаленном компьютере, с помощью которого и попал на нужный мне сайт (который показывал внешний ip) и все. Есть, конечно, и другой вариант, съездить туда и узнать ip без подключения к VPN сети, но Вы сами понимаете, что на это нет времени и попросту неохота. Теперь Вы немного представляете, где и для чего Вам может пригодиться знание того, как прописываются статические маршруты.

Таблицы маршрутизации

Вывести таблицы маршрутизации. Ядро принимает решение о применении той или иной таблицы на основании адреса источника пакета. Эти таблицы применимы для всех пакетов.

# ip rule list
0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

Вывести содержимое таблицы local.

# ip route show table local

Таблица local. Пакет при выборе пути к месту назначения проверяется правилом с наименьшим приоритетом. Правило 0 отправит поиск маршрута в таблицу «local».

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

  • Таблица main — является основной и именно она используется, если в команде, связанной с маршрутизацией, не указано какую таблицу использовать. При поднятии интерфейсов в неё прописываются маршруты к подсетям интерфейсов, стартовые скрипты также заносят в эту таблицу значение шлюза по-умолчанию. Использование команды route add администратором также может дополнить таблицу маршрутами. В общем случае, таблица main всегда содержит подходящий для пакета маршрут (например шлюз по-умолчанию).
  • Таблица default изначально пуста.
  • Модификация таблицы маршрутизации:

    Добавление маршрута через шлюз: ip route add 172.16.10.0/24 via 192.168.1.1
    Добавление маршрута через интерфейс: ip route add 172.16.10.0/24 dev eth0
    Маршрут с метрикой: ip route add 172.16.10.0/24 dev eth0 metric 100

    Кроме add также поддерживаются и другие действия: del — удалить маршрут; replace — заменить маршрут другим; change — изменить параметры маршрута.

Policy-Routing. Маршрутизация для двух ISP

  • Статическая маршрутизация в Linux

  • Роутинг и policy-routing в Linux при помощи iproute2

  • Принцип работы Routing Policy DataBase

Пример 1. Создание таблицы для маршрутизации пакетов с определенного IP- адреса. Локальная сеть 10.26.95.0/24 имеет выход в Интернет с двух разных провайдеров – основной ISP1 (статика) и резервный ISP2 (Настройка DHCP сервера Linux, FreeBSD).

В файле /etc/iproute2/rt_tables для удобства задаются символьные имена таблиц, это не обязательно так как все таблицы имеют цифровые идентификаторы. Напримерecho ’82 velton’ >> /etc/iproute2/rt_tables

  • Маршрут по умолчанию для таблицы ’82 velton’

    ip route add default via 82.117.232.1 table 82
  • Внесем правила маршрутизация для пользователя с IP 10.26.95.5, после чего эта таблица станет доступна в выводе команды ip rule list. Теперь все пользователи шлют пакеты через ISP1, кроме пользователя с IP 10.26.95.251

    ip rule add from 10.26.95.25132 table 82
  • Очистить кеш маршрутизатора для вступления в силу сделанных изменений

    ip route flush cache

Пример 2. Создание таблицы для маршрутизации, когда часть сетей (AS) нужно маршрутизировать через резервного провайдер ISP2. Например, это может быть дешевая точка обменом трафика или ресурсы провайдера.

  • Создаем как в предыдущем примере маршрут по умолчанию для таблицы ’82 velton’

    ip route add default via 82.117.232.1 table 82
  • Прописываем статические маршруты на сети ISP2

    ip route add 82.117.224.019 via 82.117.234.15
    ip route add 85.90.192.019 via 82.117.234.15
  • Добавим rule для всех сетей

    ip rule add to 82.117.224.019 table 82
    ip rule add to 85.90.192.019 table 82
  • Очистить кеш маршрутизатора для вступления в силу сделанных изменений

    ip route flush cache
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector