Intereting Posts
Как включить все установленные среды рабочего стола в Fedora 23? Подпись PKCS # 7 не подписана доверенным ключом Ограничить размер окна при максимизации в Xfce Что мне делать с удаленной машиной AIX, если случайно «chmod 644» – «/ usr / bin / ksh»? Конфигурации SSL для промежуточного сертификата Каков правильный способ установки параметров времени ядра Linux? Как я могу получить файл RHEL 7.0 vmlinux? Как использовать тройник для перенаправления на grep Доступ к веб-сайту Обработка ошибок сценария оболочки при назначении переменной STDOUT переменной Перетаскивание между окнами в тайлинг, т.е. минималистичные WM-файлы? Использовать rsync только с закрытыми файлами Есть ли способ отслеживать дисковое пространство, освобожденное процессом? запускать grep cmd рекурсивно и печатать имя пути и результат Несколько записей в / proc / bus / input / devices для одного устройства

Общие сведения о виртуальных коммутаторах в Linux

Я смущен тем, как мне приходится настраивать виртуальные коммутаторы в Linux. Я сделал следующее:

ip link add name br0 type bridge ip link set br0 up 

Это должно создать виртуальный переключатель, называемый br0. Теперь давайте предположим, что у меня есть физическое сетевое устройство eth0 и устройство-подключитель vnet0, созданное KVM / qemu на моей машине. Кранное устройство автоматически присоединяется к br0 (по конфигурации), а eth0 может быть добавлено вручную:

 ip link set eth0 master br0 

Оба устройства теперь должны быть подключены к коммутатору br0.

Я назначил IP-адрес 192.168.1.1 для eth0 и 192.168.1.2 для сетевого интерфейса внутри виртуализации. Конечно, сам интерфейс разъема ничего не знает об этом адресе.

Если бы я имел именно этот параметр с физическим коммутатором вместо виртуального, я бы ожидал, что сможет выполнить ping адрес 192.168.1.2 из хост-системы. Однако этот IP-адрес не может быть достигнут через ping:

 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. From 192.168.1.2 icmp_seq=1 Destination Host Unreachable ... 

Почему это?

Я ожидал, что eth0 отправит запрос ARP во все сегменты Ethernet, частью которых он является. Это физический, но и тот, который определяется br0. На запрос ARP должен быть дан ответ vnet0 с его MAC-адресом.

Решение, которое я нашел, это назначить IP-адрес для br0:

 ip addr add 192.168.1.3/24 dev br0 

Теперь пинг работает отлично.

Я присвоил IP-адрес 192.168.1.1 eth0

Вот где эта настройка пошла не так. eth0 был установлен как интерфейс моста (уровень 2) и поэтому не должен иметь никакого IP-адреса (уровня 3).

(Вероятно, вы закончили своего рода разбитую конфигурацию, включающую два прямых маршрута, как до 192.168.1.0/24) через два разных интерфейса, только один из них работал. Но точные детали неправильной настройки действительно не имеют значения.)

Почему это?

Я ожидал, что eth0 отправит запрос ARP во все сегменты Ethernet, частью которых он является. Это физический, но и тот, который определяется br0.

eth0 не отправит ARP. Это уже не интерфейс уровня 3, когда он является частью моста.

  • Порты (слоя 2) на этом мосту
    • eth0 ,
    • tap0 и
    • сам мост.
  • Участники (уровень 3) на этом мосту (в том же порядке)
    • Все устройства, которые могут быть достигнуты через eth0 (скорее всего: множество других устройств в вашей локальной сети)
    • Что бы ни было на другом и tap0 (что, вероятно, одно)
    • Интерфейс br0