BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Правильный bridge
СообщениеДобавлено: Сб 27 фев, 2016 12:56 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
Исходя из Handbook и man:

Требуется модуль ядра
Код:
if_bridge


Решаем подгрузкой в /boot/loader.conf
Код:
if_bridge_load="YES"
bridgestp_load="YES"


Всем интерфейсам должен быть сделан up.
При необходимости, IP присваивается мосту, а не его членам.



Пример 1:
Нужен мост между em0 и em1, со статическим IP 192.168.1.32 в подсетке 1-255
С доступом с хоста моста ко всему (рабочий компьютер).

Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.1.32 netmask 255.255.255.0 addm em0 addm em1 up"


Не работает.
Делаем иначе:

Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em0 addm em1 up"
ifconfig bridge0 inet 192.168.1.32 netmask 255.255.255.0
ifconfig_em0="up"
ifconfig_em1="up"


Тоже не работает.
И так не работает:

Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em0 addm em1 up"
ifconfig_em0="inet 192.168.1.32 netmask 255.255.255.0 up"
ifconfig_em1="inet 192.168.1.32 netmask 255.255.255.0 up"


По ifconfig нет никаких bridge

Пинаем:
Код:
ifconfig bridge create

Заработало.

Недостатки:
1. DHCP где-то на мосту застревает. Т.е. клиент, воткнутыый в бридж, уже не может получить IP. Если воткнуть напрямую, всё нормально.
2. Как-то оно всё криво…


Пример 2.
Роутер, один интерфейс наружу, к провайдеру. Другой интерфейс, re0, раздаёт интернет для сетки 192.168.1.0/24.
Так же нужны функции точки доступа.
Делаем так:
Код:
wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
cloned_interfaces="bridge0"
ifconfig_re0="inet 192.168.1.1 netmask 255.255.255.0 up"
ifconfig_wlan0="country US mode 11g channel 11 txpower 50mw up"
ifconfig_bridge0="inet 192.168.1.1 netmask 255.255.255.0 addm re0 addm wlan0 up"
hostapd_enable="YES"


Всё работает, претензии следующие:
1. Точка доступа раздаёт интернет только при рабочем подключении на re0. Т.е. покуда туда воткнут работающий компьютер, WiFi есть. Стоит выдернуь или выключить питание, беспроводная сеть пропадает так же.
2. Очень кривой конфиг. Сколько раз надо назначать IP и апать, и кого именно?

Вопросы по настройке в целом:
1. Демон inetd — нужен?
2. gateway_enable — нужен?
3. ipfw
а) если не нужна функция фильтрации, нужно ли вообще его касаться?
б) Если уже работает, на роутере, к примеру, я ввожу в правила bridge0 и успокаиваюсь… Прав?

Я мог бы, конечно, все варианты проверить экспериментально, но ситуация такова, что роутер без видеокарты, её даже некуда воткнуть. И находится в неудобном месте, через него раздаётся сейчас интернет.
Т.е. одна ошибка, и нет доступа — как следствие, "сборка-разборка автомата". Уже было пару раз, больше не рискую.

Как сделать лаконичный, прозрачный, гарантированно рабочий конфиг?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Ср 09 мар, 2016 4:06 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
В оригинале:
Цитата:
Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"
If the bridge host needs an IP address, set it on the bridge interface, not on the member interfaces. The address can be set statically or via DHCP. This example sets a static IP address:
Код:
# ifconfig bridge0 inet 192.168.0.1/24

https://www.freebsd.org/doc/handbook/ne ... dging.html

Специально отключил алиасы, jail, vbox сетку, вообще всё лишнее.
Пробую:
Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm rl0 addm re0 up"
ifconfig_rl0="up"
ifconfig_re0="up"
ifconfig_bridge0="inet 192.168.1.32 netmask 255.255.255.0"
Хрен там, даже сети не видно, ни в ту, ни в другую дырку.

Забыл законспектировать вывод ifconfig. У интерфейсов нет IP, он есть у бриджа.
flags=8843<UP… трам пам пам
Статус Active

Код:
#  sysctl -a | grep bridge
net.link.bridge.ipfw: 0
net.link.bridge.allow_llz_overlap: 0
net.link.bridge.inherit_mac: 0
net.link.bridge.log_stp: 0
net.link.bridge.pfil_local_phys: 0
net.link.bridge.pfil_member: 1
net.link.bridge.pfil_bridge: 1
net.link.bridge.ipfw_arp: 0
net.link.bridge.pfil_onlyip: 1
dev.isab.0.%desc: PCI-ISA bridge
dev.hostb.5.%desc: Host to PCI bridge
dev.hostb.4.%desc: Host to PCI bridge
dev.hostb.3.%desc: Host to PCI bridge
dev.hostb.2.%desc: Host to PCI bridge
dev.hostb.1.%desc: Host to PCI bridge
dev.hostb.0.%desc: Host to PCI bridge
dev.pcib.6.%desc: ACPI PCI-PCI bridge
dev.pcib.5.%desc: ACPI PCI-PCI bridge
dev.pcib.4.%desc: ACPI PCI-PCI bridge
dev.pcib.3.%desc: ACPI PCI-PCI bridge
dev.pcib.2.%desc: ACPI PCI-PCI bridge
dev.pcib.1.%desc: ACPI PCI-PCI bridge
dev.pcib.0.%desc: ACPI Host-PCI bridge

# kldstat | grep if_bridge
 8    1 0xffffffff82a33000 93c1     if_bridge.ko



Что я делаю не так?

Актуально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 12:29 am 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
В рот мне ноги, заработало:
Код:
# сетевой мост bridge
gateway_enable="YES"            #выступать в качестве шлюза
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="rl0 re0"
ifconfig_bridge0="inet 192.168.1.32/24"
ifconfig_rl0="up"
ifconfig_re0="up"


Два места, показавшие, что что-то не ладно в королевстве:
http://unquietwiki.blogspot.ru/2013/03/ ... eenas.html
http://serverfault.com/questions/490424 ... eway-issue

Где это в хэндбуке?
Надо срочно всё переписывать.
Ушёл спать, задрало…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 8:29 am 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
Выше всё проходит сквозняком, а на хосте ничего не слышно.
Если хотим, чтобы хост бриджа участвовал на равных в сети, присваиваем IP физическим интерфейсам:
Код:
# сетевой мост bridge
gateway_enable="YES"            #выступать в качестве шлюза
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="rl0 re0"
ifconfig_bridge0="up"
ifconfig_rl0="inet 192.168.1.32 netmask 255.255.255.0"
ifconfig_re0="inet 192.168.1.32 netmask 255.255.255.0"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 2:12 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5115
Откуда: Москва
Какую-то ерунду вы пишете. Всё работает точно так как описано в хендбуке:

Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.0.1 addm em0 addm em1 up"
ifconfig_em0="up"
ifconfig_em1="up"


Цитата:
gateway_enable="YES"

Для бриджа не нужен.

Цитата:
autobridge_interfaces="bridge0"
autobridge_bridge0="rl0 re0"

Вам не нужно.

Цитата:
ifconfig_rl0="inet 192.168.1.32 netmask 255.255.255.0"
ifconfig_re0="inet 192.168.1.32 netmask 255.255.255.0"

Один адрес на нескольких интерфейсах не имеет смысла.

Цитата:
Два места, показавшие, что что-то не ладно в королевстве:
http://unquietwiki.blogspot.ru/2013/03/ ... eenas.html

Показывает что? Это инструкция от FreeNAS повторяющая handbook + выключение firewall на бридже.

Цитата:
http://serverfault.com/questions/490424/freebsd-9-1-bridge0-and-default-gateway-issue

Показывает что?
Цитата:
Looks like issue was due to quick exhaust of mbufs

На самом деле там ещё и ошибка в конфиге.

Цитата:
Решаем подгрузкой в /boot/loader.conf

Не нужно, модуль подгружается автоматически.

Цитата:
Не работает.
Тоже не работает.
И так не работает:

Все три конфига не правильные, ни разу не сделано как описано в handbook.

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

Цитата:
1. Демон inetd — нужен?

Нет.

Цитата:
а) если не нужна функция фильтрации, нужно ли вообще его касаться?

Нет.

Цитата:
б) Если уже работает, на роутере, к примеру, я ввожу в правила bridge0 и успокаиваюсь… Прав?

Если выключить net.link.bridge.pfil_member и net.link.bridge.pfil_bridge то нужны будут правила только для трафика на сам хост, иначе ещё пачка правил для транзитного трафика, в том числе для каждого физического интерфейса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 5:30 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
Топология простая:
Код:
         ---------------            ---------------
Интернет | 192.168.1.1 |        re0 | 192.168.1.32| rl0
---------|             |------------|             |-----
         |    Гейт     |            |    Бридж    |
         --------------             ---------------






Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 5:32 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5115
Откуда: Москва
Что дальше со стороны rl0?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 5:59 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
Просто порт, втыкается по случаю всё, что должно иметь доступ к сети.
Гостевые ноутбуки, ремонтируемые компьютеры, pxe загрузка, и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 6:08 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5115
Откуда: Москва
Вопрос был о конкретном адресе устройства.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 6:12 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
IP по DHCP получается от гейта.
Или что-то другое имеется в виду?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 6:17 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5115
Откуда: Москва
Имею в виду что адрес абсолютно точно из той же сети.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Чт 10 мар, 2016 6:20 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
Да, конечно, 192.168.1.0/24


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Пн 21 мар, 2016 2:09 pm 
Не в сети

Зарегистрирован: Вс 08 мар, 2015 11:31 am
Сообщения: 159
Цитата:
Всё работает точно так как описано в хендбуке:
Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.0.1 addm em0 addm em1 up"
ifconfig_em0="up"
ifconfig_em1="up"


Перепроверил:
Код:
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.1.32 addm re0 addm rl0 up"
ifconfig_rl0="up"
ifconfig_re0="up"

Код:
# ifconfig
re0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 90:2b:34:9d:3f:40
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex,master>)
        status: active
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2008<VLAN_MTU,WOL_MAGIC>
        ether 00:e0:52:a7:ac:ca
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:81:f4:ec:68:00
        inet 192.168.1.32 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: rl0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 2 priority 128 path cost 200000
        member: re0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 55

Сеть не работает от слова "совсем".

Вернул взад:
Код:
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="rl0 re0"
ifconfig_bridge0="up"
ifconfig_rl0="inet 192.168.1.32 netmask 255.255.255.0"
ifconfig_re0="inet 192.168.1.32 netmask 255.255.255.0"

ifconfig_re0_alias0="inet 192.168.1.60 netmask 255.255.255.0"
ifconfig_re0_alias1="inet 192.168.1.61 netmask 255.255.255.0"
ifconfig_re0_alias2="inet 192.168.1.62 netmask 255.255.255.0"

Код:
# ifconfig
re0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 90:2b:34:9d:3f:40
        inet 192.168.1.32 netmask 0xffffff00 broadcast 192.168.1.255
        inet 192.168.1.60 netmask 0xffffffff broadcast 192.168.1.60
        inet 192.168.1.61 netmask 0xffffffff broadcast 192.168.1.61
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex,master>)
        status: active
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2008<VLAN_MTU,WOL_MAGIC>
        ether 00:e0:52:a7:ac:ca
        inet 192.168.1.32 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:81:f4:ec:68:00
        nd6 options=9<PERFORMNUD,IFDISABLED>
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: rl0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 2 priority 128 path cost 200000
        member: re0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 20000
Всё нормально. Ноут получил от рутера IP и по PXE с бриджа загрузился.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правильный bridge
СообщениеДобавлено: Вс 09 апр, 2017 10:33 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс 10 сен, 2006 10:54 am
Сообщения: 474
Откуда: POSIX
по умолчанию поднимается L3 мост, с фильтрацией
вам нужен тупой L2 мост, лечится двумя sysctl командами
net.link.bridge.pfil_member=0
net.link.bridge.pfil_bridge=0
с ними будет работать как по хендбуку


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика