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

Исходное сообщение
"FreeBSD 5.3+mpd как интернет сервер"

Отправлено tos , 22-Мрт-06 16:51 
Помогите настроить маршрутизацию для FREEBSD 5.3 который является шлюзом (nat,vpn-клиент,маршрутизатор) для клиентов выходящих в интернет. Адрес vpn-сервер 80.252.131.163, адрес шлюза 192.168.159.254, адрес внешн.интерфейса на машине с FREEBSD 192.168.159.1 Адрес внутр. интерфейса 192.168.1.1

Таблица машрутизации после установления соединения демоном mpd:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.255.254    UGS         0      340    ng0
80.252.131.163     192.168.159.254    UGHS        0        4    rl1
127.0.0.1          127.0.0.1          UH          0        0    lo0
192.168.1          link#1             UC          0        0    rl0
192.168.1.1        00:40:f4:cd:f5:dd  UHLW        0       16    lo0
192.168.1.4        00:d0:68:01:85:74  UHLW        0      650    rl0    841
192.168.159        link#2             UC          0        0    rl1
192.168.159.254    00:e0:4d:02:f8:3c  UHLW        1        0    rl1   1004
192.168.254.70     lo0                UHS         0        0    lo0
192.168.255.254    192.168.254.70     UH          1        0    ng0


Содержание

Сообщения в этом обсуждении
"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 23-Мрт-06 00:20 
в чём проблема то сопстно говоря?



"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 23-Мрт-06 08:17 
>в чём проблема то сопстно говоря?
После поднятия mpd с машины под FreeBsd пингуется любой адрес из интернета. А с машин клиентов нет. С клиентов идут пинги только на те адреса, которые пингуются без поднятия mpd. Как сделать так чтобы пинги шли через поднятый vpn туннель (интерфейса ng0)


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 23-Мрт-06 11:05 
может кто-нибудь ответить? какой маршрут прописать или может надо поднять нат на интерфейса ng0 ? А как это сделать?



"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 23-Мрт-06 13:34 
>может кто-нибудь ответить? какой маршрут прописать или может надо поднять нат на
>интерфейса ng0 ? А как это сделать?


подними нат на интерфейс который смотрит в Internet
natd -a IP или natd -n iface
в ядро добавь поддержку (ipfw) дивертов.

options         IPDIVERT (непосретсно диверт)
options         DUMMYNET (если собираешься использовать ограничения скорости)

дальше в добавляешь правила в фаервол
ipfw add 65534 divert 8668 ip from any to IP(внешнего интерфейса)
ipfw add 10 divert 8668 ip from 10.10.0.0/16 to any (этим правилом дивертим сетку 10.10.0.0 с масочкой 255.255.0.0)
если хочешь дивертить определённые ip то
ipfw add 10 divert 8668 ip from 10.10.0.2 to any (итд для каждого клиента)



"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 23-Мрт-06 14:08 
Нат у меня поднимается при загрузке:
natd_enable="YES"
natd_interface="rl1" # rl1 - физ. адрес внешнего интерфейса (смотрит в инет)
в файле /etc/rc.conf
Или нат надо поднимать на ng0 (создаётся при установлении vpn-соединения)?
В ядре поддержка Divert включена.
А ipfw по умолчанию открыт:
firewall_enable="YES"
firewall_type="OPEN"
в файле /etc.rc.conf
т.е. он пропускает все пакеты

"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 23-Мрт-06 14:11 
>Нат у меня поднимается при загрузке:
>natd_enable="YES"
>natd_interface="rl1" # rl1 - физ. адрес внешнего интерфейса (смотрит в инет)
> в файле /etc/rc.conf
>Или нат надо поднимать на ng0 (создаётся при установлении vpn-соединения)?
>В ядре поддержка Divert включена.
>А ipfw по умолчанию открыт:
>firewall_enable="YES"
>firewall_type="OPEN"
> в файле /etc.rc.conf
> т.е. он пропускает все пакеты
ну открыт ну поднят а правила нимасать в фаерволе что куда отправлять? я выше написал.


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 23-Мрт-06 15:55 
Прописал правила diverta. Ситуация не изменилась. Пинги с клиентов в инет так и не идут.

"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 23-Мрт-06 16:16 
>Прописал правила diverta. Ситуация не изменилась. Пинги с клиентов в инет так
>и не идут.


сделай ipfw show и кинь сюда, и заодно netstat -n и тож сюда


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 23-Мрт-06 16:22 
ipfw show
00010    0      0 divert 8668 ip from 10.10.0.0/16 to any
00010 2550 241842 divert 8668 ip from 192.168.1.0/24 to any
00010    0      0 divert 8668 ip from 192.168.1.0/24 to any
00050 1017  67559 divert 8668 ip from any to any via rl1
00100   56   3696 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
65000 4594 404188 allow ip from any to any
65534    0      0 divert 8668 ip from any to 192.168.159.1
65534    0      0 divert 8668 ip from any to 192.168.254.34
65535    0      0 allow ip from any to any

netstat -n
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0      0  192.168.159.1.55495    80.252.131.163.1723    ESTABLISHED
tcp4       0      0  192.168.1.1.22         192.168.1.4.3551       ESTABLISHED
tcp4       0      0  192.168.1.1.22         192.168.1.4.3533       ESTABLISHED
Netgraph sockets
Type  Recv-Q Send-Q Node Address   #Hooks
ctrl       0      0
data       0      0
Active UNIX domain sockets
Address  Type   Recv-Q Send-Q    Inode     Conn     Refs  Nextref Addr
c12dee38 stream      0      0 c12d6738        0        0        0 /var/run/devd.pipe
c12dea64 dgram       0      0        0 c12dedac        0        0
c12dedac dgram       0      0 c12ec000        0 c12dea64        0 /var/run/log


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 23-Мрт-06 17:18 
значит так.
у тебя должно всё иметь вид такой.
IPFW
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
00400 divert 8668 ip from 192.168.1.0/24 to any
65534 divert 8668 ip from any to 192.168.159.1
(если 192.168.159.1 ip внешнего интерфейса имеено этот ип те даёт пров)
65535    0      0 allow ip from any to any


соответсно ещё посмотри запущенли нат netstat -an | grep 8668
увидешь что нибуть в этом роде
div4       0      0  *.8668                 *.*


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 24-Мрт-06 09:09 
После некоторых настроек у меня получилось следующее:
ipfw  show
00100   36   2352 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
65000 7311 624933 allow ip from any to any
65100    0      0 divert 8668 ip from 192.168.1.0/24 to any out via ng0
65200    0      0 divert 8668 ip from any to 192.168.159.1
65300    0      0 divert 8668 ip from 192.168.1.0/24 to any
65400    0      0 divert 8668 ip from 192.168.1.0/24 to any in out via ng0
65500    0      0 divert 8668 ip from any to 192.168.254.0/24 out via ngo
65500    0      0 divert 8668 ip from 192.168.1.0/24 to any out via ng0
65500    0      0 divert 8668 ip from any to 192.168.159.1
65500    0      0 divert 8668 ip from 192.168.1.0/24 to any out via ng0
65500    0      0 divert 8668 ip from any to 192.168.159.1
65500    0      0 divert 8668 ip from 192.168.1.0/24 to any out via ng0
65500    0      0 divert 8668 ip from any to 192.168.159.1 in via ng0
65535    0      0 allow ip from any to any

НО ВСЁ РАВНО ПИНГИ НЕ ИДУТ!!!


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 24-Мрт-06 16:14 
Может кто подскажет где смотреть движение пакетов? Что мешает прохождению? Почему пакету не бегут с клиентов в инет через ng0 ? Ну хоть кто-нить? Неужели всё?

"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Alexey V. Dmitriev , 24-Мрт-06 17:04 
может надо вот это в правила добавить
${fwcmd} add pass gre from any to any


>Может кто подскажет где смотреть движение пакетов? Что мешает прохождению? Почему пакету
>не бегут с клиентов в инет через ng0 ? Ну хоть
>кто-нить? Неужели всё?



"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 24-Мрт-06 19:45 
>65000 7311 624933 allow ip from any to any
убери вот это правило

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

.... короче 10 раз писал одно и тоже....

значит для начала делаешь в командной строке
man ipfw
если не знаешь английского берёшь словарик или лезиш в интернет. гдето перевод был.


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 27-Мрт-06 14:07 
>как я думаю заметил дальше него пакеты не идут. это потому что
>он соответствует любому IP для лобого IP всё разрешено. и дальше
>этого правила пакеты просто не проходят.
>
>.... короче 10 раз писал одно и тоже....
>
>значит для начала делаешь в командной строке
>man ipfw
>если не знаешь английского берёшь словарик или лезиш в интернет. гдето перевод
>был.


Непонятно,зачем его убирать. Или ты хочешь сказать что когда пакет приходит фаервол пробегает по цепочке, натыкается на самое первое правило (any to any), а до следущих не доходит?
Вообщем я почти сдался. Уже думаю снесит фрюху и поставить заново (типа как винда бывает встаёт криво). А как увидеть где идёт drop пакетов? На каком этапе? Есть какая утилитка отображающая весь процесс в реальном времени?


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено Respect , 27-Мрт-06 14:40 
>Непонятно,зачем его убирать. Или ты хочешь сказать что когда пакет приходит фаервол
>пробегает по цепочке, натыкается на самое первое правило (any to any),
>а до следущих не доходит?
>Вообщем я почти сдался. Уже думаю снесит фрюху и поставить заново (типа
>как винда бывает встаёт криво). А как увидеть где идёт drop
>пакетов? На каком этапе? Есть какая утилитка отображающая весь процесс в
>реальном времени?

Именно обрабатывает по цепочке. дошёл увидел победил.


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено корасон , 02-Апр-06 20:28 
>>Непонятно,зачем его убирать. Или ты хочешь сказать что когда пакет приходит фаервол
>>пробегает по цепочке, натыкается на самое первое правило (any to any),
>>а до следущих не доходит?
>>Вообщем я почти сдался. Уже думаю снесит фрюху и поставить заново (типа
>>как винда бывает встаёт криво). А как увидеть где идёт drop
>>пакетов? На каком этапе? Есть какая утилитка отображающая весь процесс в
>>реальном времени?
>
>Именно обрабатывает по цепочке. дошёл увидел победил.


А внешний интерфейс сервера - клиент пингует? Может быть у тебя фряха не патченная - дык на ней никакие пакеты между интерфейсами не бегають ибо баг там такой. Ставь 5.4 или шестую.


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено tos , 04-Апр-06 14:28 
>А внешний интерфейс сервера - клиент пингует? Может быть у тебя фряха
>не патченная - дык на ней никакие пакеты между интерфейсами не
>бегають ибо баг там такой. Ставь 5.4 или шестую.

ПИНГУЕТ! ВОт именно что пингует все интерфейсы, и внешний и внутрненний. А почему не пускает в инет - неясно! Сдаётся мен что все эти фокусы с ipfw  это как мёртвому припарка. поставить firewall_type="OPEN" в /etc/rc.conf и не ипать этим мозги. тут что-то другое.


"FreeBSD 5.3+mpd как интернет сервер"
Отправлено ichard , 08-Апр-06 01:33 
Попробуй вместе с mpd поднимать стартовые и стоповые скрипты, в которых будут прописаны несколько правил, которые подгружаются вместе с mpd(скрипты связаны с заворачиванием трафика с внешнего ифейса to any и наоборот через порт nat'a) + выполнение запуска nat'a.
Возможно, после некоторого шаманста че нить да получится. Дело в том, что ты пробуешь натить на виртуальный ифейс ng0, который создается при запуске mpd.
Дело в том, что nat через /etc/rc.conf запускается перед запуском mpd и получается так, что натировать то неначто, потому что ифейс еще не создан...

"FreeBSD 5.3+mpd как интернет сервер"
Отправлено kir , 10-Апр-06 21:16 
не страдайте ерундой с ipfw+divert есть траблы - потом ловить будете
юзайте ipf
там правило одна строчка и все
а еще лучше pf

кстати в ващем случае не увидел опции гетевей енейбл
да и диверт у вас кривой