KVM Bridged Network Çalışmıyor


23

KVM'yi Ubuntu Sunucuma bu kılavuza göre yeni kurdum: https://help.ubuntu.com/community/KVM/Installation

Sonra burada gösterildiği gibi köprülü bir ağ hazırladı: https://help.ubuntu.com/community/KVM/Networking

Sonra, virt-manager ile sanal bir makine yarattım. Birkaç kez denedim ama konuk ağa bağlanamıyor! Herhangi bir yardım?

ifconfig:

      br0       Link encap:Ethernet  HWaddr d0:27:88:b0:e4:38  
                inet addr:192.168.20.100  Bcast:192.168.20.255  Mask:255.255.255.0
                inet6 addr: fe80::d227:88ff:feb0:e438/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:62 errors:0 dropped:0 overruns:0 frame:0
                TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0 
                RX bytes:10493 (10.4 KB)  TX bytes:8433 (8.4 KB)

      eth0      Link encap:Ethernet  HWaddr d0:27:88:b0:e4:38  
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:62 errors:0 dropped:0 overruns:0 frame:0
                TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000 
                RX bytes:11361 (11.3 KB)  TX bytes:8479 (8.4 KB)
                Interrupt:41 

      lo        Link encap:Local Loopback  
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:16436  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0 
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

      virbr0    Link encap:Ethernet  HWaddr 5a:8c:57:95:af:3b  
                inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
                UP BROADCAST MULTICAST  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0 
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

brctl gösterisi:

 bridge name    bridge id      STP enabled    interfaces
 br0       8000.d02788b0e438   no        eth0
 virbr0         8000.000000000000   yes  

brctl showmac'lar br0:

 port no   mac addr       is local? ageing timer
   1  5c:d9:98:67:b6:28   no          48.33
   1  d0:27:88:b0:e4:38   yes          0.00
   1  e0:2a:82:f9:6c:09   no           0.00

ip yolu:

 default via 192.168.20.1 dev br0  metric 100 
 192.168.20.0/24 dev br0  proto kernel  scope link  src 192.168.20.100 
 192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

* Konukda * Bilgileri konukdan kopyalayıp yapıştıramadım çünkü ssh yapamıyorum. DHCP'den hiç ip almadı. Manuel olarak ayarladıktan sonra bile çalışmayacak.


Çıkışı aşağıdaki komutlardan vermenizi önerebilir miyim? Konak üzerinde: ifconfig, brctl show, brctl showmacs br0, ve ip route. Konuk üzerinde: ifconfig, ip route, ping 8.8.8.8, ping <your internet router>, ve traceroute 8.8.8.8. Kvm'yi sizin yaptığınız gibi yapılandırdığımı söyleyemem, ancak kvmkomutu kullanarak çalışmak için köprü oluşturmaya başladım . Kablosuz bağlantım kesmek zorunda kaldım, böylece ev sahibim İnternet'e bağlanacaktı, ve belirttiğiniz talimatlar gibi, İnternet'e Ethernet ile bağlanmanız gerekir.
John S Gruber

@JohnSGruber Sadece istediğiniz bilgiyi ekledim. Ancak konukdan bilgiyi yapıştırmayı kopyalayamadım çünkü ssh yapamıyorum. DHCP'den hiç ip almadı. Manuel olarak ayarladıktan sonra bile çalışmayacak.
THpubs

Konuklara atadığınız MAC adresi brctl showmacs br0yukarıdaki listede mi?
John S Gruber


@JohnSGruber Hayır Bu MAC'i burada göremiyorum!
53'te

Yanıtlar:


22

Hazırlıklar

Bu, Ubuntu 12.04 için benim için çalıştı. Bunu test ederken, bilgisayarınızın güvenlik duvarını engellemelisiniz;

/ Etc / default / qemu-kvm dosyası başlangıçta kurulmuş olmalıdır.

Sen olması gerekir köprü utils qemu-kvm ve libvirt-bin yüklü. Sanal makineleri kullanan tüm kullanıcılar libvirtd grubuna eklenmelidir.Bridge-utils'i yükleyin Qemu-kvm'ı kurunLibvirt-bin'i yükleyin

Artık CAP_NET_ADMIN yeteneği eklemenize gerek yok gibi görünüyor.

Ağ kurulumu

Varsayılan ağ modu, SLIRP olarak da adlandırılan Kullanıcı modudur. Konuk bilgisayara yönlendirilen NAT olan önceden tanımlanmış bir virbr0 köprüsü kullanır. NAT yönlendirme, çekirdeğin ip_forwarding özelliğini ve iptables öğesini kullanır . Köprü modu, konukda (numaralandırılmamış) Ethernet arabiriminin bağlandığı ve hem ev sahibinin hem de misafirin kendi ağ arabirimlerine sahip olduğu sanal bir köprü kullanır.

Aşağıdaki şemalar farkları daha net hale getirebilir:

Ağ şemaları

Varsayılan Kullanıcı ağının nasıl tanımlandığını görebilirsiniz:

virsh net-dumpxml default

Köprülü modu aşağıdaki yaklaşımlarla ayarlayabilirim:

/ Etc / network / interfaces (sorunuzda bahsettiğiniz yazının köprü bölümünden):

otomatik lo
iface lo inet geri döngü
#auto eth0
#iface eth0 inet dhcp
otomatik eth0
iface eth0 inet kılavuzu
otomatik br0
iface br0 inet dhcp
    bridge_ports eth0
    bridge_stp kapalı
    bridge_fd 0
    bridge_maxwait 0

yeniden başlatın; ve kablosuz ağın etkin olmadığından emin olun. Varsayılan IP yolunu ile kontrol edin ip route. Br0 arabirimini kullanıyor olmalı.

Not: Bu değişiklik yapıldığında Ethernet'inize bağlı değilse, Ethernet kablonuzun takılı olması ve bir taşıyıcı olması veya önyüklemenin iki dakika boyunca askıda kalması gerekir ve ağ bağlantınız olmaz . Bu dosyada olmak, önyükleme normal devam etmeden önce gelmesi gerekir.

Not Genellikle, birden fazla MAC adresi kullanamadıkları için eth0 yerine kablosuz bir ağ kullanamazsınız (köprü için ikinci bir numaraya ihtiyaçları olduğuna inanıyorum).

Alternatif olarak, Ethernet kullanımını devre dışı bırakabilir ve IP adresi bulunmadığından ve varsayılan bir yol bulunmadığından emin olabilirsiniz ip route. Sonra:

 sudo ifconfig eth0 0.0.0.0 up
 sudo brctl addbr br0
 sudo brctl addif br0 eth0
 sudo ifconfig br0 up
 sudo dhclient br0 &

Burada varsayılan yol ve DNS adresini tanımlamanın yanı sıra statik bir IP adresi de sağlayabilirsiniz. Bu örnek için dhclientbunu yapar.

İşte rota tablom:

$ ip rota listesi
192.168.1.1 dev br0 metrik 100 üzerinden varsayılan 
169.254.0.0/16 dev br0 kapsamı bağlantısı metrik 1000 
192.168.1.0/24 dev br0 protokol çekirdeği kapsamı bağlantısı src 192.168.1.45 
192.168.122.0/24 dev vir00 proto çekirdek kapsamı bağlantısı src 192.168.122.1

Kvm kullanarak

Daha sonra köprülü bir kvm makinesini şu şekilde açabilirim:

 $ sudo kvm -name Quantal -m 1024 -hda foo.qcow2 --soundhw ac97 -device virtio-net,netdev=tunnel -netdev tap,id=tunnel,ifname=vnet0

Bu -netdev tapparametre sudo'yu bir gereklilik haline getirir. VM başlatıldığında, qemu-kvm aşağıdaki komutları çalıştırır:

ifconfig vnet0 0.0.0.0 yukarı
brctl ek reklam brctl ek reklam br0 vnet0

Bu / etc / qemu-ifup tarafından yapılır.

VM'nin vnet0 arayüzü br0 köprüsüne eklenir, çünkü yukarıdaki varsayılan rota bu köprü arayüzünü kullanır. Orada olmasaydı, musluk arayüzü bunun yerine virbr0 arayüzüne eklenecekti. İnternete bağlı olmadığı için, deneylerimde NAT, konuğu ev sahibine ve internete bağlamak için kullanılacaktı. Vnet0'i / etc / default / qemu-kvm içindeki belirli bir köprüye yönlendirebilirsiniz. Aşağıdaki virt-manager uygulamasını kullanarak hangi köprüye bağlanacağınızı açıkça yönlendirebilirsiniz.

Qemu-kvm tarafından verilen yukarıdaki komutlar ve -netdev tap,id=tunnel,ifname=vnet0parametre nedeniyle, vm sanal makinesi vnet0 tüneline ve tünel br0 köprüsüne bağlanır.

Artık doğrudan bu konuk VM'ye ağımdaki başka bir bilgisayardan erişebiliyorum.

Ana bilgisayarım ifconfig(VM çalışırken ağımda görünen vnet0 arayüzünü not edin):

$ ifconfig
br0 Bağlantı alanı: Ethernet HWaddr 00: 1e: 33: 88: 07: e5  
          giriş adresi: 192.168.1.45 Yayın: 255.255.255.255 Maske: 255.255.255.0
          inet6 addr: fe80 :: 21e: 33ff: fe88: 7e5 / 64 Kapsam: Bağlantı
          YAYIN YAYINLI ÇALIŞMA ÇOKLU MTU: 1500 Metrik: 1
          RX paketleri: 6526 hataları: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0
          TX paketler: 7543 hataları: 0 bırakıldı: 0 aşıldı: 0 taşıyıcı: 0
          çarpışmalar: 0 txqueuelen: 0 
          RX bayt: 2712940 (2,7 MB) TX bayt: 1071835 (1,0 MB)

eth0 Bağlantı alanı: Ethernet HWaddr 00: 1e: 33: 88: 07: e5  
          YAYIN YAYINLI ÇALIŞMA ÇOKLU MTU: 1500 Metrik: 1
          RX paketleri: 7181 hataları: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0
          TX paketler: 7740 hataları: 0 bırakıldı: 0 aşıldı: 0 taşıyıcı: 0
          çarpışmalar: 0 txqueuelen: 1000 
          RX bayt: 2974585 (2,9 MB) TX bayt: 1096580 (1,0 MB)
          Kesinti: 43 Temel adres: 0x6000 

lo Bağlantı encap: Yerel Geri Döngü  
          inet addr: 127.0.0.1 Maske: 255.0.0.0
          inet6 addr: :: 1/128 Kapsam: Ev sahibi
          UP LOOPBACK ÇALIŞMA MTU: 16436 Metrik: 1
          RX paketleri: 10 hata: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0
          TX paketleri: 10 hata: 0 bırakıldı: 0 aşıldı: 0 taşıyıcı: 0
          çarpışmalar: 0 txqueuelen: 0 
          RX bayt: 664 (664.0 B) TX bayt: 664 (664.0 B)

vnet0 Link encap: Ethernet HWaddr ca: 0c: 73: c3: bc: 45  
          inet6 addr: fe80 :: c80c: 73ff: fec3: bc45 / 64 Kapsam: Bağlantı
          YAYIN YAYINLI ÇALIŞMA ÇOKLU MTU: 1500 Metrik: 1
          RX paketleri: 226 hataları: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0
          TX paketler: 429 hatalar: 0 düşürüldü: 0 aşıldı: 0 taşıyıcı: 0
          çarpışmalar: 0 txqueuelen: 500 
          RX bayt: 26919 (26,9 KB) TX bayt: 58929 (58,9 KB)

virbr0 Bağlantı alanı: Ethernet HWaddr d6: 18: 22: db: ff: 93  
          giriş adresi: 192.168.122.1 Yayın: 192.168.122.255 Maske: 255.255.255.0
          YAYIN YAYINLI ÇOKLU MTU: 1500 Metrik: 1
          RX paketleri: 0 hata: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0
          TX paketleri: 0 hata: 0 bırakıldı: 0 aşıldı: 0 taşıyıcı: 0
          çarpışmalar: 0 txqueuelen: 0 
          RX bayt: 0 (0.0 B) TX bayt: 0 (0.0 B)

Sanal Makineyi çalıştırırken köprü yapılandırmam:

$ brctl gösterisi
köprü adı köprü kimliği STP etkin arayüzler
br0 8000.001e338807e5 etik dışı0
                                                        vnet0
virbr0 8000.000000000000 evet

Hem sanal makinenin vnet0 arabiriminin hem de eth0 arabiriminin br0 köprüsüne bağlı olduğunu unutmayın.

Ve MAC br0 arayüzünde:

$ brctl showmacs br0
port no mac addr yerel mi? yaşlanma zamanlayıcısı
  1 00: 05: 5d: cf: 64: 61 no 2.54
  1 00: 19: d2: 42: 5d: 3, no 36,76
  1 00: 19: df: da: af: 7c no 2.86
  1 00: 1e: 33: 88: 07: e5 evet 0.00
  1 00: 60: 0f: e4: 17: d6, 0,79
  2 52: 54: 00: 12: 34: 56, 0,80
  1 58: 6d: 8f: 17: 5b: c0, 5.91
  1 c8: aa: 21: be: 8d: 16 no 167.69
  2 ca: 0c: 73: c3: bc: 45 evet 0.00

Br0 arabiriminin ana bilgisayarımı konuk tarafından kullanılan aynı köprüye bağladığını unutmayın.

Kullanarak NAT'ın kendi ağınıza yönlendirilmesi yerine köprülendiğini kontrol edebilirsiniz traceroute 8.8.8.8. İlk düğüm konuğun ip adresi yerine ağınızın yönlendiricisi ise ağınızın doğru çalışması gerekir.

Bu dokümana bakınız .

virt yönetici

virt-managerVe yüklediğinizden emin olun hal. halPaket için önerilen bir bağımlılık olduğunu virt-managerve oluşturma veya misafir düzenlerken sisteminizin ağ yapılandırmasını belirlemek için kullanılır.

Br0 köprüsünü yukarıda tanımlandığı gibi tanımlarken, virt-manager ile sanal bir makine oluşturdum:

görüntü tanımını buraya girin görüntü tanımını buraya girin görüntü tanımını buraya girin görüntü tanımını buraya girin görüntü tanımını buraya girin

Bu misafirden direkt olarak ev ağımın geri kalanına ve internete gidebildim. Ayrıca ev ağımdaki diğer (ev sahibi olmayan, konuk olmayan) Ubuntu bilgisayarından ssh ile başarabildim.

İşte kvmvirt-manager tarafından yürütülen çok uzun bir komut (EApubs veya bu konuda sorun yaşayan başka biri ile karşılaştırmak için):

/ usr / bin / kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1, soketler = 1, çekirdekler = 1, dişler = 1 -senin tam adı -uuid f057a729-eda6-4b85-84dc-f100c9ae3789 - nodefconfig -nodefaults -chardev soketi, id = charmonitor, path = / var / lib / libvirt / qemu / prec.monitor, sunucu, nowait -mon chardev = charmonitor, id = monitör, mod = kontrol -rtc base = utc -no- kapatma -drive dosyası = / media / natty / home / gruber / ubuntu-kvm / tmpW8gSGB.qcow2, eğer = none, id = sürücü-ide0-0-0, format = qcow2 -device ide-drive, bus = ide.0 , birim = 0, sürücü = sürücü-ide0-0-0, id = ide0-0-0, bootindex = 1 -düğmeli kademe, fd = 18, id = hostnet0 -device rtl8139, netdev = hostnet0, id = net0, mac = 52: 54: 00: 0e: da: 9b, bus = pci.0, addr = 0x3 -chardev pty, id = charserial0 -device isa-seri, chardev = charserial0, id = serial0 -usb -vnc 127.0.0.1: 0 -vga cirrus -device intel-hda, id = ses0, veri yolu = pci.0, addr = 0x4 -device hda-dupleks, kimlik = ses0-kodek0, veri yolu = ses0.0,cad = 0 -device virtio-balon-pci, id = balon0, veri yolu = pci.0, addr = 0x5

Sanal makine açıklamasının /etc/libvirt/qemu/quantal.xml dosyasındaki ağ kısmı

    <interface type='bridge'>
      <mac address='52:54:00:b0:8e:aa'/>
      <source bridge='br0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

Bu bağlantıya göre , performans ve güvenilirlik için ağ cihazı modelini ayarlamak en iyisi olabilir, bunu i düğmesine virtiobasarak , NIC ayarına gidip "Cihaz modeli" ayarını kullanarak neredeyse izleyicide yapabilirsiniz. "için . Satırı ekleyerek bunu yukarıdaki XML'e de ekleyebilirsiniz:virtio

      <model type='virtio'/>

Özetle

Bütün bunlar 12.04 tarihinde aldı:

  1. Virt-manager, bridge-utils, qemu-kvm ve ilgili paketlerin kurulması
  2. Kvm kullanmak isteyen her kullanıcının libvirtd grubunda olduğundan emin olun.
  3. / Etc / network / interface'leri yukarıdaki gibi tanımlamak (alıntılanan makaleyle eşleşir)
  4. Ethernet'in takılı ve kablosuz olduğundan (varsa) kapalı olduğundan emin olarak yeniden başlatın.
  5. Ya bir görüntüye karşı -device e1000,netdev=tunnel -netdev tap,id=tunnel,ifname=vnet0kvm'yi doğrudan çalıştırın , ya da Adım 4-> Gelişmiş Seçenekler panelinin altındaki ağ Bridge br0'ı belirterek virt-manager ile sanal bir makine oluşturun.

