- Настройка сетевой маршрутизации Linux – команда route
- Как работает маршрутизация?
- Синтаксис и основные опции
- Примеры использования
- Как настроить маршрутизацию в Linux
- Маршруты, которые необходимы для поставки пакетов до конечного назначения, настраиваются в интерфейсе или маршрутизаторе. Если перед компьютером стоит задача отправить пакет в сеть, он смотрит таблицу маршрутизации, в которой перечислены IP-адреса пунктов назначения и адреса интерфейсов и роутеров в домашней сети, которые могут отправить пакет по нужному адресу. Если для цели маршрут не указан, то в первую очередь задействуется так называемый шлюз по умолчанию или маршрут по умолчанию. Точно такая же картина наблюдается на роутере. Устройство смотрит на IP-адрес назначения и сверяет его со своей таблицей маршрутизации, а потом отправляет дальше. Дальше на примере рассмотрим, как настроить определенные маршруты и создать новые.
- Смотрим таблицу маршрутизации
- Настраиваем маршруты
- Маршрутизация в Linux
- Материал из Xgu.ru
- Содержание
- [править] Команды
- [править] Использование route
- [править] Использование ip
- [править] Действия с маршрутами
- [править] Equal Cost Multi Path
- [править] IPv6
- [править] Просмотр маршрутов до определенной сети
- [править] Пересылка пакетов между интерфейсами
- [править] Конфигурационные файлы
- [править] Policy routing
- Просмотр и построение таблиц маршрутизации в Linux
- Что такое маршрутизация
- Как посмотреть таблицу маршрутизации
- Команда route
- Команда netstat
- Построение таблицы маршрутизации
- Route
- Ключи
- Основные опции (command)
- Обозначения
- Опции для указания вводных данных
- IP Route
- Основные опции (command)
- Обозначения
- Опции для указания вводных данных
- Примеры статической маршрутизации
- Составление нового маршрута
- Изменение локальной сети
- Изменение адреса тоннеля
- Изменение провайдера
Настройка сетевой маршрутизации Linux – команда route
Для определения и задания маршрутов в сетях существуют динамическая и статическая маршрутизации. В первом случае маршруты задаются специальным демоном маршрутизации, который модифицирует соответствующим образом таблицу маршрутизации ядра. Во втором случае маршруты задаются администратором/пользователем при помощи команды route. Маршруты, заданные командой route не изменяются, даже если включена динамическая маршрутизация.
Как работает маршрутизация?
Прежде всего нужно понимать, что процессы маршрутизации осуществляются на сетевом уровне. Для каждого пакета проводится сравнение его целевого IP-адреса с записями в таблице маршрутизации. Когда обнаруживается хотя бы частичное соответствие с одним из шлюзов в таблице, пакет направляется к следующему узлу (шлюзу), соответствующему найденному маршруту. И здесь может возникать несколько ситуаций:
Первая — когда, например, пакет адресуется компьютеру, находящемуся в той же сети, что и источник пакета, а точнее сказать — его отправитель. В данной ситуации для такого пакета следующим шлюзом является один из локальных интерфейсов и он (пакет) отправляется сразу к адресату. Такие «явные» и «короткие» шлюзы обычно задаются во время конфигурирования сетевых интерфейсов — командой ifconfig.
Вторая — когда адрес назначения пакта не соответствует ни одному шлюзу в таблице маршрутизации. В таком случае, во избежание коллизий в сети и её чрезмерной нагрузки должен быть задействован шлюз по-умолчанию. Другими словами, это такой маршрут, который указывает системному ядру: все остальные пакеты (без соответствий в таблице маршрутов) направляй сюда. Если шлюз по-умолчанию не будет предусмотрен, то отправляющей стороне посылается сообщение о недостижимости сети или узла.
Как правило, локальные сети имеют единственный шлюз во внешнюю среду, например в Интернет. В свою очередь, в сети Интернет таких «стандартных маршрутов» не существует.
Синтаксис и основные опции
Основное назначение команды route – добавление и удаление сетевых маршрутов для системного ядра, а также просмотр содержимого таблицы маршрутизации. Эта команда, хотя и работает в разных UNIX-подобных системах одинаково, однако имеет резко отличающийся синтаксис в зависимости от используемой системы.
В общем случае прототипом команды route является следующая запись:
Эта команда добавит шлюз с обратной связью через виртуальное устройство lo, которое используется для этой цели в Linux-системах. Опции -net и -host используются для указания адреса, характеризующего либо сеть, либо узел соответственно как пункты назначения. Для определения подсети служит опция netmask, для задания приоритета шлюза — опция metric. Сетевой интерфейс обозначается опцией dev. Кроме описанных выше для команды route также существуют и другие используемые ей опции, которые приведены в следующей таблице:
Опция
Назначение
Шлюз, через который должны достигаться сеть или узел. Задаётся в виде имени узла или точечной записи адреса.
Устанавливает значение MTU (максимальную величину пакета) в байтах.
Устанавливает размер TCP-окна для задаваемого шлюза в байтах. Обычно используется в сетях AX.25.
Устанавливает начальное время отклика для TCP-соединений по данному маршруту в миллисекундах.
Задаёт блокирующий маршрут, который должен приводить к остановке процедуры поиска маршрутов. Полезно при скрытии сетей для использования в них шлюз по-умолчанию.
Заставляет работать с таблицей маршрутизации ядра. Эта опция в большинстве систем используется по-умолчанию, поэтому часто опускается.
Заставляет работать с кэшем маршрутизации ядра.
Включает подробный режим работы команды route.
Использование числового формата адресов вместо попыток определения символьных наименований узлов. Можно использовать в случае определения проблем с соединениями к DNS.
Использовать формат вывода команды netstat для отображения содержимого таблицы маршрутов. Опция -ee сгенерирует самый подробный отчёт с полными наименованиями параметров таблицы маршрутов.
Примеры использования
Определить маршрут к сети, которая должна быть достигнута через сетевой интерфейс eth0:
Здесь для команды route не указывается сам интерфейс, поскольку предполагается, что узлу nodeone соответствует адрес 192.168.1.2. Далее, route «узнаёт», что маршрут нужно проложить именно через eth0 благодаря тому, что системное ядро анализирует все доступные интерфейсы на предмет их конфигурации и сравнивает адрес пункта назначения с сетевой частью сетевых (сконфигурированных) интерфейсов. В данном случае ядро обнаруживает, что eth0 – тот интерфейс (с адресом 192.168.1.2), которому соответствует конечный адрес, т. е. 192.168.1.0.
Задание шлюза по-умолчанию:
Доступ в локальную сеть Ethernet через сетевой интерфейс eth0:
Здесь 192.168.10.0 – сеть, к которой нужно установить доступ (маршрут).
Вывод содержимого таблицы маршрутов ядра осуществляется командой route без параметров, для подробных результатов используется опция -ee.
Также можно использовать сокращённую запись для задания маски подсети:
Следует отметить, что шлюзы, установленные командой 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 будет выглядеть следующим образом
В Centos/Redhat это файл /etc/sysconfig/network-scripts/route-eth0 для интерфейса eth0 если же название интерфейса другое, то название файла будет route- . Если этого файла нет, то его нужно создать. Для настройки выше указанного примера, добавьте в файл следующие строки
Также можно прописать и несколько дополнительных маршрутов, для этого просто указываем их в новой строке. После чего сохраняем файл и рестартуем сетевую службу
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Как настроить маршрутизацию в Linux
Маршруты, которые необходимы для поставки пакетов до конечного назначения, настраиваются в интерфейсе или маршрутизаторе. Если перед компьютером стоит задача отправить пакет в сеть, он смотрит таблицу маршрутизации, в которой перечислены IP-адреса пунктов назначения и адреса интерфейсов и роутеров в домашней сети, которые могут отправить пакет по нужному адресу. Если для цели маршрут не указан, то в первую очередь задействуется так называемый шлюз по умолчанию или маршрут по умолчанию. Точно такая же картина наблюдается на роутере. Устройство смотрит на IP-адрес назначения и сверяет его со своей таблицей маршрутизации, а потом отправляет дальше. Дальше на примере рассмотрим, как настроить определенные маршруты и создать новые.
Смотрим таблицу маршрутизации
Прежде чем начать что-либо менять, необходимо понять, какие правила уже используются. Для этого в операционной системе Линукс предусмотрено несколько команд. Для этого используем специальную команду route:
Именно так выглядит таблица маршрутизации linux. В ней предусмотрена простая информация, которой не всегда достаточно чтобы понять суть дела. Для получения более детальной информации необходимо пользоваться командой routel:
Здесь вы сможете увидеть IP адрес (target), IP адрес шлюза (gateway), IP отправителя (source), протокол, и даже сетевой интерфейс. Но есть более удобый способ посмотреть таблицу маршрутизации linux при помощи команды IP:
Мы видим результат, который похож с выводом предыдущей команды. Поскольку результата предоставлен в не самым удобном виде, можно использовать в качестве аргумента для ip route add или ip route del. Поверьте, это очень удобно. Так вы увидите в качестве шлюза по умолчанию везде используется 192.168.1.1. Дальше поговорим, что означает вывод этой команды:
- default — вариант по умолчанию. Здесь должен быть ip адрес цели или маска подсети;
- via 192.168.1.1 — указывает через какой шлюз мы можем добраться до этой цели, у нас это 192.168.1.1;
- dev enp2s0 — сетевой интерфейс, с помощью которого будет доступен этот шлюз;
- proto static — означает, что маршрут был установлен администратором, значение kernel значит что он был установлен ядром;
- metric — это приоритет маршрута, чем меньше значение — тем выше приоритет.
Дальше рассмотрим, как происходит настройка маршрутов Linux.
Настраиваем маршруты
У пользователя остается возможность настраивать таблицу маршрутизации с помощью команды ip. Например, чтобы изменить маршрут по умолчанию достаточно выполнить:
$ ip route add default via 192.168.1.1
Так вы можете добавить маршрут для любого IP адреса, например, для 243.143.5.25:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Итак, мы указываем IP адрес цели, а затем шлюз в локальной сети, через который можно достичь этого адреса. Проблема лишь в том, что такие марщруты активны до первой перезагрузки компьютера. После перезагрузки они автоматически удаляются. Чтобы исправить этот недостаток, маршруты нужно добавить в файл конфигурации.
Например, в системах семейства Red Hat есть конфигурационные файлы /etc/sysconfig/network-scripts/route-ethX. Каждый файл может описывать несколько маршрутов, например:
В этом файле конфигурации используется gateway, это щлюз для интерфейса, netmask — маска сети, а ipaddr — ip адрес интерфейса. В Debian и основанных на нем дистрибутивах можно настроить маршруты в файле /etc/network/interfaces. Здесь команда route добавляется в секцию iface. Например:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
При помощи опии -net мы указываем целевую сеть, netmask — это маска сети, а gw — шлюз. Ничего сложного в этом нет. Теперь добавленные маршруты останутся даже после перезагрузки.
Так мы рассмотрели как работает маршрутизация в Linux, как выполняется настройка маршрутизации в linux, а также зачем это нужно.
Источник
Маршрутизация в Linux
Материал из Xgu.ru
Linux предоставляет большой набор функций для маршрутизации и инструменты для ее настройки. Ядро 2.6.x поддерживает:
- Простую статическую маршрутизацию.
- Equal Cost Multi Path маршруты (маршруты до одной сети с одинаковым весом, которые выбираются с равной вероятностью).
- Blackhole-маршруты.
- Множественные таблицы маршрутизации.
- Policy Based Routing