Страница 1 из 1

Не работает мост на FreeBSD 8.3

Добавлено: 2013-03-27 11:08:09
iltmpz
Пытаюсь настроить мост на FreeBSD 8.3
Гугл предлагает кучу вариантов, но все они относятся к совсем старым версиям, и на 8-ю ветку не подходят. Например, ядро на опцию options BRIDGE говорит, что не знает такого. sysctl тоже не знает таких опций, как net.link.ether.bridge, и т.д.

В общем, из того, что удалось найти, сделал следующее:
Собрал ядро, которое отличается от GENERIC прописанной в конце строчкой:

Код: Выделить всё

device          if_bridge
Сервер находится под vmware esxi 5. (Впрочем, развернул железную, не виртуальную рабочую станцию для эксперимента - тот же результат, так что дело не в виртуализации как я понимаю).
В качестве альтернативы своему ядру пробовал подгружать к стандартному ядру модули через /boot/loader.conf:

Код: Выделить всё

if_bridge_load="YES"
bridgestp_load="YES"
На сервере 3 интерфейса: em0, em1, em2.
em0 я подключил только для управления из внутренней сети, между em1, em2 собственно планируется мост, для проброса инета.

Соотв, к em1 подключена машина с winxp, которая должна иметь внешний ип и доступ к инету, к em2 подключен канал инета.

Вот rc.conf:

Код: Выделить всё

gateway_enable="YES"
ifconfig_em0="inet 192.168.xx.9 netmask 255.255.255.0"
defaultrouter="192.168.xx.6"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em1 addm em2"
ifconfig_em1="inet 83.xxx.xxx.105 netmask 255.255.255.240"
Вот sysctl, то что относится к мосту:

Код: Выделить всё

net.link.bridge.ipfw: 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
Вот ifconfig:

Код: Выделить всё

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:99:7d:75
        inet 192.168.xx.9 netmask 0xffffff00 broadcast 192.168.xx.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:99:7d:76
        inet 83.xxx.xxx.105 netmask 0xfffffff0 broadcast 83.xxx.xxx.111
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em2: flags=8902<BROADCAST,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:99:7d:77
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 0e:2e:e0:6d:fe:ec
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 100 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
Соответственно, пускаю с виндовой машины пинг наружу - на шлюз провайдера - не проходит.
tcpdump -i em1 - вывод пустой.
bridge0 и em2 - аналогично.
Пинг между виндовой машиной и интерфейсом роутера (83.xxx.xxx.105) есть.

На vmware на этих 2 виртуальных свитчах promiscuous mode включил.

Куда копать дальше - ума не приложу...

Re: Не работает мост на FreeBSD 8.3

Добавлено: 2013-03-27 11:17:02
iltmpz
Упс, прошу прощения, не хватило одной-единственной строчки:
ifconfig em2 up
Теперь все заработало: пинги бегают, tcpdump их ловит, все стало как и должно быть :)