The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от truf (ok) on 16-Сен-13, 13:53 
2 канала через setfib

опции ядра:
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_NAT
options         LIBALIAS
options         ROUTETABLES=2
options         HZ="1000"

/etc/sysctl.conf
net.inet.ip.fw.one_pass=0

/etc/rc.conf
defaultrouter="1.2.3.4"

setfib1_enable="YES"
setfib1_defaultroute="5.6.7.8"

ifconfig_bge0="up"
ifconfig_vlan110="inet 1.2.3.5 netmask 255.255.255.252 vlan 110 vlandev bge0"
ifconfig_vlan556="inet 5.6.7.9 netmask 255.255.255.252 vlan 556 vlandev bge0"

ifconfig_vlan557="inet 5.6.8.1 netmask 255.255.255.224 vlan 557 vlandev bge0"
ifconfig_vlan99="inet 1.2.4.1 netmask 255.255.255.224 vlan 99 vlandev bge0"
ifconfig_vlan111="inet 192.168.0.1 netmask 255.255.252.0 vlan 111 vlandev bge0"
ifconfig_vlan98="inet 10.0.3.252 netmask 255.255.252.0 vlan 98 vlandev bge0"
ifconfig_vlan23="inet 192.168.5.3 netmask 255.255.255.0 vlan 23 vlandev bge0"
ifconfig_vlan88="inet 172.16.0.1 netmask 255.255.255.240 vlan 88 vlandev bge0"
cloned_interfaces="vlan110 vlan556 vlan99 vlan111 vlan98 vlan23 vlan88"

# tunels
gif_interfaces="gif0 gif1 gif2"
gifconfig_gif0="1.2.3.5 x.x.x.x"
ifconfig_gif0="inet 192.168.0.1 192.168.20.1 netmask 255.255.255.255"
gifconfig_gif1="1.2.3.5 y.y.y.y"
ifconfig_gif1="inet 192.168.100.2 192.168.100.1 netmask 255.255.255.252"
gifconfig_gif2="1.2.3.5 z.z.z.z"
ifconfig_gif2="inet 192.168.101.2 192.168.101.1 netmask 255.255.255.252"

# routes
static_routes="one two vpn okt dmzR dmzI"
route_one="192.168.25.0/24 192.168.100.1"
route_two="192.168.26.0/24 192.168.101.1"
route_vpn="172.16.0.16/29 172.16.0.17"
route_okt="-net 192.168.20.0/24 192.168.20.1"
route_dmzR="1.2.4.0/27 1.2.4.1"
route_dmzI="5.6.7.0/29 5.6.8.1"

/etc/rc.ipfw.rule
#!/bin/sh

fwcmd="/sbin/ipfw -q"
int1_if="vlan111"
int2_if="vlan23"
int3_if="vlan88"
dmz_if="vlan99"
dmz2_if="vlan557"
inet_if="vlan110"
inet2_if="vlan556"
inet_ip="1.2.3.5"
inet2_ip="5.6.7.9"

load_table="/usr/local/sbin/load_table.sh"
load_dmz="/etc/rc.ipfw.dmz"
${fwcmd} -f flush
${fwcmd} -f pipe flush
${fwcmd} -f queue flush
$load_table

${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any

${fwcmd} add allow tcp from any to me 53, 8011
${fwcmd} add allow udp from any to me 53, 8011
${fwcmd} add allow all from table\(5\) to table\(5\)
${fwcmd} add allow all from table\(6\) to table\(6\)
${fwcmd} add deny all from table\(5\) to table\(6\)
${fwcmd} add deny all from table\(6\) to table\(5\)

${fwcmd} add skipto 2500 ip from table\(1\) to table\(7\)
${fwcmd} add skipto 2500 ip from table\(7\) to table\(1\)
${fwcmd} add deny ip from 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 to table\(7\)

${fwcmd} add 2500 allow gre from table\(3\) to ${inet_ip} in recv ${inet_if}
${fwcmd} add allow gre from ${inet_ip} to table\(3\) out xmit ${inet_if}
${fwcmd} add allow ip from any to any via ng[012]
${fwcmd} add allow ip from any to any via gif[012]

#                REAL IP = DMZ 1
${fwcmd} add skipto 3500 ip from table\(2\) to 1.2.4.1
${fwcmd} add skipto 3500 ip from table\(3\) to 1.2.4.1
${fwcmd} add 3400 deny all from any to 1.2.4.1
$load_dmz
# скрипт подгрузки доступа локальных белых IP в интернет с нарезанием труб
${fwcmd} add allow ip from table\(2\) to any out xmit ${inet_if} out recv ${dmz_if}
${fwcmd} add allow ip from any to table\(2\) in recv ${inet_if}

#                    allow INTERNET ip
${fwcmd} add allow ip from table\(3\) to ${inet_ip} in recv ${inet_if}
${fwcmd} add allow ip from ${inet_ip} to table\(3\) out xmit ${inet_if}
${fwcmd} add allow ip from table\(3\) to ${inet2_ip} in recv ${inet2_if}
${fwcmd} add allow ip from ${inet2_ip} to table\(3\) out xmit ${inet2_if}

${fwcmd} add 9010 skipto 9060 ip from 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 to any in recv ${int1_if}
${fwcmd} add 9040 setfib 0 ip from 172.16.0.0/28,192.168.0.0/24 to any keep-state
${fwcmd} add 9050 allow ip from any to any via ${int3_if}
${fwcmd} add 9055 allow ip from any to any via ${int1_if}
${fwcmd} add 9060 setfib 1 ip from 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 to any in recv ${int1_if} keep-state
${fwcmd} add 9070 allow ip from any to any via ${int1_if}

${fwcmd} pipe 1 config bw 20Mbit/s queue 60 gred 0.002/10/30/0.1
${fwcmd} queue 1 config pipe 1 queue 60 mask src-ip 0xffffffff gred 0.002/10/30/0.1
${fwcmd} pipe 2 config bw 20Mbit/s queue 60 gred 0.002/10/30/0.1
${fwcmd} queue 2 config pipe 2 queue 60 mask dst-ip 0xffffffff gred 0.002/10/30/0.1

${fwcmd} nat 1 config log if ${inet_if} deny_in same_ports unreg_only
${fwcmd} nat 2 config log if ${inet2_if} deny_in same_ports unreg_only

${fwcmd} add 10005 nat 1 all from me to any out xmit ${inet_if}
# дает инет самой фре... без этого нету инету на фре
${fwcmd} add 10010 nat 1 all from 172.16.0.0/28 to any out recv ${int3_if} xmit ${inet_if}
${fwcmd} add 10020 nat 1 all from 172.16.0.16/29 to any out recv ng[012] xmit ${inet_if}
${fwcmd} add 10030 nat 1 all from 192.168.0.0/24 to any out recv ${int1_if} xmit ${inet_if}
${fwcmd} add 10040 nat 2 all from 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 to any out recv ${int1_if} xmit ${inet2_if}
${fwcmd} add 10005 nat 2 all from me to any out xmit ${inet2_if}
# с этим правилом и без него фря получает доступ в интернет только при убранном deny_in со 2го нат-а

${fwcmd} add 10050 nat 1 all from any to ${inet_ip} in recv ${inet_if}
${fwcmd} add 10060 queue 1 ip from any to any out xmit ${inet2_if}
${fwcmd} add 10070 nat 2 all from any to ${inet2_ip} in recv ${inet2_if}
${fwcmd} add 10080 queue 2 ip from any to any in recv ${inet2_if}

${fwcmd} add allow all from any to any
${fwcmd} add deny all from any to any


ограничиваю скорость только вход/выход на 2й нат

setfib -F 1 ping www.ru
не работает!
setfib -F 0 ping www.ru
всё ок!
из "вне" 5.6.7.9 не пингуется. как сделать доступ на 2й ip ?

${fwcmd} nat 2 config log if ${inet2_if} deny_in same_ports unreg_only
= deny_in убираю и получаю:
setfib -F 1 ping www.ru
всё ок!
setfib -F 0 ping www.ru
всё ок!
из "вне" 5.6.7.9 не пингуется. как сделать доступ на 2й ip ?


П.С. перерыл тонну документаций/статей готовых, не могу разобраться.
П.П.С. 1й раз настраиваю 2 канала (в планах сделать авто переключение при потере сигналов... скриптом по пингу), если есть метод лучше ткните.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от ipmanyak (ok) on 16-Сен-13, 14:59 
Увы фрю не юзаю. Могу лишь дать ссылку на хорошую статью Сергея Супрунова в журнале Системный Администратор, возможно поможет тебе в твоей проблеме.

"Два канала – роскошь? Резервирование и балансировка трафика во FreeBSD"
http://samag.ru/archive/article/765
Там же в конце скрипт переключения на другой канал по пингу.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от truf (ok) on 16-Сен-13, 17:33 
> Увы фрю не юзаю. Могу лишь дать ссылку на хорошую статью Сергея
> Супрунова в журнале Системный Администратор, возможно поможет тебе в твоей проблеме.
> "Два канала – роскошь? Резервирование и балансировка трафика во FreeBSD"
> http://samag.ru/archive/article/765
> Там же в конце скрипт переключения на другой канал по пингу.

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от truf (ok) on 16-Сен-13, 20:13 
может быть посоветуете другой какой форум где есть знатоки ?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от Jordan email(ok) on 17-Сен-13, 11:25 
Думаю проблемы с тем что 5.6.7.9 не пингуется из вне, связана с NAT. скорей всего 2-й 1.2.3.5 IP тоже не должен пинговаться.
проблема в этом:
${fwcmd} add 10050 nat 1 all from any to ${inet_ip} in recv ${inet_if}
${fwcmd} add 10070 nat 2 all from any to ${inet2_ip} in recv ${inet2_if}

если добавить
${fwcmd} add 10049 allow icmp from any to ${inet_ip} in recv ${inet_if}
${fwcmd} add 10069 allow icmp from any to ${inet2_ip} in recv ${inet2_if}
То внешние IP должны запинговаться.
К сожалению конфиг довольно запутан, и так на скидку нечего умного не подскажу.
Скажем так как бы я искал проблему.
Для начала выключить фаервол, и убрать все статические маршруты и Sfib.
Сначала включаем Sfib.
добавляем руками статику.
добавляем голый нат.
потом вся обвязка фаервола.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от truf (ok) on 17-Сен-13, 11:39 
>[оверквотинг удален]
> ${fwcmd} add 10069 allow icmp from any to ${inet2_ip} in recv ${inet2_if}
> То внешние IP должны запинговаться.
> К сожалению конфиг довольно запутан, и так на скидку нечего умного не
> подскажу.
> Скажем так как бы я искал проблему.
> Для начала выключить фаервол, и убрать все статические маршруты и Sfib.
> Сначала включаем Sfib.
> добавляем руками статику.
> добавляем голый нат.
> потом вся обвязка фаервола.

#                    allow INTERNET ip
${fwcmd} add allow ip from table\(3\) to ${inet_ip} in recv ${inet_if}
${fwcmd} add allow ip from ${inet_ip} to table\(3\) out xmit ${inet_if}
${fwcmd} add allow ip from table\(3\) to ${inet2_ip} in recv ${inet2_if}
${fwcmd} add allow ip from ${inet2_ip} to table\(3\) out xmit ${inet2_if}

открывают для этого доступ... для таблицы 3... для 1го канала всё ОК, а для 2го не ОК
я на эксперементальной машинке собрал эту конфигу, вырезав с нее ВСЁ лишнее... только нат, проблема ТА_ЖЕ

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от Jordan email(ok) on 17-Сен-13, 12:29 
>>[оверквотинг удален]
> вырезав с нее ВСЁ лишнее...
> только нат, проблема ТА_ЖЕ

Ну для чистоты эксперимента отключите нат :)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "ipfw nat 2 канала + маршрутизация + VLAN (нет доступа на 2й)"  +/
Сообщение от truf (ok) on 17-Сен-13, 12:36 
>>>[оверквотинг удален]
>> вырезав с нее ВСЁ лишнее...
>> только нат, проблема ТА_ЖЕ
> Ну для чистоты эксперимента отключите нат :)

ах я уже пробовал :) без него всё замечательно... пингуется... наверное нужно как то завернуть обратно трафик со 2го setf но как мозгу не хватает

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру