URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 71630
[ Назад ]

Исходное сообщение
"Разделение входящего/исходящего трафика по двум каналам+natd"

Отправлено oxd , 23-Янв-07 04:33 
Запутался совсем :)
Ситуация: есть два внешних интерфейса (оба дуплексные) ste0 и ste3.
Есть роутер с натом. Сейчас он работает на интерфейсе ste0 и все в порядке. Требуется пустить весь исходящий  в инет трафик по каналу ste3 а весь входящий (за некоторыми исключениями) по интерфейсу ste0. Исключения -- определенные порты, за которые не берут деньки, те кто предоставляет ste3 (irc, icq)
Проблема в том, что не представляю как правильно настроить ipfw. Вешать два ната? Или можно на одном?

Содержание

Сообщения в этом обсуждении
"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено Tigran , 23-Янв-07 10:33 
>Запутался совсем :)
>Ситуация: есть два внешних интерфейса (оба дуплексные) ste0 и ste3.
>Есть роутер с натом. Сейчас он работает на интерфейсе ste0 и все
>в порядке. Требуется пустить весь исходящий  в инет трафик по
>каналу ste3 а весь входящий (за некоторыми исключениями) по интерфейсу ste0.
>Исключения -- определенные порты, за которые не берут деньки, те кто
>предоставляет ste3 (irc, icq)
>Проблема в том, что не представляю как правильно настроить ipfw. Вешать два
>ната? Или можно на одном?
допустим у тебя ип x.x.x.1 на ste0 и y.y.y.1 на ste3.
поднимаешь NAT на ste0 но ставишь "default gateway" gateway y.y.y.1-а.
весь up будет идти через y.y.y.1 тоесть ste3, Но так как source ip x.x.x.1 то весь down придет через ste0.



"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено oxd , 23-Янв-07 12:50 
именно так и делал, но почемуто не работает :(
Могут быть проблемы из-за того, что за натом впн (pptp)

"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено oxd , 23-Янв-07 14:34 
т.е. отправляю пакеты, принимаю пакеты, но ничего за натом не работает

"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено Tigran , 23-Янв-07 17:18 
>т.е. отправляю пакеты, принимаю пакеты, но ничего за натом не работает
А просто НАТ работает???


"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено oxd , 24-Янв-07 07:01 
>>т.е. отправляю пакеты, принимаю пакеты, но ничего за натом не работает
>А просто НАТ работает???

да
divert 8668 ip from any to any via ste0
все ок


"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено PavelR , 23-Янв-07 21:22 
>Запутался совсем :)
>Ситуация: есть два внешних интерфейса (оба дуплексные) ste0 и ste3.
>Есть роутер с натом. Сейчас он работает на интерфейсе ste0 и все
>в порядке. Требуется пустить весь исходящий  в инет трафик по
>каналу ste3 а весь входящий (за некоторыми исключениями) по интерфейсу ste0.
>Исключения -- определенные порты, за которые не берут деньки, те кто
>предоставляет ste3 (irc, icq)
>Проблема в том, что не представляю как правильно настроить ipfw. Вешать два
>ната? Или можно на одном?


Вешать два ната, + делать два форварда

------ cut here ----

#
# PROVIDE: ipfw-my
# REQUIRE: NETWORKING ipfw
# KEYWORD: shutdown
#
#

NET1_IP = ?
NET1_IF = ?
NET2_IP = unknown, not used here but declared as template and you can use it
NET2_IF = ?


natd -p 8667 -m -s -a $NET1_IP
natd -p 8669 -m -s -interface $NET2_IF -dynamic

ipfw -q flush

ipfw add 00100 pass all from any to any via lo0
ipfw add 00110 deny log all from any to 127.0.0.0/8
ipfw add 00120 deny log all from 127.0.0.0/8 to any

#ВНЕШНИЙ ВХОДЯЩИЙ

#общий счетчик по интерфейсу
ipfw add 04000 count ip from any to any in via $NET1_IF
ipfw add 04005 count all from not table\(1\) to any in via $NET1_IF

ipfw add 04010 skipto 05000 all from any to any in via $NET2_IF


## Allow tunnel base layer
ipfw add 04050 allow gre from xxxxxx.server.here to me in via $NET1_IF

#закроем доступ извне во внутренние сетки RFC1918
ipfw add 04200 deny all from any to 10.0.0.0/8     in via $NET1_IF
ipfw add 04205 deny all from any to 172.16.0.0/12  in via $NET1_IF
ipfw add 04210 deny all from any to 192.168.0.0/16 in via $NET1_IF

