Я на 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, чтобы помочь мне. Итак, я спрашиваю здесь, есть ли у кого-нибудь представление, что не так?
С уважением
Хорошо, я решил. Проблема заключается в том, что мостовое устройство по умолчанию использует младший адрес 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/
Хорошо, я решил. Проблема заключается в том, что мостовое устройство по умолчанию использует младший адрес 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/