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

2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-11 5:19:55
Евгений
Здравствуйте уважаемые господа!
Никогда не писал, но посещаю сей ресурс постоянно, замечательный кстати!
Так вот, проблем с FreeBSD никогда не испытывал, но тут просто голову поломал, уже неделю тра.. тренируюсь.
Описание системы:
Роутер на FreeBSD 6.2 р12 - 4 сетевухи
За двумя - две локалки 192.168.15.0/24 и 192.168.16.0/24
Две карты смотрят в двух провайдеров, один как основной один как резервный - переходим на него когда первый не работает (или деньги кончились) - пока можно о нем не говорить (на нем реальный ИП и алиас в городскую сетку провайдера),
На одной из внешних карт (та где основной) есть vlan; На карте и на влане прописаны реальные АйПи выданные провайдером (собственно подсети 62.64.X.X/32), у каждой свой шлюз дефолтный. Стоит SQUID в прозрачном режиме, то есть все обращения на 80й порт заворачиваются на 3128 на 127.0.0.1 на машине где стоит Прокси (та же где роутер), с одним каналом все работает, и если ручками дефолт переписываешь тоже, но только по дефолтному пути.
Изчитал гору сайтов, гайдов итп, понимаю что все должно работать на PF с помощью route-to/reply-to но не работает, все летит по дефолтному пути.
Не мог бы кто нить набросать конфижок примерный - я пойму в чем грабли. И еще вопрос натить правильно как каждую подсеть?
Так: (Когда так - все летит через дефолт)

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

nat on $ext_if_eht inet from !(self) -> ($ext_if_eth:0)
nat on $ext_if_vlan inet from !(self) -> ($ext_if_vlan:0)
Или так: (когда пишешь так то вообще не работает)

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

nat on $ext_if_eht inet from $local_net_1 -> ($ext_if_eth:0)
nat on $ext_if_vlan inet from $local_net_2 -> ($ext_if_vlan:0)
К слову не работает ни так ни так :) (я про маршрутизацию)

Далее кусок и фаера:

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

pass out route-to ( $ext_if_eth $gw_eth ) inet from $ext_if_eth:0 keep state
pass out route-to ( $ext_if_vlan $gw_vlan ) inet from $ext_if_vlan:0 keep state
pass out inet from { $ext_if_eth $ext_if_vlan } to (self:network) keep state
# ICMP (по этому типу пропускаются внутрь и TCP и UDP пакеты из разрешенного диапазона)

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

pass in on $ext_if_eth reply-to ($ext_if_eth $gw_eth) inet proto icmp to ($ext_if_eth)
pass in on $ext_if_eth proto icmp from ($ext_if_eth:network) to ($ext_if_eth)
pass in on $ext_if_vlan reply-to ($ext_if_vlan $gw_vlan) inet proto icmp to ($ext_if_vlan)
pass in on $ext_if_vlan proto icmp from ($ext_if_vlan:network) to ($ext_if_vlan)

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-11 13:11:36
squid
таже задача, конфиг набросал только возможности пока проверить нету
если интересно выложу

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-12 7:28:25
pasta
Конечно интересно :) , я кстати поборол схему - клади свой конфиг, я свой - вычленим ненужное - оставим необходимое - и будет зергуд :). Так у меня все пошло, только есть нюансы кое какие, я не понимаю местами где оно не срабатывает, приходится писать какие то правила одноразовые, чего я не очень люблю. Так что... милости просим :)

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-12 9:08:04
squid
вот набросал что считал нужным, еще не проверял

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

# pf.conf Master сервер

ext_if="rl1"
lan_if="fxp0"
man_if="rl2"
lanc_if="carp0"
ext_gwp="193.156.134.10"
ext_gwu="10.120.200.4"

lan_ip="10.120.0.0/24"
inet_ip="10.120.0.5"

# Отбрасываем пакеты тихо
set block-policy drop

# Отключаем фильтрацию трафика на lo0
set skip on lo0

# Нормализация трафика
scrub in all

# Направляем в нат все что приходит с $lanc_if
nat on $ext_if from $inet_ip to any -> ($ext_if)


# Политика по умолчанию
block all

# Антиаспуффинг
antispoof quick for $ext_if inet

# Разрешаем трафик из локальной сети к серверу, 
# больше он никуда не должен идти если подключение идет через $lan_if
pass in on $lan_if from $lan_ip to 10.120.0.1
pass out on $lan_if from 10.120.0.1 to $lan_ip

# Разрешаем весь трафик через carp
#pass in on $lanc_if all
#pass out on $lanc_if all
pass on $lanc_if all

# Разрешаем рассылку CARP-сообщений
pass out on $lan_if proto carp keep state

# Разрешаем ssh соединение с серваком. Использовать syn proxy для защиты от syn флуда
#pass in log on $ext_if proto tcp from any to ($ext_if) port ssh flags S/SA synproxy state


# балансировка исходящего tcp трафика идущего из внутренней сети
pass in on $lanc_if route-to { ($ext_if $ext_gwp), ($man_if $ext_gwu) } round-robin proto tcp from $inet_ip to any flags S/SA modulate state

# балансировка исходящего icmp и udp трафика идущего из внутренней сети
pass in on $lanc_if route-to { ($ext_if $ext_gwp), ($man_if $ext_gwu) } round-robin proto { udp, icmp } from $inet_ip to any keep state

# Выпускаем трафик
pass out on $ext_if proto tcp from $inet_ip to any flags S/SA modulate state
pass out on $ext_if proto { udp, icmp } from $inet_ip to any keep state
pass out on $man_if proto tcp from $inet_ip to any flags S/SA modulate state
pass out on $man_if proto { udp, icmp } from $inet_ip to any keep state

# Маршрутизируем пакеты
pass out on $ext_if route-to ($man_if $ext_gwu) from $man_if to any
pass out on $man_if route-to ($ext_if $ext_gwp) from $ext_if to any

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-13 2:33:08
Гость
БУГАГА!!! Тока щаз заметил какие смайлы появляются (с моем посту предыдущем) когда ставишь двоеточие и скобку :-D - Я за нормальных!! Унисексу - нет!! :evil:
Это эпиграф... Вопрос в связи с конфигом выложеным: а какую функцию выполняет карп (в смысле практического применения в твоей конфигурации) ?

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-13 7:51:26
squid
там еще один сервер стоит
с таким же адресом, если этот ложится тот работать начинает

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-13 15:34:15
Alex Keda
:)
проверка

Re: 2 локалки - 3 внешних канала+алиас - голову сломал

Добавлено: 2008-06-13 15:34:45
Alex Keda
да...
увижу райвена в аське - запинаю.
походу перепутал =)))