Проблема сетевого соединения уровня 2 с QEmu

У меня проблема с сетевой конфигурацией уровня 2, использующей Linux, QEmu и VMware ESX. Конфигурация прекрасно работает в небольшой изолированной сети, но после ее введения в нашу большую корпоративную сеть возникают проблемы на сетевом уровне.

Я использую серверную версию Ubuntu 12.04.2 и QEmu 1.5.2, созданную из исходного кода, эмулирующую хост SPARC с qemu-system-sparc. Конфигурация, которую я пытаюсь достичь, показана ниже с указанием IP-адресов, где назначены IP-адреса, и последним байтом MAC-адресов, показанных для различных интерфейсов.

    le0 (on QEmu hosted machine)
    192.168.1.103
    :56
    |
    tap0 (on Ubuntu machine)
    :7e                         
    |
    br0 (on Ubuntu machine)
    :19
    |
    eth1        eth0    (eth1 and eth0 on Ubuntu machine)
                192.168.1.100
    :19         :0f
    |           |
===========================
    Corporate Network
===========================
        |
        eth0
        192.168.1.102
        :84

eth0 а также eth1 оба интерфейса создаются через VMware, который соединяет их через одну физическую сетевую карту.

/etc/network/interfaces файл для машины с Ubuntu показан ниже.

# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet manual

auto tap0
iface tap0 inet manual
    pre-up tunctl -u my-user -t tap0
    up ip link set tap0 up

auto br0
iface br0 inet manual
    bridge_ports tap0 eth1
    bridge_fd 15
    bridge_hello 2
    bridge_maxage 20
    bridge_stp off
    bridge_waitport 60
    bridge_pathcost eth1 32768
    bridge_maxwait 0

# The primary network interface
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1 

Как в изолированной сети, так и в корпоративной сети пакеты ARP проходят через цепочку мостов, и 192.168.1.102 имеет правильную информацию ARP для 192.168.1.103 и наоборот. В изолированной сети хосты могут проверять связь друг с другом, и все выглядит хорошо с соединениями прикладного уровня через мост.

Однако в корпоративной сети при пинге с хоста 192.168.1.103 в 192.168.1.102 пакет ping проходит через мосты к 192.168.1.102, 192.168.1.102 Затем хост пытается отправить ICMP-ответ, который никогда не возвращается обратно 192.168.1.103 хост.

ARP-кеш включен 192.168.1.102 кажется правильным, с IP-адресом 192.168.1.103 отображение на :56 MAC-адрес. Тем не менее, если я запускаю tcpdump на eth1 Интерфейс машины Ubuntu Я вижу запросы ICMP, выходящие из 192.168.1.103 хост, но не вижу ответов, возвращающихся (несмотря на то, что они уходят 192.168.1.102 когда выбрасывается из eth0 на этой машине).

У меня выключен STP, хотя он работает в корпоративной сети. Выход из brctl showstp br0 показывает мост для пересылки даже в корпоративной сети.

Любая идея, почему это не работает в более крупной и сложной сети, но работает в изоляции? Может ли наш коммутатор в корпоративной сети каким-то образом иметь поврежденные таблицы MAC-адресов?

1 ответ

Решение

Решением этой проблемы было включение случайного режима на виртуальном коммутаторе VMware ESX, как описано здесь. Физический коммутатор и сетевые интерфейсы Ubuntu были настроены правильно, но VMware предотвращал попадание входящего трафика в eth1 интерфейс.

Другие вопросы по тегам