Запутался совсем :)
Ситуация: есть два внешних интерфейса (оба дуплексные) ste0 и ste3.
Есть роутер с натом. Сейчас он работает на интерфейсе ste0 и все в порядке. Требуется пустить весь исходящий в инет трафик по каналу ste3 а весь входящий (за некоторыми исключениями) по интерфейсу ste0. Исключения -- определенные порты, за которые не берут деньки, те кто предоставляет ste3 (irc, icq)
Проблема в том, что не представляю как правильно настроить ipfw. Вешать два ната? Или можно на одном?
>Запутался совсем :)
>Ситуация: есть два внешних интерфейса (оба дуплексные) 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.
именно так и делал, но почемуто не работает :(
Могут быть проблемы из-за того, что за натом впн (pptp)
т.е. отправляю пакеты, принимаю пакеты, но ничего за натом не работает
>т.е. отправляю пакеты, принимаю пакеты, но ничего за натом не работает
А просто НАТ работает???
>>т.е. отправляю пакеты, принимаю пакеты, но ничего за натом не работает
>А просто НАТ работает???да
divert 8668 ip from any to any via ste0
все ок
>Запутался совсем :)
>Ситуация: есть два внешних интерфейса (оба дуплексные) 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 -dynamicipfw -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_IFipfw 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_IFipfw 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_IFipfw 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_IFipfw 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_IFipfw 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_IFipfw 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_IFipfw 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_IFipfw 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_IFipfw 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
NET1_IP = ?
NET1_IF = ?
NET2_IP = unknown, not used here but declared as template and you can use it
NET2_IF = ?Можно тут поподробнее? Какой интерфейс и куда направлен?
10 раз посмотрел листинг и вопросы отпали ))