nat: пинги ходят, а транспорт -нет.
уже голову сломал почему может не работать прстой нат
nat on $ext_if from 192.168.1.0/24 to any -> $ext_if
или
nat on $ext_if from 192.168.1.0/24 to any -> $ext_addr
пинги изнутри ходят наружу, а вот tcp сессия создается, а данные не идут и что самое странное ничего не режектится ... tcpdump -n -e -ttt -i pflog0
при этом проверяю так...
pfctl -f /etc/pf.conf
pfctl -F rules
т.е. удаляя все правила, только с натом, ходят пинги, а трансферов по транспортам просто нет.
NetBSD ars 4.0.1_PATCH NetBSD 4.0.1_PATCH (GENERIC) #5: Wed Feb 4 23:00:19 MSK 2009 root@ars:/usr/obj/sys/arch/i386/compile/GENERIC i386
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 5672 просмотра
sysctl -w
sysctl -w net.inet.ip.forwarding=1, да?
У меня NAT работает так:
nat on ppp0 inet proto tcp from nat_users to any -> MY_IP
где nat_users - таблица в угловых скобках.
Для начала выключите всю фильтрацию и сделайте pass on $if inet from any to any (и так для всех интерфейсов), включив NAT. Когда NAT заработает - включайте фильтрацию. Для диагностики можно поставить из портов pftop и смотреть монитор как pftop -s 1 -v rules. C одной консоли запускаете pftop, а с другой выполняете команду на соединение, переключаетесь обратно и смотрите - на каикх правилах засели пакеты (где счётчик увеличился). Мне это помогало, удобнее чем с tcpdump сидеть, вставляя опции log.
Если у вас 2 интерфейса, и вы хотите выпускать по нату внутренних пользователей во вне, то nat нужно делать на _внутреннем_ интерфейсе, а не на внешнем, т.е. что-то типа
nat on $int_if from 192.168.1.0/24 to any -> $ext_if
Могу ошибаться.
>sysctl -w
>sysctl -w net.inet.ip.forwarding=1, да? to any -> $ext_if
да
>nat on $int_if from 192.168.1.0/24 to any -> $ext_if
а так у меня вообще все сломалось, пришлось снаружи заходить.
вообще у меня когда-то вот атк работало, еще со старого конфига, а потом почему-то перестало, давно правда, толко ща наболело уже.
nat on $ext_if from
>pftop -s 1 -v rules
это то же самое что и pfctl -vvvs nat
@0 nat on pppoe0 inet from 192.168.1.0/24 to any -> external
[ Evaluations: 310 Packets: 17 Bytes: 3478 States: 9 ]
правила я и так все удалял, сделав pfctl -F rules, остается только статистика, соединениея и нат таблица, собственно rdr правила у меня работают, а вот что-бы просто ходить из локалки через один ип не выходит.
Я обычно указываю протоколы
Я обычно указываю протоколы для ната, не знаю насколько это важно. Может быть, вам стоит попробовать.
Вот мой конфиг, всё работает, интерфейс один (одна сетевая):
# cat /etc/pf.conf rif = "re0" lo0 = "lo0" ppp = "ppp0" lh = "localhost" rme = "MY_REAL_IP" rgw = "IP_OF_MY_PPP_SERVER" pme = "MY_IP_ON_PPP" table <net_local> persist file "/etc/tables/net_local.net" table <ssh_local> persist file "/etc/tables/ssh_local.net" table <nat_users> persist file "/etc/tables/nat_users.net" table <ssh_inet> persist file "/etc/tables/ssh_inet.net" scrub all no-df random-id min-ttl 128 nat on $ppp inet proto {tcp,udp,icmp} from <nat_users> to any -> $pme block all block in quick from any os NMAP antispoof log quick for {$rif,$ppp} pass in on $rif inet proto {tcp,udp,icmp} from <nat_users> to ! $rme pass in log on $rif inet proto tcp from <ssh_local> to $rme port ssh pass out on $rif inet proto {tcp,udp,icmp} from $rme to <net_local> pass out on $rif inet proto gre from $rme to $rgw pass out on $ppp inet proto {tcp,udp,icmp} from $pme to any pass in log on $ppp inet proto tcp from <ssh_inet> to $pme port ssh pass on $lo0 inet proto {tcp,udp,icmp} from $lh to $lh block inet6Если соединение не через ppp то всё существенно упрощается. Попробуйте указать proto {tcp,udp,icmp} в правиле NAT.
Если не работает, ставите два правила, которые ловят пакеты до ната и после, и смотрите, что туда попадает. Также, не забудьте филтьтрацию правильной сделать, т.к. по умолчанию всё запрещено и надо разрешить правилами.
Я думаю, история проще. Всё
Я думаю, история проще. Всё работает когда правильно настроено.
Скорее всего нужно проверить маски подсетей.
Почитайте, уверен должно помочь:
http://wiki.netbsd.se/How_to_gather_network_information_on_NetBSD
неа, там все верно иначе
неа, там все верно иначе ничего бы вообще не работало исессия не устанавливалась! а у меня из локалки до яндекса если убрать все правила ходит сигнал.
пока было лениво капаться чего там и где не то, наверно все обновлять буду тогда уже и буду править, а ща пока лениво, с ядром игрался)
А эхо пакетов пингом идёт с
А эхо пакетов пингом идёт с запрашиваемого хоста?
In the ipf.conf you should have:
pass in from any to any
pass out from any to any
You must post into rc.local file following lines:
sysctl -w net.inet.ip.forwarding=1
ipnat -f /etc/ipnat.conf
Не удалось осилить мне NetBSD
Не удалось осилить мне NetBSD в плане настройки сети. Ядро пересобрал с поддержкой PF, пытаюсь применить конфиг моего PF из OpenBSD, изменяя только наименование сетевых, всеравно не получается получить доступ к интернету через NetBSD :( Именно пинги ходят, а трафик нет.
опция форвардинга стоит, зашита в ядро.
net.inet.ip.forwarding=1
вот мои конфиги для PF:
WAN=rtk0 # beeline lan LAN=gem0 # my lan INET=ppp0 # beeline internet over pptp DC="30001" TOR="30002" LANIP1="192.168.1.2" set skip on lo0 set skip on $LAN nat pass on $WAN inet from any -> $WAN # ($WAN) пробовал тоже nat pass on $INET inet from any -> $INET # ($INET) пробовал тоже rdr pass on $WAN proto { tcp, udp } from any to any port { $DC, $TOR } -> { $LANIP1 } rdr pass on $INET proto { tcp, udp } from any to any port { $DC, $TOR} -> { $LANIP1 } pass out quick on $WAN inet all keep state pass out quick on $INET inet all keep stateВ OpenBSD работало все идеально с этим конфигом, за исключением работы самой pptp :(
В NetBSD идеально работает pptp но не понятно мне почему не пускает в интернет машины из моей сети !?
Если у кого есть желание, напишите пожалуйста в соответствии с моим конфигом конфиг для NetBSD а то уже две недели не могу вылезти в интернет из дома.
Двойной нат нужен для того, что-бы пользователь локалки мог быть в интернете и p2p локальной сети провайдера (в идеале не только p2p)...
Сложно что-то конкретное
Сложно что-то конкретное сказать. Я делал nat on + pass in отедльно через фильтрацию. Мой конфиг некогда обсуждался здесь: http://www.obsd.ru/8/?q=node/160 и проблема была в том, что
Короче, в NetBSD нужно gre разрешать принудительно, а в obsd разрешение видимо как-то иначе делается.
C nat'ом лучше разбираться постепенно. Для начала поставьте умолчание: nat on $if inet proto {...} from any to any -> $ip где $if - интерфейс, имеющий доступ в инет (ppp) и ip - имеющий доступ в инет (ip висящий на ppp-интерфейсе). И сделайте pass in и pass out для всего (кажется, директива pass on $if all). Только когда нат с выключенной фильтрацией заработает - включайте фильтрацию.
В NetBSD всё нормально
В NetBSD всё нормально работает. Дело в понимании.
Правильно было сказано, вначале нужно всё включить и проверить - без фильтрации.
Потом повключать все защиты.
Чего тут думать?
Сеть внутрення есть? Пинги где? Хосты видны?
Наружная сеть как? Пинг? Хосты?
NAT включил - проверил.
add default route - ок?
Дальше зафильтровал и всё. 5 минут делов.
Ну не беря во внимание необходимость проверки нормального физического соединения к сети. Там бывает TX работает а RX нет и обратно.
Блин. Как дети малые...
В том-то и дело что не
В том-то и дело что не малые.
Провайдер: билайн.
Сначала использовал ipf+ipnat
cat /etc/ipnat.conf
cat /etc/ipf.conf
Не помогло!
Потом решил поставить свой конфиг от OpenBSD (который работал как нужно, но на опенке тупит пптп).
cat /etc/pf.conf
WAN=rtk0 # Билайновский ЛАН LAN=gem0 # Мой ЛАН INET=ppp0 # Билайновский интернет через ППТП соединение "pppd call beeline" DC="30001" # Порт для DC++ TOR="30002" # Порт для Torrent LANIP1="192.168.1.2" # Комп с ВЕНДОЙ в моей сети set skip on lo0 # Пропускать обработку loopback интерфеса set skip on $LAN # Пропускать обработку gem0 интерфеса nat pass on $WAN inet from any -> $WAN # Натить пакеты идущие в локалку билайна (10.х.х.х) nat pass on $INET inet from any -> $INET # Натить пакеты идущие в интернет билайна rdr pass on $WAN proto { tcp, udp } from any to any port { $DC, $TOR } -> { $LANIP1 } #Редиректить порты для DC++ и Торрент из локальной сети билайна rdr pass on $INET proto { tcp, udp } from any to any port { $DC, $TOR} -> { $LANIP1 } #Редиректить порты для DC++ и Торрент из интернет сети билайна pass out quick on $WAN inet all keep state # пропускать трафик в локалку билайна pass out quick on $INET inet all keep state # пропускать трафик в интернетГде вы тут увидели блокирование ?
По поводу сети:
Хост Винда видит: локалку мою, локалку прова, шлюз, инет(пинги, трасерт, ICQ)
хост MacOSX видит: локалку мою, локалку прова, шлюз, инет(пинги, трасерт, ICQ)
Шлюз НетБСД видит: хост на винде, локалку прова, инет (целиком)
Роуты:
по умолчанию ИП локалки провайдера, после соединения меняется на ип пптп сессии (адрес статика)
Грешу на ГРЕ, и на кривые дрова для моей встроенной сетевушки gem0 и на ничистую силу!!! )
R.I.P NetBSD 5.0.1/macppc/mykernel(wo/ipv6, wo/font, wo/many drivers for network adapters, wo/scsi pci adapter drivers, w/pf, w/GATEWAY)
Воткнул сетевую РТЛ8169, похоже была битая, пару раз машина жестко ребутнулась и убил NetBSD (симптомы: rc.conf not configured, ошибки файловой системы и тому подобное).
Пока вернусь к ОпенБСД, инет нужен очень. Будет время, поставлю снова :) Очень понравилась работа нетки, но ужастно раздражает ее работа с сеткой на основе ППТП, единственное что из сетевых вещей понравилось, так это стабильная работа pptpclient :)
Цитата:локалку мою, локалку
Значит icq работает? А что тогда не работает? Btw, лучше мануально указывать протоколы в правилах proto {tcp.udp,icmp}, как мне кажется.
Когда что-то не работает, запускаете что-то типа pftop -s 1 и смотрите какие пакеты режутся, в какие правила попадают + tcpdump. Как работает set skip и насколько pf адекватно портирован на NetBSD - не ручаюсь.
pftop для powerpc в pkgsrc
pftop для powerpc в pkgsrc нету!!!
Не работает только фтп и веб ) Именно странно что ICQ работает :)
Сегодня уже поставил OpenBSD и буду ждать 6-ой ветки NetBSD )
Но если смотреть tcpdump -i
Но если смотреть tcpdump -i ppp0 -vvv host google.com то пакеты ходят и ничего не режится, и на самом роутере все работает, если честно то я вообще не понял логики работы сетевой подсистемы в НетБСД, кто-то писал о прозрачности... не замеченно )
Как работает set skip и
Как работает set skip и насколько pf адекватно портирован на NetBSD - не ручаюсь.
выше приводил конфиги ipf+ipnat... настраивал с ними с начала, толку НОЛЬ... с этого-то все и началось, потом на ядре с поддержкой одного проца статранул #modload /usr/lkm/pf.o!, на generic.mp не стартовал :)
и на нем попробовал настроить, с теми правилами что указанны выше, опять ноль, и потом собрал ядро с вшитой поддержкой pf тоже ноль
На самом деле вместо pftop
На самом деле вместо pftop можно использовать pfctl -s с определёнными флагами, и, кажется, даже можно заставить ежесекунжно обновлять статистику. Как такое может быть... вдруг у вас только udp-трафик пропускается?