Scope link что это

Маршрутизация на основе политик. Часть первая

Так будет выглядеть роутинг при использовании на интерфейсе enp0s3 ip-адреса 192.168.110.50 с маской подсети 255.255.255.0 и шлюзом по умолчанию 192.168.110.1 :

Вторая запись означает:

Маршрутизация на основе политик

Существуют два механизма маршрутизации: классический destination-routing (на основе адреса назначения) и сравнительно новый policy-routing (на основе политик). Маршрутизация на основе политик применяется в случае наличия нескольких сетевых интерфейсов и необходимости отправлять определенные пакеты через определенный интерфейс. Маршрут пакета определяется не только на основе адреса назначения — есть возможность анализа практически любых полей пакета.

В основе маршрутизации с использованием политик лежат четыре понятия:

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

Давайте посмотрим на содержимое таблицы local :

Что такое scope link мы уже знаем, но здесь еще встречается scope host :

Таблица unspec — это псевдо-таблица, которая содержит в себе правила всех таблиц маршрутизации системы. Именно поэтому у нее номер ноль, который не входит в диапазон с 1 по 255.

Правила маршрутизации

Как же ядро выбирает, в какую таблицу отправлять пакеты? Мы уже знаем — для этого есть правила:

Число в начале строки — идентификатор правила, from all — условие, означает пакеты с любых адресов, lookup указывает, в какую таблицу направлять пакет. Если пакет подпадает под несколько правил, то он проходит их все по порядку возрастания идентификатора. Конечно, если пакет подпадет под какую-либо запись маршрутизации, то последующие записи маршрутизации и последующие правила он уже проходить не будет.

Источник

Как использовать команду ip в Linux

Вы можете настроить IP-адреса, сетевые интерфейсы и правила маршрутизации на лету с помощью команды Linux ip. Мы покажем вам, как вы можете использовать эту современную замену классическому (и теперь устаревшему) ifconfig.

Как работает команда ip

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

Команда ip имеет много подкоманд, каждая из которых работает с типом объекта, таким как IP-адреса, маршруты и т.д. В свою очередь, имеется много вариантов для каждого из этих объектов. Именно это богатство функциональности даёт команде ip гранулярность, необходимую для выполнения сложных задач.

Объекты, с которыми работает команда ip

Общий синтаксис команды ip следующий:

ОБЪЕКТАМИ в команде ip являются:

Мы рассмотрим следующие объекты:

Использование ip с адресами

Очевидно, что сначала вы должны знать настройки, с которыми вы имеете дело. Чтобы узнать, какие IP-адреса у вашего компьютера, используйте команду ip с объектом address. Действием по умолчанию является show, которое перечислит IP-адреса. Вы также можете опустить show и сокращать написание address до «addr» или даже до «a».

Все следующие команды эквивалентны:

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Мы видим два IP-адреса, а также много другой информации. IP-адреса связаны с контроллерами сетевого интерфейса (NIC). Команда ip пытается быть полезной и предоставляет много информации об интерфейсе.

Первый IP-адрес — это (внутренний) петлевой адрес, используемый для связи внутри компьютера. Второй фактический (внешний) IP-адрес, который компьютер имеет в локальной сети (LAN).

Кроме петлевого интерфейса lo, также имеются следующие:

Давайте разберём всю информацию, которую мы получили по первому интерфейсу:

Физические интерфейсы, как мы покажем ниже, более интересны. Рассмотрим два физических интерфейса: один из них не задействован (провод не подключён), а второй используется (беспроводной Wi-Fi адаптер).

Неиспользуемый сетевой интерфейс:

Используемый сетевой интерфейс:

Отображать только адреса IPv4 или IPv6

Если вы хотите ограничить вывод IP-адресами версии 4, вы можете использовать опцию -4 следующим образом:

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Если вы хотите ограничить вывод IP-адресами версии 6, вы можете использовать опцию -6 следующим образом:

Источник

Блог о системном администрировании. Статьи о Linux, Windows, СХД NetApp и виртуализации.

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что этоДоброго времени, уважаемые читатели и гости моего блога. Сегодня хочу углубить наши и ваши знания в понимании статической маршрутизации в Linux. Упор в статье будет сделан на работу с iproute и на маршрутизации на основе политик (Policy Routing). Для понимания того, о чем пойдет речь необходимо в обязательном порядке прочитать статьи «Основные понятия сетей», «Настройка сети в Linux» и «Настройка сети в Linux с помощью iproute».

Пару вступительных слов о маршрутизации

Маршруты в Linux могут появляться различными способами. Во-первых, как я уже говорил, при поднятии сетевого интерфейса появляется соответствующий маршрут в локальную сеть, куда смотрит интерфейс. Во-вторых, маршруты могут добавляться в ручную. Это называется статическая маршрутизация. В-третьих, маршруты могут формироваться динамически, базируясь на информации о топологии и состоянии сети, получаемой с помощью протокола динамической маршрутизации. Это называется динамической маршрутизацией. Динамической маршрутизацией в Linux заведует демон gated или routed, возможно еще какой-то о котором я не знаю Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

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

Маршрутизация на основе политик (Policy Routing)

Routing Policy DataBase (RPDB)

Давайте рассмотрим работу Routing Policy в схеме и разберем порядок работы:Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

1. Правила (rules)

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

Каждое правило имеет свой приоритет от 0 до 32767, в соответствии с которым ядро просматривает данные правила. При старте системы по умолчанию создаются следующие правила:

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

Управление правилами осуществляется с помощью команды ip с ключом rule. Вот некоторые примеры:

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

Итак, следующим шагом на пути пакета по сетевой подсистеме ядра будет таблица маршрутизации, в которую пакет будет направлен соответствующим правилом. Ядро использует несколько таблиц маршрутизации с номерами от 1 до 255. Сопоставление номеров таблиц к их именам задается в файле /etc/iproute2/rt_tables. Фактически, задавать имена таблиц их номерным идентификаторам нет необходимости (в правилах можно просто использовать номера таблиц). По умолчанию при создании маршрута в Linux, если не задано имя таблицы, то используется таблица с ID 254 (main). Кроме таблицы main в ядре зарезервированы следующие имена:

Просмотреть содержимое таблицы можно командой ip (на примере таблицы main):

3. Маршруты/правила

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

Управление правилами в таблице маршрутизации осуществляется с помощью команды ip с ключом route.

Выбор IP-адреса для исходящих соединений

Выбор локального адреса для исходящих соединений в большинстве случаев системой осуществляется автоматически, исходя из имеющихся IP-адресов интерфейсов и таблиц маршрутизации. Во многих случаях сетевые сервисы (веб-сервер, почтовый сервер и др.) позволяют указывать исходный адрес с помощью конфигурационных файлов. Давайте рассмотрим пример. Пусть система имеет два интерфейса eth0(192.168.1.1/24) и eth1(192.168.56.102/24):

Однако, если добавить альтернативный маршрут для сети 192.168.3.0/24 через некоторый шлюз 192.168.1.254:

то, для пакетов, предназначенных узлу 192.168.3.4, будет использоваться интерфейс eth0 и исходящий адрес 192.168.1.1 (показан дамп сетевого пакета):

Синтаксис команды ip route позволяет повлиять на выбор локального IP-адреса при соединении с удаленными системами. Для этого служит параметр src с указанием предпочитаемого IP-адреса (должен быть установлен на сетевом интерфейсе компьютера) для отправки пакетов на направление, определяемое в команде префиксом маршрутизации. Так, для указанной ниже конфигурации будет использоваться исходящий адрес 192.168.56.102 (кроме взаимодействия с узлами сети 192.168.1.0/24):

Для того, чтобы использовать исходный адрес 192.168.1.10 для соединения с узлами сети 192.168.3.0/24 следует использовать команду:

Таблица маршрутизации при этом будет иметь вид:

Добавление альтернативного маршрута для «избранных» хостов

Добавить описание дополнительной таблицы маршрутизации в файл /etc/iproute2/rt_tables (это действие необязательно, можно использовать просто номер таблицы)

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

Добавить новый маршрут по умолчанию, отправляющий пакеты на хост 12.13.14.100 в новую таблицу маршрутизации

Краткие итоги

Что еще почитать

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Команда IP в Linux: руководство с примерами

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

В этом руководстве мы рассмотрим все важные операции, которые команда ip может выполнять в Linux.

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Как использовать команду ip

Команда ip имеет следующий синтаксис:

К объектам OBJECT (или подкомандам), которые вы будете использовать чаще всего, относятся:

Они могут использоваться как в полной, так и сокращенной форме.

Есть много других доступных объектов и команд. Чтобы увидеть полный список, введите следующую команду:

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Для выполнения команд вы можете использовать либо полную, либо сокращенную формы. Например, ip link и ip l будут давать одинаковые результаты.

При настройке сетевых интерфейсов вы должны запускать команды как пользователь root или пользователь с привилегиями sudo. В противном случае вы увидите сообщение RTNETLINK answers: Operation not permitted

Предупреждение: по умолчанию система не сохраняет изменения перманентно. После перезапуска Linux-сервера вновь измененное состояние будет потеряно. Есть два способа сделать ваши настройки постоянными: добавить команды в сценарий запуска или отредактировать дистрибутивные файлы конфигурации.

Управление и отображение сетевых интерфейсов

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Получить информацию о сетевом интерфейсе

Чтобы увидеть информацию канального уровня обо всех доступных устройствах (у которых загружен драйвер), используйте команду:

Если вы хотите, чтобы команда отображала информацию для одного конкретного устройства, введите следующее:

Чтобы просмотреть статистику по всем сетевым интерфейсам (такие детали, как переданные или отброшенные пакеты или даже ошибки), используйте:

Вы также можете увидеть аналогичную информацию для отдельного сетевого интерфейса:

Чтобы увидеть список только работающих интерфейсов, используйте:

Изменить статус сетевого интерфейса

Если вы хотите включить сетевой интерфейс, используйте команду:

Отключите интерфейс, введя:

Команда ip link позволяет вам изменять очередь передачи, ускоряя или замедляя интерфейсы в соответствии с вашими потребностями и аппаратными возможностями.

Вы можете установить MTU (Maximum Transmission Unit) для улучшения производительности сети:

Чтобы узнать все опции команды link, наберите:

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Мониторинг и управление IP-адресами

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Мониторинг IP-адресов

Выведите все устройства с помощью следующей команды:

Чтобы вывести список всех сетевых интерфейсов и связанных IP-адресов, используйте команду:

Вы также можете увидеть информацию об отдельной сети:

Чтобы получить список всех IPv4 адресов, используйте:

Чтобы получить список всех IPv6 адресов, используйте:

Как добавить IP-адрес в Linux

Добавьте IP-адрес в интерфейс с помощью команды:

Если указанный интерфейс не существует, отобразится сообщение: Cannot find device [interface]

Чтобы добавить два адреса на один интерфейс также используйте эту команду:

Если вам нужно добавить широковещательный (broadcast) адрес для интерфейса, используйте команду:

Чтобы удалить IP-адрес из интерфейса, выполните следующие действия.

Управление и отображение таблицы IP-маршрутизации

Просмотрите полный список команд ip route с помощью следующей команды:

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Показать таблицу маршрутизации IP

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

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

Чтобы просмотреть маршрутизацию для отдельной сети, используйте следующий синтаксис:

Изменить таблицу IP-маршрутизации

Чтобы добавить новую запись в таблицу маршрутизации, введите команду:

Или вы можете добавить новый маршрут через шлюз, набрав:

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

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

Отображение и изменение IP-записей соседей

При помощи команды ip neigh можно манипулировать таблицами ARP (Address Resolution Protocol). Это аналог команды arp

Для получения полного списка всех параметров команды neigh используйте:

Scope link что это. Смотреть фото Scope link что это. Смотреть картинку Scope link что это. Картинка про Scope link что это. Фото Scope link что это

Отображение IP-адресов соседей

Чтобы отобразить таблицы соседей, используйте следующую команду:

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

Изменить IP-записи соседей

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

Или удалите существующую запись ARP:

Источник

Scope link что это

Большинство дистрибутивов Linux, впрочем как и UNIX, для настройки сети и маршрутизации используют команды ifconfig, arp и route. Однако в Linux, начиная с ядра 2.2, была полностью переделана сетевая система и были добавлены новые возможности, которые ранее требовали дополнительных утилит, такие как маршрутизация на основе правил, управление трафиком и т.д. К этим возможностям предоставляет доступ пакет программ iproute2, который в настоящее время входит в большинство современных дистрибутивов.

Утилита ip объединяет в себе возможности команд ifconfig, arp и route, рассмотрим синтаксис команды:

ip [Опции] Объект [ Команда [Аргументы команды] ]

В настоящее время доступны следующие опции:

Команда описывает действие над Объектом.

Доступные команды: set и show (или list).

Выведем информацию о состоянии интерфейса eth0

# ip link ls dev eth0

В результате получим:

eth0: mtu 1500 qdisc cbq qlen 100
link/ether 00:04:61:92:21:1d brd ff:ff:ff:ff:ff:ff

Выведем статистику интерфейса eth0

2: eth0: mtu 1500 qdisc cbq qlen 100
link/ether 00:04:61:92:21:1d brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
2891892504 15070935 0 0 0 0
TX: bytes packets errors dropped carrier collsns
3139067270 54387014 0 0 0 132934

ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias

Данная команда добавляет адрес 10.0.0.1/24 с маской подсети 255.255.255.0 со стандартным широковещательным адресом и именем eth0:Alias.

ip addr del 127.0.0.1/8 dev lo

Удаляет адрес 127.0.0.1/8 с устройства lo.

Пример работы команды:

$ ip addr ls eth0
3: eth0: mtu 1500 qdisc cbq qlen 100
link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff
inet 193.233.7.90/24 brd 193.233.7.255 scope global eth0
inet6 3ffe:2400:0:1:2a0:ccff:fe66:1878/64 scope global dynamic
valid_lft forever preferred_lft 604746sec
inet6 fe80::2a0:ccff:fe66:1878/10 scope link
[email protected]:

Сокращения: route, ro, r.

Сокращения: add, a; change, chg; replace, repl.

Добавляем маршрут к сети 10.0.0/24 через 193.233.7.65

ip route add 10.0.0/24 via 193.233.7.65

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

ip route add default scope global nexthop dev ppp0
nexthop dev ppp1

Сокращения: delete, del, d.

Аргументы: Аргументы данной команды сходны с ip route add.

Удаляем маршрут, созданный в предыдущем разделе.

ip route del default scope global nexthop dev ppp0
nexthop dev ppp1

Сокращения: rule, ru

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

Сокращения: add, a; delete, del, d

Маршрутизировать пакеты с сети 192.203.80.0/24 согласно таблицы example.

ip ru add from 192.203.80.0/24 table example prio 220

Рассмотрим примеры использования маршрутизации на основе правил.

1. Пусть у нас есть два канала в интернет: быстрый модем с IP адресом 212.64.94.251, связанный PPP c 212.64.94.1, и медленный c 212.64.78.148, связанный PPP c 195.96.98.253. Надо пакеты одного пользователя отправлять через медленный модем. Для этого сформируем новое правило:

# echo 200 User >> /etc/iproute2/rt_tables
# ip rule add from 10.0.0.10 table John
# ip rule ls
0: from all lookup local
32765: from 10.0.0.10 lookup John
32766: from all lookup main
32767: from all lookup default

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

# ip route add default via 195.96.98.253 dev ppp2 table John
# ip route flush cache

2. Необходимо направить весь трафик на 80 порт через сетевую карту eth0. Пометим пакеты, идущие на 80 порт.

Создадим правила для помеченных пакетов.

# echo 202 www.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 2 table www.out
# ip route add default via 10.0.0.2 dev eth0 table www.out
# ip route flush cache

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ:

Источник

Добавить комментарий

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