Добавление подключаемого устройства к мосту приводит к сбою DNS (иногда)

Я на Ubuntu xenial (16.04 LTS), так как я использую виртуализацию, я решил создать мостовую сеть.

Я создал мост в /etc/network/interfaces следующим образом:

iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0

, и Интернет работает отлично, прежде чем я создаю устройство крана. Когда я добавляю кран-устройство для виртуальной машины следующим образом:

$ user=anyone $ dev=tap0 $ ip tuntap add $dev mode tap user $usr $ ip link set $dev up $ ip link set $dev master br0

Я могу использовать устройство-переходник для доступа к Интернету без проблем со своего виртуализированного гостя, и иногда у меня по-прежнему есть обычный доступ в Интернет с моего хоста (т. е. работает DNS).

Однако чаще всего DNS терпит неудачу в моей хост-системе (я тестировал pinging удаленных хостов с их IP-адресом, и он работал, с их именем он не удался).

Я не думаю, что это внешние сетевые проблемы, так как у меня была очень такая же настройка на Fedora, и она работала безупречно. И чтобы быть ясным, независимо от того, запускаю ли я VM или нет, не имеет никакого значения, как только на выходе появляется живое, я могу потерять свой DNS на хосте, и как только я удалю устройство крана, он снова работает.

Я не могу найти ничего полезного в dmesg, syslog или ip route, чтобы помочь мне. Итак, я спрашиваю здесь, есть ли у кого-нибудь представление, что не так?

С уважением

1
задан 6 November 2017 в 18:44

2 ответа

Хорошо, я решил. Проблема заключается в том, что мостовое устройство по умолчанию использует младший адрес MAC-адреса своих дочерних элементов. Поскольку адреса mac для устройства переключения более или менее случайны, он иногда меняет макс моста, а иногда и нет. Случайный MAC блокируется DNS в моей сети.

К счастью, если вы назначите MAC своему мосту, он сохранит его. Поэтому мне нужно добавить постоянный адрес mac к мосту, подобный этому

ip link set br0 address {MAC-ADDRESS}

или загрузить его при загрузке. Я могу добавить строку post-up в /etc/network/interfaces

iface br0 inet dhcp bridge_ports eth0 . . . post-up ip link set br0 address {MAC-ADDRESS}

Для получения дополнительной информации см. Http://backreference.org/2010/07/28/linux-bridge-mac-addresses-and-dynamic-ports/

0
ответ дан 18 July 2018 в 13:13

Хорошо, я решил. Проблема заключается в том, что мостовое устройство по умолчанию использует младший адрес MAC-адреса своих дочерних элементов. Поскольку адреса mac для устройства переключения более или менее случайны, он иногда меняет макс моста, а иногда и нет. Случайный MAC блокируется DNS в моей сети.

К счастью, если вы назначите MAC своему мосту, он сохранит его. Поэтому мне нужно добавить постоянный адрес mac к мосту, подобный этому

ip link set br0 address {MAC-ADDRESS}

или загрузить его при загрузке. Я могу добавить строку post-up в /etc/network/interfaces

iface br0 inet dhcp bridge_ports eth0 . . . post-up ip link set br0 address {MAC-ADDRESS}

Для получения дополнительной информации см. Http://backreference.org/2010/07/28/linux-bridge-mac-addresses-and-dynamic-ports/

0
ответ дан 24 July 2018 в 20:07

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

Похожие вопросы: