2004 г
Проект Русской Документации FreeBSD
содержание
Текст создал Steve Peterson.
Иногда полезно разделить одну физическую сеть (такую, как сегмент Ethernet) на два
отдельных сегмента сети без необходимости создания подсетей IP и использования
маршрутизатора для соединения сегментов. Устройство, которое соединяет две сети на такой
манер, называется ``сетевым мостом'' (``bridge''). Система FreeBSD с двумя сетевыми
адаптерами может выступать в роли моста.
Мост работает на основе изучения адресов уровня MAC (адресов Ethernet) устройств на
каждом из своих сетевых интерфейсах. Он перенаправляет трафик между двумя сетями, только
когда адреса отправителя и получателя находятся в разных сетях.
По многим параметрам мост работает также, как коммутатор Ethernet с малым количеством
портов.
На сегодняшний день есть две ситуации, когда можно использовать мост.
Первая ситуация возникает, когда ваша физическая сеть перегружена трафиком, но по
каким-то соображениям вы не хотите разделять сеть на подсети и соединять их с помощью
маршрутизатора.
Давайте рассмотрим в качестве примера газету, в которой редакторский и
производственный отделы находятся в одной и той же подсети. Пользователи в редакторском
отделе все используют сервер A для служб доступа к файлам, а
пользователи производственного отдела используют сервер B. Для
объединения всех пользователей используется сеть Ethernet, а высокая нагрузка на сеть
замедляет работу.
Если пользователи редакторского отдела могут быть собраны в одном сегменте сети, а
пользователи производственного отдела в другом, то два сетевых сегмента можно объединить
мостом. Только сетевой трафик, предназначенный для интерфейсов с ``другой'' стороны
моста, будет посылаться в другую сеть, тем самым снижая уровень нагрузки на каждый
сегмент сети.
Второй распространенной ситуацией является необходимость в обеспечении функций
межсетевого экрана без трансляции сетевых адресов (NAT).
Для примера можно взять маленькую компанию, которая подключена к своему провайдеру по
каналу DSL или ISDN. Для неё провайдер выделил 13 глобально доступных IP-адресов для
имеющихся в сети 10 персональных компьютеров. В такой ситуации использование межсетевого
экрана на основе маршрутизатора затруднено из-за проблем с разделением на подсети.
Межсетевой экран на основе моста может быть настроен и включен между маршрутизаторами
DSL/ISDN без каких-либо проблем с IP-адресацией.
Для работы моста требуются по крайней мере два сетевых адаптера. К сожалению, не все
сетевые адаптеры во FreeBSD 4.0 поддерживают функции моста. Прочтите страницу
Справочника по bridge(4) для
выяснения подробностей о поддерживаемых адаптерах.
Перед тем, как продолжить, сначала установите и протестируйте два сетевых
адаптера.
Для включения поддержки функций моста в ядре, добавьте строчку
options BRIDGE
в файл конфигурации вашего ядра, и перестройте ядро.
Если вы планируете использовать мост в качестве межсетевого экрана, вам нужно также
добавить опцию IPFIREWALL. Прочтите Разд. 14.8, содержащий общую информацию о настройке моста в
качестве межсетевого экрана.
Если вам необходимо обеспечить прохождение не-IP пакетов (таких, как ARP) через мост,
то имеется опция межсетевого экрана, которую можно задать. Это опция IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при этом правило,
используемое межсетевым экраном по умолчанию, меняется на разрешительное для всех
пакетов. Перед тем, как задавать эту опцию, убедитесь, что вы понимаете работу вашего
набора правил.
Если вы хотите использовать мост в качестве машины, ограничивающей пропускную
способность, то добавьте в файл конфигурации ядра опцию DUMMYNET. Дополнительную информацию можно почерпнуть из страницы
Справочника по dummynet(4).
Добавьте строку
net.link.ether.bridge=1
в файл /etc/sysctl.conf для включения функций моста во время
работы системы, и строку:
net.link.ether.bridge_cfg=if1,if2
для включения функций моста для указанных интерфейсов (замените if1 и if2 на имена двух ваших
сетевых интерфейсов). Если вы хотите, чтобы проходящие через мост пакеты фильтровались
посредством ipfw(8), вы должны
добавить строчку:
net.link.ether.bridge_ipfw=1
Во FreeBSD 5.2-RELEASE и последующих версиях нужно использовать вместо указанных
следующие строки:
net.link.ether.bridge.enable=1
net.link.ether.bridge.config=if1,if2
net.link.ether.bridge.ipfw=1
Если вы хотите осуществлять удалённый доступ на мост через ssh(1) из сети, то
корректно назначить одному из сетевых адаптеров IP-адрес. Общепринято, что назначение
адреса обоим сетевым адаптерам является не самой хорошей идеей.
Если в вашей сети присутствует несколько мостов, не должно быть более одного маршрута
между любыми двумя рабочими станциями. С технической точки зрения это означает отсутствие
поддержки протокола spanning tree.
Сетевой мост может увеличить задержки в замерах командой ping(8), особенно для
трафика между двумя разными сегментами.
|
|