ipfw add 04215 deny all from any to 0.0.0.0/8     in via $NET1_IF
ipfw add 04220 deny all from any to 169.254.0.0/16 in via $NET1_IF
ipfw add 04225 deny all from any to 192.0.2.0/24   in via $NET1_IF
ipfw add 04230 deny all from any to 224.0.0.0/4    in via $NET1_IF
ipfw add 04235 deny all from any to 240.0.0.0/4    in via $NET1_IF

ipfw add 04250 deny all from 10.0.0.0/8     to any in via $NET1_IF
ipfw add 04255 deny all from 172.16.0.0/12  to any in via $NET1_IF
ipfw add 04260 deny all from 192.168.0.0/16 to any in via $NET1_IF

ipfw add 04365 deny all from 0.0.0.0/8      to any in via $NET1_IF
ipfw add 04370 deny all from 169.254.0.0/16 to any in via $NET1_IF
ipfw add 04375 deny all from 192.0.2.0/24   to any in via $NET1_IF
ipfw add 04380 deny all from 224.0.0.0/4    to any in via $NET1_IF
ipfw add 04385 deny all from 240.0.0.0/4    to any in via $NET1_IF


##
ipfw add 04400 divert 8667 all from any to $NET1_IP in via $NET1_IF

## 4450 - заворачиваем траффик на учет, входящий траффик. Правило вставляется скриптом netams-netgraph.sh
#ipfw add 04450 netgraph 60 ip from any to any in via $NET1_IF

## Allow established
ipfw add 04500 allow tcp  from any to any in via $NET1_IF established
ipfw add 04510 allow all  from any to any in via $NET1_IF frag
ipfw add 04520 allow icmp from any to me  in via $NET1_IF

#Our services
ipfw add 04600 pass tcp from any to me 25  in via $NET1_IF setup
ipfw add 04605 pass tcp from any to me 53  in via $NET1_IF setup
ipfw add 04610 allow udp from any to me 53 in via $NET1_IF
ipfw add 04615 pass tcp from any to me 587 in via $NET1_IF setup
ipfw add 04620 pass tcp from any to me 80  in via $NET1_IF setup
ipfw add 04625 pass tcp from any to me 22  in via $NET1_IF setup
ipfw add 04630 pass tcp from any to me 21  in via $NET1_IF setup

#DNS,NTP

ipfw add 04631 allow udp from me to any 53  keep-state via $NET1_IF
ipfw add 04635 allow udp from me to any 123 keep-state via $NET1_IF
ipfw add 04640 allow udp from any 53 to me  keep-state via $NET1_IF

## some other services

ipfw add 04650 allow tcp from any to me 1460 in via nve0 setup

# Траффик из интернет к машинам

ipfw add 04800 allow all from any to 192.168.1.1 in via $NET1_IF
ipfw add 04805 allow all from any to 192.168.1.2 in via $NET1_IF
ipfw add 04810 allow all from any to 192.168.1.3 in via $NET1_IF
ipfw add 04815 allow all from any to 192.168.1.4 in via $NET1_IF
ipfw add 04820 allow all from any to 192.168.1.5 in via $NET1_IF
ipfw add 04825 allow all from any to 192.168.1.6 in via $NET1_IF
ipfw add 04830 allow all from any to 192.168.1.7 in via $NET1_IF
ipfw add 04835 allow all from any to 192.168.1.8 in via $NET1_IF
ipfw add 04840 allow all from any to 192.168.1.9 in via $NET1_IF
ipfw add 04845 allow all from any to 192.168.1.10 in via $NET1_IF

ipfw add 04998 deny log  ip from any to any in via $NET1_IF

#
#   ВТОРОЙ КАНАЛ, ДОПОЛНИТЕЛЬНЫЙ ИНТЕРФЕЙС
#

#общий счетчик по интерфейсу
ipfw add 05001 count ip from any to any in via $NET2_IF
ipfw add 05006 count all from not table\(1\) to any in via $NET2_IF

#закроем доступ извне во внутренние сетки RFC1918
ipfw add 05200 deny all from any to 10.0.0.0/8     in via $NET2_IF
ipfw add 05205 deny all from any to 172.16.0.0/12  in via $NET2_IF
ipfw add 05210 deny all from any to 192.168.0.0/16 in via $NET2_IF

ipfw add 05215 deny all from any to 0.0.0.0/8     in via $NET2_IF
ipfw add 05220 deny all from any to 169.254.0.0/16 in via $NET2_IF
ipfw add 05225 deny all from any to 192.0.2.0/24   in via $NET2_IF
ipfw add 05230 deny all from any to 224.0.0.0/4    in via $NET2_IF
ipfw add 05235 deny all from any to 240.0.0.0/4    in via $NET2_IF

