Вход/Регистрация
Linux Advanced Routing & Traffic Control HOWTO
вернуться

Larroy Pedro

Шрифт:

Сделать это можно несколькими способами. Прежде всего следует упомянуть, что Apache поддерживает подобную функциональность в виде модулей, но мы продемонстрируем как добиться этого средствами операционной системы. Эти строки взяты из примера, представленного Джамалом Хади (Jamal Hadi).

Допустим, что у нас есть два клиента, которые арендуют некоторую долю нашего канала под http, ftp и потоковое audio. Первый клиент арендует полосу в 2 Мбита, второй – 5 Мбит. Для начала назначим нашим клиентам виртуальные IP-адреса на нашем сервере:

# ip address add 188.177.166.1 dev eth0

# ip address add 188.177.166.2 dev eth0

Решение проблемы о том, как назначить правильные IP-адреса различным службам, оставляем за вами. Практически все популярные демоны поддерживают такую возможность.

Присоединяем CBQ qdisc к eth0:

# tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit cell 8 avpkt 1000 \

 mpu 64

Создаем классы клиентов:

# tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit rate \

 2MBit avpkt 1000 prio 5 bounded isolated allot 1514 weight 1 maxburst 21

# tc class add dev eth0 parent 1:0 classid 1:2 cbq bandwidth 10Mbit rate \

 5Mbit avpkt 1000 prio 5 bounded isolated allot 1514 weight 1 maxburst 21

И добавляем фильтры к классам:

##FIXME: Для чего нужна первая строка, что она делает? Каково назначение "делителя" (divisor)?:

##FIXME: Делитель имеет отношение к хеш-таблице и номеру пула

## (bucket) – ahu

# tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 1: u32 divisor 1

# tc filter add dev eth0 parent 1:0 prio 5 u32 match ip src 188.177.166.1

 flowid 1:1

# tc filter add dev eth0 parent 1:0 prio 5 u32 match ip src 188.177.166.2

 flowid 1:2

FIXME: Почему нет token bucket filter?

15.2. Защита от syn flood.

Пример взят из документации к iproute, написанной Алексеем и адаптирован для совместной работы с netfilter. Если этот пример заинтересует вас, измените числовые значения на наиболее подходящие для вашей системы.

Этот сценарий был написан для защиты отдельного хоста, а не сети. Учитывайте это обстоятельство.

Для его работы желательно иметь самую последнюю версию iproute2.

#! /bin/sh –x

#

# демонстрация возможностей по управлению входящим (ingress) трафиком

# здесь приводится пример ограничения пропускной способности для входящих SYN-пакетов

# Может оказаться полезным для защиты от TCP-SYN атак.

# #пути к различным утилитам; #укажите правильные значения.

#

TC=/sbin/tc

IP=/sbin/ip

IPTABLES=/sbin/iptables

INDEV=eth2

#

# пометить все SYN-пакеты, пришедшие через $INDEV, числом 1

############################################################

$iptables –A PREROUTING –i $INDEV –t mangle –p tcp –syn \

 –j MARK –set-mark 1

############################################################

#

# установить ingress qdisc на входящий интерфейс

############################################################

$TC qdisc add dev $INDEV handle ffff: ingress

############################################################

#

#

# SYN-пакет имеет размер 40 байт (320 бит), отсюда – три пакета

# имеют размер 960 бит (примерно 1 Кбит); ограничим скорость поступления

# 3-мя пакетами в секунду ( точнее – 1 Кбит/сек )

############################################################

  • Читать дальше
  • 1
  • ...
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: