Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO
- Название:Linux Advanced Routing & Traffic Control HOWTO
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO краткое содержание
Оригинальную версию документа вы найдете по адресу http://lartc.org/.
Практическое руководство по применению iproute2 (и в меньшей степени netfilter) для управления трафиком.
Linux Advanced Routing & Traffic Control HOWTO - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
/proc/sys/net/ipv4/icmp_paramprob_rate
Относительно малоизвестное ICMP-сообщение, которое посылается в ответ на неправильные пакеты с искаженными IP или TCP заголовками. Этот параметр регулирует частоту генерации подобных сообщений.
/proc/sys/net/ipv4/icmp_timeexceed_rate
Ограничивает частоту генерации сообщений ICMP Time Exceeded .
От переводчика (А.К.):По поводу двух предыдущих параметров ( icmp_paramprob_rate и icmp_timeexceed_rate ) у меня есть большие сомнения в том, что они присутствуют в файловой системе /proc . Вероятно в более ранних версиях ядра (до 2.4) эти параметры присутствовали, но у себя я их не нашел, зато имеются два других параметра, которые обеспечивают данную функциональность.
icmp_ratelimit
Максимальная частота генерации ICMP-пакетов с типом, указанным в icmp_ratemask (см. ниже). Это значение задается в "тиках" и устанавливает временной интервал между ICMP-посылками. Таким образом, значение 0 означает отсутствие ограничений. Обычно 1 "тик" равен 0.01 секунды, так значение 1 в этой переменной ограничивает скорость передачи не более 100 посылок в секунду, а значение 100 – не более 1 посылки в секунду. Значение по-умолчанию – 100 (зависит от конфигурации ядра), что означает не более 1 ICMP посылки за интервал в 100 "тиков".
icmp_ratemask
Маска ICMP типов, на которые накладывается ограничение по частоте генерации переменной icmp_ratelimit. Каждый из ICMP типов маскируется своим битом.
icmp_ratemask – это битовая маска, где каждый ICMP тип представлен своим битом. Соответствие между символическим названием ICMP типа и его порядковым номером вы найдете в заголовочном файле netinet/ip_icmp.h (обычно это /usr/include/netinet/ip_icmp.h ). За дополнительной информацией обращайтесь к RFC 792 — Internet Control Message Protocol. Математически маска определяется так:
ratemask = SUM 2^n
где n принимает значения всех типов ICMP, которые должны быть ограничены.
Например: Ограничим передачу сообщений ICMP Destination Unreachable . В /usr/include/netinet/ip_icmp.h этому типу соответствует число 3. Подсчитаем значение 2**3, это будет число 8. Теперь нужно прибавить это число к имеющейся битовой маске. Допустим, что маска уже равна числу 6160 (в двоичном виде 0001100000010000), тогда результирующая маска получится: 6160 + 8 = 6168 (в двоичном виде 0001100000011000).
Warning
Перед добавлением маски подобным образом убедитесь сначала, что нужный вам бит сброшен, иначе вы получите неверную маску! К примеру, если у вас маска является числом 256 и вы еще добавите число 256, то это приведет к размаскированию ICMP Echo Request и маскировке 9-го, отсутствующего типа ICMP.
Значение по-умолчанию — 6168 (в двоичном виде 0001100000011000), что подразумевает наложение ограничений на ICMP Destination Unreachable , ICMP Source Quench , ICMP Time Exceeded и ICMP Parameter Problem , где ICMP Destination Unreachable = 3, ICMP Source Quench = 4, ICMP Time Exceeded = 11 и ICMP Parameter Problem = 12. Таким образом, значение по-умолчанию соответствует выражению:
ratemask = 2^3 + 2^4 + 2^11 + 2^12
Note
Злоумышленник может "заставить" некоторый маршрутизатор или хост "затопить" жертву ICMP-посылками, передаваемыми в ответ на поддельный ICMP-пакет с обратным адресом жертвы. Поэтому очень важно ограничить частоту генерации отдельных видов ICMP-сообщений.
Warning
На сайте http://www.frozentux.netвы найдете небольшую программу — ratemask, которая может оказаться полезной при создании маски для переменной icmp_ratemasks или для дешифрации существующей маски.
/proc/sys/net/ipv4/igmp_max_memberships
Максимальное число групп на каждый сокет. Значение по-умолчанию — 20 и может быть изменено по мере необходимости. FIXME: Это действительно так?
/proc/sys/net/ipv4/inet_peer_gc_maxtime
Параметр inet_peer_gc_maxtime определяет частоту "сборки мусора" при незначительном объеме данных. Эта переменная имеет то же предназначение, что и inet_peer_gc_mintime (см. ниже), только выбор, каким параметром пользоваться, производится в зависимости от величины нагрузки на систему. Значение параметра измеряется в так называемых "тиках" (jiffies), понятие "тика" описывалось выше.
Параметр принимает целое число, измеряемое в "тиках". Значение по-умолчанию — 120 "тиков", чего вполне достаточно для большинства серверов и рабочих станций.
/proc/sys/net/ipv4/inet_peer_gc_mintime
Параметр inet_peer_gc_mintime устанавливает минимальное время между проходами "сборщика мусора" при значительном объеме данных, хранящихся в "inet peer storage". Когда система находится под тяжелыми нагрузками и появляется множество факторов, ограничивающих размер пула памяти, то частота "сборки мусора" определяется этой переменной. Значение переменной измеряется в "тиках".
Параметр принимает целое число, измеряемое в "тиках". Значение по-умолчанию — 10 "тиков", чего вполне достаточно для большинства серверов и рабочих станций.
/proc/sys/net/ipv4/inet_peer_maxttl
Это максимальное время хранения записей. При незначительных нагрузках на систему неиспользуемые записи будут удаляться через данный промежуток времени.
/proc/sys/net/ipv4/inet_peer_minttl
Параметр определяет минимальное время хранения данных в "inet peer storage". Это время должно быть достаточно большим, чтобы перекрыть время сборки фрагментов на противоположной стороне. Минимальное время хранения является гарантией того, что размер пула будет меньше чем величина inet_peer_threshold .
/proc/sys/net/ipv4/inet_peer_threshold
Здесь хранится приблизительный размер памяти для "inet peer storage". Когда размер пула достигает этой величины, то "сборщик мусора" переводится в более агрессивный режим работы – с периодом прохода inet_peer_gc_mintime . Кроме того, этот порог влияет на срок хранения записей. Чем выше этот порог, тем больше срок хранения.
/proc/sys/net/ipv4/ip_autoconfig
Этот параметр содержит номер протокола, по которому получил сведения о конфигурации (RARP, BOOTP, DHCP или нечто подобное). Иначе — ноль.
/proc/sys/net/ipv4/ip_default_ttl
Устанавливает значение по-умолчанию для величины Time To Live исходящих пакетов. Это число определяет продолжительность "жизни" пакета в Internet. Каждый раз, когда пакет попадает на очередной роутер (брандмауэр и т.п.), величина TTL пакета уменьшается на 1.
Значение по-умолчанию — 64. Это достаточно приемлемое значение. Очень трудно представить себе ситуацию, когда это число оказалось бы недостаточным. Переменная принимает целое число без знака в диапазоне от 0 до 255 включительно, однако, значение 255 слишком велико, а если поставить 0 — то вы вообще лишитесь выхода в сеть. Число 64 достаточно хорошее, если вы не пытаетесь установить соединение с компьютером, отстоящим от вас на значительном растоянии, измеряемом в "переходах" (hops). Тогда этой вличины TTL может и не хватить. Однако, на практике едва ли вам встретятся компьютеры, отстоящие от вас более чем на 30 "переходов" (hops).
Увеличение TTL пакета до 255 может иметь свои негативные последствия. Если представить себе, что где-то произошел сбой в 2-х маршрутизаторах и пакет "зациклился" между ними, тогда пакет начнет "бегать" туда-сюда между маршрутизаторами, поглощая пропускную способность канала, до тех пор, пока TTL пакета не истечет. Как правило, величину TTL не устанавливают больше 100.
Читать дальшеИнтервал:
Закладка: