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

Исходное сообщение
"redirect_port во FreeBSD"

Отправлено mayd , 26-Ноя-04 11:12 
Проблема вот в чём - есть локальная сеть 172.18.0.0/16, в локалке WIN сервер  172.18.0.100, выход в инет через шлюз FreeBSD - две сетевухи: внутренняя 172.18.0.254, внешняя: 192.168.0.1 и её алиас 194.1.1.11(реальный IP). NAT работает через этот алиас. Есть некая клиент-серверная БД, серверная часть стоит на WIN сервере(прослушивает порт 4040). Удалённые клиенты коннектятся на неё через инет, в качестве сервера у них указан адрес шлюза - 194.1.1.11(реальный IP только у него). Чтобы запросы доходили до WIN сервера, я включаю перенаправление портов:
-redirect_port tcp 172.18.0.100:4040 4040 и оно работает - извне запросы проходят без проблем. Но клиенты из моей локалки не коннектятся. В чём может быть проблема? Кто подскажет? Может это из-за алиаса?

rc.conf

hostname="gw.domain.local"

ifconfig_vr0="inet 172.18.0.254  netmask 255.255.0.0"

ifconfig_ste0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_ste0_alias0="inet 194.1.1.11 netmask 255.255.255.255"

defaultrouter="192.168.0.254"

kern_securelevel_enable="NO"
linux_enable="YES"

firewall_enable="YES"
firewall_script="/usr/local/fwall/rc.firewall"

natd_enable="YES"
natd_flags="-u -redirect_port tcp 172.18.0.100:4040 4040"
natd_interface="194.1.1.11"

gateway_enable="YES"

rc.firewall

ipfw='/sbin/ipfw -q'

${ipfw} -f flush

${ipfw} add divert natd all from any to any via 194.1.1.11

${ipfw} add 65000 pass all from any to any

${ipfw} add 270 allow ip from any to any via lo

${ipfw} add 300 fwd 172.18.0.100, 4040 tcp from 172.18.0.0/16 to any 4040 via vr0



Содержание

Сообщения в этом обсуждении
"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 12:25 
ну так, что - никто ничё не знает?????
Неужели в форуме некому ответить?

"redirect_port во FreeBSD"
Отправлено Sergey_SpB , 26-Ноя-04 12:39 
>ну так, что - никто ничё не знает?????
>Неужели в форуме некому ответить?

как я понял и клиенты и сервер с БД находятся в одной сети
такда шлюз и его настройки должны быть не причем


"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 12:40 
>>ну так, что - никто ничё не знает?????
>>Неужели в форуме некому ответить?
>
>как я понял и клиенты и сервер с БД находятся в одной
>сети
>такда шлюз и его настройки должны быть не причем


Клиенты коннектяться на локальный сервер ЧЕРЕЗ МОЙ ШЛЮЗ
У них прописан наш реальный адрес - внешний адрес шлюза


"redirect_port во FreeBSD"
Отправлено Sergey_SpB , 26-Ноя-04 12:43 
>>>ну так, что - никто ничё не знает?????
>>>Неужели в форуме некому ответить?
>>
>>как я понял и клиенты и сервер с БД находятся в одной
>>сети
>>такда шлюз и его настройки должны быть не причем
>
>
>Клиенты коннектяться на локальный сервер ЧЕРЕЗ МОЙ ШЛЮЗ


да, но это клиенты из инета и как я понял они работают нормально
но клиенты из локалки не могут достучаться до сервака в этой же самой локальной сети?
если так - то здесь шлюз не при чем


"redirect_port во FreeBSD"
Отправлено alk , 26-Ноя-04 12:54 
${ipfw} -f flush

${ipfw} add 300 fwd 172.18.0.100, 4040 tcp from 172.18.0.0/16 to any 4040 via vr0

${ipfw} add divert natd all from any to any via 194.1.1.11

${ipfw} add 65000 pass all from any to any

${ipfw} add 270 allow ip from any to any via lo

можно и так
если у клиентов в качестве сервера прописан адрес 194.1.1.11 то

${ipfw} -f flush

${ipfw} add 300 fwd 172.18.0.100, 4040 tcp from 172.18.0.0/16 to 194.1.1.11 4040 via vr0

${ipfw} add divert natd all from any to any via 194.1.1.11

${ipfw} add 65000 pass all from any to any

${ipfw} add 270 allow ip from any to any via lo

А воообще лучше не городить огород
а прописать у клиентов (твоей сетки) реальный адрес сервера
а то упадет твой шлюз и что местные клиенты с сервером работать не будут?


"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 13:04 
>можно и так
>если у клиентов в качестве сервера прописан адрес 194.1.1.11 то
>
>${ipfw} -f flush
>
>${ipfw} add 300 fwd 172.18.0.100, 4040 tcp from 172.18.0.0/16 to 194.1.1.11 4040
>via vr0
>
>${ipfw} add divert natd all from any to any via 194.1.1.11
>
>${ipfw} add 65000 pass all from any to any
>
>${ipfw} add 270 allow ip from any to any via lo
>
>А воообще лучше не городить огород
>а прописать у клиентов (твоей сетки) реальный адрес сервера
>а то упадет твой шлюз и что местные клиенты с сервером работать
>не будут?

токо без обид - видно вы чё-то не допонимаете:
через реальный адрес 194,1,1,11 работает токо одна клиент-серверная прога,
а всё остальное к этому локальному серверу коннектится через его реальный адрес - 172,18,0,100


"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 12:55 

>да, но это клиенты из инета и как я понял они работают
>нормально
>но клиенты из локалки не могут достучаться до сервака в этой же
>самой локальной сети?
>если так - то здесь шлюз не при чем

Как не при чём???
клиенты из локалки тоже коннектятся к локальному серваку через шлюз!!!



"redirect_port во FreeBSD"
Отправлено Sergey_SpB , 26-Ноя-04 13:42 
>
>>да, но это клиенты из инета и как я понял они работают
>>нормально
>>но клиенты из локалки не могут достучаться до сервака в этой же
>>самой локальной сети?
>>если так - то здесь шлюз не при чем
>
>Как не при чём???
>клиенты из локалки тоже коннектятся к локальному серваку через шлюз!!!

ну тада конечно причем
в качестве адреса сервака у локальных клиентов лучше прописать тот адрес на котором диверт не сидит (хотя тут стоит внимательно посмотреть на фаервол)
я как понимаю так все хитро не случайно (видимо на фре стоит какой то учет обращений к БД), но думаю лучше из локалки ходить на локалку напрямую а не через шлюз


"redirect_port во FreeBSD"
Отправлено Anastas , 26-Ноя-04 12:59 
Однако, топологию сети изложи четко  

>Проблема вот в чём - есть локальная сеть 172.18.0.0/16, в локалке WIN
>сервер  172.18.0.100, выход в инет через шлюз FreeBSD - две
>сетевухи: внутренняя 172.18.0.254, внешняя: 192.168.0.1 и её алиас 194.1.1.11(реальный IP). NAT

192.168.0.1 - внешняя ??? может не совсем ?

>работает через этот алиас. Есть некая клиент-серверная БД, серверная часть стоит
>на WIN сервере(прослушивает порт 4040). Удалённые клиенты коннектятся на неё через
>инет, в качестве сервера у них указан адрес шлюза - 194.1.1.11(реальный
>IP только у него). Чтобы запросы доходили до WIN сервера, я
>включаю перенаправление портов:
>-redirect_port tcp 172.18.0.100:4040 4040 и оно работает - извне запросы проходят без
>проблем. Но клиенты из моей локалки не коннектятся. В чём может
>быть проблема? Кто подскажет? Может это из-за алиаса?

может они должны на 192,168,0,1 коннектиться ? тогда и NAT туда ставь

>
>rc.conf
>
>hostname="gw.domain.local"
>
>ifconfig_vr0="inet 172.18.0.254  netmask 255.255.0.0"
>
>ifconfig_ste0="inet 192.168.0.1 netmask 255.255.255.0"
>ifconfig_ste0_alias0="inet 194.1.1.11 netmask 255.255.255.255"
>
>defaultrouter="192.168.0.254"
>
>kern_securelevel_enable="NO"
>linux_enable="YES"
>
>firewall_enable="YES"
>firewall_script="/usr/local/fwall/rc.firewall"
>
>natd_enable="YES"
>natd_flags="-u -redirect_port tcp 172.18.0.100:4040 4040"
>natd_interface="194.1.1.11"
>
>gateway_enable="YES"
>
>rc.firewall
>
>ipfw='/sbin/ipfw -q'
>
>${ipfw} -f flush
>
>${ipfw} add divert natd all from any to any via 194.1.1.11
>
>${ipfw} add 65000 pass all from any to any
>
>${ipfw} add 270 allow ip from any to any via lo
>
>${ipfw} add 300 fwd 172.18.0.100, 4040 tcp from 172.18.0.0/16 to any 4040
>via vr0



"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 13:07 
>Однако, топологию сети изложи четко
>
>>Проблема вот в чём - есть локальная сеть 172.18.0.0/16, в локалке WIN
>>сервер  172.18.0.100, выход в инет через шлюз FreeBSD - две
>>сетевухи: внутренняя 172.18.0.254, внешняя: 192.168.0.1 и её алиас 194.1.1.11(реальный IP). >
>192.168.0.1 - внешняя ??? может не совсем ?
>

>
>может они должны на 192,168,0,1 коннектиться ? тогда и NAT туда ставь


192.168.0.1 - ВНЕШНИЙ адрес - ТАКОЙ потому, что адрес шлюза, ВЫДАННЫЙ ПРОВАЙДЕРОМ - 192.168.0.254!!!
и как я НАТ запущу через 192..????


"redirect_port во FreeBSD"
Отправлено Anastas , 26-Ноя-04 13:39 
Тогда уже писали,
непонятно зачем внутренних так пускать
лучше напрямую на сервер, DNS (и WINS) этому в помощь

"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 14:00 
>Тогда уже писали,

что писали???
если так
${ipfw} add 300 fwd 172.18.0.100, 4040 tcp from 172.18.0.0/16 to 194.1.1.11, 4040 via vr0
то это тоже не работает

>непонятно зачем внутренних так пускать
>лучше напрямую на сервер, DNS (и WINS) этому в помощь

я не могу НАПРЯМУЮ - в программу зашитит наш внешний IP (чтобы коннектились и из других офисов)- я не могу код в программе менять, не я её писал!


"redirect_port во FreeBSD"
Отправлено alk , 26-Ноя-04 14:16 
Тогда попробуй так
1 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natd ( чтобы не запутаться )

2 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natd
потом forward пакетов dst_port 4040 на 194.1.1.11


"redirect_port во FreeBSD"
Отправлено mayd , 26-Ноя-04 15:07 
>Тогда попробуй так
>1 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natd

а как запустить второй нат?
и кто тогда будет коннектиться через первый?


"redirect_port во FreeBSD"
Отправлено alk , 26-Ноя-04 15:36 
>>Тогда попробуй так
>>1 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natd
>
>а как запустить второй нат?
>и кто тогда будет коннектиться через первый?

в mane очень четко написано
natd -a 192.168.0.1 -p 8778 ( или какой хочешь )
потом
divert 8778 ip from my_net to any 4040 via vr0
divert 877 ip from any to 192.168.0.1

или 2 вариант
divert 8778 ip from my_net to any 4040 via vr0
fwd 194.1.1.11,4040 ip from 192.168.0.1 to any 4040
divert 877 ip from any to 192.168.0.1