The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"хочу чтоб нат работал через PF а шейпер через IPFW"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"хочу чтоб нат работал через PF а шейпер через IPFW"  
Сообщение от alex email(??) on 05-Мрт-08, 11:06 
Всем привет
ситуация такая хочу чтоб нат работал через PF а шейпер через IPFW
как правильно реализовать эту схему поделитесь опытом плизз
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "хочу чтоб нат работал через PF а шейпер через IPFW"  
Сообщение от mishgun email(??) on 05-Мрт-08, 17:09 
>Всем привет
>ситуация такая хочу чтоб нат работал через PF а шейпер через IPFW
>
>как правильно реализовать эту схему поделитесь опытом плизз

У меня эта схема работает для PPPoE. На сервере стоят ipfw (для шейпинга) и pf (для NAT) как и сказано. Все просто:

rc.conf:

  ...

  # IPFW
  firewall_enable="YES"
  firewall_script="/etc/rc.firewall"
  firewall_type="CUSTOM"
  ...

  # pf used for NAT
  pf_enable="YES"            # Set to YES to enable packet filter (pf)
  pf_rules="/etc/pf.conf"        # rules definition file for pf
  ...

в rc.firewall стандартные настройки файерволла, а правила для шейпинга сосздаются/удаляются при подключении/отключении каждого клиента скриптами if-up и if-down, в которых соответственно выполняются коммадны:

  ipfw pipe 5000 config bw 128kb/sec queue 20 # создает пайп для пользователя
  ipfw add 5000 pipe 5000 all from 192.168.1.100 to any # засовывает трафик от пользователя с ip 192.168.1.100 в его пайп.
  Здесь номер правила может отличаться от номера пайпа, это я просто для примера

  соответственно когда пользователь отключается говорим:
  
  ipfw pipe delete 5000
  ipfw delete 5000

pf.conf
  nat on $ext_if from $internal_net to any -> $external_addr
  
  $ext_if - интерфейс, смотрящий наружу (="fxp0")
  $int_if - интерфейс, смотрящий на клиентов (="fxp1")
  $internal_net - клиетнская сеть (="192.168.1.0/24")

Единственное с чем не разбирался - кто отрабатывает первым ipfw или pf. По сути, это не принципиально и все работает нормально.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру