Welcome to Энциклопедия сетевых протоколов
Поиск

Модули
· Титульная страница
· Мир протоколов
· Основные темы
· Архив публикаций
· Поиск
· Каталог ссылок
· Участники
· Документы и программы

Выбор языка
Язык интерфейса:


Статистика
20490398
запросов с 22 сентября 2005

Внешняя статистика
Rambler's Top100

  
Параметры SysCtl для стека IP
Опубликовано 30 сент. 2005 (Пт.) в 14:10:29
Тема: Настройка сетевых параметров хостов

В этой статье описаны параметры протокола IP, значения которых содержатся в файлах виртуальной файловой системы /proc. Значения параметров задаются во время загрузки операционной системы и могут быть изменены в любой момент с помощью команд типа

echo "значение" > /proc/sys/net/ipv4/имя_файла

Отметим, что измененые в процессе работы значения не будут сохранены после перезагрузки системы. Если вы хотите сохранить изменения, включите соответствующую команду в один из сценариев загрузки системы.

При установке значений тех или иных параметров следует руководствоваться требованиями к хостам и маршрутизаторам, изложенными в документах RFC 1122, RFC 1123 и RFC 1812. Документы можно загрузить с сайта http://rfc-editor/rfc/


Параметры IPv4

ip_forward – пересылка пакетов

Логическая переменная ip_forward управляет возможностью пересылки пакетов между сетевыми интерфейсами (маршрутизации). Значение 1 разрешает маршрутизацию, 0 – запрещает. По умолчанию маршрутизация пакетов обычно отключена.

Изменение значения этой переменной приводит к сбросу всех конфигурационных параметров сети в принятые по умолчанию значения (в соответствии с RFC1122 для хостов и RFC1812 для маршрутизаторов).

ip_default_ttl – время жизни пакетов

Целочисленная переменная (1 байт) ip_default_ttl определяет время жизни пакетов, передаваемых данным хостом. Значение поля времени жизни уменьшается на 1 каждым маршрутизатором на пути следования пакетов к адресату. По умолчанию устанавливается значение TTL=64.

ip_no_pmtu_disc

Логическая переменная ip_no_pmtu_disc управляет использованием функции Path MTU Discovery (определение максимального размера пакетов для пути). По умолчанию эта функция отключена (0), для ее включения используйте команду

echo "1" > /proc/sys/net/ipv4/ip_no_pmtu_disc

ip_queue_maxlen – максимальное число пакетов в очереди пользовательского пространства

Целочисленное значение в файле /proc/sys/net/ipv4/ip_queue_maxlen определяет максимальное число пакетов, которые могут быть переданы в очередь пользовательского пространства без получения вердикта об их дальнейшей судьбе. При достижении порога все последующие пакеты будут отбрасываться, пока размер очереди не снизится.

По умолчанию для этого параметра используется значение 1024. Если это значение слишком мало для вашей системы, подберите большее значение экспериментальным путем.

Параметры фрагментации пакетов IP

ipfrag_high_thresh – максимальный размер памяти для сборки фрагментов

Целочисленная переменная ipfrag_high_thresh задает максимальный размер памяти 9в байтах), которая может использоваться для сборки фрагментов IP. После выделения заданного количества байтов памяти обработчик фрагментов будет выталкивать (toss) пакеты из буфера, пока не будет достигнуто значение нижнего порога ipfrag_low_thresh.

ipfrag_low_thresh – нижний предел размера для буфера сборки пакетов

Целочисленное значение ipfrag_low_thresh определяет нижний порог размера буфера сборки фрагментов IP.

ipfrag_time – время хранения фрагментов

Целочисленная переменная ipfrag_time определяет время (в секундах), в течение которого фрагмент дейтаграммы IP может храниться в памяти.

ipfrag_secret_interval – время жизни хэш-ключа

Целочисленное значение переменной ipfrag_secret_interval задает интервал регенерации (в секундах) секретного хэш-ключа, используемого для фрагментов IP. По умолчанию время жизни ключа составляет 10 минут (600 секунд).

Переменные INET peer storage

inet_peer_threshold

Целочисленная переменная inet_peer_threshold задает приблизительный размер буфера. По достижении этого порога начинается жесткое отбрасывание записей. Данный порог влияет также на время жизни записей и интервалы между проходами для очистки памяти (сборки мусора - garbage collection). Чем больше записей, тем меньшее время они живут и чаще происходит сборка мусора.

inet_peer_minttl

Целочисленное значение inet_peer_minttl определяет минимальное время жизни записей. Этого времени должгл быть достаточно для покрытия времени жизни фрагмента на стороне сборки. Минимальное время жизни определяет гарантированный период существования для тех случаев, когда размер пула меньше значения переменной inet_peer_threshold. Время жизни задается в специальных единицах jiffy.

inet_peer_maxttl

Целочисленная переменная inet_peer_maxttl определяет максимальное время жизни записей. Неиспользованные записи по истечении этого периода могут сохраняться при отсутствии дефицита памяти (когда число записей в пуле достаточно мало). Время жизни задается в jiffy.

inet_peer_gc_mintime

Целочисленная переменная inet_peer_gc_mintime задает минимальный интервал между проходами для очистки (сборки мусора – garbage). Такой короткий интервал используется при нехватке памяти в пуле. Интервал задается в единицах jiffy.

inet_peer_gc_maxtime

Целочисленная переменная inet_peer_gc_maxtime определяет максимальный интервал между проходами для очистки памяти. Максимальный переиод между очистками памяти используется при отсутствии дефицита памяти в пуле. Интервал задается в единицах jiffy.

Переменные TCP

tcp_syn_retries

Целочисленная переменная (1 байт) tcp_syn_retries определяет число попыток передачи пакетов SYN, которые протокол TCP будет предпринимать для организации соединения. Число попыток не должно превышать 255. Используемое по умолчанию значение 5 соответствует приблизительно 180 секундам на выполнение попыток организации соединения.

tcp_synack_retries

Целочисленное значение (1 байт) tcp_synack_retries определяет число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP. Число попыток не должно превышать 255. Используемое по умолчанию значение 5 соответствует приблизительно 180 секундам на выполнение попыток организации соединения.

tcp_keepalive_time

Целочисленное значение tcp_keepalive_time определяет интервал (в секундах) передачи протоколом TCP сообщений keepalive. По умолчанию интервал передачи таких сообщений составляет 7200 (2 часа).

tcp_keepalive_probes

Целочисленная переменная tcp_keepalive_probes задает число передач проб keepalive, после которого соединение считается разорванным. По умолчанию передается 9 проб.

tcp_keepalive_intvl

Целочисленная переменная tcp_keepalive_intvl определяет интервал передачи проб. Произведение tcp_keepalive_probes * tcp_keepalive_intvl определяет время, по истечении которого соединение будет разорвано при отсутствии откликов. По умолчанию установлен интервал 75 секунд, т.е., время разрыва соединения при отсутствии откликов составит приблизительно 11 минут.

tcp_retries1

Целочисленная переменная tcp_retries1 определяет число неудачных попыток, после которого должна быть передана информация на сетевой уровень. В соответствии с RFC минимальное значение составляет 3 (по умолчанию установлено именно это значение), что соответствует периоду приблизительно от 3 секунд до 8 минут в зависимости от значения тайм-аута повторной передачи RTO (Retransmission time-out).

tcp_retries2

Целочисленная переменная tcp_retries2 определяет число неудачных попыток, после которого существующее соединение уничтожается. В соответствии с RFC 1122 тайм-аут должен быть больше 100 секунд. Такое значение слишком мало и по умолчания установлено число попыток 15, соответствующее тайм-ауту приблизительно от 13 до 30 минут в зависимости от RTO.

tcp_orphan_retries

Целочисленной значение tcp_orphan_retries определяет число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне. По умолчанию используется значение 7, соответствующее приблизительно периоду от 50 секунд до 16минут в зависимости от RTO. На сильно загруженных WEB-серверах имеет смысл уменьшить значение этого параметра, поскольку закрытые соединения могут поглощать достаточно много ресурсов (см. стр. 4).

tcp_fin_timeout

Целое число в файле tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной. Партнер может не закрыть это соединение никогда, поэтому следует закрыть его по своей инициативе по истечении тайм-аута. По умолчанию тайм-аут составляет 60 секунд. В ядрах серии 2.2 обычно использовалось значение 180 секунд и вы можете сохранить это значение, но не следует забывать, что на загруженных WEB-серверах вы рискуете израсходовать много памяти на сохранение полуразорванных мертвых соединений. Сокеты в состоянии FIN-WAIT-2 менее опасны, нежели FIN-WAIT-1, поскольку поглощают не более 1,5 Кбайт памяти, но они могут существовать дольше.

tcp_max_tw_buckets

Целочисленное значение в файле tcp_max_tw_buckets задает максимальное число сокетов, находящихся в состоянии ожидания (timewait socket), которые могут существовать в системе одновременно. При достижении этого значения лишние сокеты незамедлительно уничтожаются и выводится предупреждение. Этот порог служит только для предотвращения простых DoS-атак и вам не следует значение порога (скорее следует увеличить пороговое значение, если условия вашей сети требуют этого).

tcp_tw_recycle

Логическая переменная tcp_tw_recycle управляет рециркуляцией сокетов TIME-WAIT. По умолчанию используется значение 0 (отключено), которое не следует менять без консультации с техническими специалистами.

tcp_tw_reuse

Логическая переменная tcp_tw_reuse определяет возможность повторного использования сокетов TIME-WAIT для новых соединений, когда это безопасно с точки зрения протокола. По умолчанию такая возможность отключена (0) и включать ее не следует без консультации с техническими специалистами.

tcp_max_orphans

Целочисленное значение в файле tcp_max_orphans определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle). При достижении порогового значения “осиротевшие” (orphan) соединения незамедлительно сбрасываются с выдачей предупреждения. Этот порог помогает предотвращать только простые атаки DoS и вам не следует уменьшать пороговое значение (скорее увеличить его в соответствии с требованиями системы – например, после добавления памяти. Отметим, что каждое orphan-соединение поглощает около 64 Кбайт несбрасываемой на диск (unswappable) памяти.

tcp_abort_on_overflow

Логическая переменная tcp_abort_on_overflow управляет возможность отказа от приема новых соединений при недостаточной производительности соответствующей службы. По умолчанию установлено значение FALSE (0), означающее, что при переполнении в результате пиковой нагрузки соединение будет восстановлено. Используйте для этой переменной значение TRUE (1) только в тех случаях, когда вы реально уверены, что прослушивающий соединения демон не способен работать быстрее. В этом случае часть клиентов будет получать отказы при попытке соединения с сервером.

tcp_syncookies

Логическая переменная в файле tcp_syncookies (требуется ядро со включенной опцией CONFIG_SYNCOOKIES) управляет записью предупреждений synflood в журнальные файлы при переполнении сокета. Эта функция может использоваться для защиты от атак SYN flood. По умолчанию используется значение FALSE (0).

Отметим, что функции syncookies относятся к типу fallback и их не следует использовать для попыток ограничить число легитимных соединений с сервером. Если вы видите предупреждения synflood в журнальных файлах и их исследование показывает, что причиной является значительное число легитимных соединений с сервером, вам следует настроить другие параметры (tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow), чтобы избавиться от таких сообщений.

Использование syncookies оказывает серьезное влияние на работу протокола TCP, не позволяя использовать расширения TCP, что может привести к существенному ухудшению работы отдельных служб (например, транслятора SMTP), незаметному на локальной машине, но отражающемуся на доступе клиентов и других серверов к службам данного сервера. Наличие предупреждений synflood в журнальных файлах при отсутствии реальных атак говорит о серьезных ошибках в конфигурации вашего сервера.

tcp_stdurg

Логическая переменная tcp_stdurg управляет интерпретацией поля URG в заголовках TCP. Большинство хостов использует старую интерпретацию BSD, установка значения TRUE (1) приведет к интерпретации этого поля в соответствии с документом Host requirements. Использование значения TRUE может вызывать проблемы при взаимодействии с хостами, поддерживающими старый вариант интерпретации. По умолчанию используется значение FALSE

tcp_max_syn_backlog

Целочисленное значение в файле tcp_max_syn_backlog определяет максимальное число запоминаемых запросов на соединение, для которых не было получено подтверждения от подключающегося клиента. По умолчанию используется значение 1024 для систем, в которых объем ОЗУ превышает 128 Мбайт и 128 для систем с меньшим объемом памяти. Если на сервере возникают перегрузки, попытайтесь увеличить это значение.

tcp_window_scaling

Логическая переменная tcp_window_scaling управляет возможностью масштабирования размера окна в соответствии с RFC 1323.

tcp_timestamps

Логическая переменная в файле tcp_timestamps определяет интерпретацию временных меток в соответствии с документом RFC 1323.

tcp_sack

Логическая переменная tcp_sack включает режим SACKS (select acknowledgments).

tcp_fack

Логическая переменная tcp_fack управляет режимом предотвращения насыщения FACK и быстрым повтором передач. При установке tcp_sack=0 эта переменная не используется.

tcp_dsack

Логическая переменная tcp_dsack позволяет протоколу TCP передавать “дубликаты” пакетов SACK.

tcp_ecn

Логическая переменная tcp_ecn управляет механизмом ECN для протокола TCP.

tcp_reordering

Целочисленная переменная tcp_reordering определяет максимальное разупорядочивание пакетов в потоке TCP. По умолчанию используется значение 3.

tcp_retrans_collapse

Логическая переменная tcp_retrans_collapse управляет режимом совместимости (Bug-to-bug) для некоторых устаревших принтеров. При повторной передаче предпринимается попытка отправить пакет большего размера, чтобы преодолеть проблемы, связанные с ошибками в некоторых реализациях стека TCP.

tcp_wmem

Векторная переменная в файле tcp_wmem содержит 3 целочисленных значения, определяющих минимальное, принятое по умолчанию и максимальное количество памяти, резервируемой для буферов передачи сокета TCP.

Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Размер минимального буфера по умолчанию составляет 4 Кбайт (4096)

Значение по умолчанию: количество памяти, допустимое для буфера передачи сокета TCP по умолчанию. Это значение применяется взамен параметра /proc/sys/net/core/wmem_default, используемого другими протоколами и обычно меньше, чем /proc/sys/net/core/wmem_default. Размер принятого по умолчанию буфера обычно (по умолчанию) составляет 16 Кбайт (16384)

Максимум: максимальное количество памяти, которое может быть автоматически выделено для буфера передачи сокета TCP. Это значение не отменяет максимум, заданный в файле /proc/sys/net/core/wmem_max. При “статическом” выделении памяти с помощью SO_SNDBUF этот параметр не имеет значения. По умолчанию размер максимального буфера составляет 128 Кбайт (131072).

tcp_rmem

Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер приемного буфера сокетов TCP.

Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется даже при достижении порога ограничения (moderate memory pressure). Размер минимального буфера по умолчанию составляет 8 Кбайт (8192).

Значение по умолчанию: количество памяти, допустимое для буфера передачи сокета TCP по умолчанию. Это значение применяется взамен параметра /proc/sys/net/core/rmem_default, используемого другими протоколами. Значение используемого по умолчанию буфера обычно (по умолчанию) составляет 87830 байт. Это определяет размер окна 65535 с заданным по умолчанию значением tcp_adv_win_scale и tcp_app_win = 0, несколько меньший, нежели определяет принятое по умолчанию значение tcp_app_win.

Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума, заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения. Используемый по умолчанию максимум составляет 87380 * 2 байт.

tcp_mem

Векторная переменная в файле tcp_mem содержит 3 целых числа (порога), определяющих отношение протокола TCP к выделению памяти.

Нижний порог: при значениях ниже этого уровня TCP не заботится о расходе памяти.

Порог ограничения: при достижении этого порога TCP контролирует размер выделяемой памяти и переходит в режим memory pressure (нехватка памяти), из которого выходит при снижении расхода памяти до нижнего порога.

Верхний порог: число страниц памяти, доступных для создания очередей всеми сокетами TCP.

Значения всех порогов рассчитываются во время загрузки ОС с учетом доступной на компьютере памяти.

tcp_app_win

Целочисленное значение tcp_app_win определяет размером окна, резервируемого для буфера приложений - max(window/2^tcp_app_win, mss). Нулевое значение в этом файле означает отсутствие резервирования.

По умолчанию используется значение 31.

tcp_adv_win_scale

Целочисленный параметр в файле tcp_adv_win_scale определяет степень перекрытия буферов - bytes/2^tcp_adv_win_scale при положительных значениях параметра и bytes - bytes/2^(-tcp_adv_win_scale) при tcp_adv_win_scale <= 0 (bytes – размер буфера в байтах). По умолчанию используется значение 2.

tcp_rfc1337

Логическая переменная tcp_rfc1337 определяет соответствие стека TCP требованиям RFC 1337. Значение FALSE (0), используемое по умолчанию, говорит о несоответствии RFC 1337 и сохранении действия параметра TCP TIME_WAIT.

tcp_low_latency

Логическая переменная в файле tcp_low_latency определяет приоритет “задержка – пропускная способность”. При установленном значении (1) стек TCP предпочитает меньшую задержку большему пропусканию. По умолчанию эта опция не установлена (0) и предпочтение отдается пропускной способности. Примером приложения, где не следует использовать принятое по умолчанию значения, является кластер Beowulf.

tcp_westwood

Логическая переменная tcp_westwood управляет поддержкой алгоритма контроля насыщения TCP Westwood+, использующего на стороне отправителя модифицированный стек TCP Reno, в котором оптимизированы функции контроля насыщения. Этот алгоритм основан на оценке сквозной полосы для выбора окна насыщения и порога медленного старта после случая насыщения. Используя такую оценку, алгоритм TCP Westwood+ адаптивно устанавливает порог медленного старта и размер окна насыщения с учетом ожидаемой полосы в период насыщения.

Алгоритм TCP Westwood+ является существенно более беспристрастным по сравнению TCP Reno в проводных и беспроводных сетях.

По умолчанию установлено значение 0 (алгоритм не используется).

tcp_vegas_cong_avoid

Логическая переменная tcp_vegas_cong_avoid управляет использованием алгоритма блокировки насыщения TCP Vegas.

TCP Vegas использует на серверной стороне модифицированный стек TCP, который позволяет предупредить насыщение за счет оценки полосы. TCP Vegas регулирует исходящий поток трафика путем изменения окна насыщения. Стек TCP Vegas должен обеспечивать меньший уровень потери пакетов, но этот алгоритм менее агрессивен, нежели TCP Reno.

По умолчанию алгоритм TCP Vegas отключен (0).

tcp_bic

Логическая переменная tcp_bic управляет механизмом контроля насыщения BIC-TCP, использующим на серверной стороне модифицированный стек TCP, который обеспечивает линейное изменение RTT при больших окнах в сочетании с масштабируемостью и дружественностью TCP. Протокол объединяет в себе две схемы – additive increase и binary search increase. При большом окне насыщения аддитивный рост с большим инкрементом обеспечивает линейное изменение RTT в сочетании с хорошей масштабируемостью При небольшом окне насыщения, метод binary search increase обеспечивает дружественность TCP. Описание алгоритма можно загрузить с сайта http://www4.ncsu.edu:8030/~lxu2/xu_INFOCOM_2004.pdf.

По умолчанию алгоритм отключен (0).

tcp_bic_low_window

Целочисленная переменная в файле tcp_bic_low_window задает (в пакетах) размер порогового окна, при котором алгоритм BIC-TCP начинает подстраивать размер окна насыщения. Ниже этого порога алгоритм BIC-TCP ведет себя подобно TCP Reno. По умолчанию используется значение 14.

tcp_bic_fast_convergence

Логическая переменная tcp_bic_fast_convergence заставляет алгоритм BIC-TCP быстрее реагировать на изменения окна насыщения. Это позволяет двум потокам в одном канале сходиться быстрее. По умолчанию опция включена (1).

ip_local_port_range

Файл ip_local_port_range содержит 2 целых числа, определяющих диапазон значений, используемых протоколами TCP и UDP для выбора локальных номеров портов. Первое число задает минимальный номер локального порта, второе – максимальный. Установленные по умолчанию значения зависят от размера оперативной памяти на компьютере – при объеме памяти 128 Мбайт используется диапазон 32768 – 61000, при меньшем объеме памяти – 1024 - 4999 или еще меньше.

Заданные в этом файле значения определяют число активных соединений, которая система может инициировать (вводить) одновременно, если в данной системе не поддерживается расширение TCP extensions (timestamp – временные метки). При включенной опции tcp_tw_recycle (принято по умолчанию) диапазона 1024 - 4999 достаточно для возможности организации до 2000 соединений в секунду, если система поддерживает временные метки.

ip_nonlocal_bind

Логическая переменная ip_nonlocal_bind позволяет связывать (bind) процессы с нелокальными адресами IP. Такое связывание может быть весьма полезно, но мешает работе некоторых приложений. По умолчанию связывание отключено (0).

ip_dynaddr

Логическая переменная ip_dynaddr определяет возможность использования динамических адресов IP. При установке для этой переменной значения >1, факты смены динамических адресов будут протоколироваться в журнальных файлах системы. По умолчанию поддержка динамических адресов отключена (0).

Переменные ICMP

icmp_echo_ignore_all

Логическая переменная icmp_echo_ignore_all позволяет включить блокировку всех пакетов ICMP Echo. При значении TRUE (1) ядро будет игнорировать все запросы ICMP Echo.

icmp_echo_ignore_broadcasts

Логическая переменная icmp_echo_ignore_broadcasts позволяет включить блокировку широковещательных запросов ICMP Echo. При значении TRUE (1) ядро будет игнорировать все широковещательные запросы ICMP Echo.

icmp_ratelimit

Целочисленная переменная icmp_ratelimit задает максимальную скорость передачи пакетов ICMP, тип которых соответствует маске icmp_ratemask, описанной в следующем параграфе. Значение 0 отменяет все ограничения, остальные значения задают максимальное количество пакетов в течение периода jiffy.

По умолчанию используется значение 100

icmp_ratemask

Целочисленное значение переменной icmp_ratemask определяет маску типов пакетов ICMP, для которых действуют ограничения, заданные переменной icmp_ratelimit.

Значимые биты: IHGFEDCBA9876543210

Маска по умолчанию: 0000001100000011000

используемое по умолчанию значение в десятичном формате составляет 6168.

Идентификаторы значимых битов:

0 Echo Reply (отклик)

3 Destination Unreachable (адресат недоступен) *

4 Source Quench (умерьте свой пыл) *

5 Redirect (перенаправление)

8 Echo Request (запрос)

B Time Exceeded (время истекло) *

C Parameter Problem (некорректные параметры) *

D Timestamp Request (запрос временной метки)

E Timestamp Reply (временная метка)

F Info Request (запрос информации)

G Info Reply (запрошенная информация)

H Address Mask Request (запрос маски сети)

I Address Mask Reply (маска сети)

Значения для отмеченных звездочкой (*) типов пакетов ограничиваются по умолчанию (показанной выше маской)

icmp_ignore_bogus_error_responses

Логическая переменная icmp_ignore_bogus_error_responses управляет выдачей предупреждений при получении от маршрутизаторов, не соответствующих требованиям RFC 1122, фиктивных откликов на широковещательные запросы. Значение TRUE (1) отключает выдачу таких предупреждений и появление соответствующих записей в журнальных файлах.

По умолчанию используется значение FALSE (0).

igmp_max_memberships

Целочисленная переменная igmp_max_memberships устанавливает максимальное число multicast-групп, в которые может входить данный хост.

По умолчанию установлено значение 20.

Конфигурация интерфейсов

Конфигурационные параметры интерфейсов хранятся в каталогах /proc/sys/net/ipv4/conf/interface/* (interface – имя интерфейса, например, eth0) для каждого из сетевых интерфейсов компьютера и в каталоге /proc/sys/net/ipv4/conf/all/*, содержащем параметры, применяемые ко всем интерфейсам сразу.

log_martians

Логическая переменная log_martians управляет записью информации о пакетах с невозможными адресами в журнальные файлы системы. Запись для конкретного интерфейса активизируется, если установлено значение TRUE (1) в файле /proc/sys/net/ipv4/conf/all/log_martians или одноименном файле для данного интерфейса.

accept_redirects

Логическая переменная accept_redirects определяет восприятие пакетов ICMP Redirect. Такие пакеты принимаются интерфейсом, при выполнении любого из приведенных ниже условий:

  • для интерфейса, поддерживающего пересылку пакетов, установлено значение TRUE (1) в обоих файлах /proc/sys/net/ipv4/conf/{all,interface}/accept_redirects;

  • для интерфейса, поддерживающего пересылку пакетов, установлено значение TRUE (1) по крайней мере в одном из файлов /proc/sys/net/ipv4/conf/{all,interface}/accept_redirects.

По умолчанию в этих файлах задано значение TRUE (1) для хостов и FALSE (0) для маршрутизаторов.

forwarding

Логическая переменная forwarding управляет возможностью пересылки пакетов IP для одного или всех интерфейсов.

mc_forwarding

Логическая переменная mc_forwarding управляет пересылкой пакетов с групповыми (multicast) адресами. Для использования групповой адресации требуется ядро, со включенной опцией CONFIG_MROUTE и демон, поддерживающий групповую маршрутизацию (mrouted). Требуется также установить значение TRUE (1) в файле /proc/sys/net/ipv4/conf/all/mc_forwarding.

medium_id

Целочисленная переменная medium_id указывает тип среды, к которой подключен интерфейс с точки зрения распространения широковещательных пакетов. Если два устройства подключены к разнотипным средам, широковещательные пакеты данной среды будет получать только одно из этих устройств (подключенное к данной среде).

Используемое по умолчанию значение 0 говорит, что к сетевой среде подключен только один интерфейс, а значение 1 говорит о том, что тип среды неизвестен.

В настоящее время этот параметр используется для управления поведением proxy_arp – функции proxy_arp разрешены для пакетов, пересылаемых между устройствами, подключенные к разнотипным средам.

proxy_arp

Логическая переменная proxy_arp управляет выполнением proxy-функций для пакетов ARP. Функция proxy_arp для интерфейса используется, если установлено значение TRUE (1) по крайней мере в одном из файлов /proc/sys/net/ipv4/conf/{all,interface}/proxy_arp.

shared_media

Логическая переменная shared_media определяет поведение по отношению к перенаправлению пакетов для разделяемой среды (shared media redirect). При значении TRUE (1) маршрутизатор будет передавать, а хост – воспринимать перенаправленные пакеты в соответствии с документом RFC 1620. Значение этой переменной может отменять значение переменной secure_redirects (см. описание следующего параметра).

Параметр shared_media для интерфейса будет иметь значение TRUE (1) при установке значений 1 в любом из файлов /proc/sys/net/ipv4/conf/{all,interface}/shared_media. По умолчанию используется значение TRUE.

secure_redirects

Логическая переменная secure_redirects позволяет установить режим восприятия пакетов ICMP redirect только от шлюзов, указанных в списке используемых по умолчанию. Параметр secure_redirects для интерфейса будет иметь значение TRUE (1), если указана 1 по крайней мере в одном из двух файлов /proc/sys/net/ipv4/conf/{all,interface}/secure_redirects. По умолчанию параметр имеет значение TRUE. Значение этого параметра может отменяться значением параметра shared_media, описанного в предыдущем параграфе.

send_redirects

Логическая переменная send_redirects управляет для маршрутизаторов возможностью перенаправления (redirect). Параметр send_redirects для интерфейса будет иметь значение TRUE (1), если указано значение 1 по крайней мере в одном из двух файлов /proc/sys/net/ipv4/conf/{all,interface}/send_redirects. По умолчанию параметр имеет значение TRUE.

bootp_relay

При установленном (1) значении логической переменной bootp_relay пакеты с адресом отправителя 0.b.c.d, не адресованные данному хосту, будут восприниматься как локальные. Предполагается, что демон BOOTP relay будет воспринимать и пересылать такие пакеты. Для поддержки протокола BOOTP relay интерфейсами хоста в файле /proc/sys/net/ipv4/conf/all/bootp_relay также должно быть установлено значение TRUE (1). По умолчанию используется значение FALSE (0).

Эта функция еще не реализована.

accept_source_route

Логическая переменная accept_source_route управляет восприятием пакетов с установленной опцией SRR. Для того, чтобы интерфейс мог принимать такие пакеты значение TRUE (1) должно быть указано также в файле /proc/sys/net/ipv4/conf/all/ accept_source_route.

По умолчанию пакеты с опцией SRR не принимаются (FALSE) хостами и принимаются (TRUE) маршрутизаторами.

rp_filter

Переменная rp_filter управляет возможностью проверки пути к отправителю (reversed path) в соответствии с RFC 1812. Значение TRUE (1) включает такую проверку и рекомендуется для хостов с одним сетевым интерфейсом и маршрутизаторов тупиковых (stub) сетей. При использовании такой проверки могут возникать некоторые проблемы в сетях с петлями, использующих протоколы без гарантии доставки (например, sort или RIP), а также статические маршруты. При значении 0 проверка обратного пути не проводится.

Для проверки корректности отправителя тем или иным интерфейсом системы требуется также установка значения TRUE (1) в файле /proc/sys/net/ipv4/conf/all/rp_filter.

По умолчанию используется значение FALSE (0), но некоторые дистрибутивы изменяют это значение в сценариях загрузки системы.

При использовании программы IPsec (см. параграф на стр. ), для большинства случаев требуется установка значения 0.

arp_filter

Логическая переменная arp_filter управляет фильтрацией пакетов ARP.

Значение TRUE (1) разрешает использовать множество интерфейсов в одной подсети и выдавать отклики ARP для каждого из этих интерфейсов в зависимости от того, будет ли ядро передавать в ответ на запрос IP-адрес данного интерфейс (этот требует поддержки в сети маршрутизации по адресу отправителя – source based routing). Иными словами, это позволяет определить, какой из интерфейсов одной подсети будет отвечать на запросы ARP.

Используемое по умолчанию значение FALSE (0) позволяет ядру отвечать на запросы arp с адресами от других интерфейсов. Это может показаться ошибкой, но обычно имеет смысл, поскольку повышает вероятность успешного обмена информацией. Адреса IP принадлежат хосту как целому, а не отдельным его интерфейсам. Однако в более сложных системах (например, при распределении нагрузки между каналами – load-balancing) передача адресов других интерфейсов может вызывать проблемы.

Для того, чтобы разрешить (TRUE) arp_filter для интерфейса, значение TRUE должно быть установлено по крайней мере в одном из 2 файлов /proc/sys/net/ipv4/conf/{all,interface}/arp_filter.

arp_announce

Целочисленная переменная arp_announce определяет тип (уровень) отклика интерфейсов с множеством IP-адресов на запросы ARP.

Установленное по умолчанию значение 0 позволяет использовать любой локальный адрес, заданный для данного интерфейса. Значение 1 используется для попытки избежать передачи локальных адресов, которые не относятся к подсети получателя для данного интерфейса. Этот режим полезен в тех случаях, когда адресат, доступный через данный интерфейс, в откликах ARP требует IP-отправителя из подсети, заданной для локального интерфейса получателя. При генерации запроса проверяются все подсети, включающие IP-адрес получателя и выбирается в качестве исходящего адрес в одной из таких подсетей. При отсутствии таких подсетей используются правила уровня 2. Значение 2 показывает необходимость использования лучшего из локальных адресов для данного получателя. В этом режиме адрес отправителя в пакете IP игнорируется и предпринимается попытка выбрать локальный интерфейс, наиболее подходящий для связи с хостом-получателем. Выбор адресов осуществляется путем просмотра первичных IP-адресов для всех подключенных подсетей и из них выбирается тот, который входит в подсеть получателя. Если подходящего локального адреса нет, выбирается первый локальный адрес исходящего интерфейса или всех прочих интерфейсов в надежде на получение отклика на запрос (иногда даже независимо от анонсируемого адреса IP).

Уровень определяется максимальным из двух значений /proc/sys/net/ipv4/conf/{all,interface}/arp_announce.

Повышения уровня ограничений увеличивает шансы на получение отклика на запрос, а снижение дает более точную об отправителе.

arp_ignore

Целочисленная переменная arp_ignore определяет режим передачи откликов на полученные запросы ARP, относящиеся к локальным IP-адресам:

0 (по умолчанию) – отклики выдаются для любого локального адреса IP, связанного с любым интерфейсом;

1 – отклики выдаются только в тех случаях, когда интересующий адрес IP связан с принявшим запрос интерфейсом;

2 - отклики выдаются только в тех случаях, когда интересующий адрес IP связан с принявшим запрос интерфейсом и этот адрес находится в той же подсети, из которой поступил запрос;

3 – отклики выдаются только на запросы для глобальных и канальных адресов;

4-7 – зарезервированы;

8 – отклики не выдаются ни для каких локальных интерфейсов.

Используется большее из 2 значений в файлах /proc/sys/net/ipv4/conf/{all,interface}/arp_ignore.

tag

Целочисленная переменная tag позволяет задать значение, которое может использоваться при необходимости. По умолчанию установлено значение 0.

Переменные IPv6

Переменные конфигурации IPv6 доступны в файлах /proc/sys/net/ipv6/*. Для протокола IPv6 не используется отдельных глобальных переменных типа tcp_*.

Управление работой моста

Переменные этой группы сохраняются в файлах каталога /proc/sys/net/bridge/.

bridge-nf-call-arptables

Логическая переменная bridge-nf-call-arptables управляет передачей трафика ARP в цепочку FORWARD пакетного фильтра arptables. Установленное по умолчанию значение 1 разрешает передачу пакетов фильтрам, 0 – запрещает.

bridge-nf-call-iptables

Логическая переменная bridge-nf-call-iptables управляет передачей проходящего через мост трафика IPv4 в цепочки iptables. Используемое по умолчанию значение 1 разрешает передачу пакетов для фильтрации, 0 – запрещает.

bridge-nf-filter-vlan-tagged

Логическая переменная bridge-nf-filter-vlan-tagged определяет возможность передачи трафика IP/ARP с тегами VLAN программам фильтрации пакетов (arptables/iptables). Значение 1 (установлено по умолчанию) разрешает передачу пакетов с тегами VLAN программам фильтрации, 0 – запрещает.


 
Вход
Регистрационное имя

Пароль

[Восстановить пароль]

Если у Вас еще нет учетной записи, Вы можете зарегистрироваться.


Связанные ссылки
· Поиск в разделе Настройка сетевых параметров хостов
· Статьи пользователя Николай Малых


Самая популярная статья раздела Настройка сетевых параметров хостов:
Параметры SysCtl для стека IP


Оценка статьи
Средняя оценка: 2.83
голос.: 6


Оцените эту публикацию:

Отлично
Очень хорошо
Хорошо
Приемлемо
Плохо


Параметры

 Вариант для печати Вариант для печати


Связанные темы

Настройка параметров оборудованияВопросы безопасностиВопросы маршрутизации

"Вход" | Вход/регистрация | 0 коммент.
Комментарии выражают мнение их авторов. Администрация сайта не несет никакой ответственности за достоверность представленных в комментариях посетителей сведений, а также за содержание таких комментариев.

Для публикации своих комментариев Вам нужно зарегистрироваться..
Copyright © Nikolai Malykh
Все права на опубликованные на сайте материалы принадлежат Nikolai Malykh, если в опубликованном на сайте документе явно не указано иное.
Не разрешается воспроизведение опубликованных на сайте документов без согласия правообладателя.

Hosted By Web Hosting by iPage

Copyright © 2005 by Nikolai Malykh
Based on PHP-Nuke by Francisco Burzi. This is free software, and you may redistribute it under the GPL. Author comes with absolutely no warranty.
Время генерации страницы: 0.34 сек.