BSDPORTAL.RU http://bsdportal.ru/ |
|
Правильный bridge http://bsdportal.ru/viewtopic.php?f=13&t=27752 |
Страница 1 из 1 |
Автор: | DenisVS [ Сб 27 фев, 2016 12:56 pm ] |
Заголовок сообщения: | Правильный bridge |
Исходя из 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 и успокаиваюсь… Прав? Я мог бы, конечно, все варианты проверить экспериментально, но ситуация такова, что роутер без видеокарты, её даже некуда воткнуть. И находится в неудобном месте, через него раздаётся сейчас интернет. Т.е. одна ошибка, и нет доступа — как следствие, "сборка-разборка автомата". Уже было пару раз, больше не рискую. Как сделать лаконичный, прозрачный, гарантированно рабочий конфиг? |
Автор: | DenisVS [ Ср 09 мар, 2016 4:06 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
В оригинале: Цитата: Код: cloned_interfaces="bridge0" 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="addm fxp0 addm fxp1 up" ifconfig_fxp0="up" ifconfig_fxp1="up" Код: # 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 Что я делаю не так? Актуально. |
Автор: | DenisVS [ Чт 10 мар, 2016 12:29 am ] |
Заголовок сообщения: | Re: Правильный bridge |
В рот мне ноги, заработало: Код: # сетевой мост 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 Где это в хэндбуке? Надо срочно всё переписывать. Ушёл спать, задрало… |
Автор: | DenisVS [ Чт 10 мар, 2016 8:29 am ] |
Заголовок сообщения: | Re: Правильный bridge |
Выше всё проходит сквозняком, а на хосте ничего не слышно. Если хотим, чтобы хост бриджа участвовал на равных в сети, присваиваем 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" |
Автор: | AMDmi3 [ Чт 10 мар, 2016 2:12 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Какую-то ерунду вы пишете. Всё работает точно так как описано в хендбуке: Код: 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 то нужны будут правила только для трафика на сам хост, иначе ещё пачка правил для транзитного трафика, в том числе для каждого физического интерфейса. |
Автор: | DenisVS [ Чт 10 мар, 2016 5:30 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Топология простая: Код: --------------- ---------------
Интернет | 192.168.1.1 | re0 | 192.168.1.32| rl0 ---------| |------------| |----- | Гейт | | Бридж | -------------- --------------- |
Автор: | AMDmi3 [ Чт 10 мар, 2016 5:32 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Что дальше со стороны rl0? |
Автор: | DenisVS [ Чт 10 мар, 2016 5:59 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Просто порт, втыкается по случаю всё, что должно иметь доступ к сети. Гостевые ноутбуки, ремонтируемые компьютеры, pxe загрузка, и т.д. |
Автор: | AMDmi3 [ Чт 10 мар, 2016 6:08 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Вопрос был о конкретном адресе устройства. |
Автор: | DenisVS [ Чт 10 мар, 2016 6:12 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
IP по DHCP получается от гейта. Или что-то другое имеется в виду? |
Автор: | AMDmi3 [ Чт 10 мар, 2016 6:17 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Имею в виду что адрес абсолютно точно из той же сети. |
Автор: | DenisVS [ Чт 10 мар, 2016 6:20 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Да, конечно, 192.168.1.0/24 |
Автор: | DenisVS [ Пн 21 мар, 2016 2:09 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
Цитата: Всё работает точно так как описано в хендбуке: Код: 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 Всё нормально. Ноут получил от рутера IP и по PXE с бриджа загрузился.
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 |
Автор: | [CPS] AkirA [ Вс 09 апр, 2017 10:33 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
по умолчанию поднимается L3 мост, с фильтрацией вам нужен тупой L2 мост, лечится двумя sysctl командами net.link.bridge.pfil_member=0 net.link.bridge.pfil_bridge=0 с ними будет работать как по хендбуку |
Автор: | datarius [ Чт 07 фев, 2019 10:14 pm ] |
Заголовок сообщения: | Re: Правильный bridge |
У меня получилось так ! Код: ifconfig_igb0="up"
ifconfig_re0="up" cloned_interfaces="bridge0" create_args_bridge0="addm igb0 addm re0" ifconfig_bridge0="inet 192.168.1.1/24 up" gateway_enable="YES" |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |