Подробное руководство по ipfw nat

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-09-01 23:41:06

Занести в таблицу диапазон IP — можно только маской, без вариантотв?

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

bwdude
рядовой
Сообщения: 14
Зарегистрирован: 2009-09-01 11:19:26
Откуда: Москва
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение bwdude » 2011-09-05 15:39:06

Удалось решить http://forum.lissyara.su/viewtopic.php? ... 25#p189254
никак не получается сотворить следующее.
имеется: локальная сеть - шлюз - инет
на шлюзе проброс портов через redirect_port tcp 10.0.0.200:80 out_ip:80
не получается сделать так чтобы клиенты из локальной сети при вводе в браузере out_ip попадали на 10.0.0.200, чего к сожалению не происходит.
+ порт 7777 и еще некоторые не web
честно говоря что-то пока не могу придумать как сделать.
там же на шлюзе стоит squid и статистика пользователей на 10.0.0.1:80
Не то чтобы мне удалось решить это только что, но поступил вопрос в личку, решил отписаться. На случай если будет интересно кому-то:
на самом деле решил что напрягать ipfw для 80 порта - не самый удачный вариант.
поставил на шлюзе nginx - он у меня слушает 80 порт и уже nginx распределяет кого куда. В зависимости какой адрес домена набрал, на такой сервер и отправляйся.
у меня сейчас просто на одном внешнем IP три доменных имени висят, которые три разных машины обслуживает, так вот nginx видит какое набрали доменное имя и уже проксирует (именно проксирует, а не маскарадинг или редирект) на нужную машину.

если речь идет о web, то решается через nginx ооочень красиво на мой взгляд.
если не web (а например rdp на 10.0.0.15), то примерно так (net.inet.ip.fw.one_pass должно быть в 0 чтобы пакеты проходили не один раз через фаервол):

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

${FwCMD} nat 123 config ip ${IpOut} redirect_port tcp 10.0.0.15:3389 ${IpOut}:3389 
${FwCMD} add nat 123 ip from any to ${IpOut} 3389
${FwCMD} add nat 123 tcp from 10.0.0.15 3389 to any
${FwCMD} nat 10 config ip ${IpOut} same_ports
${FwCMD} add nat 10 all from 10.0.0.0/24 to 10.0.0.15
немного поясню как работает:
первый проход пакета
раз пакет для IpOut:3389 то мы его засовываем в правило nat 123 и делаем для 10.0.0.15:3389
второй проход пакета
раз пакет из 10.0.0.0/24, то отправляется на правило nat 10 где он маскируется под IpOut
такой пакет придет на 10.0.0.15:3389 от IpOut, ответный пакет будет размаскирован в обоих правилах

Эту фишку можно использовать и для внешних адресов. чтобы получатель получал всё от имени шлюза

miragh
рядовой
Сообщения: 14
Зарегистрирован: 2007-10-24 14:37:12
Откуда: С-Пб

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение miragh » 2011-09-05 18:47:50

bwdude писал(а):Удалось решить
Благодарю за оперативный ответ. Правильно ли я понял, что в таком случае придется создавать по дополнительному экземпляру nat для каждого redirect (port/addr)?

Рискну спросить у знатоков по возникшим "неприятностям" в ходе настройки и эксплуатации (адреса и имена приведены измененными, любое совпадение случайно).
Сервер, два интерфейса, igb0 к провайдеру, igb1 в локальную сеть.

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

uname -a
FreeBSD serv.example.com 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Mar 31 22:52:39 MSD 2011     adm@serv.example.com:/usr/obj/usr/src/sys/kern64  amd64
Ядро пересобрано с опциями (с запасом на будущее)

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

cat /usr/src/sys/amd64/conf/kern64
...
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=50
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         IPFIREWALL_NAT
options         LIBALIAS
options         ROUTETABLES=2
options         DUMMYNET
options         HZ="1000"
...

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

cat /etc/sysctl.conf
net.inet.ip.fw.one_pass=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1

net.inet.ip.fastforwarding=1
net.inet.tcp.maxtcptw=40960

net.inet.icmp.drop_redirect=1
net.inet.icmp.maskrepl=0
net.inet.icmp.icmplim=100
kern.ipc.nmbjumbop=192000
kern.ipc.nmbclusters=229376
kern.ipc.maxsockets=204800
net.inet.tcp.maxtcptw=163840

kern.maxfiles=204800

kern.ipc.somaxconn=4096
net.inet.ip.intr_queue_maxlen=4096
net.inet.tcp.drop_synfin=1

net.inet.tcp.nolocaltimewait=1
net.inet.ip.portrange.randomized=0

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

cat /etc/rc.conf
gateway_enable="YES"
ifconfig_igb0="inet 1.2.3.214 netmask 255.255.255.252 -rxcsum -txcsum -tso "
ifconfig_igb0_alias0="inet 1.2.4.2 netmask 255.255.255.248"
ifconfig_igb0_alias1="inet 1.2.5.149 netmask 255.255.255.240"
ifconfig_igb0_alias2="inet 1.2.5.151 netmask 255.255.255.240"
ifconfig_igb1="inet 192.168.0.1 netmask 255.255.255.0"
defaultrouter="1.2.3.213"
hostname="serv.example.com"
firewall_enable="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
firewall_script="/etc/rc.ipfw"
переменная $client1 описывает клиента в локальной сети (роутер, за ним у клиента есть свой сервер и несколько компьютеров). Задача - дать клиенту public ip (ifconfig_igb0_alias2 = $rdrct1).

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

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

fw="/sbin/ipfw "
if_out="igb0"
ip_out="1.2.3.214"
ip_out0="1.2.4.2"
ip_out1="1.2.5.149"
if_in="igb1"
ip_in="192.168.0.1"
admin="3.2.1.89"
client1="192.168.0.11"
rdrct1="1.2.5.151"
rdrct238="192.168.0.56"

$fw -f flush
$fw -f pipe flush
$fw -f queue flush

$fw add 100 allow ip from any to any via lo0
$fw add 200 deny ip from any to 127.0.0.0/8
$fw add 300 deny ip from 127.0.0.0/8 to any

$fw add 1040 allow ip from any to any via $if_in
$fw add 1041 allow tcp from $admin to $ip_out 22 in recv $if_out keep-state

$fw add 1050 deny ip from any to 192.168.0.0/16 in recv $if_out
$fw add 1060 deny ip from 192.168.0.0/16 to any in recv $if_out
$fw add 1070 deny ip from any to 172.16.0.0/12 in recv $if_out
$fw add 1080 deny ip from 172.16.0.0/12 to any in recv $if_out
$fw add 1090 deny ip from any to 10.0.0.0/8 in recv $if_out
$fw add 10100 deny ip from 10.0.0.0/8 to any in recv $if_out
$fw add 10110 deny ip from any to 169.254.0.0/16 in recv $if_out
$fw add 10120 deny ip from 169.254.0.0/16 to any in recv $if_out

$fw pipe 1 config bw 2Mbit/s queue 60 gred 0.002/10/30/0.1
$fw queue 1 config pipe 1 queue 60 mask src-ip 0xffffffff gred 0.002/10/30/0.1

$fw pipe 2 config bw 2Mbit/s queue 60 gred 0.002/10/30/0.1
$fw queue 2 config pipe 2 queue 60 mask dst-ip 0xffffffff gred 0.002/10/30/0.1

$fw nat 1 config log if $if_out reset same_ports deny_in redirect_port tcp $rdrct238:3389 3389

$fw nat 2 config log same_ports redirect_addr $client1 $rdrct1

$fw add 10230 skipto 10290 ip from $client1 to any out xmit $if_out
$fw add 10240 skipto 10310 ip from any to $rdrct1 in recv $if_out

$fw add 10250 queue 1 ip from any to any out xmit $if_out
$fw add 10260 nat 1 ip from any to any via $if_out
$fw add 10270 queue 2 ip from any to any in recv $if_out

$fw add 10280 allow all from any to any

$fw add 10290 queue 1 ip from any to any out xmit $if_out
$fw add 10300 nat 2 ip from $client1 to any out xmit $if_out
$fw add 10310 nat 2 ip from any to $rdrct1 in recv $if_out
$fw add 10320 queue 2 ip from any to any in recv $if_out

$fw add 10330 allow all from any to any

$fw add 65534 deny all from any to any
(собственно, "Пример 2" из статьи)
Клиент на DNS-сервере (в панели управления стороннего хостера) указывает "A" запись "client1.example01.com" на ip $rdrct1, пробрасывает на своем роутере нужные порты. Пробует перейти из своей сети (за своим роутером с адресом $clien1) по адресу http: //client1.example01.com и видит... кукиш. "Снаружи" все хорошо.
Вопрос: поможет только еще один экземпляр nat? Может, есть более "изящное" решение? Таких редиректов будет штук 20-30, соответственно *2 экземпляров nat?
При переагрузке очень странное поведение шлюза - сначала есть интернет, минуты через 3 пропадает и не появляется вплоть до /etc/rc.d/ipfw restart
Так же заметил неприятность - пропадают пакеты при ping на ресурсы в Internet из локальной сети и шлюза. Не очень много, из 1000 теряю 4-15, но IMHO это не есть правильно. При включении торрентов на другом компьютере за этим шлюзом число потерь пактов возрастает в 2-3 раза.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-09-05 19:06:55

bwdude писал(а):Удалось решить http://forum.lissyara.su/viewtopic.php? ... 25#p189254
...
поставил на шлюзе nginx - он у меня слушает 80 порт и уже nginx распределяет кого куда. В зависимости какой адрес домена набрал, на такой сервер и отправляйся.
у меня сейчас просто на одном внешнем IP три доменных имени висят, которые три разных машины обслуживает, так вот nginx видит какое набрали доменное имя и уже проксирует (именно проксирует, а не маскарадинг или редирект) на нужную машину.
...
конфиг нгиникса выложьте
мне будет очень приятно
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

bwdude
рядовой
Сообщения: 14
Зарегистрирован: 2009-09-01 11:19:26
Откуда: Москва
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение bwdude » 2011-09-05 19:09:24

miragh писал(а):
bwdude писал(а):Удалось решить
Благодарю за оперативный ответ. Правильно ли я понял, что в таком случае придется создавать по дополнительному экземпляру nat для каждого redirect (port/addr)?
если вы говорите про правила nat, то нет. не обязательно. можно всё в одном правиле.
я использую разные когда мне нужно логически их разделить

bwdude
рядовой
Сообщения: 14
Зарегистрирован: 2009-09-01 11:19:26
Откуда: Москва
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение bwdude » 2011-09-05 19:30:08

vadim64 писал(а):
bwdude писал(а):Удалось решить http://forum.lissyara.su/viewtopic.php? ... 25#p189254
...
поставил на шлюзе nginx - он у меня слушает 80 порт и уже nginx распределяет кого куда. В зависимости какой адрес
...
конфиг нгиникса выложьте
мне будет очень приятно
выкладываю пару секций server из раздела http (остальное по аналогии):

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

    server {
        listen       1.2.3.4;
        server_name  corporate.example.com autoconfig.example.com;

        location / {
                proxy_pass              http://192.168.1.7;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
        }
        location /webcam/ {
                proxy_pass              http://192.168.1.30/;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
                auth_basic              "enter support password";
                auth_basic_user_file    ngpasswd;
        }

    server {
       listen       1.2.3.4;
       server_name  webportal.example.com;
       location / {
                proxy_pass              http://192.168.1.9/;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_read_timeout 3600;
       }
    }
    server {
       listen       1.2.3.4;
       server_name  help.example.com;

       location / {
                proxy_pass              http://192.168.1.7/wiki/;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
       }
       location /wiki/ {
                proxy_pass              http://192.168.1.7/wiki/;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
       }
    }
    server {
       listen       1.2.3.4;
       server_name  mail.example.com;

       location / {
                proxy_pass              http://192.168.1.4/;
                proxy_set_header  Host       $host;
                proxy_set_header  X-Real-IP  $remote_addr;
       }
    }

Правда мне кажется что это немного оффтоп, но да ладно. Действуем по принципу Генри Форда - где задал вопрос, там и получил ответ.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-09-05 19:52:14

а где кусок про рдп?
не зажимаем! выкладываем!
давно себе такое хочу, лень доки читать и думать
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

bwdude
рядовой
Сообщения: 14
Зарегистрирован: 2009-09-01 11:19:26
Откуда: Москва
Контактная информация:

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение bwdude » 2011-09-05 19:56:34

vadim64 писал(а):а где кусок про рдп?
не зажимаем! выкладываем!
давно себе такое хочу, лень доки читать и думать
рдп делается через ipfw
просто проброс. читай выше
уже написал

nginx только для web

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-09-05 20:09:32

ну нгиникс с модулями ещё и почту пробрасывает
я то думал кто то рдп накрутил ещё туда
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

miragh
рядовой
Сообщения: 14
Зарегистрирован: 2007-10-24 14:37:12
Откуда: С-Пб

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение miragh » 2011-09-06 8:35:38

bwdude писал(а):если вы говорите про правила nat, то нет. не обязательно. можно всё в одном правиле.
я использую разные когда мне нужно логически их разделить
С этого места можно поподробней (для меня было очевидно что решение с nginx касается исключительно http)? Есть понимание почему пакеты не идут к клиенту, а вот как сделать так чтоб проходили - пока не хватает знаний.

miragh
рядовой
Сообщения: 14
Зарегистрирован: 2007-10-24 14:37:12
Откуда: С-Пб

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение miragh » 2011-09-07 15:22:27

Господа, неужели никто не подскажет выход из сложившейся ситуации? Взываю к вам =)

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-09-07 17:54:27

bwdude выше описал, как он решил этот вопрос
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

miragh
рядовой
Сообщения: 14
Зарегистрирован: 2007-10-24 14:37:12
Откуда: С-Пб

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение miragh » 2011-09-07 19:06:00

vadim64 писал(а):bwdude выше описал, как он решил этот вопрос
ПК +1 в Вашу пользу.
По теме:
Камрад bwdude описал redirect_port, обязательно попробую когда возникнет такая проблема. Если не ошибаюсь, с redirect_addr другая ситуация, т.к. перенаправляется весь трафик.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-09-07 20:29:07

я не совсем вас понимаю
bwdude описал распор из двух натов при one_pass=0, который позволяет типа проксировать на машину в локалку запросы, идущие из локалки для порта на внешнем интерфейсе роутера
что именно вы хотите?
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

mr.yaky
рядовой
Сообщения: 12
Зарегистрирован: 2010-07-25 19:12:16

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение mr.yaky » 2011-11-28 16:21:05

Господа знатоки подскажите пожалуйста по следующему вопросу:

благополучно работал сервер на FreeBSD 8.1 - выступая в качестве рутера-шейпера для разных внутренних серых подстей
позже нужно было добавить еще одну vlan-подсеть с использованием статического ната - IPFW_NAT redirect_addr
все сделал по статье http://www.lissyara.su/articles/freebsd ... #example_2

внешний интерфейс bce0 :
198.51.100.242/30 -tso
alias 203.0.113.19/32

внутренние интерфейсы vlan2, vlan172
192.0.2.0/24 - vlan2
192.0.172.0/29 vlan172

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

00300 3706180 4580006588 queue 2 ip from not 192.0.2.0/24 to 192.0.2.0/24 out
00400 2989370  975558073 queue 21 ip from 192.0.2.0/24 to not me in
00500 1250422 1172758479 queue 3 ip from not 192.0.172.0/29 to 192.0.172.0/29 out
00600 1094520  170108620 queue 31 ip from 192.0.172.0/29 to not me in
05000   14312    1295328 allow ip from any to any via lo0
05100 1125548  155012111 fwd 127.0.0.1,3128 tcp from 192.0.2.0/24 to not me dst-port 80 in recv vlan2
06000       1         56 deny ip from 192.168.0.0/16 to any in via bce0
06010     145      18952 deny ip from 172.16.0.0/12 to any in via bce0
06020       8        647 deny ip from 10.0.0.0/8 to any in via bce0
06030       0          0 deny ip from 127.0.0.0/8 to any in via bce0
06040       0          0 deny ip from 0.0.0.0/8 to any in via bce0
06050       0          0 deny ip from 169.254.0.0/16 to any in via bce0
06060       0          0 deny ip from 192.0.2.0/24 to any in via bce0
06070       0          0 deny ip from 204.152.64.0/23 to any in via bce0
06080       0          0 deny ip from 224.0.0.0/3 to any in via bce0
06100       0          0 deny ip from table(1) to any
06600     128      15063 deny ip from any to any frag in via bce0
06900       3        188 deny ip from 192.0.172.0/29 to 192.0.2.0/24 via vlan*
06930       0          0 deny ip from 192.0.2.0/24 to 192.0.172.0/29 via vlan*
08000    1248     261020 allow ip from any to any via gif0
08000   54553   19002412 allow esp from any to any
08000       0          0 allow ah from any to any
08000    1247     284460 allow ipencap from any to any
08000     946     212668 allow udp from any to me dst-port 500
08000    6728     501062 allow tcp from table(22) to me dst-port 22 in via bce0
08100       0          0 allow tcp from any to me dst-port 21 in via bce0
08110    1672     283264 allow tcp from any to any dst-port 50000-50100 in via bce0
08200     245      13543 allow tcp from any to me dst-port 80 in via bce0
08210     130       6776 allow tcp from any to me dst-port 443 in via bce0
08300       8        384 allow tcp from any to me dst-port 1723 in via bce0
08500       0          0 allow tcp from any to 192.0.2.110 dst-port 35300 in via bce0
09000    1606      78126 allow ip from 192.0.2.0/24 to me in recv vlan2
09010     442     114981 allow ip from me to 192.0.2.0/24 out xmit vlan2
09040       0          0 allow ip from 192.0.172.0/29 to me in recv vlan272
09050       0          0 allow ip from me to 192.0.172.0/29 out xmit vlan272
09100 1862056  818269566 allow ip from 192.0.2.0/24 to any in recv vlan2
09120 3693987 4561598260 allow ip from any to 192.0.2.0/24 out xmit vlan2
09130     207      51066 deny ip from any to any via vlan2
09170 1094359  169882309 allow ip from 192.0.172.2 to any in recv vlan272
09180 1248375 1170218355 allow ip from any to 192.0.172.2 out xmit vlan272
09190       0          0 deny ip from any to any via vlan272
09200 1094359  169882309 skipto 10300 ip from 192.0.172.2 to any out xmit bce0
09210 1250427 1172758922 skipto 10310 ip from any to 203.0.113.19 in recv bce0
10000 7762734 5763933566 nat 1 ip from any to any via bce0
10100       0          0 allow gre from any to any
10200 7715894 5759321780 allow ip from any to any
10300 1094359  169882309 nat 2 ip from 192.0.172.2 to any out xmit bce0
10310 1250427 1172758922 nat 2 ip from any to 203.0.113.19 in recv bce0
10400 2344782 1342640816 allow ip from any to any
65535     804     124991 deny ip from any to any

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

# ipfw nat show config
ipfw nat 2 config log same_ports redirect_addr 192.0.172.2 203.0.113.19
ipfw nat 1 config if bce0 log deny_in same_ports reset \
redirect_port tcp 192.0.2.110:35300 35300
таким оборазом прокидываю весь трафик, который приходит на 203.0.113.19 на 192.0.172.2

на внутренней машине 192.0.172.2 есть openvpn, также вне нашей сети а именно в DC на сервере тоже настроен openvpn - они связываются по белым ip между собой соотвественно получается,
что сервер из DC видит порт UDP 1194 на ip 203.0.113.19, также из вне ходят и натятся пинги на 203.0.113.19

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

$ ping -t4 203.0.113.19
PING 203.0.113.19 (203.0.113.19): 56 data bytes
64 bytes from 203.0.113.19: icmp_seq=0 ttl=249 time=4.836 ms
64 bytes from 203.0.113.19: icmp_seq=1 ttl=249 time=3.762 ms
64 bytes from 203.0.113.19: icmp_seq=2 ttl=249 time=4.532 ms
64 bytes from 203.0.113.19: icmp_seq=3 ttl=249 time=4.977 ms

--- 203.0.113.19 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.762/4.527/4.977/0.470 ms
смотрю tcpdump'ом на интерфейсе vlan172 все натится правильно при прохождении пингов.

пробую подключится по ssh на 203.0.113.19:

ssh 203.0.113.19 - глухо
telnet 203.0.113.19 22 - глухо

смотрю на сервере tcpdump'ом на интерфейсе vlan172 по TCP 22 - глухо

Проблема именно на вход на 203.0.113.19 , на выход с 192.0.172.2 все работает отлично - NAT есть - инет работает

такое впечатление, что не редиректятся TCP пакеты на вход.

Подскажите пожалуйста - уже все перепробовал - больше нет идей в чем проблема! :st:

Наперед спасибо.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-11-28 20:32:14

правила с натом 2 надо переместить выше правил с натом 1
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-11-28 20:33:07

либо переписать правило второго ната так, чтобы оно не захватывало адреса для второго ната
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

mr.yaky
рядовой
Сообщения: 12
Зарегистрирован: 2010-07-25 19:12:16

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение mr.yaky » 2011-11-29 17:04:03

А можно по подробней с примерами ?

Пробовал второй нат ставишь выше первого , сиптомы теже - кроме как теперь когда захожу telnet 203.0.113.19 22, а попадаю не на внутренний сервер, а на шлюз 198.51.100.242
различаю я их по версии openssh, но при этом когда пингую пингуется имено внутренний 192.0.172.0 вижу по ttl на внутреннем он 255, то есть из вне получается ttl 249 при пинге.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-11-29 21:00:06

покажите сам конфиг фаервола, я же не вижу что там у вас за опции ната
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

fik
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение fik » 2011-11-30 8:48:23

Доброго времени суток.
Подскажите как слепить такую схему: Имееться FreeBSD 8.2-RELEASE, имеються итерфейсы
vr0-внешняя ip статический
rl0-внутренняя
и tun0-USB модем 3G настроеный запускаеться, ip динамический.
нужно чтобы при потери инета на vr0 запускался USB модем 3G и при этом инетернет раздавал не всей сети а нескольким компьютерам.
ядро собрано с этими прараметрами
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_FORWARD
options IPDIVERT
options IPFIREWALL_NAT
options ROUTETABLES=2
options DUMMYNET
options HZ="1000"

fik
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-11-30 8:51:13

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение fik » 2011-11-30 8:53:33

Помогите слепить такую схему как выше описанно

mak_v_
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение mak_v_ » 2011-11-30 9:57:14

Написать скрипт, который будет проверять наличие\отсутствие, при отсутствии - дозваниваться и поднимать резрев, рестартовать фаервол с нужными вам правилами.

fik
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-11-30 8:51:13

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение fik » 2011-11-30 10:00:54

а можно пример скрипта, если не сложно конечно.

mak_v_
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение mak_v_ » 2011-11-30 10:08:00

Вот один из нагугленых

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

#!/bin/sh

#Загрузим флаг из файла по умолчанию - 0
CUR_CHANNEL=`cat CUR_CHANNEL`

# ping хоста
png=`ping -c 1 -i 1 PING_HOST | grep % | awk '{ print $7 };'`

case $png
   in
       100%)
        if [ "$CUR_CHANNEL" = "0" ] ; then
       `echo 1 > FL_CHANNEL`

       /usr/local/sbin/mpd4 --kill
       /usr/local/sbin/mpd5 --file /etc/mpd4/mpd.reserv --background --pidfile /var/run/mpd.pid
       /bin/sh pfctl -ef /etc/pf.isp_reserv
       /bin/sh /etc/netstart
       fi
   break
         0%)
       if [ "$CUR_CHANNEL" = "1" ]; then

                   `echo 0 > FL_CHANNEL`

       /usr/local/sbin/mpd4 --kill
       /usr/local/sbin/mpd5 --file /etc/mpd4/mpd.normal --background --pidfile /var/run/mpd.pid
       /bin/sh pfctl -ef /etc/pf.isp_normal
       /bin/sh /etc/netstart
       fi

   break
   ;;
         *)
   break
   ;;
esac[code]

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-11-30 12:26:22

бля...
теги, люди, теги!
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.