Настройка Ethernet Bridge: различия между версиями
Nordwind (обсуждение | вклад) (Новая страница: «: Данная статья 100 % копипаст с [http://www.openbsd.ru www.openbsd.ru] Использование Ethernet Bridge позволяет об…») |
Nordwind (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
Чтобы настроить OpenBSD в качестве Ethernet Bridge, нужно выполнить следующие шаги: | Чтобы настроить OpenBSD в качестве Ethernet Bridge, нужно выполнить следующие шаги: | ||
− | + | * Сконфигурировать ядро OpenBSD, включив в него псевдоустройство <tt>"bridge"</tt>. Файл конфигурации ядра должен содержать строку <tt>'''"pseudo-device bridge"'''</tt>. | |
− | + | * Создать файл конфигурации <span style="color:green;">/etc/bridgename.bridge0</span>, содержащий команды конфигурации Bridge, например: | |
− | + | <pre> | |
− | + | add rl0 | |
− | + | add fxp0 | |
+ | up | ||
+ | </pre> | ||
В данном случае мы объявляем интерфейсы <tt>fxp0</tt> и <tt>rl0</tt> одним логическим Ethernet сегментом. Подробнее о командах конфигурирования Bridge можно прочитать в [http://www.openbsd.org/cgi-bin/man.cgi?query=ifconfig&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html ifconfig(8)]. При использовании нескольких логических сегментов следует создать файл конфигурации для каждого псевдоустройства bridge. | В данном случае мы объявляем интерфейсы <tt>fxp0</tt> и <tt>rl0</tt> одним логическим Ethernet сегментом. Подробнее о командах конфигурирования Bridge можно прочитать в [http://www.openbsd.org/cgi-bin/man.cgi?query=ifconfig&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html ifconfig(8)]. При использовании нескольких логических сегментов следует создать файл конфигурации для каждого псевдоустройства bridge. | ||
− | + | * Создать файлы конфигурации сетевых интерфейсов: | |
<span style="color:green;">/etc/hostname.fxp0</span>: | <span style="color:green;">/etc/hostname.fxp0</span>: | ||
Строка 24: | Строка 26: | ||
up | up | ||
− | + | Подробнее о файлах конфигурации сетевых интерфейсов можно прочитать в [http://www.openbsd.org/cgi-bin/man.cgi?query=hostname.if&sektion=5&arch=i386&apropos=0&manpath=OpenBSD+Current hostname.if(5)] | |
− | + | Обратите внимание, что в данном случае IP адрес присваивается только одному интерфейсу. Допускается также создание Bridge, не имеющего своего IP адреса. | |
− | + | * Перезагрузить машину. | |
Ethernet Bridge также позволяет с помощью протокола <tt>Ethernet-over-IP</tt> объединить в один логический сегмент сети, физически находящиеся далеко друг от друга. Рассмотрим следующий пример: | Ethernet Bridge также позволяет с помощью протокола <tt>Ethernet-over-IP</tt> объединить в один логический сегмент сети, физически находящиеся далеко друг от друга. Рассмотрим следующий пример: | ||
− | + | : Хост '''A''', адрес 81.1.212.10, внутренний интерфейс '''em0''' | |
− | + | : Хост '''B''', адрес 81.1.226.48, внутренний интерфейс '''rl0''' | |
Чтобы объединить сегменты интерфейса <tt>'''em0'''</tt> хоста '''A''' и <tt>'''rl0'''</tt> хоста '''B''' в один логический Ethernet сегмент, нужно подать следующие команды: | Чтобы объединить сегменты интерфейса <tt>'''em0'''</tt> хоста '''A''' и <tt>'''rl0'''</tt> хоста '''B''' в один логический Ethernet сегмент, нужно подать следующие команды: |
Текущая версия на 17:04, 14 июня 2013
- Данная статья 100 % копипаст с www.openbsd.ru
Использование Ethernet Bridge позволяет объединить несколько сегментов Ethernet в один логический сегмент. При этом допустимо использование правил фильтрации pf, что позволяет превратить OpenBSD в прозрачный IP фильтр.
Чтобы настроить OpenBSD в качестве Ethernet Bridge, нужно выполнить следующие шаги:
- Сконфигурировать ядро OpenBSD, включив в него псевдоустройство "bridge". Файл конфигурации ядра должен содержать строку "pseudo-device bridge".
- Создать файл конфигурации /etc/bridgename.bridge0, содержащий команды конфигурации Bridge, например:
add rl0 add fxp0 up
В данном случае мы объявляем интерфейсы fxp0 и rl0 одним логическим Ethernet сегментом. Подробнее о командах конфигурирования Bridge можно прочитать в ifconfig(8). При использовании нескольких логических сегментов следует создать файл конфигурации для каждого псевдоустройства bridge.
- Создать файлы конфигурации сетевых интерфейсов:
/etc/hostname.fxp0:
inet 194.226.170.3 255.255.255.0 NONE
/etc/hostname.rl0:
up
Подробнее о файлах конфигурации сетевых интерфейсов можно прочитать в hostname.if(5)
Обратите внимание, что в данном случае IP адрес присваивается только одному интерфейсу. Допускается также создание Bridge, не имеющего своего IP адреса.
- Перезагрузить машину.
Ethernet Bridge также позволяет с помощью протокола Ethernet-over-IP объединить в один логический сегмент сети, физически находящиеся далеко друг от друга. Рассмотрим следующий пример:
- Хост A, адрес 81.1.212.10, внутренний интерфейс em0
- Хост B, адрес 81.1.226.48, внутренний интерфейс rl0
Чтобы объединить сегменты интерфейса em0 хоста A и rl0 хоста B в один логический Ethernet сегмент, нужно подать следующие команды:
Для хоста A:
# sysctl -w net.inet.etherip.allow=1 # ifconfig gif0 tunnel 81.1.212.10 81.1.226.48 # ifconfig bridge0 create # brconfig bridge0 add em0 add gif0 up
Для хоста B:
# sysctl -w net.inet.etherip.allow=1 # ifconfig gif0 tunnel 81.1.226.48 81.1.212.10 # ifconfig bridge0 create # brconfig bridge0 add rl0 add gif0 up
Замечания
- При использовании OpenBSD Packet Filter пакет, проходящий через Bridge, попадает под проверку PF два раза: при входе на одном интерфейсе и при выходе на другом. Чтобы производить keep-state фильтрацию, нам необходимо разрешить все входящие и исходящие пакеты на одном интерфейсе, а на другом производить фильтрацию. Пример правил:
# фильтрация производится на rl0, поэтому пропускаем все пакеты на rl1 pass quick on rl1 # по умолчанию мы блокируем все пакеты и пропускаем только # icmp запросы с получившимися keep-state ответами в обе стороны. block on rl0 pass on rl0 inet proto icmp icmp-type echoreq code 0 keep state
- При использовании pf для фильтрации пакетов, проходящих через Bridge, действуют только правила для входящих пакетов.
- Если во время работы Bridge производится перенос какого-нибудь компьютера (или другого устройства, имеющего свой Ethernet адрес) с одного Ethernet сегмента на другой, следует выполнить команду
# brconfig bridge0 flush
(где bridge0 - псевдоинтерфейс Bridge, к которому относится Ethernet сегмент, где раньше находился компьютер).
Смотрите также по данной теме пошаговое руководство, в котором рассматривается привязка IP к MAC с помощью bridge и pf.