|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Sergey A. Cherukhin 2:5020/400 12 Oct 2004 15:03:48 To : Moderator of RU.UNIX.BSD Subject : Re: FAQ --------------------------------------------------------------------------------
Последняя редакция разделов FAQ про пакетные фильтры и NAT.
Q.: Во FreeBSD существует несколько пакетных фильтров - bpf, PF, ipf,
IPFilter, IPFW,
IPFW2. Чем они отличаются?
A.: Пакетный фильтр bpf не используется для построения МСЭ (межсетевых
экранов aka firewall). Этот фильтр используется программами анализа и учета
трафика, например, trafd. Правила фильтрации задаются программой на
псевдо-машинном языке.
Пакетные фильтры PF, IPFilter, IPFW и IPFW2 используются для построения МСЭ.
IPFilter (он же ipf) - небольшой по размеру пакетный фильтр, включенный в
ядро FreeBSD с версии 3.3.3. До этого был доступен в виде порта.
PF - пакетный фильтр, заимствованный из OpenBSD. В настоящее время доступен
в виде порта. С точки зрения пользователя очень похож на IPFilter, но имеет
дополнительную функциональность (нормализация пакетов, управление
приоритетеми пакетов, управление полосой пропускания, фильтрация по uid/gid,
аутентификация пользователя на маршрутизаторе и пассивное определение
удаленной ОС).
IPFW - пакетный фильтр по-умолчанию начиная с FreeBSD 2.0.
IPFW2 является более новой версией IPFW, имеющей больше возможностей по
сравнению с IPFW. Во FreeBSD 4.* и старше по-умолчанию используется IPFW, в
версиях 5.* и новее - IPFW2.
Q.: Что лучше использовать, IPFW, IPFilter или PF?
А.: Hеобходимо использовать IPFW если:
- нужно разделять или ограничивать полосу пропускания;
- нужно использовать divert-сокеты (для natd или tcpmssd)
- нужны правила с указанием uid/gid пакетов.
- нужна оптимизация сложного дерева правил (сложнее, чем head/group
в ipf).
В противном случае - на Ваш выбор.
Пакетные фильтры можно использовать совместно в разных комбинациях.
Hапример, можно использовать для фильтрации пакетов IPFilter, а для
управления полосой пропускания - DUMMYNET из IPFW.
Q.: В каком порядке пакеты проходят через фильтры при использовании
нескольких фильтров?
A.: Если все фильтры вкомпилированы в ядро, то порядок следующий:
interface in->bpf->ipnat->ipfilter->ipfw->pkt
pkt->ipfilter->ipnat->ipfw->bpf->interface out
Если фильтры подгружаются модулями, то порядок прохождения зависит от
порядка загрузки.
Q.: Что лучше использовать, natd или ipnat ?
A.: Политика трансляции для natd задается в IPFW, что дает большую гибкость
в настройках и позволяет, например, выполнять несимметричную фильтрацию,
когда исходящие пакеты уходят через один интерфейс, а входящие приходят
через другой.
Кроме того, natd поддерживает transparent proxy для протоколов FTP, IRC,
ICMP, PPTP, RTSP, PNA, NetBios over TCP/IP и Cisco Skinny Station protocol,
а ipnat - только FTP, H.323, ipsec, NetBios over TCP/IP, raudio и rcmd.
Однако natd работает в userland и на каждый пакет выполняется 2 переключения
контекста, что дает overhead, заметный на слабом железе (i486,
i586).
В отличие от natd, ipnat потребляет значительно меньше процессорных
ресурсов, ipnat можно настроить на GENERIC-ядре, подгрузив модуль ipl, а для
natd придется перекомпилировать ядро с опцией IPDIVERT и ipnat работает с
любым пакетным фильтром, а для natd обязательно нужен ipfw.
Так что если у Вас слабое железо, Вы не хотите перекомпилировать ядро или не
хотите использовать ipfw и функциональность ipnat Вас устраивает -
используйте ipnat.
--
WBW
Sergey A. Cherukhin
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65773599fe2b.html, оценка из 5, голосов 10
|