Muokataan sivua Virtuaalisen järjestelmän verkkosiltaus

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{jakeluspesifinen}}
Muistiinpanoja verkkosillan rakentamisesta virtualisoituun asiakkaaseen.


Tässä artikkelissa käsitellään verkkosillan luomista [[virtualisointi|virtuaalikoneessa]] pyörivään järjestelmään. Huomaa kuitenkin, että voit päästä helpommalla käyttämällä valmiita ratkaisuja. Esimerkiksi Virtualbox siltaa yhteyden automaattisesti ja helposti, kun valitset virtuaalisen verkkokortin asetuksista "Bridged Network".
== Isäntäkone A ==


Isäntäkoneen käyttöjärjestelmä on tässä esimerkissä [[Sabayon]] linux 4.0, joka on [[Gentoo]]-pohjainen ja sopii erinomaisesti mm. testailuun.
== Host A ==
 
Isäntäkoneen käyttöjärjestelmä on Sabayon linux 4.0. Tämä on gentoo-pohjainen ja sopii erinomaisesti mm. testailuun.


  Linux ariloulaleelay 2.6.27-sabayon #1 SMP Sat Dec 20 16:15:56 UTC 2008 x86_64 Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz GenuineIntel GNU/Linux
  Linux ariloulaleelay 2.6.27-sabayon #1 SMP Sat Dec 20 16:15:56 UTC 2008 x86_64 Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz GenuineIntel GNU/Linux
Rivi 12: Rivi 12:


=== libvirt + KVM Gentoossa ===
=== libvirt + KVM Gentoossa ===
Tästä eteenpäin seuraa Gentoo-kohtaista testausjärjestelmän pystytystä. Asennetaan [[qemu]], [[kvm]] ja [[libvirt]].
Tästä eteenpäin seuraa gentoo-kohtaista testausjärjestelmän pystytystä. Asennetaan qemu, kvm ja libvirt.
 
Sabayonin System.map pitää linkittää jotta voi kääntää kernel-moduleja (bugi distrossa):


Sabayonin <tt>[[System.map]]</tt> pitää linkittää oikeaan paikkaan jotta [[ydin|ytimen]] [[moduuli|moduuleja]] voidaan kääntää:
  ariloulaleelay ~ # ln -s /boot/System.map-genkernel-x86_64-2.6.27-sabayon /lib/modules/2.6.27-sabayon/build/System.map
  ariloulaleelay ~ # ln -s /boot/System.map-genkernel-x86_64-2.6.27-sabayon /lib/modules/2.6.27-sabayon/build/System.map


Qemu täytyy kääntää [[gcc]]-3:lla!
Qemu täytyy kääntää gcc-3:lla!
   >>> [[Emerge|Emerging]] (1 of 1) app-emulation/qemu-softmmu-0.9.1-r3
   >>> Emerging (1 of 1) app-emulation/qemu-softmmu-0.9.1-r3
   * qemu-0.9.1.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                [ ok ]
   * qemu-0.9.1.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                [ ok ]
   * checking ebuild checksums ;-) ...                                                                                                                [ ok ]
   * checking ebuild checksums ;-) ...                                                                                                                [ ok ]
Rivi 28: Rivi 29:
   * could be harmful.
   * could be harmful.


Qemu käännetään versiolla 3.4.6, muilla kääntäjä on järjestelmän oletus: <tt>gcc-4.3.2</tt>. Tässä asennetut paketit:
Qemu käännetään versiolla 3.4.6, muilla kääntäjä on järjestelmän oletus: gcc-4.3.2. Tässä asennetut paketit:


   Wed Feb 25 16:46:08 2009 >>> sys-devel/gcc-3.4.6-r2
   Wed Feb 25 16:46:08 2009 >>> sys-devel/gcc-3.4.6-r2
Rivi 40: Rivi 41:
   Wed Feb 25 17:23:21 2009 >>> app-emulation/virt-manager-0.6.0-r1
   Wed Feb 25 17:23:21 2009 >>> app-emulation/virt-manager-0.6.0-r1


Lopuksi käynnistetään <tt>libvirtd</tt>  ja asetetaan se käynnistymään automaattisesti:
Käynnistys:
  # /etc/init.d/libvirtd start
  # /etc/init.d/libvirtd start
  # [[rc-update]] add libvirtd default
  # rc-update add libvirtd default


=== Ytimen moduulit ===
== Verkko ==
'''Jotta guest voi kytkeytyä siltaan, tarvitaan 'tun'-[[moduuli]]'''. Muutoin näet virheen: ”Failed to add tap interface 'vnet%d' to bridge 'br0' : No such file or directory”. Ladataan myös virtualisointimoduulit, joista ainoastaan toinen riittää. Kvm:ää käytetään mikäli keskusyksikköpiiri tukee virtualisointilaajennoksia ja kqemua käytetään, mikäli kvm:ää ei voi käyttää.
 
# modprobe tun
# modprobe kqemu
# modprobe kvm


== Verkko ==
eth0 on kytketty reitittimeen NAT1 192.168.1.0/24, joka on kytketty palomuurin kautta internetiin. Tämä simuloi sisäverkkoa, joka sillataan virtuaalikoneelle. Tällä liitännällä ei tule olla omaa ip-osoitetta isäntäjärjestelmässä.
<tt>eth0</tt> on kytketty reitittimeen NAT1 (192.168.1.0/24), joka on kytketty palomuurin kautta internetiin. Tämä simuloi dmz-aluetta, joka sillataan virtuaalikoneelle. '''Sillattavalla liitännällä ei tule olla omaa ip-osoitetta isäntäjärjestelmässä.'''


  eth0      Link encap:Ethernet  HWaddr 00:18:f3:16:aa:7f
  eth0      Link encap:Ethernet  HWaddr 00:18:f3:16:aa:7f


<tt>eth1</tt> on toinen verkkokortti, joka on kytketty reitittimeen NAT2 192.168.0.0/24. Tämä simuloi sisäverkkoa, mutta sen kautta ei ole pääsyä internetiin. Fyysisesti tämä on täysin erillinen verkosta NAT1.
 
eth1 on toinen verkkokortti, joka on kytketty reittimeen NAT2 192.168.0.0/24. Tämä simuloi sisäverkkoa, mutta sen kautta ei ole pääsyä internetiin. Fyysisesti tämä on täysin erillinen verkosta NAT1.


  eth1      Link encap:Ethernet  HWaddr 00:20:18:8e:43:32
  eth1      Link encap:Ethernet  HWaddr 00:20:18:8e:43:32
  inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
  inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0


Reititykset ovat vielä asetettu siten, että isäntäkone on kytketty <tt>eth0</tt>:n kautta verkkoon NAT1, johon tullaan kytkemään verkkosilta:
Routet ovat vielä asetettu siten, että host on kytketty eth0:n kautta verkkoon NAT1, johon tullaan kytkemään bridge.
   $ [[route]]
 
   $ route
   Kernel IP routing table
   Kernel IP routing table
   Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
   Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
Rivi 70: Rivi 67:
   loopback        ariloulaleelay  255.0.0.0      UG    0      0        0 lo
   loopback        ariloulaleelay  255.0.0.0      UG    0      0        0 lo
   default        192.168.1.1    0.0.0.0        UG    0      0        0 eth0
   default        192.168.1.1    0.0.0.0        UG    0      0        0 eth0


=== Luodaan uusi verkkoyhteys ”Bridge to LAN” ===
=== Luodaan uusi verkkoyhteys ”Bridge to LAN” ===
Lainaukset <tt>brctl</tt>-manuaalista. Ks. myös [http://libvirt.org/formatdomain.html#elementsNICSBridge]
Lainaukset brctl-manuaalista. Ks. myös [http://libvirt.org/formatdomain.html#elementsNICSBridge]


”This is the recommended config for general guest connectivity on hosts with static wired networking configs. Provides a bridge from the VM directly onto the LAN. This assumes there is a bridge device on the host which has one or more of the hosts physical NICs enslaved.”
”This is the recommended config for general guest connectivity on hosts with static wired networking configs. Provides a bridge from the VM directly onto the LAN. This assumes there is a bridge device on the host which has one or more of the hosts physical NICs enslaved.”
Rivi 99: Rivi 97:
     </ip>
     </ip>
   </network>
   </network>


Ladataan määritykset libvirtiin. Tämä luo automaattisesti sillan br0.
Ladataan määritykset libvirtiin. Tämä luo automaattisesti sillan br0.
Rivi 112: Rivi 112:
   -----------------------------------------
   -----------------------------------------
   bridge              aktiivinen no
   bridge              aktiivinen no


”An ethernet bridge is a device commonly used to connect different networks of ethernets together, so that these ethernets will appear as one ethernet to the participants. Each of the ethernets being connected corresponds to one physical interface in the bridge.”
”An ethernet bridge is a device commonly used to connect different networks of ethernets together, so that these ethernets will appear as one ethernet to the participants. Each of the ethernets being connected corresponds to one physical interface in the bridge.”
Rivi 118: Rivi 119:


  # brctl addif br0 eth0
  # brctl addif br0 eth0


Määritetään sillan route:
Määritetään sillan route:
  # route add -net 192.168.1.0 netmask 255.255.255.0 dev br0
  # route add -net 192.168.1.0 netmask 255.255.255.0 dev br0


Muut routet korjataan aiemmasta konfiguraatiosta. Ip 192.168.1.1 on sillan käyttämä gateway-osoite, ja tästä tehdään myös oletusgateway.
Muut routet korjataan aiemmasta konfiguraatiosta, tässä niiden määritykset:
   # route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
   # route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
   # route del default gw 192.168.1.1
   # route del default gw 192.168.1.1


Ohjataan 192.168.0.x-verkkoon (NAT2) menevät pyynnöt kulkemaan eth1:n kautta:
   # route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
   # route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1


Oletusreitti voi kulkea vain sisäverkkoon, (NAT2) tai dmz-verkkoon (NAT1). '''Oletusreittejä voi olla vain yksi!!'''
Oletusreitti voi kulkea vain sisäverkkoon, (NAT2) tai dmz-verkkoon (NAT1). '''Oletusreittejä voi olla vain yksi!!'''
   # route add default gw 192.168.1.1 br0 # NAT1, netti toimii
 
   # route add default gw 192.168.0.1 netmask 255.255.255.0 dev eth1 # NAT2, jutellaan vain suljetun sisäverkon kanssa
   # route add default gw 192.168.1.1 br0 # NAT1
   # route add default gw 192.168.0.1 netmask 255.255.255.0 dev eth1 # NAT2


Alla on reititystaulu, jossa isäntäkone on yhteydessä NAT1:een ja NAT2:een, pääsee vielä internetiinkin.
Alla on reititystaulu, jossa isäntäkone on yhteydessä NAT1:een ja NAT2:een, pääsee vielä internetiinkin.
Rivi 165: Rivi 168:
  except-interfaces=br0
  except-interfaces=br0


== Virtuaalikone A==
==Guest A==
Gentoo 2008.0 x86 [[live-cd]], ei käynnistä X:ää ja on kevyt testaukseen. Live-cd sisältää ssh-palvelimen.
Gentoo 2008.0 x86 livecd, ei käynnistä X:ää ja on kevyt testaukseen. Livecd sisältää ssh-palvelimen.
 
Jotta guest voi kytkeytyä siltaan, tarvitaan 'tun'-moduli. Ladataan myös virtualisointimodulit.
 
# modprobe tun
# modprobe kqemu
# modprobe kvm
 
Sitten käynnistetään guest:


   $ virt-install --connect=qemu:///system \
   $ virt-install --connect=qemu:///system \
Rivi 200: Rivi 211:
  eth0      Link encap:Ethernet  HWaddr 54:52:00:00:5A:C2   
  eth0      Link encap:Ethernet  HWaddr 54:52:00:00:5A:C2   
           inet addr:192.168.1.14  Bcast:192.168.1.255  Mask:255.255.255.0
           inet addr:192.168.1.14  Bcast:192.168.1.255  Mask:255.255.255.0


[[Luokka:Verkko]]
[[Luokka:Verkko]]
[[Luokka:Ohjeet]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetty malline: