iproute2 (iproute2)
iproute2 | |
---|---|
Тип | утилиты TCP/IP |
Разработчики | Stephen Hemminger[1], ранее Alexey Kuznetsov |
Написана на | Си |
Операционная система | Linux |
Первый выпуск | 15 апреля 2004 |
Последняя версия | |
Репозиторий | git.kernel.org/pub/scm/n… |
Лицензия | GNU GPL v2+ |
Сайт | linuxfoundation.org/coll… |
iproute2 — набор утилит для управления параметрами сетевых устройств в ядре Linux. Эти утилиты были разработаны в качестве унифицированного интерфейса к ядру Linux, которое непосредственно управляет сетевым трафиком.
Основные сведения
[править | править код]iproute2 заменил полный набор классических сетевых утилит UNIX, которые ранее использовались для настройки сетевых интерфейсов, таблиц маршрутизации и управления arp‐таблицами: ifconfig, route, arp, netstat и других, предназначенных для создания IP‐туннелей. iproute2 предлагает унифицированный синтаксис для управления самыми разными аспектами сетевых интерфейсов. Этот синтаксис во многом проще и логичнее, чем синтаксис наследованных *nix утилит, и подобен синтаксису операционной системы Cisco IOS.
Набор утилит включает в себя три основные программы:
- ip — утилита для просмотра параметров и конфигурирования сетевых интерфейсов, сетевых адресов, таблиц маршрутизации, правил маршрутизации, arp‐таблиц, IP‐туннелей, адресов multicast рассылки, маршрутизацией multicast пакетов.
- tc — утилита для просмотра и конфигурирования параметров управления трафиком (tc — аббревиатура от traffic control). Позволяет управлять классификацией трафика, дисциплинами управления очередями для различных классов трафика либо целиком для сетевого интерфейса (корневые дисциплины), что, в свою очередь, позволяет реализовать QoS в нужном для системы объёме:
- 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 . Дата обращения: 9 января 2010. Архивировано 5 августа 2009 года.
- ↑ Index of /pub/linux/utils/net/iproute2/
- ↑ Release v6.12.0 · iproute2/iproute2 (англ.)
См. также
[править | править код]Ссылки
[править | править код]- Текущий официальный сайт (англ.)
- Продолжение по мотивам статьи для системных администраторов старой закалки, которая поможет перейти на iproute2 с legacy-утилит
- Тяжелое расставание с Net-Tools, Хабрахабр, Микаел temujin Григорян
Для улучшения этой статьи желательно:
|