Страница 1 из 1

pf и 2 канала в интернет

Добавлено: 2010-04-27 18:52:40
psj
Задача: Есть два канала в интернет, необходимо по ip-адресам машин выпускать их в инет через разные каналы.
Пытаюсь сделать это при помощи pf. Есть вот такая машина:

Код: Выделить всё

19:31 Sergey.Poleckiy@sunrt [/etc]cat /etc/rc.conf 

# -- sysinstall generated deltas -- # Tue Apr 20 20:36:34 2010
# Created: Tue Apr 20 20:36:34 2010
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.

hostname="sunrt.dinp.local"

ifconfig_em0="inet 192.168.125.11  netmask 255.255.255.0"  # внутренний интерфейс 
ifconfig_igb0="inet 192.168.1.2  netmask 255.255.255.0"  # внешний интерфейс 1
ifconfig_igb1="inet 192.168.2.2  netmask 255.255.255.0"  # внешний интерфейс 1

defaultrouter="192.168.2.1"

gateway_enable="YES"

router_enable="YES"
router="/sbin/routed"
router_flags="-q"

sshd_enable="YES"

mousechar_start="3"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"
keyrate="fast"
keymap="ru.koi8-r"

pf_enable="YES"                 # Включить PF (Подгрузить модуль, если требуется)
pf_rules="/etc/pf.conf"         # Откуда подгружать правила для pf
pf_flags=""                     # дополнительные флаги для управляющей программы pfctl(8)
pflog_enable="YES"              # запуск pflogd(8) (система журналирования)
pflog_logfile="/var/log/pflog"  # где pflogd должен хранить журнал
pflog_flags=""                  # дополнительные флаги для pflogd
При помощи данного сайта, http://house.hcn-strela.ru/BSDCert/BSDA ... l#pf-queue и http://www.samag.ru/art/02.2007/02.2007_09.html был нарисован следующий конфиг:

Код: Выделить всё

19:37 Sergey.Poleckiy@sunrt [/etc]cat /etc/pf.conf
#/etc/pf.conf
#
ext_if_a	= "igb0"		# Внешний интерфейс 2Мбита
ext_gw_a	= "192.168.1.1"		# Шлюз в инет на 2 Ьбита
#
ext_if_b	= "igb1"		# Внешний интерфейс 512 Кбит
ext_gw_b	= "192.168.2.1"		# Шлюз в инет 512 Кбит
#
int_if		= "em0"			# Внутренний интерфейс
#
# Table для выхода в инет
table <inet2000>	persist file "/usr/local/etc/pf.table/inet2000"		# ip-адреса пользователей канала 2Мбита
table <servers>		persist file "/usr/local/etc/pf.table/servers"		# ip-адреса серверов
table <inet512>		persist file "/usr/local/etc/pf.table/inet512"		# ip-адреса пользователей канала 512Кбит
#
# Списки для выхода в инет
list_out_2000	= "{ <inet2000> <servers> }"
list_out_512	= "{ <inet512> }"
#----------------------------------------------------------------------------------------
# Нормализация трафика
scrub in
#----------------------------------------------------------------------------------------
set skip on { lo0, $int_if }
#
# NAT на 2 канала
# Переписываем шлюз по умолчанию на внешних интерфейсах
nat on $ext_if_a inet from $list_out_2000 to any -> ( $ext_if_a )
nat on $ext_if_b inet from $list_out_512 to any -> ( $ext_if_b )
#----------------------------------------------------------------------------------------
pass out route-to ( $ext_if_a $ext_gw_a) from ($ext_if_a) to any
pass out route-to ( $ext_if_b $ext_gw_b) from ($ext_if_b) to any
#----------------------------------------------------------------------------------------
pass quick on $ext_if_a inet proto icmp from any to any keep state
pass quick on $ext_if_b inet proto icmp from any to any keep state

pass all
Ну а дальше лыжи не едут. Т.е. выйти в инет можно всё равно ТОЛЬКО через шлюз по умолчанию. Я понимаю, что данный вопрос уже поднимался, НО огромная просьба - ткните меня носом где я не правильно делаю :(
Заранее благодарен!

Re: pf и 2 канала в интернет

Добавлено: 2010-04-27 22:09:58
BlackCat
Описание от разработчиков: http://openbsd.org/faq/pf/pools.html#outgoing.
Хинт: определение маршрута для транзитных пакетов осуществляется на входе внутреннего интерфейса.

Re: pf и 2 канала в интернет

Добавлено: 2010-04-27 22:19:24
baton4eg
с ipfw и setfib решается довольно просто

Re: pf и 2 канала в интернет

Добавлено: 2010-04-28 7:38:50
Al
BlackCat писал(а):Описание от разработчиков: http://openbsd.org/faq/pf/pools.html#outgoing.
Хинт: определение маршрута для транзитных пакетов осуществляется на входе внутреннего интерфейса.
Ссылка заезженна донельзя.
Топикстартер. Учитесь пользоваться поиском. Интернет и так завален всяким хламом.

Re: pf и 2 канала в интернет

Добавлено: 2010-04-28 7:43:37
psj
BlackCat писал(а):Описание от разработчиков: http://openbsd.org/faq/pf/pools.html#outgoing.
Хинт: определение маршрута для транзитных пакетов осуществляется на входе внутреннего интерфейса.
Дай бог тебе здоровья!!!
Спасибо огромное!!!
Всё заработало!