Я пытаюсь настроить мост Linux с двумя интерфейсами Ethernet и не могу заставить его работать правильно. Я использую Gentoo Linux и думал, что это будет довольно просто, но в итоге у меня возникли проблемы с прохождением пакетов через мост. Все, что виртуализировано в Hyper-V, имеет значение для чего угодно (но я в этом сомневаюсь).
Вот моя конфигурация.
------ ------------------ -------- -----------
| NUX3 |------------|eth1 BRIDGE eth0|---------| ROUTER |-------/ INTERNET /
------ ------------------ -------- -----------
192.168.1.195/24 192.168.1.197/24 (br0) 192.168.1.101/24
00:15:5d:00:01:12 00:15:5d:00:01:08 (eth0) 00:15:5d:00:01:03
00:15:5d:00:01:13 (eth1)
# cat /etc/conf.d/net
bridge_br0=( "eth0 eth1" )
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.1.197 netmask 255.255.255.0 brd 192.168.1.255" )
routes_br0=( "default via 192.168.1.101" )
# brctl шоу
bridge name bridge id STP enabled interfaces
br0 8000.00155d000108 no eth0
eth1
# brctl showstp br0
<...>
eth0 (1) state forwarding
eth1 (2) state forwarding
<...>
# cat /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-iptables = 0
# ifconfig
<...>
br0 UP BROADCAST RUNNING MULTICAST
inet addr:192.168.1.197 Bcast:192.168.1.255 Mask:255.255.255.0
<...>
eth0 UP BROADCAST RUNNING PROMISC MULTICAST
<...>
eth1 UP BROADCAST RUNNING PROMISC MULTICAST
<...>
# brctl showmacs br0
port no mac addr is local? ageing timer
1 00:15:5d:00:01:03 no 1.51
1 00:15:5d:00:01:08 yes 0.00
2 00:15:5d:00:01:12 no 36.22
2 00:15:5d:00:01:13 yes 0.00
МОСТ может пинговать МАРШРУТИЗАТОР, но не NUX3, NUX3 не может пинговать ни МОСТ, ни МАРШРУТИЗАТОР. Мне все кажется хорошо, но я явно чего-то упускаю. Я был бы очень рад, если бы мне на это указали!
Спасибо.
Возможно, что базовые сетевые устройства на хозяин не включен неразборчивый режим. В VMWare, например, если базовый виртуальный сетевой адаптер не + promisc, гостевой мост выйдет из строя с треском - даже если он думает, что может войти в неразборчивый режим, он не может.
Я никогда не использовал HyperV, но логика должна быть такой же, если хост не позволяет гостю войти в неразборчивый режим, мост не может передавать пакеты туда и обратно, потому что сетевая карта будет обрабатывать только те кадры, которые адресованы специально к нему.
Если вы отключите мост, вы сможете пинговать NUX3 и маршрутизатор, верно?
В диспетчере Hyper-V перейдите к настройкам виртуальной машины, на которой вы хотите использовать мост, и под каждым сетевым интерфейсом, который вы хотите использовать как часть моста, установите флажок «Разрешить подмену MAC-адреса». Я использую Windows Server 2008r2 SP1. Вот что я сделал, чтобы он заработал. Я также использую Ubuntu 12.04, в котором предустановлены все драйверы Hyper-V, но я не думаю, что это имеет значение.
Мостовое соединение работает нормально.