| Аннотация |
В этом документе описывается процесс настройки ethernet-моста. Что такое ethernet-мост? Ethernet-мост - это устройство, контролирующее пакеты данных, передаваемых в подсети, существующее для уменьшения нагрузки на сеть. Мост обычно устанавливается между двумя отдельными группами компьютеров, которые часто общаются внутри группы, но значительно реже между группами. Хороший пример использования моста - группа Макинтошей и группа Unix-машин. Обе этих группы достаточно плотно общаются между собой, перегружая сеть, и, в результате, этого мешают другим машинам передавать данные. Мост должен быть помещен между этими двумя группами. Задачей моста будет следующее: определять местонахождение получателя каждого пакета данных, чтобы отфильтровывать пакеты, которые не должны попадать в противоположный от отправителя сегмент ethernet. Результатом этого будет более быстрая и незагруженная сеть с меньшим количеством столкновений пакетов. |
Установите пакет "Конфигурирование моста":
ftp://shadow.cabi.net/pub/Linux/BRCFG.tgz |
Разрешите использование нескольких ethernet-устройств в вашей машине, добавив следующие строки в /etc/lilo.conf, и перезапустив lilo:
append = "ether=0,0,eth1"
|
append = "ether=0,0,eth1 ether=0,0,eth2"
|
linux ether=0,0,eth1
|
linux ether=0,0,eth1 ether=0,0,eth2
|
Пересоберите ядро с разрешенной опцией BRIDGING.
Мосту не нужен IP-адрес. Он МОЖЕТ его иметь, но простой мост в нем не нуждается. Чтобы убрать IP-адрес с вашего моста, перейдите в каталог /etc/sysconfig/network-scripts/ (для систем с дистрибутивом RedHat) и скопируйте файл ifcfg-lo0 в ifcfg-eth0 и ifcfg-eth1. В этих двух файлах измените строку ``DEVICE=lo'' на ``DEVICE=eth0'' и ``DEVICE=eth1'' соответственно. В других дистрибутивах эта процедура может отличаться - сделайте то, что нужно сделать, чтобы достичь этого же результата! Если у вас больше двух интерфейсов на мосте, то скопируйте и настройте соответствующие конфигурации всем интерфейсам.
Перезагрузитесь с новым ядром, в котором разрешены мосты, и убедитесь в том, что интерфейсы не получили IP-адресов.
После того, как система загрузится, установите картам режим "promisc", чтобы они обрабатывали каждый пакет, проходящий по сети:
ifconfig eth0 promisc ; ifconfig eth1 promisc
|
Включите мост, используя команду brcfg:
brcfg -ena
|
Проверьте, различается ли трафик на интерфейсах:
tcpdump -i eth0 (в одном окне)
tcpdump -i eth1 (в другом окне)
|
Запустите tcpdump на другой машине, чтобы проверить, правильно ли мост отделяет один сегмент сети от другого.
Я получаю сообщение
ioctl(SIOCGIFBR) failed: Package not installed
Ошибка ioctl(SIOCGIFBR): Пакет не установлен
|
В ваше ядро не встроена поддержка мостов. Установите ядро версии 2.0 или новее, и пересоберите его со включенной опцией Ethernet-МОСТ (BRIDGING).
Машины в одном сегменте не видят другой сегмент даже при помощи ping!
Включили ли вы мост командой ``brcfg -ena''? (brcfg должен вывести сообщение ``bridging is ENABLED'')
Установили ли вы интерфейсы в режим "promisc"? (используйте команду ``ifconfig''. Флаг ``PROMISC'' должен быть установлен на всех интерфейсах.)
Если вы используете адаптеры, поддерживающие разные типы соединений (кабели), убедитесь в том, что выбран правильный. Возможно вам придется использовать программу настройки, поставляемую вместе с картой.
У меня не работают команды telnet/ftp с машины с мостом! Почему?
Это происходит потому, что ни один интерфейс на мосте не имеет IP-адреса. Мост должен быть прозрачен для сети.
Как нужно настраивать маршрутизацию в мосте?
Никак! Все маршрутизация автоматически настраивается ядром. Чтобы узнать ethernet-адреса, обрабатываемые мостом, используйте программу brcfg в режиме отладки:
brcfg -deb
|
Мост вроде бы работает, но почему "traceroute" не показывает мост, как часть пути соединения?
"Traceroute" не должен показывать мост, как часть пути соединения, из-за специфической сути самого моста. Мост не должен быть виден сети.
Нужно ли включать опцию IP_FORWARD при сборке ядра?
Нет. Код моста в ядре работает на уровне транспорта пакетов. IP_FORWARD предназначен для шлюзов, в которых каждому интерфейсу назначается IP-адрес.
Почему физические ethernet-адреса интерфейсов идентичны (так показывает программа ``brcfg'')? Не должны ли они различаться?
Нет. Каждый интерфейс на мосте получает одинаковый адрес от кода управления мостом в ядре.
Опция "Ethernet-мосты (Bridging)" не появляется при конфигурировании ядра. Как же мне ее включить?
В процессе конфигурирования ядра ответьте "Да" (Y) на вопрос "Запрашивать установку экспериментальных и/или не полностью готовых частей кода/драйверов" (Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]".
Большое количество хабов (4 и больше), соединенных последовательно один за другим, вызывают задержки в сети ethernet. Какой эффект произведет мост на сеть, в котором используется несколько хабов?
Мост аннулирует эффект нескольких хабов. Мост обрабатывает пакеты по-другому, не так как хаб, поэтому не может вызвать проблем с задержками.
Может ли мост работать между 10- и 100-мегабитным сегментами? Замедлит ли подобная конфигурация трафик на быстром сегменте?
Да, мост может соединить 10- и 100-мегабитные сегменты. Так как сетевая карта на быстрой части сети поддерживает 100 Мбит, TCP занимается всем остальным. Пакеты, идущие с хоста в 100-мегабитной части сети на хост, находящийся в 10-мегабитной части, идут, конечно, со скоростью 10 мегабит. На трафик, идущий внутри 100 мегабитной части сети (включая трафик через мост из 100Мб в 100Мб сегмент) медленная сеть влияния не оказывает.
Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: <linux-howto@metalab.unc.edu> или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу <linux-howto@asplinux.ru>