Помогите настроить маршрутизацию для 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
в чём проблема то сопстно говоря?
>в чём проблема то сопстно говоря?
После поднятия mpd с машины под FreeBsd пингуется любой адрес из интернета. А с машин клиентов нет. С клиентов идут пинги только на те адреса, которые пингуются без поднятия mpd. Как сделать так чтобы пинги шли через поднятый vpn туннель (интерфейса ng0)
может кто-нибудь ответить? какой маршрут прописать или может надо поднять нат на интерфейса ng0 ? А как это сделать?
>может кто-нибудь ответить? какой маршрут прописать или может надо поднять нат на
>интерфейса 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 (итд для каждого клиента)
Нат у меня поднимается при загрузке:
natd_enable="YES"
natd_interface="rl1" # rl1 - физ. адрес внешнего интерфейса (смотрит в инет)
в файле /etc/rc.conf
Или нат надо поднимать на ng0 (создаётся при установлении vpn-соединения)?
В ядре поддержка Divert включена.
А ipfw по умолчанию открыт:
firewall_enable="YES"
firewall_type="OPEN"
в файле /etc.rc.conf
т.е. он пропускает все пакеты
>Нат у меня поднимается при загрузке:
>natd_enable="YES"
>natd_interface="rl1" # rl1 - физ. адрес внешнего интерфейса (смотрит в инет)
> в файле /etc/rc.conf
>Или нат надо поднимать на ng0 (создаётся при установлении vpn-соединения)?
>В ядре поддержка Divert включена.
>А ipfw по умолчанию открыт:
>firewall_enable="YES"
>firewall_type="OPEN"
> в файле /etc.rc.conf
> т.е. он пропускает все пакеты
ну открыт ну поднят а правила нимасать в фаерволе что куда отправлять? я выше написал.
Прописал правила diverta. Ситуация не изменилась. Пинги с клиентов в инет так и не идут.
>Прописал правила diverta. Ситуация не изменилась. Пинги с клиентов в инет так
>и не идут.
сделай ipfw show и кинь сюда, и заодно netstat -n и тож сюда
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 anynetstat -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
значит так.
у тебя должно всё иметь вид такой.
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 *.*
После некоторых настроек у меня получилось следующее:
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НО ВСЁ РАВНО ПИНГИ НЕ ИДУТ!!!
Может кто подскажет где смотреть движение пакетов? Что мешает прохождению? Почему пакету не бегут с клиентов в инет через ng0 ? Ну хоть кто-нить? Неужели всё?
может надо вот это в правила добавить
${fwcmd} add pass gre from any to any
>Может кто подскажет где смотреть движение пакетов? Что мешает прохождению? Почему пакету
>не бегут с клиентов в инет через ng0 ? Ну хоть
>кто-нить? Неужели всё?
>65000 7311 624933 allow ip from any to any
убери вот это правилокак я думаю заметил дальше него пакеты не идут. это потому что он соответствует любому IP для лобого IP всё разрешено. и дальше этого правила пакеты просто не проходят.
.... короче 10 раз писал одно и тоже....
значит для начала делаешь в командной строке
man ipfw
если не знаешь английского берёшь словарик или лезиш в интернет. гдето перевод был.
>как я думаю заметил дальше него пакеты не идут. это потому что
>он соответствует любому IP для лобого IP всё разрешено. и дальше
>этого правила пакеты просто не проходят.
>
>.... короче 10 раз писал одно и тоже....
>
>значит для начала делаешь в командной строке
>man ipfw
>если не знаешь английского берёшь словарик или лезиш в интернет. гдето перевод
>был.
Непонятно,зачем его убирать. Или ты хочешь сказать что когда пакет приходит фаервол пробегает по цепочке, натыкается на самое первое правило (any to any), а до следущих не доходит?
Вообщем я почти сдался. Уже думаю снесит фрюху и поставить заново (типа как винда бывает встаёт криво). А как увидеть где идёт drop пакетов? На каком этапе? Есть какая утилитка отображающая весь процесс в реальном времени?
>Непонятно,зачем его убирать. Или ты хочешь сказать что когда пакет приходит фаервол
>пробегает по цепочке, натыкается на самое первое правило (any to any),
>а до следущих не доходит?
>Вообщем я почти сдался. Уже думаю снесит фрюху и поставить заново (типа
>как винда бывает встаёт криво). А как увидеть где идёт drop
>пакетов? На каком этапе? Есть какая утилитка отображающая весь процесс в
>реальном времени?Именно обрабатывает по цепочке. дошёл увидел победил.
>>Непонятно,зачем его убирать. Или ты хочешь сказать что когда пакет приходит фаервол
>>пробегает по цепочке, натыкается на самое первое правило (any to any),
>>а до следущих не доходит?
>>Вообщем я почти сдался. Уже думаю снесит фрюху и поставить заново (типа
>>как винда бывает встаёт криво). А как увидеть где идёт drop
>>пакетов? На каком этапе? Есть какая утилитка отображающая весь процесс в
>>реальном времени?
>
>Именно обрабатывает по цепочке. дошёл увидел победил.
А внешний интерфейс сервера - клиент пингует? Может быть у тебя фряха не патченная - дык на ней никакие пакеты между интерфейсами не бегають ибо баг там такой. Ставь 5.4 или шестую.
>А внешний интерфейс сервера - клиент пингует? Может быть у тебя фряха
>не патченная - дык на ней никакие пакеты между интерфейсами не
>бегають ибо баг там такой. Ставь 5.4 или шестую.ПИНГУЕТ! ВОт именно что пингует все интерфейсы, и внешний и внутрненний. А почему не пускает в инет - неясно! Сдаётся мен что все эти фокусы с ipfw это как мёртвому припарка. поставить firewall_type="OPEN" в /etc/rc.conf и не ипать этим мозги. тут что-то другое.
Попробуй вместе с mpd поднимать стартовые и стоповые скрипты, в которых будут прописаны несколько правил, которые подгружаются вместе с mpd(скрипты связаны с заворачиванием трафика с внешнего ифейса to any и наоборот через порт nat'a) + выполнение запуска nat'a.
Возможно, после некоторого шаманста че нить да получится. Дело в том, что ты пробуешь натить на виртуальный ифейс ng0, который создается при запуске mpd.
Дело в том, что nat через /etc/rc.conf запускается перед запуском mpd и получается так, что натировать то неначто, потому что ифейс еще не создан...
не страдайте ерундой с ipfw+divert есть траблы - потом ловить будете
юзайте ipf
там правило одна строчка и все
а еще лучше pfкстати в ващем случае не увидел опции гетевей енейбл
да и диверт у вас кривой