Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Видео Unix Интернет Маршрутизация, NAT Настройка сетевых интерфейсов и маршрутизации с помощью iproute2 RSS

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

Текущий рейтинг: 4 (проголосовало 4)
 Посетителей: 5069 | Просмотров: 7524 (сегодня 0)  Шрифт: - +
Большинство дистрибутивов 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>
Автор: Вадим Федоров <fedorov@vadim.org.ua  •  Иcточник: http://www.opennet.ru  •  Опубликована: 05.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.