FAQ FreeBSD - Сеть. Часть 3

ОГЛАВЛЕНИЕ

9.18. Какую нагрузку вызывает использование IPFW?

Ответ на этот вопрос зависит главным образом от набора правил и произв
одительности процессора. Для большинства приложений, имеющих дело с ethernet и
простым набором правил, ответ: незначительно. Для тех, кому нужны реальные
цифры для удовлетворения любопытства, читайте дальше.
Следующие измерения были сделаны с использованием 2.2.5-STABLE на машине
486-66. IPFW был модифицирован для измерения времени, затрачиваемого внутри
процедуры ip_fw_chk и вывода результатов на консоль каждую тысячу пакетов.
Тестировались два набора по 1000 правил в каждом. Первый набор был предназначен
для демонстрации наихудшего случая, повторяя условие
    # ipfw add deny tcp from any to any 55555

Это наихудший случай, так как все условия IPFW будут проверены перед тем, как
будет принято окончательное решение о том, что пакет не соответствует условию
(мы меняли номер порта). После 999 повторений этого условия находилось правило
allow ip from any to any.
Второй набор был предназначен для быстрого прерывания процесса проверки услов
ий:
    # ipfw add deny ip from 1.2.3.4 to 1.2.3.4

Неподходящий IP-адрес источника для указанного условия быстро вызывает пропуск
этого правила. Как и ранее, последним правилом было allow ip from any to any.
Затраты на обработку пакета в первом случае было примерно 2.703 мс/пакет, или
примерно 2.7 микросекунд на правило. Таким образом, теоретический предел
скорости обработки пакетов с этими правилами равен примерно 370 пакетам в
секунду. Предполагая использование ethernet 10Мб/с с размером пакета примерно
1500, мы можем достигнуть только 55.5% использования пропускной способности.
В последнем случае на обработку каждого пакета было затрачено примерно 1.172мс,
или около 1.2 микросекунд на правило. Теоретический предел обработки будет рав
ен около 853 пакетам в секунду, что почти соответствует скорости 10Мб/с
ethernet.
Большое количество протестированных правил и природа этих правил не даёт
представление о реальной жизни - они были использованы только для генерации
информации о времени обработки. Вот несколько наблюдений, которые нужно иметь в
виду для построении эффективного набора правил:
  * Поместите правило `established' в самое начало списка для обработки основ
    ного трафика TCP. Не помещайте перед ним никаких правил allow tcp.
  * Старайтесь помещать часто вызываемые правила как можно раньше, а редко
    используемые - позже (без изменения политики, конечно). Вы можете выяснить
    частоту использования правил с помощью вывода статистики командой ipfw -a
    l.

9.19. Как можно перенаправить запросы с одной машины на другую?

Вы можете перенаправить запрос на FTP (или другой сервис) с помощью пакаджа
socket, доступного в дереве портов в категории "sysutils". Просто замените
командную строку запуска сервиса на вызов socket, типа:
    ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp

где ftp.foo.com и ftp являются соответственно хостом и портом для перенаправ
ления.

9.20. Где можно найти средства управления сетевым трафиком?

Для FreeBSD существуют два средства управления трафиком: свободно
распространяемый ALTQ и коммерческий продукт Bandwidth Manager от Emerging
Technologies.

9.21. Почему появляются сообщения /dev/bpf0: device not configured?

Для работы программ, использующих Berkeley Packet Filter (bpf) необходимо в
ключение в ядро соответствующего драйвера. Перекомпилируйте ядро, добавив в его
конфигурационный файл следующую строку:
    pseudo-device bpfilter # Berkeley Packet Filter

Затем, после перезапуска системы, вам нужно создать соответствующий файл
устройства. Это можно сделать, сменив текущий каталог на /dev и выполнив
команду
    # sh MAKEDEV bpf0

Обратитесь к разделу руководства, посвящённому созданию файлов устройств за
подробной информацией по этому вопросу.

9.22. Как смонтировать диск Windows-машины в моей локальной сети, как это делает smbmount в Linux?

Воспользуйтесь пакетом sharity light из Коллекции Портов.