Привязка IP к MAC с помощью bridge(4) и pf(4): различия между версиями

Материал из OpenBSD-Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «: Данная статья 100 % копипаст с [http://www.openbsd.ru www.openbsd.ru] == Мини-руководство "шаг за шагом" == П…»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 47: Строка 47:
 
Создаем и поднимаем псевдоустройство <tt>bridge</tt>:
 
Создаем и поднимаем псевдоустройство <tt>bridge</tt>:
  
# ifconfig bridge0 create
+
# ifconfig bridge0 create
# sh /etc/netstart bridge0
+
# sh /etc/netstart bridge0
  
 
Для проверки смотрим информацию о бридже:
 
Для проверки смотрим информацию о бридже:
Строка 93: Строка 93:
 
  # pfctl -f /etc/pf.conf
 
  # pfctl -f /etc/pf.conf
  
Дополнительную информацию можно получить, прочитав статью «Настройка Ethernet Bridge», а также из справочных man-страниц: [http://www.openbsd.org/cgi-bin/man.cgi?query=bridge&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html bridge(4)], [http://www.openbsd.org/cgi-bin/man.cgi?query=pf&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html pf(4)], [http://www.openbsd.org/cgi-bin/man.cgi?query=ifconfig&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html ifconfig(8)], [http://www.openbsd.org/cgi-bin/man.cgi?query=netstart&sektion=8&apropos=0&manpath=OpenBSD+Current&arch=i386 netstart(8)].
+
Дополнительную информацию можно получить, прочитав статью «[[Настройка Ethernet Bridge]]», а также из справочных man-страниц: [http://www.openbsd.org/cgi-bin/man.cgi?query=bridge&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html bridge(4)], [http://www.openbsd.org/cgi-bin/man.cgi?query=pf&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html pf(4)], [http://www.openbsd.org/cgi-bin/man.cgi?query=ifconfig&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html ifconfig(8)], [http://www.openbsd.org/cgi-bin/man.cgi?query=netstart&sektion=8&apropos=0&manpath=OpenBSD+Current&arch=i386 netstart(8)].
  
 
[[Категория:Howto]]
 
[[Категория:Howto]]

Текущая версия на 17:06, 14 июня 2013

Данная статья 100 % копипаст с www.openbsd.ru

Мини-руководство "шаг за шагом"

Пример предоставления клиентам доступа к ресурсам сети с привязкой IP к MAC с помощью bridge и pf. В данном случае для создания моста достаточно одного внутреннего сетевого интерфейса ral0.

    Сервер. IP: 192.168.2.1
    Клиент 1. Hostname: evol, IP: 192.168.2.2, MAC: 00:0f:ea:91:43:f6
    Клиент 2. Hostname: aurora, IP: 192.168.2.3, MAC: 00:80:c8:2c:47:a1 

Включаем перенаправление IPv4-пакетов между сетевыми интерфейсами:

# sysctl -w net.inet.ip.forwarding=1

Добавляем соответствующую запись в /etc/sysctl.conf:

# vi /etc/sysctl.conf
net.inet.ip.forwarding=1

Редактируем /etc/bridgename.bridge0:

# vi /etc/bridgename.bridge0
add ral0
blocknonip ral0
link0
-discover ral0
-learn ral0
flushall
static ral0 00:0f: ea:91:43:f6
static ral0 00:80:c8:2c:47:a1
up
rulefile /etc/bridge.conf

Редактируем /etc/bridge.conf:

# vi /etc/bridge.conf
pass in on ral0 src 00:0f: ea:91:43:f6 tag evol
pass in on ral0 src 00:80:c8:2c:47:a1 tag aurora
block in on ral0

Создаем и поднимаем псевдоустройство bridge:

# ifconfig bridge0 create
# sh /etc/netstart bridge0

Для проверки смотрим информацию о бридже:

# brconfig bridge0
bridge0: flags=1041<UP,RUNNING,LINK0>
 Configuration:
 priority 32768 hellotime 2 fwddelay 15 maxage 20
 Interfaces:
 ral0 flags=4<BLOCKNONIP>
 port 2 ifpriority 128 ifcost 55
 pass in on ral0 src 00:0f: ea:91:43:f6 tag evol
 pass in on ral0 src 00:80:c8:2c:47:a1 tag aurora
 block in on ral0
 Addresses (max cache: 100, timeout: 240):
 00:80:c8:2c:47:a1 ral0 1 flags=1<STATIC>
 00:0f: ea:91:43:f6 ral0 1 flags=1<STATIC>

Редактируем /etc/pf.conf:

# vi /etc/pf.conf
ext_if = «vr0»
int_if = «ral0»

evol = «192.168.2.2»
aurora = «192.168.2.3»

nat on $ext_if inet from { $evol, $aurora } to any -> ($ext_if)

block in quick on $int_if from ! $evol to any tagged evol
block in quick on $int_if from ! $aurora to any tagged aurora

block return

pass quick on { lo, $int_if } inet all
pass quick on $ext_if inet all keep state

Перезагружаем набор рулесетов файервола:

# pfctl -f /etc/pf.conf

Дополнительную информацию можно получить, прочитав статью «Настройка Ethernet Bridge», а также из справочных man-страниц: bridge(4), pf(4), ifconfig(8), netstart(8).