Настройка Ethernet Bridge: различия между версиями

Материал из OpenBSD-Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «: Данная статья 100 % копипаст с [http://www.openbsd.ru www.openbsd.ru] Использование Ethernet Bridge позволяет об…»)
 
 
Строка 5: Строка 5:
 
Чтобы настроить OpenBSD в качестве Ethernet Bridge, нужно выполнить следующие шаги:
 
Чтобы настроить OpenBSD в качестве Ethernet Bridge, нужно выполнить следующие шаги:
  
# Сконфигурировать ядро OpenBSD, включив в него псевдоустройство <tt>"bridge"</tt>. Файл конфигурации ядра должен содержать строку <tt>'''"pseudo-device bridge"'''</tt>.
+
* Сконфигурировать ядро OpenBSD, включив в него псевдоустройство <tt>"bridge"</tt>. Файл конфигурации ядра должен содержать строку <tt>'''"pseudo-device bridge"'''</tt>.
# Создать файл конфигурации <span style="color:green;">/etc/bridgename.bridge0</span>, содержащий команды конфигурации Bridge, например:
+
* Создать файл конфигурации <span style="color:green;">/etc/bridgename.bridge0</span>, содержащий команды конфигурации Bridge, например:
  
add rl0
+
<pre>
add fxp0
+
add rl0
up
+
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)]
+
Подробнее о файлах конфигурации сетевых интерфейсов можно прочитать в [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 адреса.
+
Обратите внимание, что в данном случае IP адрес присваивается только одному интерфейсу. Допускается также создание Bridge, не имеющего своего IP адреса.
  
# Перезагрузить машину.  
+
* Перезагрузить машину.  
  
 
Ethernet Bridge также позволяет с помощью протокола <tt>Ethernet-over-IP</tt> объединить в один логический сегмент сети, физически находящиеся далеко друг от друга. Рассмотрим следующий пример:
 
Ethernet Bridge также позволяет с помощью протокола <tt>Ethernet-over-IP</tt> объединить в один логический сегмент сети, физически находящиеся далеко друг от друга. Рассмотрим следующий пример:
  
* Хост '''A''', адрес 81.1.212.10, внутренний интерфейс '''em0'''
+
: Хост '''A''', адрес 81.1.212.10, внутренний интерфейс '''em0'''
* Хост '''B''', адрес 81.1.226.48, внутренний интерфейс '''rl0'''
+
: Хост '''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.