FreeBSD, Kern Nat, tablearg Проблема в работе правил.

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

FreeBSD, Kern Nat, tablearg Проблема в работе правил.

Непрочитанное сообщение InventoR » 2011-12-25 9:48:24

Собрал такой набор правил:

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

#!/bin/sh

fwcmd="/sbin/ipfw -q"

ipfw -f flush
ipfw -f pipe flush
ipfw -f queue flush
ipfw table  all flush

ipfw add 101 allow all from any to any via lo0
ipfw add 102 deny all from any to 127.0.0.0/8
ipfw add 103 deny all from 127.0.0.0/8 to any


ipfw nat 1 config if $exit_if same_ports log
ipfw add 200 nat 1  ip from 192.168.0.0/16 to any via $exit_if
ipfw add 210 nat 1  ip from any to me via $exit_if

ipfw add 300 allow all from 192.168.0.0/16 to 192.168.0.0/16


ipfw pipe 1000 config bw 1024Kbit/s mask src-ip 0xffffffff
ipfw pipe 1001 config bw 1024Kbit/s mask dst-ip 0xffffffff


ipfw table 1 add 192.168.210.101 1

ipfw add 1000 pipe tablearg  all from "table(1)" to any in via $intofffice
ipfw add 1001 pipe tablearg  all from any to "table(1)" out via $intofffice
проблема в том что после добавления:

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

ipfw add 1000 pipe tablearg  all from "table(1)" to any in via $intofffice
ipfw add 1001 pipe tablearg  all from any to "table(1)" out via $intofffice
хост 192.168.210.101 в обще перестает работать и связь с внешним миром пропадает.

Список загруженных правил:

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

# ipfw show
00101    0      0 allow ip from any to any via lo0
00102    0      0 deny ip from any to 127.0.0.0/8
00103    0      0 deny ip from 127.0.0.0/8 to any
00200    0      0 nat 1 log  ip from 192.168.0.0/16 to any via $exit_if
00210    0      0 nat 1 log  ip from any to me via $exit_if
00300   68   5760 allow ip from 192.168.0.0/16 to 192.168.0.0/16
01000    1     60 pipe tablearg  ip from table(1) to any in via $officevlan
01001    0      0 pipe tablearg 0 ip from any to table(1) out via $officevlan
65535 2829 514336 allow ip from any to any
#

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

net.inet.ip.fw.one_pass: 1
Такое чувство что после включения tablearg парестает работать Nat для этого хоста
ну вот и сказочке конец, кто слушал, тот молодец.

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

Barmaglot
рядовой
Сообщения: 10
Зарегистрирован: 2012-01-05 20:20:00

Re: FreeBSD, Kern Nat, tablearg Проблема в работе правил.

Непрочитанное сообщение Barmaglot » 2012-01-05 20:35:37

Так у тебя в таблице 1, а номера пайпов 1000 и 1001.

Аватара пользователя
Dzirt
рядовой
Сообщения: 35
Зарегистрирован: 2008-12-05 12:26:54
Откуда: Днепропетровск
Контактная информация:

Re: FreeBSD, Kern Nat, tablearg Проблема в работе правил.

Непрочитанное сообщение Dzirt » 2012-01-09 23:58:50

Предлагаю попробовать вот так:

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

#!/bin/sh

fwcmd="/sbin/ipfw -q"

ipfw -f flush
ipfw -f pipe flush
ipfw -f queue flush
ipfw table  all flush

ipfw table 1 add 192.168.210.101 1

ipfw add 101 allow all from any to any via lo0

##PIPE
ipfw pipe 1 config bw 1024Kbit/s mask src-ip 0xffffffff
ipfw pipe 11 config bw 1024Kbit/s mask dst-ip 0xffffffff

ipfw add 200 pipe 1 tablearg  all from "table(1)" to any in via $intofffice
ipfw add 210 pipe 11 tablearg  all from any to "table(1)" out via $intofffice

##NAT
$ipfw add divert natd ip from any to any via $exit_if

## ALLOW ALL
$ipfw add allow all from any to any
http://modernworld.com.ua
IT - решения для бизнеса.