2 ipfw nat и pipe. не получается настроить :(

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2010-12-21 23:30:14

в общем вот:

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

radist04ka@ uname -rpsi
FreeBSD 8.1-STABLE-201011 i386 KERN
имеется идин интернет и 4 локалки....

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

#!/bin/sh ~
fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

WireLan="192.168.40.0/24"
WireIf="wlan0"
WireIP="192.168.40.241"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

${fw} -f flush

${fw} pipe 1 config bw 25000kbit/s
${fw} pipe 2 config bw 128kbit/s

${fw} nat 1 config log ip ${RadIP}
${fw} nat 2 config log ip ${MainWIP}

${fw} add nat 1 ip from any to any via ${RadIf}
${fw} add nat 2 ip from any to any via ${MainWIf}

${fw} add allow all from any to any
так работает нужным образом, доступ есть куда нужно...

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

radist04ka@ sudo ipfw show
00100 1159926379 790816267164 nat 1 ip from any to any via dc0
00200  457101137 235100628373 nat 2 ip from any to any via stge0
00300  894030371 632501307678 allow ip from any to any
65535          0            0 deny ip from any to any
но никак не могу настроить pipe'ы...

как тока их подключаю тут же рубятся оба ната :(

и связи нету...

на картинке описано как хочу ограничить, но ничего не выходит :(
Вложения
Безымянный.PNG
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Хостинговая компания 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/

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-22 12:57:01

А такой флаг стоит?

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

sysctl net.inet.ip.fw.one_pass=0
Если нет,то пакет выпадает из фаера после прохождения первого подходящего правила.

И второе, нет ни одного правила которые определяют какие пакеты должны попадать в пайпы и на каком интефейсе.

И странно,у вас инет один,а ната 2. Зачем вам нат на внутреннем интерфейсе?
Все гениальное - просто!

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2010-12-22 17:01:37

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

sysctl net.inet.ip.fw.one_pass=0
стоит, на данный момент = 1
И второе, нет ни одного правила которые определяют какие пакеты должны попадать в пайпы и на каком интефейсе.
тут приведены правила, с которыми работает хотя-бы, пусть и без ограничений

смысл приводить неправильные правила, которые не только не работают, но при запуске тут же рубят все интерфейсы :(?
И странно,у вас инет один, а ната 2. Зачем вам нат на внутреннем интерфейсе?
это локалка, как еще один большой инет :) универ просто...надо :)

рулится все маршрутами:

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

radist04ka@ cat /usr/local/etc/rc.d/route.sh
#!/bin/sh

# PROVIDE: route.sh

rtcmd=/sbin/route
ipdef="10.10.241.129"

${rtcmd} change default 192.168.1.1

${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef}

p.s. правила вот такие были:

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

${fw} -f flush

${fw} pipe 1 config bw 25000kbit/s
${fw} pipe 2 config bw 128kbit/s

${fw} nat 1 config log ip ${RadIP}
${fw} nat 2 config log ip ${MainWIP}

${fw} add pipe 1 ip from ${LocLan} to any via ${RadIf}
${fw} add pipe 1 ip from ${WireLan} to any via ${RadIf}

${fw} add nat 1 ip from any to any via ${RadIf}

${fw} add pipe 1 ip from ${WireLan} to any via ${RadIf}
${fw} add pipe 1 ip from any to ${LocLan} via ${RadIf}

${fw} add pipe 2 ip from ${LocLan} to any via ${MainWIf}

${fw} add nat 2 ip from any to any via ${MainWIf}

${fw} add pipe 2 ip from ${LocLan} to any via ${MainWIf}

${fw} add allow all from any to any
были взяты по аналогии отсюда, когда был один нат, тогда все работало и шейпило(не было интернета тогда и wlan тоже не было :) ):

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

#!/bin/sh ~

fw=/sbin/ipfw

RadIf="rl0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="dc0"
LocIP="192.168.50.241"
LocLan="192.168.50.0/24"

MyIf="re0"
MyIP="192.168.2.241"
MyLan="192.168.2.0/24"

${fw} -f flush
${fw} -f pipe flush

${fw} add deny ip from any to any frag
${fw} add allow ip from any to any via lo
${fw} add deny ip from any to any not verrevpath in

${fw} add allow ip from any to ${MyLan} via ${MyIf}
${fw} add allow ip from ${MyLan} to any via ${MyIf}

${fw} add allow ip from any to ${LocLan} via ${LocIf}
${fw} add allow ip from ${LocLan} to any via ${LocIf}

${fw} add pipe 2 ip from ${LocLan} to any via ${RadIf}
${fw} pipe 2 config bw 2000kbit/s

${fw} add nat 1 ip from any to any via ${RadIf}
${fw} nat 1 config ip ${RadIP}

${fw} add pipe 1 ip from any to ${LocLan} via ${RadIf}
${fw} pipe 1 config bw 3500kbit/s

${fw} add allow ip from ${RadIP} to any out via ${RadIf}
${fw} add allow ip from any to ${RadIP} in via ${RadIf}

${fw} add allow ip from any to ${MyLan} via ${RadIf}
${fw} add allow ip from any to ${LocLan} via ${RadIf}
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-22 21:39:02

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

     net.inet.ip.fw.one_pass: 1
	     When set, the packet exiting from the dummynet pipe or from
	     ng_ipfw(4) node is not passed though the firewall again.  Other-
	     wise, after an action, the packet is reinjected into the firewall
	     at the next rule.
Должен быть 0. Иначе при использовании dummynet будет дырка в фаирволе.

Теперь вопрос: Что вы хотите ограничить шейпером? Инет? Трафик между сетями? А может и то и другое?
Еще советую вам прочитать http://www.lissyara.su/articles/freebsd ... /ipfw_nat/ и http://www.lissyara.su/articles/freebsd ... /dummynet/
Все гениальное - просто!

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2010-12-23 0:27:32

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

net.inet.ip.fw.one_pass: 
выставил в 0.

на картинке, надеюсь все написано, чего хочю... потому что словами я не могу обьяснить...

надо занатить три сети и запайпить 2, а одну запретить... вот так.... :) надеюсь...

статьи читал.... пробовал setfib, но это, как оказалось не то, и не помогло, вернее не смог настроить(хотя может и смог но не получил желаемого результата)

из этого списка, смог тока занатить...
в теории, возможно знаю, как запретить wlan выходить во второй нат...
включение pipe'ов тут же рубит сеть :(
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-23 1:24:29

утром себе схему нарисую, может и пойму как у вас там все работает...

Такой вопрос, ядро пересобирали? Опции приведенных выше статей в ядре есть?
Все гениальное - просто!

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2010-12-23 1:33:36

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

sudo cat /sys/i386/conf/KERN
...
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=50
options         IPFIREWALL_NAT
options         IPFILTER
options         IPFILTER_LOG
options         DUMMYNET
options         IPDIVERT
options         LIBALIAS
options         ROUTETABLES=4
options         HZ="1000"

options         NETGRAPH
options         NETGRAPH_NAT
options         NETGRAPH_IPFW
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2010-12-23 2:04:02

то что я писал в конфу пробовал? не работает?

в двух словах, что требуется, по моему разумению
на картинке справа два внешних интерфейса, слева - три внутренних
re0 натится в обе внешки без ограничений
fxp0 натится и пайпится на обе внешки
wlan0 натится и пайпится на fxp0
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2010-12-23 4:13:29

если так же писать, то немного с поправкой:
справа два внешних интерфейса, слева - три внутренних
re0 натится в обе внешки без ограничений
fxp0 натится и пайпится на обе внешки
wlan0 натится и пайпится на dc0
то что я писал в конфу пробовал? не работает?
пробовал, но тогда почему невозможно приконектится к мпд-серверу на машине...
пишет ошибка 800....
мпд слушает только dc0 с пулом в 192.168.100.0/24

p.s. если можно, то у меня небольшая просьба, покажите как правильно надо рисовать подобные схемы распределения пакетов, а то нарисовал, а никто не понимает:(
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2010-12-23 5:53:18

да, естественно, там dc0, ошибся

картинка норм
но несколько пояснительных слов лишними не будут
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-23 12:43:33

QweЯty писал(а):если так же писать, то немного с поправкой:
справа два внешних интерфейса, слева - три внутренних
re0 натится в обе внешки без ограничений
fxp0 натится и пайпится на обе внешки
wlan0 натится и пайпится на dc0
то что я писал в конфу пробовал? не работает?
пробовал, но тогда почему невозможно приконектится к мпд-серверу на машине...
пишет ошибка 800....
мпд слушает только dc0 с пулом в 192.168.100.0/24

p.s. если можно, то у меня небольшая просьба, покажите как правильно надо рисовать подобные схемы распределения пакетов, а то нарисовал, а никто не понимает:(
А в первом сообщении вы писали, что "имеется идин интернет и 4 локалки....".
Теперь выясняется,что у вас 2 внешних канала :shock:

Вам нужен пример нормальной схемы,вот он: http://www.lissyara.su/images/upload_im ... c09329.png
И сразу все ясно.
Все гениальное - просто!

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-23 12:55:53

FreeBSP писал(а): re0 натится в обе внешки без ограничений
fxp0 натится и пайпится на обе внешки
Извиняюсь за вопрос, а разве возможно одновременно натить на два внешних интерфейса? Пакет же попадет на первое доступное правило нат и уходит на внешку. Т.е. втрой нат будет фактически не работать,пакеты, по правилам ipfw, до него не дойдут. Или я не прав?
Все гениальное - просто!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2010-12-23 18:19:54

hranitel_y2k писал(а):А в первом сообщении вы писали, что "имеется идин интернет и 4 локалки....".
три внутренних локалки, одна внешняя и один инет


hranitel_y2k писал(а):Вам нужен пример нормальной схемы,вот он: http://www.lissyara.su/images/upload_im ... c09329.png
И сразу все ясно.
а где какие ограничения, кто куда ходит, где что шейпится,куда натится? балансировка или резерв?
картинка в первом посте информативнее, вот тока сетки оттуда выпилены, в первой версии, которая обсуждалась в конфе были и сетки на интерфейсах.
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-23 21:57:31

FreeBSP писал(а):
hranitel_y2k писал(а):А в первом сообщении вы писали, что "имеется идин интернет и 4 локалки....".
три внутренних локалки, одна внешняя и один инет
Под внешней подразумевается - что-то типа "корпоративной сети" без выхода в инет? Просто хочу разобраться в маршрутизации пакетов для данной сети.

FreeBSP писал(а):
hranitel_y2k писал(а):Вам нужен пример нормальной схемы,вот он: http://www.lissyara.su/images/upload_im ... c09329.png
И сразу все ясно.
а где какие ограничения, кто куда ходит, где что шейпится,куда натится? балансировка или резерв?
картинка в первом посте информативнее, вот тока сетки оттуда выпилены, в первой версии, которая обсуждалась в конфе были и сетки на интерфейсах.
Да в этом плане она более информативна,но к ней не хватает толкового объяснения. К сожалению,я не знал что данная сеть уже обсуждалась на форуме.
Все гениальное - просто!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2010-12-23 22:12:50

она в конференции на жаббере обсуждалась

внешки там маршрутами рулятся. внешняя локалка - институтская, вроде без выхода в инет через нее
выход в инет через вторую внешку. инет - через dc0, а sgte0 это локалка институтская. вроде так
внутренние - сетки общаги
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2010-12-23 22:38:05

такс, опишу подробнее...

stge0 - это интернет...
dc0 - это институтская локалка без выхода в инет

остальные это наши локалки в общаге...

на dc0 идут все пакеты с адресом 10/8

рулится все стартовым скриптом в рц.д:

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

radist04ka@ cat /usr/local/etc/rc.d/route.sh
#!/bin/sh

# PROVIDE: route.sh

rtcmd=/sbin/route
ipdef="10.10.241.129"

${rtcmd} change default 192.168.1.1

${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef} 
Извиняюсь за вопрос, а разве возможно одновременно натить на два внешних интерфейса? Пакет же попадет на первое доступное правило нат и уходит на внешку. Т.е. втрой нат будет фактически не работать,пакеты, по правилам ipfw, до него не дойдут. Или я не прав?
все работает:

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

${fw} nat 1 config log ip ${RadIP}
${fw} nat 2 config log ip ${MainWIP}

${fw} add nat 1 ip from any to any via ${RadIf}
${fw} add nat 2 ip from any to any via ${MainWIf}

${fw} add allow all from any to any
p.s. Прошу прощения, но я покину на время вас...
заболел капитально:(
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2010-12-24 10:42:56

QweЯty писал(а):такс, опишу подробнее...

stge0 - это интернет...
dc0 - это институтская локалка без выхода в инет

остальные это наши локалки в общаге...

на dc0 идут все пакеты с адресом 10/8

рулится все стартовым скриптом в рц.д:

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

radist04ka@ cat /usr/local/etc/rc.d/route.sh
#!/bin/sh

# PROVIDE: route.sh

rtcmd=/sbin/route
ipdef="10.10.241.129"

${rtcmd} change default 192.168.1.1

${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef} 
Вот теперь все ясно. Выздоравливайте и обсудим правила и шейпинг.
QweЯty писал(а):
Извиняюсь за вопрос, а разве возможно одновременно натить на два внешних интерфейса? Пакет же попадет на первое доступное правило нат и уходит на внешку. Т.е. втрой нат будет фактически не работать,пакеты, по правилам ipfw, до него не дойдут. Или я не прав?
все работает:

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

${fw} nat 1 config log ip ${RadIP}
${fw} nat 2 config log ip ${MainWIP}

${fw} add nat 1 ip from any to any via ${RadIf}
${fw} add nat 2 ip from any to any via ${MainWIf}

${fw} add allow all from any to any
Не правильно я вопрос задал. В данном случае под внешними интерфейсами я имел ввиду,те которые соединены с инетом. Простым натом выходить через оба интерфейса В ИНЕТ не получится, один будет простаивать - маршрут по умолчанию только один;)
Все гениальное - просто!

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2011-01-04 12:14:56

всех с новым годом:)
особенно тех у кого кошки:)

вот, прикрепил новую картинку с названием всех подсетей
и таблицей маршрутов....

надеюсь поможет:)
Вложения
Безымянный.PNG
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение QweЯty » 2011-01-05 1:42:27

p.s. переделал немного, чтобы:
меньше пересечений будет =)
...
да так проще же и видно сразу
и вот еще конфиги которые были раньше тоже испробованы(с большой помошью freebsp :) ) :

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

radist04ka# cat rc.firewall7
fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

WireLan="192.168.40.0/24"
WireIf="wlan0"
WireIP="192.168.40.241"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"


dc0_nets="{10/8 195.208/16}"

${fw} -f flush

${fw} nat 2 config ip ${RadIP}
${fw} nat 1 config ip ${MainWIP}

${fw} pipe 1 config bw 3500kbit/s
${fw} pipe 2 config bw 3500kbit/s
${fw} pipe 3 config bw 3500kbit/s
${fw} pipe 4 config bw 3500kbit/s
${fw} pipe 5 config bw 3500kbit/s
${fw} pipe 6 config bw 3500kbit/s

${fw} add allow ip from 192.168.50.188 to me 22
${fw} add allow ip from me 22 to 192.168.50.188

${fw} add deny ip from any to any frag
${fw} add allow ip from any to any via lo0

${fw} add nat 2 all from ${MyLan} to ${dc0_nets} out recv ${MyIf} xmit ${RadIf}
${fw} add nat 1 all from ${MyLan} to not ${dc0_nets} out recv ${MyIf} xmit ${MainWIf}

${fw} add pipe 1 all from ${LocLan} to ${dc0_nets} in recv ${LocIf}
${fw} add pipe 2 all from ${dc0_nets} to ${LocLan} out recv ${RadIf} xmit ${LocIf}
${fw} add nat 2 all from ${LocLan} to ${dc0_nets} out recv ${LocIf} xmit ${RadIf}

${fw} add pipe 3 all from ${LocLan} to not ${dc0_nets} in recv ${LocIf}
${fw} add pipe 4 all from not ${dc0_nets} to ${LocLan} out recv ${MainWIf} xmit ${LocIf}
${fw} add nat 1 all from ${LocLan} to not ${dc0_nets} out recv ${LocIf} xmit ${MainWIf}

${fw} add pipe 5 all from $${WlanLan} to any in recv ${WlanIf}
${fw} add pipe 6 all from any to ${WlanLan} out recv ${RadIf} xmit ${WlanIf}
${fw} add nat 1 all from any to ${WlanLan} out recv ${RadIf} xmit ${WlanIf}

${fw} add allow ip from any to any
radist04ka#
вот этот у меня так и не завелся.... писал ошибки(точно не помню какие)

и этот:

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

radist04ka# cat rc.firewall3
#!/bin/sh

fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

WireLan="192.168.40.0/24"
WireIf="wlan0"
WireIP="192.168.40.241"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

InetIf="ng*"
InetLan="192.168.100.0/24"

${fw} -f flush

${fw} nat 1 config log ip ${RadIP}
${fw} nat 2 config log ip ${MainWIP}

${fw} add nat 1 ip from any to ${RadIP} in via ${RadIf}
${fw} add nat 1 ip from ${LocLan}, ${WireLan}, ${MyLan}, ${InetLan} to any out via ${RadIf}

${fw} add nat 2 ip from any to ${MainWIP} in via ${MainWIf}
${fw} add nat 2 ip from ${LocLan}, ${MyLan}, ${InetLan}, 192.168.40.188 to any out via ${MainWIf}

${fw} add allow all from any to any
завести завелся, смог выполнить первую часть того что надо:

занатить 3 подсети на dc0
и занатить 2 подсети на stge0 (запретив wlan0 на stge0)

запайпить не смогли, и ищем решения...

p.s. пока что у меня стоит просто 2 ната:

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

radist04ka# ipfw show
00100 2557571303 1708523001792 nat 1 ip from any to any via dc0
00200 1190329073  620368427842 nat 2 ip from any to any via stge0
00300 3594448266 2257910885576 allow ip from any to any
65535          0             0 deny ip from any to any

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

radist04ka# cat rc.firewall2
#!/bin/sh ~
fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

WireLan="192.168.40.0/24"
WireIf="wlan0"
WireIP="192.168.40.241"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

${fw} -f flush

${fw} nat 1 config log ip ${RadIP}
${fw} nat 2 config log ip ${MainWIP}

${fw} add nat 1 ip from any to any via ${RadIf}

${fw} add nat 2 ip from any to any via ${MainWIf}

${fw} add allow all from any to any
p.p.s. а почему так мало раз можно менять посты свои?
Вложения
Безымянный.PNG
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2011-01-07 10:05:49

С выздоровлением! А также с прошедшими праздниками!

Сейчас пишу конфиг фаера под вашу сетку (как и обещал выше). Возникли и вопросы:

1)У вас есть интерфейс ng* и соответственно сеть InetLan, куда она должна иметь доступ? Должна ли шейпиться?
2)В конфигах выше есть два ip 192.168.50.188 и 192.168.40.188. Для одного использовались соединения по ssh,а для другого используется правило для второго ната. Что из них оставлять?
3) в первом конфиге есть сеть "195.208/16". Она реально есть?
Все гениальное - просто!

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2011-01-07 12:16:45

Вот правила, конечно они не идеальны,но должны работать. После теста отпишитесь, пожалуйста.

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

fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

WireLan="192.168.40.0/24"
WireIf="wlan0"
WireIP="192.168.40.241"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

InetIf="ng*"
InetLan="192.168.100.0/24"

#dc0_nets="{10/8 195.208/16}"

${fw} -f flush
${fw} -f pipe flush
${fw} -f queue flush

# Конфигурация нат
${fw} nat 2 config log if ${RadIf} reset same_ports deny_in
${fw} nat 1 config log if ${MainWIf} reset same_ports deny_in

# Конфигурация пайпов
${fw} pipe 1 config bw 3500kbit/s # from fxp0 to dc0
${fw} pipe 2 config bw 3500kbit/s # from dc0 to fxp0
${fw} pipe 3 config bw 3500kbit/s # from fxp0 to stge0
${fw} pipe 4 config bw 3500kbit/s # from stge0 to fxp0
${fw} pipe 5 config bw 3500kbit/s # from wlan0 to dc0
${fw} pipe 6 config bw 3500kbit/s # from dc0 to wlan0

# Это было,но пока закоментил
#${fw} add allow ip from 192.168.50.188 to me 22
#${fw} add allow ip from me 22 to 192.168.50.188

${fw} add deny ip from any to any frag
${fw} add allow ip from any to any via lo0


${fw} add pipe 1 ip from ${LocLan} to ${RadLan} out xmit ${RadIf}
${fw} add pipe 5 ip from ${WireLan} to ${RadLan} out xmit ${RadIf}

# NAT (dc0)
${fw} add nat 1 ip from ${LocLan} to ${RadLan} out xmit ${RadIf}
${fw} add nat 1 ip from ${WireLan} to ${RadLan} out xmit ${RadIf}
${fw} add nat 1 ip from ${MyLan} to ${RadLan} out xmit ${RadIf}
${fw} add nat 1 ip from ${InetLan} to ${RadLan} out xmit ${RadIf}
${fw} add nat 1 ip from ${RadLan} to ${RadIP} in recv ${RadIf}

${fw} add pipe 2 ip from ${RadLan} to ${LocLan} in recv ${RadIf}
${fw} add pipe 6 ip from ${RadLan} to ${WireLan} in recv ${RadIf}


${fw} add pipe 3 ip from ${LocLan} to not ${RadLan} out xmit ${MainWIf}

#NAT (stge0)
${fw} add nat 2 ip from ${LocLan} to not ${RadLan} out xmit ${MainWIf}
${fw} add nat 2 ip from ${MyLan} to not ${RadLan} out xmit ${MainWIf}
${fw} add nat 2 ip from ${InetLan} to not ${RadLan} out xmit ${MainWIf}
${fw} add nat 2 ip from any to ${MainWIP} in recv ${MainWIf}

${fw} add pipe 4 ip from any to ${LocLan} in recv ${MainWIf}


${fw} add allow ip from any to any 
Все гениальное - просто!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2011-01-07 21:58:11

товарисч, у вас за dc0 не 10/8 а 10.10.241.128/25
я полголовы сломал, пока понял что не так =)
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2011-01-08 4:03:28

из интереса, для общего развития, и ради, так сказать, взаимопомощи, реализовал схему сети на виртуалках в VMware

net1# ifconfig

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

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:95:10:8e
        inet 10.10.241.241 netmask 0xffffff80 broadcast 10.10.241.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:95:10:98
        inet 192.168.1.241 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:95:10:a2
        inet 192.168.50.241 netmask 0xffffff00 broadcast 192.168.50.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:95:10:ac
        inet 192.168.60.241 netmask 0xffffff00 broadcast 192.168.60.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:95:10:b6
        inet 192.168.40.241 netmask 0xffffff00 broadcast 192.168.40.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:95:10:c0
        inet 192.168.0.21 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet 127.0.0.1 netmask 0xff000000
net1# cat /etc/rc.conf

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

# This file now contains just the overrides from /etc/defaults/rc.conf.
# Please make all changes to this file, not to /etc/defaults/rc.conf.

hostname="net1"
#hostname="host1.testnet.local"
keymap="ru.koi8-r"
sshd_enable="YES"
gateway_enable="YES"             # Set to YES if this host will be a gateway

# dc0
ifconfig_em0="inet 10.10.241.241 netmask 255.255.255.128"
# sgte0
ifconfig_em1="inet 192.168.1.241 netmask 255.255.255.0"

# re0
ifconfig_em2="inet 192.168.50.241 netmask 255.255.255.0"
# fxp0
ifconfig_em3="inet 192.168.60.241 netmask 255.255.255.0"
# wlan0
ifconfig_em4="inet 192.168.40.241 netmask 255.255.255.0"

ifconfig_em5="DHCP"
net1# natstat -rn
natstat: Command not found.
net1# netstat -rn

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

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.0.1        UGS         0        0    em5
10.0.0.0/8         10.10.241.129      UGS         0        0    em0
10.10.241.128/25   link#1             U           0        1    em0
10.10.241.241      link#1             UHS         0        0    lo0
127.0.0.1          link#9             UH          0        4    lo0
192.168.0.0/24     link#6             U           1      456    em5
192.168.1.0/24     link#2             U           0        0    em1
192.168.1.241      link#2             UHS         0        0    lo0
192.168.40.0/24    link#5             U           0       15    em4
192.168.40.241     link#5             UHS         0        0    lo0
192.168.50.0/24    link#3             U           0        0    em2
192.168.50.241     link#3             UHS         0        0    lo0
192.168.60.0/24    link#4             U           0        0    em3
192.168.60.241     link#4             UHS         0        0    lo0
195.208.0.0/16     10.10.241.129      UGS         0       21    em0
net1# cat ipfw

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

#!/bin/sh
/sbin/sysctl net.inet.ip.fw.one_pass=0

fw=/sbin/ipfw

RadIf="em0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

MainWIf="em1"
MainWIP="192.168.1.241"
MainWLan="192.168.1.0/24"

MyIf="em2"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

LocIf="em3"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

WireIf="em4"
WireIP="192.168.40.241"
WireLan="192.168.40.0/24"

dc0_nets=" 10.0.0.0/8, 195.208.0.0/16"

${fw} -f flush

${fw} nat 2 config ip ${RadIP}
${fw} nat 1 config ip ${MainWIP}

${fw} pipe 1 config bw 3500kbit/s
${fw} pipe 2 config bw 3500kbit/s
${fw} pipe 3 config bw 3500kbit/s
${fw} pipe 4 config bw 3500kbit/s
${fw} pipe 5 config bw 3500kbit/s
${fw} pipe 6 config bw 3500kbit/s

${fw} add allow ip from any to me 22
${fw} add allow ip from me 22 to any

#${fw} add deny ip from any to any frag
${fw} add allow ip from any to any via lo0

echo
echo Back to the NAT
${fw} add nat 2 all from ${dc0_nets}     to ${RadIP}   in recv ${RadIf}
${fw} add nat 1 all from not ${dc0_nets} to ${MainWIP} in recv ${MainWIf}

echo
echo "MyLan <-> any ($MyLan <-> any)"
${fw} add nat 2 all from ${MyLan} to ${dc0_nets}     out recv ${MyIf} xmit ${RadIf}
${fw} add nat 1 all from ${MyLan} to not ${dc0_nets} out recv ${MyIf} xmit ${MainWIf}

echo
echo "LocLan <-> RadIf ($LocLan <-> $RadIf)"
${fw} add pipe 1 all from ${LocLan}   to ${dc0_nets} in  recv ${LocIf}
${fw} add pipe 2 all from ${dc0_nets} to ${LocLan}   out recv ${RadIf} xmit ${LocIf}
${fw} add nat  2 all from ${LocLan}   to ${dc0_nets} out recv ${LocIf} xmit ${RadIf}

echo
echo "LocLan <-> MainWIf ($LocLan <-> $MainWIf)"
${fw} add pipe 3 all from ${LocLan}       to not ${dc0_nets} in  recv ${LocIf}
${fw} add pipe 4 all from not ${dc0_nets} to ${LocLan}       out recv ${MainWIf} xmit ${LocIf}
${fw} add nat  1 all from ${LocLan}       to not ${dc0_nets} out recv ${LocIf}   xmit ${MainWIf}

echo
echo "WireLan <-> RadIf ($WireLan <-> $RadIf)"
${fw} add pipe 5 all from ${WireLan}  to ${dc0_nets} in  recv ${WireIf}
${fw} add pipe 6 all from ${dc0_nets} to ${WireLan}  out recv ${RadIf}   xmit ${WireIf}
${fw} add nat  2 all from ${WireLan}  to ${dc0_nets} out recv ${WireIf}  xmit ${RadIf}

echo
echo ""
${fw} add allow all from ${WireLan} to ${dc0_nets}, ${LocLan}, ${MyLan}, ${WireLan}  in recv ${WireIf}
${fw} add allow all from ${dc0_nets} to ${WireLan} out recv ${RadIf} xmit ${WireIf}
${fw} add deny all from ${WireLan} to any in


echo
echo ololo
${fw} add allow log ip from any to any
net1# ipfw show

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

00100 188 12876 allow ip from any to me dst-port 22
00200 141 14556 allow ip from me 22 to any
00300   0     0 allow ip from any to any via lo0
00400   7   392 nat 2 ip from 10.0.0.0/8,195.208.0.0/16 to 10.10.241.241 in recv em0
00500   0     0 nat 1 ip from not 10.0.0.0/8,195.208.0.0/16 to 192.168.1.241 in recv em1
00600   0     0 nat 2 ip from 192.168.50.0/24 to 10.0.0.0/8,195.208.0.0/16 out recv em2 xmit em0
00700   0     0 nat 1 ip from 192.168.50.0/24 to not 10.0.0.0/8,195.208.0.0/16 out recv em2 xmit em1
00800   0     0 pipe 1 ip from 192.168.60.0/24 to 10.0.0.0/8,195.208.0.0/16 in recv em3
00900   0     0 pipe 2 ip from 10.0.0.0/8,195.208.0.0/16 to 192.168.60.0/24 out recv em0 xmit em3
01000   0     0 nat 2 ip from 192.168.60.0/24 to 10.0.0.0/8,195.208.0.0/16 out recv em3 xmit em0
01100   0     0 pipe 3 ip from 192.168.60.0/24 to not 10.0.0.0/8,195.208.0.0/16 in recv em3
01200   0     0 pipe 4 ip from not 10.0.0.0/8,195.208.0.0/16 to 192.168.60.0/24 out recv em1 xmit em3
01300   0     0 nat 1 ip from 192.168.60.0/24 to not 10.0.0.0/8,195.208.0.0/16 out recv em3 xmit em1
01400  16   640 pipe 5 ip from 192.168.40.0/24 to 10.0.0.0/8,195.208.0.0/16 in recv em4
01500   7   392 pipe 6 ip from 10.0.0.0/8,195.208.0.0/16 to 192.168.40.0/24 out recv em0 xmit em4
01600   7   280 nat 2 ip from 192.168.40.0/24 to 10.0.0.0/8,195.208.0.0/16 out recv em4 xmit em0
01700  16   640 allow ip from 192.168.40.0/24 to 10.0.0.0/8,195.208.0.0/16,192.168.60.0/24,192.168.50.0/24,192.168.40.0/24 in recv em4
01800   7   392 allow ip from 10.0.0.0/8,195.208.0.0/16 to 192.168.40.0/24 out recv em0 xmit em4
01900   8   570 deny ip from 192.168.40.0/24 to any in
02000  29  1875 allow log logamount 100 ip from any to any
65535 320 35623 allow ip from any to any
файер, естественно, далеко не весь, но часть с пайпами и натом по моему разумению работает

внутренние сетки бегают между собой и наружу. 192.168.40/24 не может бегать на 192.168.1/24
ограничение на доступ внешних локалок к внутренним оставлю в качестве домашнего задания

машина пингуется из всех сеток - 10.10.241.128/25 , 192.168.{1,40,50,60}/24 , 195.208/16

Кому интересно - вышлю пачку виртуалок, на которых производились опыты - суммарно около 4гектаров, оператики надо наверное 2 гектара (8 машин по 256 памяти)

:wq
Вложения
192.168.40.2 --195.208.1.png
получаем
сетка2.png
делаем
сетка.png
Имеем
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение hranitel_y2k » 2011-01-08 16:44:21

Кому интересно
Мне интересно, но 4 гига выкачивать тяжеловато будет... Канал в 2Mbit.
Возник такой вопрос, после сравнения моего и Вашего конфига:
Какая конструкция правила для направления пакетов в трубу более правильная, ваша или моя?

Моя:

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

${fw} add pipe 1 ip from ${LocLan} to ${RadLan} out xmit ${RadIf}
${fw} add nat 1 ip from ${LocLan} to ${RadLan} out xmit ${RadIf}
${fw} add nat 1 ip from ${RadLan} to ${RadIP} in recv ${RadIf}
${fw} add pipe 2 ip from ${RadLan} to ${LocLan} in recv ${RadIf}
Ваша:

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

${fw} add nat 2 all from ${dc0_nets}     to ${RadIP}   in recv ${RadIf}

echo "LocLan <-> RadIf ($LocLan <-> $RadIf)"
${fw} add pipe 1 all from ${LocLan}   to ${dc0_nets} in  recv ${LocIf}
${fw} add pipe 2 all from ${dc0_nets} to ${LocLan}   out recv ${RadIf} xmit ${LocIf}
${fw} add nat  2 all from ${LocLan}   to ${dc0_nets} out recv ${LocIf} xmit ${RadIf}
Все гениальное - просто!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: 2 ipfw nat и pipe. не получается настроить :(

Непрочитанное сообщение FreeBSP » 2011-01-08 17:50:28

давай на ты. я - авось не седовласый старец =)
по теме:
есть много способов освежевать кошку © Альф
тоесть не существует оптимальной конфигурации, банально из-за того что есть разные критерии оптимальности и разные способы ее достижения

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

хотя попробовал твой и у меня не работал, вроде и ошибки в скрипте были, и не работало что то.. хотя может быть, это и я сам сломал =)

PS но я сам диллетант =) что то знаю, что то умею, что то понимаю.. но не все и не всегда =(

PPS ужатые харды весят около 830 метров в сумме
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!