ipfw add 05250 deny all from 10.0.0.0/8     to any in via $NET2_IF
ipfw add 05255 deny all from 172.16.0.0/12  to any in via $NET2_IF
ipfw add 05260 deny all from 192.168.0.0/16 to any in via $NET2_IF

ipfw add 05365 deny all from 0.0.0.0/8      to any in via $NET2_IF
ipfw add 05370 deny all from 169.254.0.0/16 to any in via $NET2_IF
ipfw add 05375 deny all from 192.0.2.0/24   to any in via $NET2_IF
ipfw add 05380 deny all from 224.0.0.0/4    to any in via $NET2_IF
ipfw add 05385 deny all from 240.0.0.0/4    to any in via $NET2_IF


ipfw add 05400 divert 8669 all from any to any in via $NET2_IF

## 5450 - заворачиваем траффик на учет, входящий траффик. Правило вставляется ск
риптом netams-netgraph.sh
#ipfw add 05450 netgraph 60 ip from any to any in via $NET2_IF


## Allow established
ipfw add 05500 allow tcp  from any to any in via $NET2_IF established
ipfw add 05510 allow all  from any to any in via $NET2_IF frag
ipfw add 05520 allow icmp from any to me  in via $NET2_IF


# Траффик из интернет к машинам

ipfw add 05900 allow all from any to 192.168.1.1 in via $NET2_IF
ipfw add 05905 allow all from any to 192.168.1.2 in via $NET2_IF
ipfw add 05910 allow all from any to 192.168.1.3 in via $NET2_IF
ipfw add 05915 allow all from any to 192.168.1.4 in via $NET2_IF
ipfw add 05920 allow all from any to 192.168.1.5 in via $NET2_IF
ipfw add 05925 allow all from any to 192.168.1.6 in via $NET2_IF
ipfw add 05930 allow all from any to 192.168.1.7 in via $NET2_IF
ipfw add 05935 allow all from any to 192.168.1.8 in via $NET2_IF
ipfw add 05940 allow all from any to 192.168.1.9 in via $NET2_IF
ipfw add 05945 allow all from any to 192.168.1.10 in via $NET2_IF

ipfw add 05999 deny log ip from any to any in via $NET2_IF

##     #######

## Внешние интерфейсы, исходящий траффик

##     #######

## 6000 - заворачиваем траффик на учет, входящий траффик. Правило вставляется ск
риптом netams-netgraph.sh
#ipfw add 06000 netgraph 61 ip from any to any out via $NET1_IF
#ipfw add 06001 netgraph 61 ip from any to any out via $NET2_IF

#
#  A1  M2  Заворачиваем на нат и делаем форвард траффика все что идет _с_ адреса
первого канала по маршруту второго
#
ipfw add 06030 divert 8667 all from $NET1_IP to any out via $NET2_IF
ipfw add 06035 fwd $NET1_GW all from $NET1_IP to any out via $NET2_IF

#
# (A2) M2  Заворачиваем в диверт все что будет уходить по второму каналу (с адре
са первого уже ушли выше)
#
ipfw add 06050 divert 8669 all from any to any out via $NET2_IF
#ipfw  add 06060 allow all from $NET2_IP to any out via $NET2_IF

#  A2  M1

## Rules 6060 6080 6090 will be added by MPD     (заворачиваем в диверт и отправ
ляем все что шло с адреса второго по машруту первого)
#
#ipfw add 06080 divert 8669 all from $NET2_IP to any out via $NET1_IF
#ipfw add 06090 fwd $NET2_GW all from $NET2_IP to any out via $NET1_IF

#
#  A1  M1 Заворачиваем на нат все что уходит через первый канал по маршрутам
#
ipfw add 06100 divert 8667 all from any to any out via $NET1_IF
ipfw add 06110 allow all from $NET1_IP to any out via $NET1_IF


ipfw add 06999 deny log all from any to any out via $NET1_IF


"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено Виктор , 30-Июл-09 14:04 
NET1_IP = ?
NET1_IF = ?
NET2_IP = unknown, not used here but declared as template and you can use it
NET2_IF = ?

Можно тут поподробнее? Какой интерфейс и куда направлен?


"Разделение входящего/исходящего трафика по двум каналам+natd"
Отправлено Виктор , 31-Июл-09 12:48 
10 раз посмотрел листинг и вопросы отпали ))