The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка сетевых интерфейсов и маршрутизации с помощью iproute2 (linux route interface)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: linux, route, interface,  (найти похожие документы)
From: Вадим Федоров <fedorov@vadim.org.ua> Newsgroups: http://vadim.org.ua Date: Mon, 24 Apr 2003 13:01:37 +0000 (UTC) Subject: Настройка сетевых интерфейсов и маршрутизации с помощью iproute2 http://www.vadim.org.ua/index.php?cmd=article2 http://linuxshop.ru/linuxbegin/article297.html НАСТРОЙКА СЕТЕВЫХ ИНТЕРФЕЙСОВ И МАШРУТИЗАЦИЯ С ПОМОЩЬЮ ПАКЕТА IPROUTE 2 Вадим Федоров <fedorov@vadim.org.ua> Большинство дистрибутивов Linux, впрочем как и UNIX для настройки сети и маршрутизации используют команды ifconfig, arp и route. Однако в Linux, начиная с ядра 2.2 была полностью переделана сетевая система и были добавлены новые возможности, которые ранее требовали дополнительных утилит, такие как маршрутизация на основе правил, управление трафиком и т.д. К этим возможностям предоставляет доступ пакет программ iproute2, который в настоящее время входит в большинство современных дистрибутивов. Утилита ip объединяет в себе возможности команд ifconfig, arp и route, рассмотрим синтаксис команды: ip [Опции] Объект [ Команда [Аргументы команды] ] где Опции - опциональные параметры, который влияют на общую работу утилиты или вывод результатов. В настоящее время доступны следующие опции: -V, -Version - выводит в стандартный вывод (stdout) версию программы ip -s, -stats, -statistic - выводит статистическую информацию. -f, - family - указывается перед идентификатором протокола, таким как inet (IPv4), inet6(IPv6) или link (Устройстов). Служит для выбора указания протокола, если протокол не указан, то по умолчанию протокол выбирается из параметров команд. -4 - аналог параметра -family inet -6 - аналог параметра -family inet6 -0 - аналог параметра -family link -o, -oneline - каждая запись будет выводиться на новой строке. -r - выводить на экран символические имена хостов. Объект - это объект которым с будут работать или получать о котором информацию. Объекты бывают следующими: link - сетевое устройство address - IPv4 или IPv6 адрес на устройстве. neighbour - ARP адреса route - машрутизация rule - база данных правил машрутизации madress - Multicast-адреса представляют собой особый подвид широковещательных адресов позволяющих обращаться к группе машин, которые не обязательно должны быть в той же самой подсети. Они весьма полезны при сетевых голосовых переговорах и видеоконференциях. Поддерживаются многими, но не всеми картами Ethernet. mroute - Multicast-пакетов. tunnel - туннель через IP. Команда - описывает действие над Объектом. ip link - конфигурация сетевого устройства Доступные команды: set и show (или list) ip link set - изменение параметров сетевого устройства. Аргументы: dev - Имя интерфейса с которым будем проводить какие-то манипуляции. up (включить) или down (выключить) - включить или выключить сетевой интерфейс. arp on или arp off - изменяет значение флага NOARP на устройстве. multicast on или multicast off - изменяет флаг MULTICAST на устройстве. dynamic on или dynamic off - изменяет флаг DYNAMIC на устройстве. name - Изменяет имя устройства txqueuelen Число или txqlen Число - изменяет длину передаваемой очереди. mtu Число - изменяет значение MTU на устройстве. address Адрес - изменяет адрес на устройстве. broadcast Адрес или brd Адрес - изменяет широковещательный адрес на устройстве . ip link show (list, ls, sh, lst, l)- показывает информацию об сетевом интерфейс е. Аргументы: dev - Имя интерфейса с которым будем проводить какие-то манипуляции. up - показать только включенные интерфейсы. Примеры: Выведем информацию о состоянии интерфейса 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 #ip -s link ls dev 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 address - управление адресами на интерфейсе Команда address имеет ряд псевдонимов: addr, a. Объект address - это адрес IPv4 или IPv6 протокола, связанный с каким-то устройством, чтобы оно могло работать с данными протоколами. Так же каждое устройство может иметь несколько IP адресов. Команда ip address показывает адреса, их свойства, а так же добавляет новые или удаляет старые. ip address add - добавляет новый адрес. Аргументы: dev Имя - имя устройства. local Адрес - адрес интерфейса. peer Адрес - адрес удаленной машины при использовании протокола PPP. broadcast Адрес - широковещательный адрес на интерфейсе. В этом случае вы можете использовать специальные символы "+" и "-", в этом случае широковещательный адрес получается путем установки/сброса бит в адрес хоста. label Метка - каждый адрес может быть подписан строкой, однако следует помнить, что имя должно начинаться с имени устройства, затем после двоеточия идет сама метка. Пример: 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 address delete - удаляет адреса. Сокращения: delete, del, d. Пример: ip addr del 127.0.0.1/8 dev lo Удаляет адрес 127.0.0.1/8 с устройства lo. ip address show - выводит информацию об адресе. Сокращения: show, list, lst, sh, ls, l. Аргументы: dev Имя - имя устройства. to Префикс - вывести информация о адресах с заданным префиксом. label Имя - вывести информацию об адресах с заданным именем. Пример работы команды: kuznet@alisa:~ $ 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 kuznet@alisa:~ $ ip route -управление таблицей машрутизации. Сокращения: route, ro, r. ip route add - добавить новый маршрут ip route change - изменить маршрут ip route replace - заменить маршрут Сокращения: add, a; change, chg; replace, repl. Аргументы: to - назначение маршрута. metric Число - задание метрики маршрута. table Идентификатор таблицы - таблица связанная с маршрутом. Идентификатором таблицы может быть номер или строка из файла /etc/iproute2/rt_tables dev Имя - имя устройства. via Адрес - адрес перехода к следующему маршрутизатору src Адрес - адрес источника nexthop NEXTHOP - следующий переход в случае если используется многоканальная маршрутизация. via Адрес dev Имя - имя устройства. weight Число - вес маршрута, определяющийся шириной канала или качеством . Примеры: Добавляем маршрут к сети 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 ip route delete - удалить маршрут. Сокращение: delete, del, d. Аргументы: Аргументы данной команды с сходны с ip route add. Пример: Удаляем маршрут созданный в предыдущем разделе. ip route del default scope global nexthop dev ppp0 \ nexthop dev ppp1 ip rule - управление правилами машрутизации Сокращение: rule, ru Маршрутизация может производиться не только в зависимости от адреса получателя, но и по адресу источника, IP протокола и транспортного протокола. По умолчанию в существуют 3 правила: Таблица Local (ID 255) - специальная таблица маршрутизации с самым большим приоритетом, которая содержит таблицы для локальных и широковещательных адресов. Таблица Main (ID 254) - обычная таблица маршрутизации. Таблица Default (ID 253) - пустая по умолчанию таблица. ip rule add - добавить новое правило. Ip rule delete - удалить правило. Сокращения: add, a; delete, del, d Аргументы: from - адрес источник to - адрес получателя iif Имя - имя интерфейса с которого будет получен пакет fwmark Метка - метка пакета, устанавливаемая firewall. table Идентификатор таблицы - таблица связанная с маршрутом. Идентификатором таблицы может быть номер или строка из файла /etc/iproute2/rt_tables priority Число- приоритет таблицы. Примеры: Маршрутизировать пакеты с сети 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 порт. # iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 80 \ -j MARK --set-mark 2 Создадим правила для помеченных пакетов. # 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 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ: 1. IP Command Reference Alexey N. Kuznetsov 2. Linux Advanced Routing & Traffic Control HOWTO © 2003 by Vadim Fedorov <fedorov@vadim.org.ua>

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, pito (?), 02:31, 24/12/2013 [ответить]  
  • +/
    Ну и кого тут расцеловать за такую шикарную статью?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру