Страницы

2015-02-28

Фильтрующий мост между сетевыми интерфейсами

В новых версиях FreeBSD уже многое по дефолту работает и не требует добавления но переношу старую статью как было (может чуток подправил)
Опции ядра

device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_PRIQ
options ALTQ_NOPCC

Я подразумеваю что все знают как пере-собрать ядро и т.д.

Создаём мост
ifconfig bridge0 create
ifconfig bridge0 addm rl0 addm xl0
ifconfig bridge0 up

Удалять интерфейсы из моста можно таким образом
ifconfig bridge0 deletem xl0

Вносим изменения в rc.conf
cloned_interfaces="bridge0"
ifconfig_bridge0="addm rl0 addm xl0 up"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0 up"
ifconfig_xl0="up"


Фильтрация пакетов
Это определяют переменные sysctl

фильтрация на физических интерфейсах
sysctl net.link.bridge.pfil_member=1

фильтрация на виртуальном интерфейсе
sysctl net.link.bridge.pfil_bridge=1

Для параноиков рекомендую оба выставить в "1"

Просмотреть таблицы коммутации
ifconfig bridge0 addr 

Установка размера таблицы адресов
ifconfig bridge0 maxaddr 200 

Установка времени в секундах сколько адреса будут в таблице
ifconfig bridge0 timeout 2000 

Очистка таблицы адресов
ifconfig bridge0 flush 

Очистка всех адресов
ifconfig bridge0 flushall 

Добавление статической записи в таблицу
ifconfig bridge0 static re0 01:12:23:34:45:56 

Удаление адреса из таблицы
ifconfig bridge0 deladdr 01:12:23:34:45:56

Атрибут learning на интерфейсе указывает создаётся или нет динамические таблицы адресов
ifconfig bridge0 learn rl0 
ifconfig bridge0 -learn rl0

STP протокол
ifconfig bridge0 stp rl0 
ifconfig bridge0 -stp rl0

В общем то как OpenBSD отказалась от использования ALTQ то это нацелено скорее на старые сервера которые ещё работаю но есть правило (работает - не надо трогать) Соответственно хочешь сделать лучше - сделай всё сам сначала

######## ALTQ
altq on $spinif priq bandwidth 512Kb queue {std_spin, buyers, director, reg_managers, self}
queue std_spin on $spinif priq(default)
queue buyers priority 6 priq(red)
queue director priority 8
queue reg_managers priority 10
queue self priority 15#shaping for fox
altq on $foxif cbq bandwidth 128Kb queue { std_fox }
queue std_fox on $foxif cbq(default)

pass in quick on $spinif from $reg_managers to any flags S/SA keep state queue reg_managers
pass in quick on $spinif from $director to any flags S/SA keep state queue director
pass in quick on $spinif from $buyers to any flags S/SA keep state queue buyers
pass in quick on $spinif from $spinif to any flags S/SA keep state queue self
pass in quick on $spinif from $spinnet to any flags S/SA keep state 

Комментариев нет:

Отправить комментарий