Ну солько можно? PF и 2 канала
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
Ну солько можно? PF и 2 канала
уже выбился из сил
задача на внешние коннекты отвечать через тот же интерфейс
дефолтом указан маршрут через прова1
есть правило
pass in quick on $prov2_if reply-to ($prov2_if $prov2_gate) proto udp from any to $prov2_if port 25 keep state
и всё равно ответ идёт через интерфес смотрящий на прова 1 (через дефолт гв) - трафшоу
Ткните рожей, плз
З.Ы - в статью смотрел -не пашет
задача на внешние коннекты отвечать через тот же интерфейс
дефолтом указан маршрут через прова1
есть правило
pass in quick on $prov2_if reply-to ($prov2_if $prov2_gate) proto udp from any to $prov2_if port 25 keep state
и всё равно ответ идёт через интерфес смотрящий на прова 1 (через дефолт гв) - трафшоу
Ткните рожей, плз
З.Ы - в статью смотрел -не пашет
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- сержант
- Сообщения: 218
- Зарегистрирован: 2006-09-04 17:41:27
- Откуда: Москва
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
Будьте добры -- выложите весь конфиг pf.
И tcpdump на внешнем интерфейсе, когда пакеты на него приходят.
+ в это же время на интерфейсе, где стоит default gw.
И tcpdump на внешнем интерфейсе, когда пакеты на него приходят.
+ в это же время на интерфейсе, где стоит default gw.
WBR Озеров Василий aka fr33man
-
- проходил мимо
Re: Ну солько можно? PF и 2 канала
Код: Выделить всё
nat on $cin_if from <inet_users> to any -> $cin_if
nat on $det_if from <inet_users> to !$det_lan -> $det_if
#Клиент-банк
nat on $det_if from <banking> to {!$det_lan} port $bank_serv -> $det_if
nat on $cin_if from <banking> to any port $bank_serv -> $cin_if
# ---------------------------------------------------------------
# -= Rules =-
# ---------------------------------------------------------------
block all
block in quick from any os nmap to any
## Oтвечаем через тот же интерейс, откуда пришел пакет
pass in quick on $det_if reply-to ($det_if $det_gate) proto udp from any to $det_if keep state
pass in quick on $cin_if reply-to ($cin_if $cin_gate) proto udp from any to $cin_if keep state
#Разрешаем тунели и ссх
pass in inet proto tcp from any to any port {22} keep state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in inet proto udp from any to {self} port {$vpn_port} keep state
pass quick on lo0 all
pass quick on (tun0) all
ЗАДАЧА:
чтобы все сервисы (их довольно много), висящие непосредственно на интерфейсах смотрящих на провов работали по 2-м адресам
тоесть
отвечать на запрос через тот же интерфейс
пробовал так
Код: Выделить всё
pass out route-to ($cin_if $cin_gate) inet from any to $cin_if
pass out route-to ($det_wif $det_wgate) inet from any to $det_wif
pass out inet from { $det_wif $cin_if } to (self:network)
pass in on $cin_if reply-to ($cin_if $cin_gate) inet proto udp to ($cin_if) port 2000
pass in on $cin_if inet proto udp from ($cin_if:network) to ($cin_if) port 2000
pass in on $det_wif reply-to ($det_if $det_wgate) inet proto udp to ($det_if) port 2000
pass in on $det_wif inet proto udp from ($det_if:network) to ($det_if) port 2000
block all
block in quick from any os nmap to any
#Разрешаем тунели и ссх
pass in inet proto tcp from any to any port {22} keep state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass in inet proto udp from any to {self} port {vpn} keep state
pass in quick on $int_if
pass in quick on $tun0_if
pass in quick on $tun1_if
pass on lo0 all
pass out keep state
antispoof for { lo $int_if $det_if $tun0_if $tun1_if $cin_if } inet
-
- проходил мимо
Re: Ну солько можно? PF и 2 канала
Чтоб все ходило как надо
ядро нужно собрать с опцией IPFIREWALL_FORWARD_EXTENDED но это для IPFW
и тогда можна форвардить пакеты на любой внешний IP и они будут
ходить в мир и возвращаться через этот интерфейс. Единственное про всякие
конструкции с verrevpath можешь забыть
ядро нужно собрать с опцией IPFIREWALL_FORWARD_EXTENDED но это для IPFW
и тогда можна форвардить пакеты на любой внешний IP и они будут
ходить в мир и возвращаться через этот интерфейс. Единственное про всякие
конструкции с verrevpath можешь забыть
- psj
- ефрейтор
- Сообщения: 66
- Зарегистрирован: 2007-10-29 13:44:50
Re: Ну солько можно? PF и 2 канала
Посмотрите - может поможет:
1 НО - натимся только на один интерфейс (просто задание такое было)
2 НО - vpn тоже только по одному интерфейсу
3 НО - почтовый сервер тоже работает на одном интерфейсе
Файрвол работает следующим образом - с какого интерфейса запрос пришел на тот интерфейс ответ ушел. ТРИ НО.[ root@rt.daycom.ru /etc ] # cat pf.conf [ 17:46 ]
#Внешние и внутренний интерфейсы.
#
ext_if_a = "vr0" #первый провайдер
ext_if_b = "vr2" #второй провайдер
int_if = "vr1" #локалка
int_if_vpn = "tun0" # vpn
if_lo = "lo"
#Шлюзы для каналов.
#
ext_gw_a = "17.106.95.89" #для первого провайдера
ext_gw_b = "192.168.1.1" #для второго провайдера
net = "192.168.0.0/24" #локалка
#TCP/UDP сервисы, обслуживаемые маршрутизатором, то к чему имеется доступ на внешних интерфейсах
#
tcp_svc = "domain, auth, http, ntp, ssh" #как пример, что то нужно вписать иначе будет биг ошибка
udp_svc = "domain, ntp, ssh" #аналогично, 1194 - vpn
udp_vpn = "1194"
# Из интернета на почтовый сервер
tcp_mail ="smtp, pop3"
# закрытые порты из внутренней сети в интернет
tcp_block_int ="smtp"
mail_server ="17.106.95.91"
router ="17.106.95.90"
#Создаем таблицу доверенных smtp-севреров (1. внутр. IP, 2. внеш. IP, 3. smtp.mail.ru, 4. smtp.yandex.ru)
table <my_smtp> { $mail_server, 194.67.23.111, 195.161.174.129}
set skip on lo0
# нормализация трафика (иначе терминальный клиент через vpn не работает!!!)
scrub in
#Натим, важный момент, именно тут определяется кого куда пускать
#Синтаксис ната, грубо говоря, таков: nat on _интерфейс_ from _откуда_ to _куда_ -> _интерфейс_или_ип_адрес
#
nat on $ext_if_b from {$net} -> ($ext_if_b:0)
# Пробрасываем порты из внутренней сети на SQUID
#
rdr pass on $int_if proto tcp to port http -> 127.0.0.1 port 3128
#
#Разрешаем сети ходить в интернет, всё остальное блокируем
#
block in on { $ext_if_a $ext_if_b }
block return-rst in on { $ext_if_a $ext_if_b } proto tcp
pass out on { $ext_if_a $ext_if_b } keep state
#Исходящие пакеты в канал, соответствующий адресу источника. Здесь и начинается policy
#
pass out route-to ($ext_if_a $ext_gw_a) from ($ext_if_a) to !(self:network) keep state
pass out route-to ($ext_if_b $ext_gw_b) from ($ext_if_b) to !(self:network) keep state
#
# Пускаем vpn на роутер
#
pass out on $ext_if_b reply-to ($ext_if_a $ext_gw_a) inet proto udp from $router port { $udp_vpn } to any keep state
pass out on $ext_if_b route-to ($ext_if_a $ext_gw_a) inet proto udp from $router port { $udp_vpn } to any keep state
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) inet proto udp from any to $router port { $udp_vpn } keep state
#
#Блокируем все исходящие smtp-запросы которые к левым серверам
#
block in log quick on $int_if proto { tcp, udp } from $net to !<my_smtp> port { $tcp_block_int }
#
# Пускаем почту на почтовый сервер и выпускаем почту с нашего сервера в инет
#
pass out quick on $ext_if_b reply-to ($ext_if_a $ext_gw_a) proto {tcp, udp} from $mail_server port { smtp } to any port { smtp }
pass out quick on $ext_if_b route-to ($ext_if_a $ext_gw_a) proto {tcp, udp} from $mail_server port { smtp } to any port { smtp }
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto {tcp, udp} to $mail_server port { $tcp_mail } flags S/SA keep state
#
# Разрешаем пинговать роутер и почтовый сервер
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto icmp to {$router,$mail_server} keep state
#
#А вот policy для входящих пакетов на внешние интерфейсы
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto udp to $router port { $udp_svc } keep state
pass in on $ext_if_a proto udp from ($ext_if_a:network) to $router port { $udp_svc } keep state
#
pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) proto tcp to port { $tcp_svc } flags S/SA keep state
pass in on $ext_if_a proto tcp from ($ext_if_a:network) to port { $tcp_svc } flags S/SA keep state
#
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) proto udp to port { $udp_svc } keep state
pass in on $ext_if_b proto udp from ($ext_if_b:network) to port { $udp_svc } keep state
#
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) proto tcp to port { $tcp_svc } flags S/SA keep state
pass in on $ext_if_b proto tcp from ($ext_if_b:network) to port { $tcp_svc } flags S/SA keep state
# По внутреннему интерфейсу и vpn пропускаем всё и везде
#
pass on $int_if all keep state
pass on $int_if_vpn all keep state
1 НО - натимся только на один интерфейс (просто задание такое было)
2 НО - vpn тоже только по одному интерфейсу
3 НО - почтовый сервер тоже работает на одном интерфейсе
В правильно заданном вопросе 80% ответа
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
2 psj, а вы altq не используете случайно?
я вот что хотел спросить, на сколько я почитал инфу, обычно исходящий трафик (в Интернет) режется на полосы пропускания на внешних интерфейсах, а входящий (в локалку) - на внутреннем.
а как быть если 2 внешних канала с разной пропускной способностью? где в этом случае нарезать входящий трафик?
я вот что хотел спросить, на сколько я почитал инфу, обычно исходящий трафик (в Интернет) режется на полосы пропускания на внешних интерфейсах, а входящий (в локалку) - на внутреннем.
а как быть если 2 внешних канала с разной пропускной способностью? где в этом случае нарезать входящий трафик?
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- psj
- ефрейтор
- Сообщения: 66
- Зарегистрирован: 2007-10-29 13:44:50
Re: Ну солько можно? PF и 2 канала
нет, altq я не используюschizoid писал(а):2 psj, а вы altq не используете случайно?
я вот что хотел спросить, на сколько я почитал инфу, обычно исходящий трафик (в Интернет) режется на полосы пропускания на внешних интерфейсах, а входящий (в локалку) - на внутреннем.
а как быть если 2 внешних канала с разной пропускной способностью? где в этом случае нарезать входящий трафик?
трафик нарезать, я так думаю, надо на том интерфейсе с которого он приходит
Но я не уверен, т.к. не пробовал
В правильно заданном вопросе 80% ответа
-
- проходил мимо
Re: Ну солько можно? PF и 2 канала
Ну по altq и другим шейперам - уже милион раз обсасывалось
резать можно ТОЛЬКО ИСХОДЯЩИЙ трафик - смысла отбрасывать трафик, который уже пришёл - НЕТУ:
если режем даунлоад (из мира к примеру), то - ОГРАНИЧИВАЕМ ИСХОДЯЩИЙ трафик на ВНУТРЕННЕМ интерфейсе
(он пришёл из мира, а отдаём в локаль "потихоньку")
если режем аплоад (в мир ), то - ОГРАНИЧИВАЕМ ИСХОДЯЩИЙ трафик на ВНЕШНЕМ интерфейсе
(пришёл из локали, а в мир - "потихоньку)
ограничивать входяший трафик на интерфейсе - сделать мы это можем лишь отбросив пакеты, которые пришли - ??? - тоесть не получая данных
а если ограничивать исходящий - всё пучком, приняли пакетик на внешнем (вариант 2 - на внутреннем), форвардим внутрь (вариант 2 - в мир), а тут "резалка" - отправляем "со скоростью" - заставляя источник в мире (в локалке) "притормозить" - таким образом ограничиваем .
причина - когда узел не может принять N-e кол-во пакетов за опред.промежуток времени , он отправляет инициирующему узлу "сделай скорость меньше", и соответственно так ограничиваем скорость
резать можно ТОЛЬКО ИСХОДЯЩИЙ трафик - смысла отбрасывать трафик, который уже пришёл - НЕТУ:
если режем даунлоад (из мира к примеру), то - ОГРАНИЧИВАЕМ ИСХОДЯЩИЙ трафик на ВНУТРЕННЕМ интерфейсе
(он пришёл из мира, а отдаём в локаль "потихоньку")
если режем аплоад (в мир ), то - ОГРАНИЧИВАЕМ ИСХОДЯЩИЙ трафик на ВНЕШНЕМ интерфейсе
(пришёл из локали, а в мир - "потихоньку)
ограничивать входяший трафик на интерфейсе - сделать мы это можем лишь отбросив пакеты, которые пришли - ??? - тоесть не получая данных
а если ограничивать исходящий - всё пучком, приняли пакетик на внешнем (вариант 2 - на внутреннем), форвардим внутрь (вариант 2 - в мир), а тут "резалка" - отправляем "со скоростью" - заставляя источник в мире (в локалке) "притормозить" - таким образом ограничиваем .
причина - когда узел не может принять N-e кол-во пакетов за опред.промежуток времени , он отправляет инициирующему узлу "сделай скорость меньше", и соответственно так ограничиваем скорость
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
чета у мну не получается
altq - еще не задействовал, просто описал.
где 195.5.ххх.ххх - шлюз для обоих интерфейсов
82.207.ххх.ххх - внешний ИП
ng0 - статика
ng1 - DHCP
все равно пакет идет через дефолтный маршрут.
мож кто чем поможет...
Код: Выделить всё
# cat /etc/pf.conf
#-----------------------------------------Macros's-------------------------------------------------------------------
#Interface's
int_if="rl0"
ext_if_s="ng0"
ext_if_d="ng1"
ext_gw="195.5.ххх.ххх"
#Internal servers
serv_1c="192.168.0.40"
serv_www="192.168.0.100"
serv_mail="192.168.0.1"
int_lan="192.168.0.0/24"
#RFC 1918
NoRouteIps = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
tcp_svc = "domain, auth, http, ntp, ssh"
udp_svc = "domain, ntp"
#-----------------------------------------Tables-------------------------------------------------------------------
#table <lan_s> { 192.168.0.121, 192.168.0.122, 192.168.0.123, 192.168.0.120, 192.168.0.69, 192.168.0.113, 192.168.0.112, 192.168.0.81 }
#table <lan_d> { 192.168.0.0/24 }
#-----------------------------------------Options-------------------------------------------------------------------
set block-policy drop
set skip on lo0
#-----------------------------------------Scrub-------------------------------------------------------------------
scrub in all fragment reassemble
scrub on { $ext_if_d $ext_if_s } all reassemble tcp
#------------------------------------------ALTQ-------------------------------------------------------------------
#====================ng0==================
#Включаем очереди на внешнем (статическом) интерфейсе ng0 для пакетов выходящих в Интернет.
#Максимальная исходящая полоса 512 kbps.
#Используем планировщик cbq чтобы контролировать полосу пропускания каждой очереди.
altq on $ext_if_s cbq bandwidth 512Kb queue { def_out, serv_out, dil_out }
# определяем параметры дочерних очередей
# def_out - стандартная очередь. Любые правила ниже, в которых
# очередь не указана явно, добавляют трафик к этой
# очереди.
# mail_out - mail-сервер
# s1c_out - сервер 1С
# dil_out - диллерский сайт
queue def_out bandwidth 128Kb cbq(default borrow)
queue serv_out bandwidth 256Kb { mail_out, web_out, s1c_out}
queue mail_out bandwidth 25% cbq(red borrow)
queue web_out bandwidth 50% cbq(red borrow)
queue s1c_out bandwidth 25% cbq(red borrow)
queue dil_out bandwidth 128Kb priority 3 cbq(red borrow)
#====================ng1==================
#Включаем очереди на внешнем (динамическом) интерфейсе ng1 для пакетов выходящих в Интернет.
#Максимальная исходящая полоса 512 kbps.
#Используем планировщик cbq чтобы контролировать полосу пропускания каждой очереди.
altq on $ext_if_d cbq bandwidth 512Kb queue { std_out, www_out, im_ssh_out, dns_out }
# определяем параметры дочерних очередей
# def_out - стандартная очередь. Любые правила ниже, в которых
# очередь не указана явно, добавляют трафик к этой
# очереди.
# www_out - http-трафик
# im_ssh_out - трафик от интернет мессенджеров и ssh
# dns_out - запросы DNS
queue std_out bandwidth 128Kb cbq(default borrow)
queue www_out bandwidth 256Kb priority 3 cbq(red borrow)
queue im_ssh_out bandwidth 64Kb priority 4 cbq(red borrow)
queue dns_out bandwidth 64Kb priority 3 cbq(red borrow)
#====================rl0==================
#Включаем очереди на внутреннем интерфейсе rl0 для пакетов выходящих в локальную сеть.
#Максимальная исходящая полоса 4Mb.
#Используем планировщик cbq чтобы контролировать полосу пропускания каждой очереди.
altq on $int_if cbq bandwidth 4.0Mb queue { def_in, serv_in, www_in, im_ssh_in, dns_in, ftp_in }
queue def_in bandwidth 0.5Mb cbq(default borrow)
queue serv_in bandwidth 1.0Mb { mail_in, web_in, s1c_in, dil_in}
queue mail_in bandwidth 20% cbq(red borrow)
queue web_in bandwidth 25% cbq(red borrow)
queue s1c_in bandwidth 20% cbq(red borrow)
queue dil_in bandwidth 35% cbq(red borrow)
queue www_in bandwidth 1.0Mb cbq(red borrow)
queue im_ssh_in bandwidth 0.25Mb cbq(red borrow)
queue dns_in bandwidth 0.25Mb cbq(red borrow)
queue ftp_in bandwidth 1.0Mb cbq(red borrow)
#-----------------------------------------redirect and NAT-------------------------------------------------------------------
#redirect to internal servers and TAG
rdr on $ext_if_s inet proto tcp to ($ext_if_s) port 80 tag SERV_WEB -> $serv_www port 80
rdr on $ext_if_s inet proto tcp to ($ext_if_s) port 3389 tag SERV_1C -> $serv_1c port 3389
rdr on $ext_if_s inet proto tcp to ($ext_if_s) port 25 tag SERV_SMTP -> $serv_mail port 25
rdr on $ext_if_s inet proto tcp to ($ext_if_s) port 110 tag SERV_POP3 -> $serv_mail port 110
#For ftp
rdr pass on $int_if proto tcp from $int_lan to any port 21 -> 127.0.0.1 port 8021
#NAT on ext_if_s where TAG
nat on $ext_if_s inet proto tcp tagged SERV_WEB -> ($ext_if_s)
nat on $ext_if_s inet proto tcp tagged SERV_1C -> ($ext_if_s)
nat on $ext_if_s inet proto tcp tagged SERV_SMTP -> ($ext_if_s)
nat on $ext_if_s inet proto tcp tagged SERV_POP3 -> ($ext_if_s)
#NAT lan to internet
nat on $ext_if_s inet proto tcp from $int_lan to 212.82.220.130 port {80, 443} -> ($ext_if_s)
nat on $ext_if_d from $int_lan to any -> ($ext_if_d)
#-----------------------------------------Filters-------------------------------------------------------------------
antispoof for { lo0 $int_if $ext_if_s $ext_if_d } inet
block in quick from any os nmap to any
#for ext_if_s - static IP
block in log-all on $ext_if_s
pass in on $ext_if_s reply-to ($ext_if_s $ext_gw) inet proto icmp from any to ($ext_if_s) icmp-type echoreq keep state
pass in on $ext_if_s reply-to ($ext_if_s $ext_gw) inet proto tcp tagged SERV_WEB keep state
pass in on $ext_if_s reply-to ($ext_if_s $ext_gw) inet proto tcp tagged SERV_1C keep state
pass in on $ext_if_s reply-to ($ext_if_s $ext_gw) inet proto tcp tagged SERV_SMTP keep state
pass in on $ext_if_s reply-to ($ext_if_s $ext_gw) inet proto tcp tagged SERV_POP3 keep state
pass in on $ext_if_s reply-to ($ext_if_s $ext_gw) inet proto tcp to port 1022 keep state
pass out on $ext_if_s keep state
#for ext_if_d - dinamic IP
block in log-all on $ext_if_d
#pass in on $ext_if_d
pass in on $ext_if_d reply-to ($ext_if_d $ext_gw) proto udp to port { $udp_svc } keep state
pass in on $ext_if_d proto udp from ($ext_if_d:network) to port { $udp_svc } keep state
pass in on $ext_if_d reply-to ($ext_if_d $ext_gw) proto tcp to port { $tcp_svc, > 49151 } flags S/SA keep state
pass in on $ext_if_d proto tcp from ($ext_if_d:network) to port { $tcp_svc, > 49151 } flags S/SA keep state
#pass out route-to ($ext_if_d $ext_gw) from ($ext_if_d) to !(self:network) keep state
pass out on $ext_if_d keep state
#for int_if - internal network
block in log-all on $int_if
#pass in log-all on $int_if
pass in on $int_if inet proto udp from $int_lan to $int_if port { 53, 123 } keep state
pass in on $int_if inet proto tcp from $int_lan to any port { 20, 21, 25, 80, 110, 2022 } keep state
pass in on $int_if inet proto tcp from $int_lan to $int_if port { 666, 1022 } keep state
#pass in on $int_if inet proto tcp from $int_lan to $int_if keep state
pass in on $int_if inet proto icmp from $int_lan to any keep state
pass out on $int_if keep state
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 195.5.ххх.ххх UGS 0 6913 ng1
127.0.0.1 127.0.0.1 UH 0 916 lo0
192.168.0 link#1 UC 0 0 rl0
192.168.0.1 00:17:31:23:47:28 UHLW 1 1751 rl0 83
192.168.0.100 00:11:2f:cf:a0:54 UHLW 1 970 rl0 211
192.168.0.111 00:11:2f:8a:62:d5 UHLW 1 1680 rl0 388
192.168.0.113 00:80:c8:58:1c:89 UHLW 1 0 rl0 860
192.168.0.149 00:00:50:00:5e:1d UHLW 1 8084 rl0 1150
192.168.0.150 00:a0:d2:10:71:a0 UHLW 1 4 lo0
195.5.ххх.ххх 82.207.ххх.ххх UH 0 0 ng0
82.207.ххх.ххх - внешний ИП
Код: Выделить всё
# ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 192.168.0.150 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:a0:d2:10:71:a0
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
sk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
ether 00:15:e9:b1:dc:c0
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
ether 00:02:b3:99:e2:02
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208
pfsync0: flags=0<> mtu 2020
syncpeer: 224.0.0.240 maxupd: 128
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1492
inet 82.207.ххх.ххх --> 195.5.ххх.ххх netmask 0xffffffff
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1492
inet 92.112.ххх.ххх --> 195.5.ххх.ххх netmask 0xffffffff
ng1 - DHCP
все равно пакет идет через дефолтный маршрут.
мож кто чем поможет...
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- проходил мимо
Re: Ну солько можно? PF и 2 канала
помогу если смогу, у меня всё организовано редиректом
ип1- 1гв
ип2- 2гв
дефолтом 1гв
сервис к примеру на порту tcp 29 на этой же машине
сделано так
rdr pass on $ип2 inet proto tcp from any to $ип2 port 29 -> $ип1
(я так думаю, тут надо ещё второй раз редиректить внутрь (если сервис внутри) с этого интерфейса, дабы правильно уходило) и пускать с кип-стейт
+ разрешение по Ло бегать
всё работает
ип1- 1гв
ип2- 2гв
дефолтом 1гв
сервис к примеру на порту tcp 29 на этой же машине
сделано так
rdr pass on $ип2 inet proto tcp from any to $ип2 port 29 -> $ип1
(я так думаю, тут надо ещё второй раз редиректить внутрь (если сервис внутри) с этого интерфейса, дабы правильно уходило) и пускать с кип-стейт
+ разрешение по Ло бегать
всё работает
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
а ответы у тебя с того же интерфейса?
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- проходил мимо
Re: Ну солько можно? PF и 2 канала
да, пакеты уходят с другого интерфейса:
приходят с одного, я их редиректю, они уходят через дефолт, но СОЕДИНЕНИЕ живо
приходят с одного, я их редиректю, они уходят через дефолт, но СОЕДИНЕНИЕ живо
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
а еще, вот выдержка от сюда http://house.hcn-strela.ru/BSDCert/BSDA ... tml#pf-ftp
можете растолковать? как расшифровываются эти правила?
Код: Выделить всё
Опция route-to используется для приёма трафика на внутреннем интерфейсе и назначения ему внешнего сетевого интерфейса и шлюза, таким образом обеспечивая балансировку. Обратите внимание, что опция route-to должна быть указана в каждом правиле, предназначенном для балансировки трафика. Ответные пакеты приходят на тот интерфейс, с которого ушёл запрос и они будут перенаправлены во внутрь как обычно.
Для гарантии того, что пакеты с $ext_if1 всегда направляются к $ext_gw1 (и соответственно для $ext_if2 к $ext_gw2), в правилах можно указать следующее:
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- проходил мимо
Re: Ну солько можно? PF и 2 канала
для приёма трафика на внутреннем интерфейсе и назначения ему внешнего сетевого интерфейса и шлюза
, так что придётся думать как доставить пакет на внутренний интерфейс (тэггирование/дст-нат/прочее)
, так что придётся думать как доставить пакет на внутренний интерфейс (тэггирование/дст-нат/прочее)
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
так, с тем разобрался.
возник еще вопрос.
к примеру у мну вся локаль ходит через ИФ2, но нужно, что б на определенный сайт они ходили через ИФ1 (т.е. что б сайт видел, что у них статический ИП). как это сделать?
возник еще вопрос.
к примеру у мну вся локаль ходит через ИФ2, но нужно, что б на определенный сайт они ходили через ИФ1 (т.е. что б сайт видел, что у них статический ИП). как это сделать?
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- manefesto
- Группенфюррер
- Сообщения: 6934
- Зарегистрирован: 2007-07-20 8:27:30
- Откуда: Пермь
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
э....а если что то типа форварда на другой интерфейс при обращении на такой то ipшник ?
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
да вот тоже думаю форвард нужен...тока чета не получается
все равно идет по динамическому ипу...
ща буду еще думать
все равно идет по динамическому ипу...
ща буду еще думать
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Ну солько можно? PF и 2 канала
сделал вот что:
...
где
мож кому пригодится...
1. при этом локалка кроме серверов куда угодно кроме диллерских сайтов натится на динамический ИП
2. сервера натим на статику
3. пакеты из сети на диллерские сайты натим на статику
шлюз по-умолчанию динамический.
Код: Выделить всё
nat on $ext_if_d from <lan> to !<dil> -> ($ext_if_d)
nat on $ext_if_d from $servers to any -> ($ext_if_s)
nat on $ext_if_d from <lan> to <dil> -> ($ext_if_s)
Код: Выделить всё
pass out quick on $ext_if_d route-to ( $ext_if_s $ext_gw_s ) from ($ext_if_s) to any keep stat
Код: Выделить всё
table <lan> { 192.168.0.0/24 , !192.168.0.40, !192.168.0.100, !192.168.0.1 }
table <dil> { 212.82.ххх.ххх, 213.186.ххх.ххх, 212.109.ххх.ххх }
serv_1c="192.168.0.40"
serv_www="192.168.0.100"
serv_mail="192.168.0.1"
servers = "{" $serv_1c $serv_www $serv_mail "}"
1. при этом локалка кроме серверов куда угодно кроме диллерских сайтов натится на динамический ИП
2. сервера натим на статику
3. пакеты из сети на диллерские сайты натим на статику
шлюз по-умолчанию динамический.
ядерный взрыв...смертельно красиво...жаль, что не вечно...