Ağ oluşturma, yetenekler, şablonlar veya yapılandırmalar için başka değişiklik gerekmedi.

Yeni misafirinizdeki bir hizmeti İnternet’e maruz bırakmak için:

  1. Gereksinim duyacağınız herhangi bir güvenlik duvarı servisini hazırlayın ve yapılandırın.
  2. Konuk yapılandırmanızda veya DHCP hizmetinizde statik bir adres atayın.
  3. Bir NAT yönlendirici kullanıyorsanız, servis için bir port açın ve onu konuğun IP adresine yönlendirin.

Ana bilgisayarınız için güvenlik duvarı servisini test etmeyi ve yeniden etkinleştirmeyi unutmayın. Trafiği konuğa iletmek için herhangi bir giriş yapılması gerekebilir.

Bkz. Https://help.ubuntu.com/community/KVM/Installation , https://help.ubuntu.com/community/KVM/Networking ve https://help.ubuntu.com/12.04/serverguide/libvirt. html .


Merhaba, O makinede kablosuz kartım yok. sadece Ethernet :)
15:12

Sizin kablosuz bağlantınız olmadığını biliyorum - ama bu soruyu okuyanlar olabilir. Kullandığın şey olduğundan beri bir sanal yönetici bölümü yolladım. Sanal makineyi oluştururken 4. Adımdaki Gelişmiş Seçenekler'de Bridged olarak br0 olarak belirlediniz mi? Virt-manager tarafından başlatılan kvm komutundaki ağ parametreleri benimkine uyuyor mu? (Çalıştırarak görebilirsiniz ps aux | grep kvm).
John S Gruber

Merhaba virt manager kullanarak sanal makine oluştururken, gelişmiş seçeneklerde eth0 ve br0 göremiyorum.
12'de

Muhtemelen sorun budur - bunu sanal yönetici altında çalışmanın anahtarıdır. Onu barındıracak makinede mi çalışıyorsunuz (vebrctl show ?) Hangi Ubuntu sürümünü kullanıyorsunuz? Belki de fark budur. Virt-manager hangi sürümü? (Maden 0.9.1-1ubuntu5.1).
John S Gruber

Ubuntu 12.04 ve virt-manager 0.9.1-1ubuntu5.1 kullanıyorum. Aslında, ana makinede virt-manager yüklü değil. Uzak bir makinede var ve ana bilgisayara bağlanmak için kullanıyorum. Bu benim sahip olduğum problem mi?
23’te THpubs

6

Gördüğünüz davranış ana bilgisayar ise konuğa erişebilir ve konuk ana bilgisayara erişebilir, ancak konuk ağdaki diğer makinelere erişemez veya bunun tam tersi ... muhtemelen ev sahibinin güvenlik duvarı erişimi engelliyor demektir.

Bkz .: https://bugs.launchpad.net/ubuntu/+source/ufw/+bug/573461

Spesifik olarak, bu bölüm: "Son adım köprüdeki net filtreyi devre dışı bırakmaktır:

# cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
EOF

3

Bunlar köprü oluşturmak için kullandığım iki senaryo qemu-kvm.

İlk olarak, ana bilgisayarın IP yönlendiricisi olmasına izin verin.

Senaryo ip-router.sh:

#!/bin/bash

internetinterface="eth0"

username=`whoami`

if [ "x$username" != "xroot" ] ; then

    echo    
    echo "You must be root in order to run this script..."
    echo    

    exit    

fi  

if [ "x$1" != "x" ] ; then
    internetinterface="$1"
fi  

if [ "x$1" == "xdel" ] || [ "x$2" == "xdel" ] ; then
    disable="1"
else
    disable="0"
fi  

if [ "$disable" == "0" ] ; then
    echo "Enabling IP forward and setting up masquerade NAT on interface $internetinterface"

    echo 1 > /proc/sys/net/ipv4/ip_forward

    iptables -t nat -A POSTROUTING -o $internetinterface -j MASQUERADE
else
    echo "Disable IP forward and setting down masquerade NAT on interface $internetinterface"

    echo 0 > /proc/sys/net/ipv4/ip_forward

    iptables -t nat -D POSTROUTING -o $internetinterface -j MASQUERADE
fi  

Ardından tun-taparayüzü oluşturun ve bridgevarsayılan arayüzünüzle (genellikle İnternet bağlantısı olanı).

Script create-qemu-bridged-tuntap.sh:

#!/bin/bash

bridgename=br0
tapinterface=tap0
outinterface=eth1

if [ "x$1" != "x" ] ; then
    outinterface="$1"
fi  

ifaces=`awk -F: '{print $1}' /proc/net/dev | tail -n +3`
iffound="0"

for i in $ifaces
do  
    if [ "$outinterface" == "$i" ] ; then
            iffound="1"
    fi  
done

if [ "$iffound" == "0" ] ; then
    echo
    echo "Can't find the output interface."
    echo
    exit 1
fi  

outifaceip=`ifconfig | grep -A1 $outinterface | tail -1 | awk -F: '{print $2}' | awk '{print $1}'`
outifaceiptokens=`echo $outifaceip | awk -F \. '{print NF}'`

if [ "$outifaceiptokens" != "4" ] ;  then
    echo
    echo "The selected output interface $outinterface doesn't seem to have a valid IP address."
    echo
    exit 1
fi  

hostaddress="192.168.1.1"
guestaddress="192.168.1.95"

sudo tunctl -t $tapinterface

sudo brctl addbr $bridgename
sudo brctl addif $bridgename $tapinterface

sudo ip link set $bridgename up
sudo ip addr add $hostaddress/24 dev $bridgename

sudo route add -host $guestaddress dev $bridgename
sudo parprouted eth1 $bridgename

sudo ~/scripts/ip-router.sh $outinterface

Bu senaryoları günlük kullanıyorum, bu yüzden sizin için de iyi çalışmalılar. Tüm bu çalışmaları yapabilmek için bir paket kurmanız gerekecek. Kullanımı:

dlocate `which COMMAND`

hangi paketin gerekli olduğunu görebilirsiniz COMMAND. Örneğin, hangi paketin olması gerektiğini görmek için brctlbasitçe çalıştırın:

dlocate `which brctl`

ve olacak:

bridge-utils: /sbin/brctl

Bu komut dosyalarındaki tüm komutlar için aynı yaklaşımı kullanarak, (en azından) bu aptitudekomut satırını çalıştırmalısınız :

sudo aptitude install dlocate iproute parprouted iptables uml-utilities bridge-utils net-tools

Son olarak, ana betiği (normal bir kullanıcı olarak) başlatabilirsiniz:

#> create-qemu-bridged-tuntap.sh eth0
Set 'tap0' persistent and owned by uid 0
Enabling IP forward and setting up masquerade NAT on interface eth0

Çalıştırılırken , betiğin içinde belirtildiği gibi IP adresi olan ip addrbir br0arayüz görmelisiniz :192.168.1.1create-qemu-bridged-tuntap.sh

#> ip addr
8: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 36:76:ee:d6:63:b2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global br0

Bu host address görüldüğü gibi guest. Tersine, konuk IP adresi olarak sahip olacaktır 192.168.1.95(yine, bu ana komut dosyasında kolayca değiştirilebilir).

Şimdi, kullanarak virt-manager, misafirinizi br0fiziksel arayüz olarak kullanacak şekilde ayarlamalısınız .

virt yönetici-br0-NIC

Bunun içinde guestsadece eth0bir IP adresine vermeniz 192.168.1.95gerekir ve her şey yolunda gitmelidir.

Slackware13:~> ifconfig 
eth0      Link encap:Ethernet  HWaddr 52:54:00:F7:6A:78  
          inet addr:192.168.1.95  Bcast:192.168.1.255  Mask:255.255.255.0

Bunu yapmak için bir köprü kullanıyor olsanız da, bana bir NAT yönlendirme tesisi yaratıyorsunuz. Bununla birlikte, eğer belli ana bilgisayar bağlantı noktalarını ileriye taşıyabiliyorsanız, EApub'ların istediği şeyi yapabilir. Saygısız çok ilginç ve çok yararlı bir cevap.
John S Gruber

Teşekkürler, bu amaç için kusursuz çalışıyor. Ancak aslına bakarsan, VM’ime uzaktan erişime ihtiyacım yok ve EApub’ların sadece VM’lerinde bir İnternet erişimine sahip olmaya çalıştıklarını düşündüm.
Avio

@Avio Hayır arkadaşım, makineme uzaktan erişim gerekiyor. NAT'ı ayarlayıp VM'yi oluşturursam, çalışır.
Eylül'de

IP yönlendirme kapalı nerede olduğunu vardı bir sorun, buraya bir ipucu yoktur cat /proc/sys/net/ipv4/ip_forwardverdi 0. Etkinleştirmek ve ısrar etmek bu yazıdaki talimatları benim için düzeltti .
Jake Cobb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.