The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"FreeBSD и мосты "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 15:34 
Приветствую, коллеги!

Существует следующая схема, простая донельзя:

роутер ---- мост на freebsd 9 ---- кастомеры

Мост:

bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:9b:ce:33:b9:00
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 1000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: em2 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 3 priority 128 path cost 20000
        member: em1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 2 priority 128 path cost 20000

IPFW:

00001 allow ip from 192.168.5.0/24 to 192.168.5.0/24 via em0
00002 allow log logamount 10000 ip from any to any layer2
00003 allow log logamount 10000 ip from any to any out layer2
00004 allow log logamount 10000 ip from any to any layer2 mac-type 0x0806
00050 count log logamount 1000 ip from any to any mac-type 0x0806
00060 allow log logamount 10000 ip from any to any layer2
00100 allow log logamount 10000 ip from any to any layer2 not mac-type 0x0800
00120 allow log logamount 10000 ip from any to any mac-type 0x0806
00200 allow log logamount 10000 ip from any to any


Проблема в следующей, пытаюсь пинговать роутьер, на нём вижу свой мак адрес (за мостом разумеется), но ответ не получаю...

Интерфйейс em2 это клиентская сеть:

15:30:05.293575 ARP, Request who-has 192.168.4.1 tell 192.168.4.6, length 46
15:30:10.793650 ARP, Request who-has 192.168.4.1 tell 192.168.4.6, length 46

bridge0:

15:30:38.293975 ARP, Request who-has 192.168.4.1 tell 192.168.4.6, length 46
15:30:43.794049 ARP, Request who-has 192.168.4.1 tell 192.168.4.6, length 46

em1 это на роутер:

15:31:11.294425 ARP, Request who-has 192.168.4.1 tell 192.168.4.6, length 46
15:31:16.794445 ARP, Request who-has 192.168.4.1 tell 192.168.4.6, length 46

Впечатление, что именно роутер 192.168.4.1 и не отвечает... Но! На нем виден мак адрес 192.168.4.6...


в дебагах файрвола:

Feb 22 15:32:47 kernel: ipfw: 2 Accept MAC in via bridge0
Feb 22 15:32:47 kernel: ipfw: 2 Accept MAC in via em2
Feb 22 15:32:48 kernel: ipfw: 2 Accept MAC in via em1


Подскажите, где может быть засада?


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "FreeBSD и мосты "  +/
Сообщение от DeadLoco (ok) on 22-Фев-12, 15:45 
> Подскажите, где может быть засада?

Еще в восьмой ветке ИПФВ должен был быть статически вкомпилен в ядро с опцией

  options         IPFIREWALL_DEFAULT_TO_ACCEPT

для того, чтобы получить ARP-прозрачный бридж. Штатный кернел-модуль, подгружаемый по случаю, для этого не годился. Единственно, нужно самому дописывать в конфиг ипфв строчку 65535 deny all from any to any.

Возможно, в девятке все уже иначе, но вот на этих граблях в бридже я в свое время потоптался изрядно.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 15:55 
Да, это сделано, строчки deny нет :-) Вместо неё allow. Самое обидное, что вижу arp пакет выстреливающий через мост в сторону роутера... (( А обратного нет... при этом если мост исключить из схемы, то конечно же все хорошо
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 15:55 
Да, в ядре if_bridge тоже вкомпилен!
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

8. "FreeBSD и мосты "  +/
Сообщение от DeadLoco (ok) on 22-Фев-12, 16:20 
> Да, в ядре if_bridge тоже вкомпилен!

А ман бриджа читан?

net.link.bridge.ipfw
Set to 1 to enable layer2 filtering with
ipfirewall(4), set to 0 to disable it.  This
needs to be enabled for dummynet(4) support.
When ipfw is enabled, pfil_bridge and
pfil_member will be disabled so that IPFW is
not run twice; these can be re-enabled if
desired.

net.link.bridge.ipfw_arp
Set to 1 to enable layer2 ARP filtering with
ipfirewall(4), set to 0 to disable it.
Requires ipfw to be enabled.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

12. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 16:40 
bridge# sysctl -a | grep bridge.ipfw
net.link.bridge.ipfw: 1
net.link.bridge.ipfw_arp: 1


читан... читан...

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

9. "FreeBSD и мосты "  +/
Сообщение от DeadLoco (ok) on 22-Фев-12, 16:22 
> Да, в ядре if_bridge тоже вкомпилен!

К слову сказать, неплохо бы для начала просто вырубить ипфв на бридже, и добиться нормальной работы от просто бриджа, нефильтрующего. Чтобы, значить, методом исключения...

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

10. "FreeBSD и мосты "  +/
Сообщение от DeadLoco (ok) on 22-Фев-12, 16:24 
Опять же, к слову сказать, проблемы с интефейсов нумерацией вижу я:

00001 allow ip from 192.168.5.0/24 to 192.168.5.0/24 via em0

Тогда, как мемберы бриджа - ем1 и ем2. Либо, что тоже не исключено, бридж немного более сложен, чем показано на схеме.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

11. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 16:37 
em0 интерфейс управления, там ничего кроме ай-пи управления нет... Фильтрацию отрубал - не помогает зараза. Пакеты то все равно бегают... хоть с ipfw хоть без него :( но не все
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "FreeBSD и мосты "  +/
Сообщение от DeadLoco (ok) on 22-Фев-12, 17:02 
> em0 интерфейс управления, там ничего кроме ай-пи управления нет...

И смотрит этот ифейс туда же, куда и бридж? Попробуйте повесить ИП для управления на сам бридж, а ем0 либо отключить, либо туда же, в бридж.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 24-Фев-12, 10:01 
Попробывал.. результат один... Подебажил на пиксе (роутере) там только на 192,168,4,255 пакеты от 4,6 идут... фидимо где то фильтрует по пути, буду разбираться. Спасибо!
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

4. "FreeBSD и мосты "  +/
Сообщение от lavr email on 22-Фев-12, 15:57 
>> Подскажите, где может быть засада?
> Еще в восьмой ветке ИПФВ должен был быть статически вкомпилен в ядро
> с опцией
>   options         IPFIREWALL_DEFAULT_TO_ACCEPT
> для того, чтобы получить ARP-прозрачный бридж. Штатный кернел-модуль, подгружаемый по
> случаю, для этого не годился. Единственно, нужно самому дописывать в конфиг
> ипфв строчку 65535 deny all from any to any.
> Возможно, в девятке все уже иначе, но вот на этих граблях в
> бридже я в свое время потоптался изрядно.

в 9'ке by default GENERIC без ipfirewall, бридж подгружал модульно и проблем
не наблюдал, но без IPFIREWALL_DEFAULT_TO_ACCEPT в JAIL+VNET сходу получил
единственное правило:

65535 deny all from any to any

пришлось воткнуть:
jail_www_exec_afterstart4="/etc/rc.d/ipfw start"

ps. все же логично иметь в firewall'ах acccept by default

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 16:01 
Привет, Андрей! Как там Дубна поживает? :-)

Да он default to accept! Ё-мое... :-)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 16:02 
bridge# ipfw show
00001 16138 1674738 allow ip from 192.168.5.0/24 to 192.168.5.0/24 via em0
00002 12982  675001 allow log logamount 10000 ip from any to any layer2
00003     0       0 allow log logamount 10000 ip from any to any out layer2
00004     0       0 allow log logamount 10000 ip from any to any layer2 mac-type 0x0806
00050   525   24150 count log logamount 1000 ip from any to any mac-type 0x0806
00060  2055  111596 allow log logamount 10000 ip from any to any layer2
00100     0       0 allow log logamount 10000 ip from any to any layer2 not mac-type 0x0800
00120     0       0 allow log logamount 10000 ip from any to any mac-type 0x0806
00200  2257  247577 allow log logamount 10000 ip from any to any
65535    49    3753 allow ip from any to any
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "FreeBSD и мосты "  +/
Сообщение от Chris email(??) on 22-Фев-12, 16:15 
Мас адресов я тоже с em1 почему то не наблюдаю...

bridge# ifconfig bridge0 addr
00:18:74:2f:c2:80 Vlan1 em2 668 flags=0<>
00:08:21:2b:78:85 Vlan1 em2 1198 flags=0<>
00:26:55:b3:7e:59 Vlan1 em2 1197 flags=0<>

:-\

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

14. "FreeBSD и мосты "  +/
Сообщение от lavr email on 22-Фев-12, 18:24 
Hi,

> Привет, Андрей! Как там Дубна поживает? :-)

стоит пока...

> Да он default to accept! Ё-мое... :-)

как уже посоветовали, попробуй ip от em0 навесить на bridge

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру