Проблема вот в чём - есть локальная сеть 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.firewallipfw='/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
ну так, что - никто ничё не знает?????
Неужели в форуме некому ответить?
>ну так, что - никто ничё не знает?????
>Неужели в форуме некому ответить?как я понял и клиенты и сервер с БД находятся в одной сети
такда шлюз и его настройки должны быть не причем
>>ну так, что - никто ничё не знает?????
>>Неужели в форуме некому ответить?
>
>как я понял и клиенты и сервер с БД находятся в одной
>сети
>такда шлюз и его настройки должны быть не причем
Клиенты коннектяться на локальный сервер ЧЕРЕЗ МОЙ ШЛЮЗ
У них прописан наш реальный адрес - внешний адрес шлюза
>>>ну так, что - никто ничё не знает?????
>>>Неужели в форуме некому ответить?
>>
>>как я понял и клиенты и сервер с БД находятся в одной
>>сети
>>такда шлюз и его настройки должны быть не причем
>
>
>Клиенты коннектяться на локальный сервер ЧЕРЕЗ МОЙ ШЛЮЗ
да, но это клиенты из инета и как я понял они работают нормально
но клиенты из локалки не могут достучаться до сервака в этой же самой локальной сети?
если так - то здесь шлюз не при чем
${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
А воообще лучше не городить огород
а прописать у клиентов (твоей сетки) реальный адрес сервера
а то упадет твой шлюз и что местные клиенты с сервером работать не будут?
>можно и так
>если у клиентов в качестве сервера прописан адрес 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
>да, но это клиенты из инета и как я понял они работают
>нормально
>но клиенты из локалки не могут достучаться до сервака в этой же
>самой локальной сети?
>если так - то здесь шлюз не при чемКак не при чём???
клиенты из локалки тоже коннектятся к локальному серваку через шлюз!!!
>
>>да, но это клиенты из инета и как я понял они работают
>>нормально
>>но клиенты из локалки не могут достучаться до сервака в этой же
>>самой локальной сети?
>>если так - то здесь шлюз не при чем
>
>Как не при чём???
>клиенты из локалки тоже коннектятся к локальному серваку через шлюз!!!ну тада конечно причем
в качестве адреса сервака у локальных клиентов лучше прописать тот адрес на котором диверт не сидит (хотя тут стоит внимательно посмотреть на фаервол)
я как понимаю так все хитро не случайно (видимо на фре стоит какой то учет обращений к БД), но думаю лучше из локалки ходить на локалку напрямую а не через шлюз
Однако, топологию сети изложи четко>Проблема вот в чём - есть локальная сеть 172.18.0.0/16, в локалке WIN
>сервер 172.18.0.100, выход в инет через шлюз FreeBSD - две
>сетевухи: внутренняя 172.18.0.254, внешняя: 192.168.0.1 и её алиас 194.1.1.11(реальный IP). NAT192.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
>Однако, топологию сети изложи четко
>
>>Проблема вот в чём - есть локальная сеть 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..????
Тогда уже писали,
непонятно зачем внутренних так пускать
лучше напрямую на сервер, DNS (и WINS) этому в помощь
>Тогда уже писали,что писали???
если так
${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 (чтобы коннектились и из других офисов)- я не могу код в программе менять, не я её писал!
Тогда попробуй так
1 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natd ( чтобы не запутаться )2 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natd
потом forward пакетов dst_port 4040 на 194.1.1.11
>Тогда попробуй так
>1 вариант. загнать внутренних клиентов на 192.168.0.1 через второй natdа как запустить второй нат?
и кто тогда будет коннектиться через первый?
>>Тогда попробуй так
>>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