Два канала + ipfw + mpd

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-11-29 19:23:14

Есть два внешних канала. Для доступа в интернет используется vpn, пока только через один канал. Настроен один nat.
Поднимаю второй natd -p 8778 -a ${IP_EXT_STK}

${EXT} - имя внешнего интерфейса
${IP_EXT} - ip адрес первого канала
${IP_EXT_STK} - ip адрес второго канала, алиас на внутреннем интерфейсе (в локальной сети adsl модем)
${vpn_inet} - серые адреса, выдаваемые на vpn сервере через первый канал
${vpn_inet_stk} - серые адреса, выдаваемые на vpn сервере через второй канал
${gs_gw} - шлюз первого канала
${gs_stk} - шлюз второго канала

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

${fwcmd} add 4500 divert 8668 ip from ${vpn_inet} to any out via ${EXT}
${fwcmd} add 4510 fwd ${gs_gw} ip from ${IP_EXT} to any
${fwcmd} add 4520 divert 8668 ip from any to ${IP_EXT} in via ${EXT}
${fwcmd} add 4530 allow ip from any to ${vpn_inet} in via ${EXT}

${fwcmd} add 4501 divert 8778 ip from ${vpn_inet_stk} to any
${fwcmd} add 4511 fwd ${stk_gw} ip from ${IP_EXT_STK} to any
${fwcmd} add 4521 divert 8778 ip from any to ${IP_EXT_STK}
${fwcmd} add 4531 allow ip from any to ${vpn_inet_stk}
В итоге первый nat c адресами ${vpn_inet} работает , второй нет
Последний раз редактировалось RusBiT 2008-11-29 19:39:14, всего редактировалось 1 раз.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-11-29 19:30:03

если я правильно понимаю то они должны быть равны
${vpn_inet} = ${IP_EXT}
${vpn_inet_stk} = ${IP_EXT_STK}

а иначе тогда не совсем понятно что вы хотите сделать

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-11-29 19:48:18

впринципе могут быть и равны, но вроде и так работает с первым натом :smile:

ipfw show показывает на втором нате, то что пакеты не разначиваются,
divert 8778 ip from ${vpn_inet_stk} to any и fwd срабатывает.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-11-29 19:51:20

лучше уж тогда полный ipfw show
)
а то тяжело понять

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-11-29 20:01:23

ipfw show скидывать пока не буду, только запутаю - эксперементировал с правилами просто.

rc.fw

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

fwcmd="/sbin/ipfw -q"
${fwcmd} -f flush
${fwcmd} pipe flush
${fwcmd} queue flush
SSH="10.0.7.0{1-7}";

${fwcmd} add 9 allow tcp from ${SSH} to me 22
${fwcmd} add 9 allow tcp from me 22 to ${SSH}
${fwcmd} add 10 deny tcp from any to me dst-port 22,135-139,445,3306,5505,9990,9996,1812,1813

${fwcmd} add 021 allow ip from 10.0.6.0/23 to me
${fwcmd} add 022 allow ip from me to 10.0.6.0/23

krsix_ip="172.17.2**.0/26";
vpn_inet="192.168.10.0/25";
vpn_inet_stk="192.168.11.0/25";
inet_ip="84.2*.***.***/28";
gs_gw="84.2*.***.*";
stk_gw="10.0.*.*";
INT_VPN="ng*";
IP_EXT_STK="10.0.6.*";
inet_6="10.0.6.0{********}";
inet_7="10.0.7.0{********}";
${fwcmd} add 4000 allow all from ${krsix_ip} to any
${fwcmd} add 4001 allow all from any to ${krsix_ip}

${fwcmd} add 5000 allow all from ${inet_ip} to any
${fwcmd} add 5001 allow all from any to ${inet_ip}

${fwcmd} add 4500 divert 8668 ip from ${vpn_inet} to any out via ${EXT}
${fwcmd} add 4510 fwd ${gs_gw} ip from ${IP_EXT} to any
${fwcmd} add 4520 divert 8668 ip from any to ${IP_EXT} in via ${EXT}
${fwcmd} add 4530 allow ip from any to ${vpn_inet} in via ${EXT}
${fwcmd} add 4501 divert 8778 ip from ${vpn_inet_stk} to any
${fwcmd} add 4511 fwd ${stk_gw} ip from ${IP_EXT_STK} to any
${fwcmd} add 4521 divert 8778 ip from any to ${IP_EXT_STK}
${fwcmd} add 4531 allow ip from any to ${vpn_inet_stk}



${fwcmd} add 4110 allow ip from ${inet_6} to any in via ${INT}
${fwcmd} add 4111 allow ip from ${inet_7} to any in via ${INT}
${fwcmd} add 4121 divert 8668 ip from ${inet_6} to any out xmit ${EXT}
${fwcmd} add 4122 divert 8668 ip from ${inet_7} to any out xmit ${EXT}
${fwcmd} add 4131 divert 8668 ip from any to ${IP_EXT} in via ${EXT}
${fwcmd} add 4141 allow ip from any to ${inet_6} in via ${EXT}
${fwcmd} add 4142 allow ip from any to ${inet_7} in via ${EXT}
${fwcmd} add 4170 allow ip from any to ${inet_6} recv ${EXT} xmit ${INT}
${fwcmd} add 4170 allow ip from any to ${inet_7} recv ${EXT} xmit ${INT}
${fwcmd} add 5300 allow all from me to any
${fwcmd} add 5301 allow all from any to me
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-11-29 20:08:21

ну лучше все таки ipfw show
и в нем неполные айпи которые хочешь скрыть
потому как хотелось бы видеть где там пакеты идут не идут тикают

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-11-29 20:20:14

Спасибо за помощь, в целях безопасности скинул в личку
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-11-29 20:30:24

ну так у тебя там совсем не так все сделано

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-11-30 6:07:26

Можно поподробнее в чем ошибка?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-11-30 16:59:37

в выходные думать вообще нехочеться

но у тебя там немного не так все построено

можно пробовать разбираться с дивертами
а окажеться где то в самом фаерволе

попобуй включи лог в натд
и понаблюдай что туда попадает и что не возращаеться
вомозно оно проходит по какому то правилу фаера еще в верху

ну и вообще то диверты вставляються в самом начале фаера
а не в конце

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-01 11:54:10

Включил логи. На самом деле трафик на второго провайдеоа идет через интерфейс первого провайдера :(
Если через out xmit указать интерфейс, то лог чистый, пакеты вообще не идут туда
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-01 17:00:38

по сути дела
там нужен токо один форвард

вместо второго форварда должен срабатывать дефолтный роут

а иначе там такое накрутиться

форвард делаеться локальных айпи
а уже дальше когда пекет выходит из другого интерфейса он уже должен дивертиться

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-09 7:50:40

Таки и не удалось заставить нормально работать, исходящий трафик, через второй канал идет не через нужный ему интерфейс

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

 divert 8778 log logamount 100 ip from 192.168.11.52 to any
fwd шлюз_второго_канала ip from ip_интерфейса_второго канала to any out via rl0
ipfw: 5100 Divert 8778 ICMP:8.0 192.168.11.52 194.67.57.226 out via rl1 , а нужно rl0
В чем дело то ?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-09 9:04:25

что то у тебя совсем не то
и форвард неработает....

почисти фаервол
пересмотри политики ванпас итд
сделай один форвард
и посмотри пойдут туда пакеты или нет
потом уже диверт добавишь
и проверишь

если все будет работать
тогда и крути пайпы итд
что ты там накрутил

а так ты не разберешься

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-09 11:05:57

Для уверенности на выходных я переделал все правила файровала. Форварда два , как и писалось в примере.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-09 21:04:24

если у тебя дефолт постоянно один
и неменяеться
то смысла двух форвардов нет
токо запутешься и запутаешь других)

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-10 10:51:29

Может все таки надо както статический маршрут до второго канала писать?
Если убераю форвард, то идет зацикливание

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

 1  10.100.100.10  2.779 ms  4.725 ms  6.703 ms
 2  10.100.100.10  8.709 ms !H  9.674 ms !H  11.660 ms !H

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

05101         0           0                     divert 8778 ip from 192.168.11.0/24 to any out via rl2
05201         0           0                     fwd 10.0.7.7 ip from 10.0.7.15 to any out via rl2
05301  35446814 37343784966        divert 8668 log logamount 100 ip from 192.168.10.0/24 to any out via rl1
05401     62046    77376812            fwd 84.22.1**.1 log logamount 100 ip from 84.22.1**.2 to any out via rl1
05501         0           0                    divert 8778 ip from any to 10.0.7.5 in via rl0
05601  28490585 16983034146       divert 8668 ip from any to 84.22.1**.2 in via rl1
05701        23        2181                 allow ip from 192.168.10.0/23 to any in via ng*
05801  28442420 16980467659       allow ip from not 192.168.10.0/23 to 192.168.10.0/23
rl0 (локалка)
rl1 - первый провайдер
rl2 - второй (через локалку)
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-10 11:31:16

Если же убрать привязку по интерфейсу, то наблюдается

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

Dec 10 15:27:34 user kernel: ipfw: 5201 Forward to 10.0.7.7 UDP 10.0.7.15:60895 194.87.0.50:33448 out via rl1
Прет не туда вообщем пакет.

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

netstat -rn | grep 10.0.7.7
10.0.7.7           00:*0:4*:*b:90:3a  UHLS        1       84    rl2
Погуглил, говорят что IPFIREWALL_FORWARD_EXTENDED нужно в ядро вкомпилить. Но у меня шестерка, там такой опции нету
В ядре у меня

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

options         NETGRAPH
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_KSOCKET
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_PPP
options         NETGRAPH_PPTPGRE
options         NETGRAPH_SOCKET
options         NETGRAPH_TCPMSS
options         NETGRAPH_VJC
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
options	   TCP_DROP_SYNFIN
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-10 11:41:39

я к вечеру проснусь
погляжу трезвым взглядом и скажу что то

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-10 23:41:21

ненадо там никакой екстендед

делай все по порядку
настрой для начала все через тот канал куда указывает дефолтный роут
на тот исходящий интерфейс поцепи видерт для ната
проверил?работает?
дальше

цепляешь диверт на другой интрефейс(A)
и указываешь в правиле диверт ловить токо те пакеты котроые хочешь завернуть на другой шлюз
и ниже делаешь форвард в удаленнуй точку тунеля
пакет )(внимание) который получаеться на этом интрефейсе(A)

и все должно работать

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-11 6:32:56

Все равно не работает, идет опятьт не через тот интерфейс. Первый нат 8668 нормально работает.

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

05301 divert 8668 log logamount 100 ip from 192.168.10.0/24 to any out via rl1
05350 allow ip from 84.22.1**.2 to any out via rl1
05601 divert 8668 ip from any to 84.22.1**.2 in via rl1
05602 divert 8669 log logamount 100 ip from 192.168.11.5 to any xmit rl2
05603 fwd 10.0.7.7 log logamount 100 ip from 10.0.7.15 to any out via rl2
05604 divert 8669 ip from any to 10.0.7.15 in via rl2
05605 allow ip from any to 192.168.10.0/23 in via rl1
05701 allow ip from 192.168.10.0/23 to any in via ng*
05801 allow ip from not 192.168.10.0/23 to 192.168.10.0/23
Есть у кого вообще проверенный рабочий пример?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-11 6:41:59

покажи как тикают счетчики по последним твоим правилам
и покажи таблицу маршрутизации

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-11 6:53:14

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

# ipfw show 5301-5801
05301  52318564  49684788338    divert 8668 log logamount 100 ip from 192.168.10.0/24 to any out via rl1
05350     51611      4296224          allow ip from 84.22.1**.2 to any out via rl1
05601  46916045  33677951487     divert 8668 ip from any to 84.22.1**.2 in via rl1
05602         0            0                  divert 8669 log logamount 100 ip from 192.168.11.5 to any xmit rl2
05603         0            0                  fwd 10.0.7.7 log logamount 100 ip from 10.0.7.15 to any out via rl2
05604         0            0                  divert 8669 ip from any to 10.0.7.15 in via rl2
05605     70873     77154797          allow ip from any to 192.168.10.0/23 in via rl1
05701        23         2181                allow ip from 192.168.10.0/23 to any in via ng*
05801  46731593  33595191230      allow ip from not 192.168.10.0/23 to 192.168.10.0/23

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

  netstat -rn | grep -v : | grep -v ng

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            84.22.139.1        UGS         0 72265613    rl1
10                 link#3             UC          0        0    rl2
10.0.6/24          10.0.7.1           UGS         0 302468130    rl0 =>
10.0.6/23          link#1             UC          0        0    rl0
10.100.100.10      127.0.0.1          UH          0        0    lo0
84.22.139/24       link#2             UC          0        0    rl1
127.0.0.1          127.0.0.1          UH          0   117301    lo0
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Два канала + ipfw + mpd

Непрочитанное сообщение paradox » 2008-12-11 8:51:42

05602 0 0 divert 8669 log logamount 100 ip from 192.168.11.5 to any xmit rl2
ищи где там пропадает по фаеру 11.5
как токо он попадет в правило так сразу и дальше пройдет

5602 ???

я ж сказал начни с чистого фаревола

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Два канала + ipfw + mpd

Непрочитанное сообщение RusBiT » 2008-12-11 17:05:31

Так есть у кого явно рабочий и проверенный конфиг ipfw c двумя каналами?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)