iproute2
iproute2 — это набор утилит для управления параметрами сетевых устройств в ядре Linux. Эти утилиты были разработаны в качестве унифицированного интерфейса к ядру Linux, которое непосредственно управляет сетевым трафиком.
iproute2 | |
---|---|
Тип | утилиты TCP/IP |
Разработчики | Stephen Hemminger[1], ранее Alexey Kuznetsov |
Написана на | Си |
Операционная система | Linux |
Первый выпуск | 15 апреля 2004 |
Последняя версия | |
Лицензия | GNU GPL v2+ |
Сайт | linuxfoundation.org/coll… |
Основные сведения
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.
Утилита ip
ip — утилита командной строки из пакета iproute2 для систем Linux. Она позволяет выполнять настройку сетевой подсистемы и является заменой таких утилит как: ifconfig, route, arp. В следующей таблице показаны предлагаемые замены.
Устаревшая утилита | Заменена на | Описание |
---|---|---|
ifconfig |
ip addr , ip link |
Настройка сетевого адреса, включение и выключение интерфейса |
route |
ip route |
Управление таблицами маршрутизации |
arp |
ip neigh |
Управление ARP-кэшем |
iptunnel |
ip tunnel |
Настройка тоннелей |
nameif |
ifrename |
Переименование сетевого интерфейса |
ipmaddr |
ip maddr |
Настройка мультикаст-групп рассылки |
netstat |
ip -s , ss , ip route |
Отображение различной сетевой статистики |
Для выполнения какой-либо операции после основной команды ip, указывается «объект» и команда (возможно с аргументами), которая должна быть выполнена для этого объекта.
В качестве «объектов» можно указывать следующие значения: link, addr (адреса сетевых интерфейсов), route (маршруты), rule (правила), neigh, ntable, tunnel (тоннели), maddr, mroute, monitor, xfrm. Вместо полного имени объекта можно указывать только первые буквы, если это не вызывает неоднозначность.
Можно указать команду help, для вывода подсказки. Если не указывать объект, но указать команду help, то выводится справка о программе. Если указать объект без команды, то выполняется команда show — распечатывается список объектов указанного типа.
Команда | Комментарий |
---|---|
ip help | Вывод общей справки |
ip a h
Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ] [ CONFFLAG-LIST] ip addr del IFADDR dev STRING ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ] SCOPE-ID := [ host | link | global | NUMBER ] FLAG-LIST := [ FLAG-LIST ] FLAG FLAG := [ permanent | dynamic | secondary | primary | tentative | deprecated | CONFFLAG-LIST ] CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG CONFFLAG := [ home | nodad ] LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ] LFT := forever | SECONDS |
Распечатка подсказки — команд и их аргументов для объекта addr. Заметьте, что вместо слов addr и help указаны сокращения. |
ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:16:17:eb:a9:da brd ff:ff:ff:ff:ff:ff
inet 172.22.2.1/16 brd 172.22.255.255 scope global eth1
inet6 fe80::216:17ff:feeb:a9da/64 scope link
valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:16:17:eb:d3:20 brd ff:ff:ff:ff:ff:ff
inet 10.19.121.211/22 brd 10.19.123.255 scope global eth2
inet6 fe80::216:17ff:feeb:d320/64 scope link
valid_lft forever preferred_lft forever
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast qlen 3
link/ppp
inet 89.37.48.117 peer 81.9.101.117/32 scope global ppp0 |
Распечатка всех (физических и виртуальных интерфейсов). Для сравнения приводится информацией, выводимая командой ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:16:17:EB:A9:DA
inet addr:172.22.2.1 Bcast:172.22.255.255 Mask:255.255.0.0
inet6 addr: fe80::216:17ff:feeb:a9da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13444859 errors:0 dropped:0 overruns:0 frame:0
TX packets:7073798 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2540456241 (2422.7 Mb) TX bytes:916670636 (874.2 Mb)
Interrupt:16 Base address:0x2000
eth2 Link encap:Ethernet HWaddr 00:16:17:EB:D3:20
inet addr:10.19.121.211 Bcast:10.19.123.255 Mask:255.255.252.0
inet6 addr: fe80::216:17ff:feeb:d320/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:266115675 errors:0 dropped:0 overruns:0 frame:0
TX packets:409606457 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:294857473 (281.1 Mb) TX bytes:109522306 (104.4 Mb)
Interrupt:17 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3480203 errors:0 dropped:0 overruns:0 frame:0
TX packets:3480203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1531400801 (1460.4 Mb) TX bytes:1531400801 (1460.4 Mb)
ppp0 Link encap:Point-to-Point Protocol
inet addr:89.37.48.117 P-t-P:81.9.101.117 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:46940444 errors:0 dropped:0 overruns:0 frame:0
TX packets:66480329 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:3859205550 (3680.4 Mb) TX bytes:1343026828 (1280.8 Mb) |
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:16:d4:b3:68:de brd ff:ff:ff:ff:ff:ff |
Вывод информации об интерфейсах. Напоминает данные, выводимые об адресах, но намного короче, так как указываются только физические адреса интерфейсов и не выводятся логические IP/IPv6. |
ip rou81.9.101.117 dev ppp0 proto kernel scope link src 89.37.48.117 10.19.120.0/22 dev eth2 proto kernel scope link src 10.19.121.211 172.22.0.0/16 dev eth1 proto kernel scope link src 172.22.2.1 127.0.0.0/8 dev lo scope link default via 81.9.101.117 dev ppp0 |
Список сетевых маршрутов. |
ip ro flush cache | Очистка кэша маршрутов. |
ip ro add 81.9.100.12 via 89.37.48.117 dev ppp0 | Добавление нового маршрута. |
ip ru0: from all lookup local 32764: from 192.168.72.115 lookup co-tbl 32765: from 89.37.48.117 lookup zet-tbl 32766: from all lookup main 32767: from all lookup default |
Распечатка правил маршрутизации. Заметьте что в данном случае используются несколько таблиц маршрутизации. |
ip t tunl0: ip/ip remote any local any ttl inherit nopmtudisc
|
Распечатка списка тоннелей. |
Примечания
- Stephen Hemminger
- [ANNOUNCE iproute2 5.16]
См. также
- ip (утилита Unix)
- route