Netfilter и iproute -- маркировка пакетов. - Об ОС *Nix - Системное администрирование - Каталог статей - Архив документации и мануалов для админов

Среда, 07.12.2016, 16:25
Приветствую Вас Гость | RSS
Мой сайт
Главная
Регистрация
Вход
Форма входа

Меню сайта

Категории раздела
Об ОС Windows [137]
В категории размещаются статьи, касающщиеся операционных систем от Microsoft.
Об ОС *Nix [198]
В данной категории собраны статьи об ОС семейства Unix/Linux/FreeBSD/...
Справочные материалы [351]
Справка по всему разделу.
Виртуализация и Облака [46]
Networks & Routing [86]
DataBases [22]

Наш опрос
Оцените мой сайт
Всего ответов: 193

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Системное администрирование » Об ОС *Nix

Netfilter и iproute -- маркировка пакетов.

Глава 11. Netfilter и iproute -- маркировка пакетов.

До сих пор мы детально разбирались с работой iproute и лишь вскользь упомянули netfilter. Теперь настало самое время поговорить о нем. Для начала рекомендую вам прочитать Remarkably Unreliable Guides.

Netfilter позволяет выполнять фильтрацию трафика и вносить изменения в заголовки пакетов. Одна из замечательных особенностей netfilter -- это возможность устанавливать числовые метки на пакеты.

Например, следующее правило пометит все пакеты, отправляемые на порт 25:

# iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 \
-j MARK --set-mark 1
Допустим, что у нас имеется два подключения к Интернет -- одно быстрое, но дорогое, другое медленное, зато дешевое. Естественно, что мы предпочтем отправлять почту по дешевому маршруту. Командой выше, мы уже пометили все пакеты исходящей почты числовой меткой -- 1, теперь попробуем направить эти пакеты по дешевому маршруту:
# echo 201 mail.out >> /etc/iproute2/rt_tables
# ip rule add fwmark 1 table mail.out
# ip rule ls
0: from all lookup local
32764: from all fwmark 1 lookup mail.out
32766: from all lookup main
32767: from all lookup default
и зададим пусть и медленный, зато недорогой маршрут в таблице mail.out:
# /sbin/ip route add default via 195.96.98.253 dev ppp0 table mail.out
Это собственно все, что нам пришлось сделать! Если нужно сделать исключения для отдельных хостов, то можно несколько модифицировать набор правил для netfilter, пропуская пакеты с отдельных хостов без метки, или можно добавить правило с более низким приоритетом, которое отправляет отдельные хосты через таблицу main.

Можно так же использовать поле TOS, в заголовке пакета, задавая различный тип обслуживания для трафика различного рода, и создавая правила, которые реагируют на это поле.

Само собой разумеется, все это прекрасно работает и на хостах, под NAT ('masquerading').

Внимание!

Некоторые наши читатели отмечают, что как минимум MASQ и SNAT конфликтуют с механизмом маркировки пакетов. Расти Рассел (Rusty Russell) описал эту проблему ( http://lists.samba.org/pipermail/netfilter/2000-November/006089.html). Просто, отключите фильтр проверки обратного адреса (см. главу Параметры настройки сети в ядре) и все должно заработать.

Примечание:

Чтобы иметь возможность маркировать пакеты, вы должны собрать ядро с рядом включенных опций:

IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?]
IP: policy routing (CONFIG_IP_MULTIPLE_TABLES) [Y/n/?]
IP: use netfilter MARK value as routing key (CONFIG_IP_ROUTE_FWMARK) [Y/n/?]
См. так же раздел Прозрачное проксирование с помощью netfilter, iproute2, ipchains и squid

Источник: http://www.opennet.ru/docs/RUS/LARTC/c1430.html
Категория: Об ОС *Nix | Добавил: admin (25.11.2010)
Просмотров: 367 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2016