установите tap0, используя virt-manager для беспроводного моста

8

Через 3 дня у меня наконец-то появились гости kvm, работающие в сети по беспроводной сети (ссылка ниже - спасибо!):

Моя сеть 192.168.1.0/24

на хосте:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo tunctl -t tap0
sudo ip link set tap0 up
sudo ip addr add 192.168.1.25/24 dev tap0
sudo route add -host 192.168.1.30 dev tap0
sudo parprouted wlan0 tap0

на гостя:

auto eth0
iface eth0 inet static
  address 192.168.1.30
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.25

и начать гость:

sudo kvm /path/to/guest.img -net nic,macaddr=DE:AD:BE:EF:90:26 -net tap,ifname=tap0,script=no

Это прекрасно работает, и я могу пинговать локальную сеть и интернет между гостями.

Но как мне добавить эти настройки в xml-конфигурацию гостя, чтобы я мог запустить гостя через virt-manager с такими же настройками?

ссылка:

DaveO
источник

Ответы:

1

попробуйте следовать этому: libwirtwiki - гость нажмите

и исправьте /etc/libvirt/qemu/example.xml

<interface type='ethernet'>
  <mac address='26:c7:a9:96:a7:7a'/>
  <target dev='tap0'/>
  <model type='virtio'/>
  <script path='no'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

в моем случае это работает

MecaT
источник
0

Я думаю, что вы пытаетесь настроить мостовую сеть в обход, создавая устройства для подключения и т. Д. В Linux вы можете создать виртуальное мостовое устройство для физического интерфейса, используя простые изменения конфигурации. После этого виртуальные машины KVM можно настроить на использование этого виртуального мостового устройства для подключения к обычной локальной сети, как если бы они были подключены к ней напрямую. Это создает иллюзию того, что все виртуальные машины и базовый / хост-компьютер подключены к локальной сети напрямую.

Если это то, что вы хотите, то измените ваш / etc / sysconfig / network-scripts / ifcfg-eth0 (при условии, что eth0 - это сетевое устройство хоста, имеющее IP в сети 192.168.1.0/24 в вашем случае), чтобы иметь строки

DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0

среди других линий конфигурации. Скопируйте ifcfg-eth0 в ifcfg-br0, где ifcfg-br0 должен отличаться от ifcfg-eth0 в приведенных ниже строках

DEVICE=br0
TYPE=Bridge

Теперь, когда вы используете «перезапуск сервисной сети», вам придется использовать сетевые интерфейсы br0 и eth0, и ваш IP-адрес в локальной сети в диапазоне 192.168.1.0/24, по-видимому, будет назначен br0. Теперь все, что вам нужно сделать, это отредактировать настройки виртуальной машины и попросить ее подключиться через сеть br0.

Саураб Баржатия
источник
спасибо Saurabh, но этот обходной путь заключается в том, что беспроводные интерфейсы не поддерживают нормальное мостовое соединение, как если бы вы использовали проводной интерфейс eth0.
DaveO
К сожалению! Виноват. Не знал, что мостовое соединение не работает для беспроводных интерфейсов, как для проводных.
Саураб Баржатия
Вместо того, чтобы соединять. Вы также можете настроить полную беспроводную сеть с собственным DHCP и использовать неиспользуемый диапазон частных IP-адресов. Затем для подключения беспроводной сети извне можно использовать NAT источника / назначения на машине, которая имеет как беспроводное, так и проводное соединение. Если у беспроводных виртуальных машин не будет серверов, то будет работать только исходный PAT. Если необходимо подключиться к беспроводным виртуальным машинам из остальной части сети, то должна подойти комбинация NAT источника и назначения.
Саураб Баржатия
0

Что не так с использованием Macvtap ? Это абсолютно безболезненно и не требует дополнительной настройки на хосте.

выбор macvtap в вирт-менеджере

Майкл Хэмптон
источник
3
Macvlan / macvtap отлично подходит для проводных интерфейсов, но, похоже, не работает на беспроводных интерфейсах, основываясь на моем собственном опыте и опыте чтения онлайн.
lgaggini
2
@lgaggini Вы не можете соединиться с беспроводными интерфейсами, потому что AP отклонит MAC-адреса виртуальных машин. В этом случае вы просто делаете что-то еще.
Майкл Хэмптон