Virtuaalikytkimien väliset erot
Oletuskytkin
Oletuksena Hyper-V määrittää kaikki virtuaalikoneet Oletuskytkimelle. Oletuskytkimen asetuksia ei voi muuttaa, eikä sitä voi poistaa. Se on nopea tapa tarjota Guest-koneille verkkoyhteys internettiin. Tällöin virtuaalikone on omassa verkossaan, mutta liikennöinti internettiin tapahtuu host-tietokoneen verkon kautta. Virtuaalikone ei kuitenkaan ole samassa verkossa host-koneen verkon kanssa, vaan verkkojen välinen liikenne tapahtuu NAT-osoitteenmuunnoksella.
Oma kotiverkkoni toimii verkossa 192.168.1.0/24, jossa koneeni ip-osoite on 192.168.1.5. Oletuskytkimen kanssa Xubuntu-virtuaalikoneeni käyttävät ip-osoitteita 172.24.33.243 ja 172.24.33.244 verkkomaskilla 255.255.255.240. Oletuskytkimen verkko on siis 172.24.33.240/28. IP-osoitetiedot tulevat automaattisesti DHCP:llä.
Allaolevasta kuvasta nähdään, että virtuaalikoneet pystyvät liikennöimään host-tietokoneen kotiverkkoon 192.168.1.0/24, omaan lähiverkkoonsa 172.24.33.240/28 sekä internettiin.
Samaten host-tietokone pingaa molempia virtuaalikoneita:
Host-tietokoneen samassa verkossa olevat laitteet eivät kuitenkaan pysty liikennöimään suoraan hostin Guest-koneille, sillä ne ovat NAT:n takana!
Virtuaalikoneiden asetuksien kautta voidaan valita, mitä kytkintä käytetään. Kytkimiä kuitenkin luodaan omasta Virtuaalikytkimien hallinta -toiminnosta:
Tällöin pitää valita kolmesta kytkintyypistä, ellei käytä oletuskytkintä:
- ulkoinen
- sisäinen
- yksityinen
Yksityinen virtuaalikytkin = Tässä kytkimessä kiinni olevat virtuaalikoneet pystyvät kommunikoimaan vain keskenään, eivät edes host-tietokoneen kanssa. Internettiin ei päästä, sillä yhteyttä host-tietokoneen fyysisen verkkoadapteriin ei ole.
Sisäinen virtuaalikytkin = Tässä kytkimessä kiinni olevat virtuaalikoneet pystyvät kommunikoimaan keskenään sekä host-tietokoneen kanssa virtuaalisen verkkoadapterin kautta. Internettiin ei päästä, sillä yhteyttä host-tietokoneen fyysiseen verkkoadapteriin ei ole.
Ulkoinen virtuaalikytkin = Tässä kytkimessä kiinni olevat virtuaalikoneet pystyvät kommunikoimaan keskenään sekä host-tietokoneen ja internetin kanssa host-koneen virtuaalisen verkkoadapterin kautta, joka on yhteydessä hostin fyysiseen verkkokorttiin ja LAN-verkkoon. Ulkoisessa virtuaalikytkimessä kiinni olevat virtuaalikoneet saavat IP-osoitteen DHCP:lla reitittimeltä.
Kuvaan seuraavissa vaiheissa kunkin kytkimen käyttöönoton ja konfiguroinnin. Tältä kuitenkin host-tietokoneen verkkosovittimet näyttivät luotuani kaikki kolme virtuaalikytkintä:
Tuosta näen, että Hyper-V ei luo host-tietokoneelle virtuaalista verkkosovitinta yksityistä virtuaalikytkintä varten, koska host-tietokoneen ei tarvitse kommunikoida virtuaalikytkimen verkon koneiden kanssa.
Sisäiselle virtuaalikytkimelle se kuitenkin luo verkkosovittimen, jotta virtuaalikoneet voivat kommunikoida host-tietokoneen kanssa. Verkkosovitin vEthernet (Sisäinen LAN) ei kuitenkaan kommunikoi host-tietokoneen fyysisen verkkokortin kanssa, eli virtuaalikoneilta ei ole pääsyä host-tietokoneen fyysiseen verkkoon.
Ulkoista virtuaalikytkintä varten Hyper-V loi virtuaalisen verkkosovittimen. Näen siitä, että se on yhdistetty kotini LAN-verkkoon “Pyhahima“. Se siis kommunikoi host-tietokoneen fyysisen verkkokortin kanssa ja LAN-verkon kanssa.
En lähde piirtämään selityskuvia tarkemmin, sillä altaro.com -sivuston Hyper-V-artikkelista löytyy hyvin kuvaava piirros eri virtuaalikytkimistä:
Artikkelissa on muutenkin hyvin lisätietoa: https://www.altaro.com/hyper-v/the-hyper-v-virtual-switch-explained-part-1/
Virtuaalikytkimen luominen
Yksityinen virtuaalikytkin
Loin uuden yksityisen virtuaalikytkimen, annoin sille nimen, kuvauksen ja viimeistelin sen luonnin painamalla ensin “Käytä” ja sitten “OK“.
Sitten menin virtuaalikoneeni Asetukset > Verkkosovitin ja valitsin virtuaalikytkimeksi luomani yksityisen kytkimen. Painoin “Käytä” ja sitten “OK“.
Koska virtuaalikone on nyt omassa LAN-verkossaan ilman DHCP-palvelinta, sillä ei myöskään ole vielä IP-osoitetta. Asetin VM:lle staattisen IPv4-osoitteen muokkaamalla sudoeditillä tiedostoa /etc/netplan/01-network-manager-all.yaml
# Static IP for VM network: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: no addresses: [192.168.1.1/24]
EDIT: Kohta renderer oli jännä, sillä tämän yksityisen verkkokytkimen verkossa asetin alunperin rendereriksi networkd. Se toimi hyvin molemmilla Xubuntu-virtuaalikoneilla. Myöhemmin kuitenkin havaitsin sisäistä verkkokytkintä käytettäessä, että toinen Xubuntu ei suostunut yhdistämään verkkoon, ennen kuin vaihdoin rendereriksi NetworkManagerin. Toinen taas käytti networkd:tä ilman ongelmia.
Korjasin sen nyt varmuudeksi myös tähän kohtaan NetworkManageriksi, sillä se ainakin toimii kaikissa yhteyksissä. Networkd on enemmän palvelimille suunnattu, kun taas työpöytäympäristössä käytetään NetworkManageria.
Tallensin tiedoston. Huomaa, että netplanin konfiguraatiotiedostot eivät käytä sisennyksissä tabulaattoria, vaan välilyöntejä. Typerää, mutta niin se vain on.
Otin konfiguraation käyttöön komennolla:
sudo netplan apply
Nyt, kun katsoin eth0-interfacen ip-osoitetietoja:
ifconfig eth0
Virtuaalikoneella oli nyt staattinen IP-osoite. Varmistin vielä yksityisen virtuaalikytkimen toimivuuden luomalla toisen Xubuntu-virtuaalikoneen. Asetin sen samaan virtuaalikytkimeen ja annoin sille myös netplanin kautta staattisen ip-osoitteen samasta verkosta.
Testasin koneiden välistä yhteyttä pingaamalla molemmista suunnista onnistuneesti:
Sisäinen virtuaalikytkin
Loin uuden sisäisen virtuaalikytkimen, annoin sille nimen, kuvauksen ja viimeistelin sen luonnin painamalla ensin “Käytä” ja sitten “OK“.
Sitten menin virtuaalikoneeni Asetukset > Verkkosovitin ja valitsin virtuaalikytkimeksi luomani sisäisen kytkimen. Painoin “Käytä” ja sitten “OK“.
Sisäistä virtuaalikytkintä käytettäessä host-tietokone ja virtuaalikoneet voivat kommunikoida keskenään. Olettaen toki, että niillä on IP-osoitteet samoista verkoista!
Asetin ensiksi host-koneen vEthernet (Sisäinen LAN) -verkkosovittimelle staattisen IP-osoitteen. Nopein tapa avata verkkosovittimien hallinta on painaa Win + R ja syöttää suorituskenttään:
ncpa.cpl
Sen jälkeen muokkasin sudoeditillä Xubuntu-virtuaalikoneen tiedostoa /etc/netplan/01-network-manager-all.yaml ja annoin staattisen IP:n samasta verkosta, kuin host-koneen adapterilla:
# Static IP for VM network: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: no addresses: [10.0.0.2/24]
Tein saman myös toiselle virtuaalikoneelle, mutta annoin IP-osoitteeksi 10.0.0.3/24.
Otin konfiguraatiot molemmilla koneilla käyttöön komennolla:
sudo netplan apply
Nyt, kun katsoin eth0-interfacen ip-osoitetietoja:
ifconfig
Host-tietokone onnistui pingaamaan molempia Guest-koneita:
Samaten Xubuntut saivat pingattua toisensa ja host-koneen:
Ulkoinen virtuaalikytkin
Loin uuden ulkoisen virtuaalikytkimen, annoin sille nimen ja kuvauksen. Koska ulkoisen virtuaalikytkimen kautta virtuaalikoneet pääset internettiin, tuli nyt valita se fyysinen verkkoadapteri, jonka kautta liikennöinti fyysiseen verkkoon tapahtuu. Valitsin host-koneeni ethernet-verkkokortin. Viimeistelin painamalla “Käytä” ja “OK“.
Sitten menin virtuaalikoneeni Asetukset > Verkkosovitin ja valitsin virtuaalikytkimeksi luomani ulkoisen kytkimen. Painoin “Käytä” ja sitten “OK“.
Käynnistin molemmat virtuaalikoneet ja katsoin eth0-interfacen ip-osoitetiedot:
ifconfig eth0
Molemmat koneet saivat suoraan kotiverkkoni DHCP-palvelimelta (reitittimeltä) IP-osoitteet. Testasin pingin kotiverkkoni reitittimelle, host-tietokoneelle, Guest-koneelta toiselle ja internettiin:
Virtuaalikoneet olivat nyt suoraan osa kotini LAN-verkkoa.