Обзор пакета iproute2 iproute2 - это набор утилит для управления параметрами сетевых устройств в ядре Linux. Пакет iproute2 был разработан в качестве унифицированного интерфейса к ядру Linux, которое непосредственно управляет сетевым трафиком. "Под катом" обзор утилит составляющих пакет iproute2, небольшая шпаргалка по их основным параметрам и ссылки на перевод man станиц (а вдруг кому пригодится).

iproute2 заменил собой набор привычных сетевых утилит UNIX, которые ранее использовались для настройки сетевых интерфейсов, таблиц маршрутизации и управления arp‐таблицами: ifconfig, route, arp, netstat и других, предназначенных для создания IP‐туннелей. iproute2 предлагает унифицированный синтаксис для управления самыми разными аспектами сетевых интерфейсов. Этот синтаксис во многом проще и логичнее, чем синтаксис наследованных *nix утилит, и подобен синтаксису операционной системы Cisco IOS.

Набор утилит включает в себя три основные программы:

  • ip — утилита для просмотра параметров и конфигурирования сетевых интерфейсов, сетевых адресов, таблиц маршрутизации, правил маршрутизации, arp‐таблиц, IP‐туннелей, адресов multicast рассылки, маршрутизацией multicast пакетов.
  • tc — утилита для просмотра и конфигурирования параметров управления трафиком (tc — аббревиатура от traffic control). Позволяет управлять классификацией трафика, дисциплинами управления очередями для различных классов трафика либо целиком для сетевого интерфейса (корневые дисциплины), что, в свою очередь, позволяет реализовать QoS в нужном для системы объёме:
    • разделение разных типов трафика по классам (не только по битам ToS в IP‐пакете, но и по другим данным из заголовка IP‐пакета)
    • назначение разных дисциплин обработки очередей трафика с разным приоритетом, механизмами прохождения очереди, ограничениями по скорости и т. п.
  • ss — утилита для просмотра текущих соединений и открытых портов. Аналог традиционной утилиты netstat.

Автором iproute2 является Алексей Кузнецов (Alexey Kuznetsov). Он разработал этот пакет, когда занимался расширением сетевых возможностей ядра Linux.

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

tc

tc используется для настройки системы контроля трафика (Traffic Control) ядра Linux. Система контроля трафика состоит из:

  • ОГРАНИЧЕНИЕ ИСХОДЯЩЕГО ТРАФИКА (SHAPING) - Когда трафик сформирован, его полоса пропускания начинает контролироваться. Ограничение может дать больше, чем уменьшение полосы пропускания - оно также используется для сглаживания пиков для более прогнозируемого поведения сети.
  • ПЛАНИРОВАНИЕ (SCHEDULING) - Планирование передачи пакетов позволяет увеличить интерактивность исходящего трафика при гарантировании полосы пропускания для передачи данных большого объема. Такое упорядочение также называется приоритезацией и применяется для исходящего трафика.
  • ОГРАНИЧЕНИЕ ВХОДЯЩЕГО ТРАФИКА (POLICING) - механизм, с помощью которого можно ограничить количество пакетов или байт в потоке входящего трафика, соответствующих определенной классификации.
  • ОТБРАСЫВАНИЕ (DROPPING) - Трафик, превышающий установленную полосу пропускания, может быть отброшен как для входящего, так и исходящего трафика.

Обработка трафика контролируется тремя типами объектов: очередями (qdiscs), классами и фильтрами.

Следующие команды доступны для очередей, классов и фильтров:

  • add (добавить) - Добавить очередь, класс или фильтр в объект. Обязательно должен быть указан параметр родителя parent , в виде идентификатора или 'root' для обозначения самого верхнего уровня устройства. При создании очереди или фильтра он может быть именован с помощью параметра handle . Класс именуется с помощью параметра classid .
  • remove (удалить) - Очередь удаляется по 'handle' (допустимо указание имени 'root'). Все подклассы и их очереди, а также фильтры автоматически удаляются.
  • change (изменить) - Некоторые объекты могут быть изменены по месту. Эта команда использует такой же синтаксис, как и 'add', за исключением не изменяемого параметра 'handle', чтобы не допустить перемещение объекта в дереве.
  • replace (заменить) - Удаляет и добавляет новый объект по идентификатору. Если объект не существует, он будет создан.
  • link (связать) - Доступно только для очередей. Заменяет существующий объект.

Более подробное описание можно найти тут

ss

ss - команда для просмотра текущих соединений и открытых портов (аналог netstat).

  • -r, --resolve Разрешать (то бишь, пробивать в NDS и показывать) имена хостов.
  • -a, --all Показать все открытые соединения
  • -l, --listening Показать "прослушиваемые" порты
  • -p, --processes Показывать процессы использующие соединения
  • -4, --ipv4 Показывать только IP4 соединения
  • -6, --ipv6 Показывать только IP6 соединения
  • -t, --tcp Показывать только TCP соединения
  • -u, --udp Показывать только UDP соединения

Более подробное описание можно найти тут

ip

ip — утилита из пакета iproute2. Позволяет настраивать сетевую подсистему и является заменой ifconfig, route, arp.

Для выполнения какой-либо операции после команды ip указывается «объект» и команда (возможно с аргументами), которая должна быть выполнена для этого объекта. В качестве «объектов» можно указывать значения link, addr (адреса сетевых интерфейсов), route (маршруты), rule (правила), neigh, ntable, tunnel (тоннели), maddr, mroute, monitor, xfrm. Вместо полного имени объекта можно указывать только первые буквы, если это не вызывает неоднозначность. Можно указать команду help для вывода справочной информации. Если указать объект без команды, выполняется команда show — распечатывается список объектов указанного типа

Синтаксис: IP <объект> <команда>
Объект Команды Описание
address  add | del  IP- или IPv6-адрес устройства 
show | flush
addrlabel  add | del  Конфигурирование меток 
list | flush
link  set  Конфигурирование сетевых устройств 
show
maddr  show Конфигурирование адресов групповой рассылки
add | del
monitor all | LISTofOBJECTS  Мониторинг состояния устройств
 mroute show  Кэш групповой маршрутизации
 neighbour  add | del | change | replace  Кэш ARP или NDISC 
show | flush
 route   get  Управление маршрутизацией  
list / flush
add | del | change | append | replace | monitor
 rule list | add | del | flush  Правила маршрутизации
 tunnel add | change | del | show  Туннелирование через протокол IP

 

 Более подробное описание можно найти тут

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


Защитный код
Обновить