Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verzeNásledující verzeObě strany příští revize |
navody:vps:kvm [2016/12/06 10:29] – [Konfigurace sítě KVM na Debian 8] - Routování veřejné IPv4 do KVM virtuálu, veřejná IPv4 u VPS rene.la | navody:vps:kvm [2018/01/02 15:52] – označení první kapitoly Halis |
---|
| |
* Bridge – povolí vytvoření síťového bridge, do kterého následně připojíte KVM virtuály, | * Bridge – povolí vytvoření síťového bridge, do kterého následně připojíte KVM virtuály, |
| * TUN/TAP - povolí vytváření virtuálních interface, které jsou pak bridgovány, |
* iptables – povolí použití iptables, které jsou potřeba pro nastavení IP maškarády, | * iptables – povolí použití iptables, které jsou potřeba pro nastavení IP maškarády, |
* KVM – povolí použití KVM (pro HW podporu virtualizace). | * KVM – povolí použití KVM (pro HW podporu virtualizace). |
| |
===== KVM na Alpine Linuxu ===== | ===== KVM na Alpine Linuxu ===== |
| |
| ==== Instalace balíčků a konfigurace hypervizoru ==== |
| |
Nainstalujte potřebné balíčky (ip6tables je volitelný): | Nainstalujte potřebné balíčky (ip6tables je volitelný): |
apk update | apk update |
apk add qemu-system-x86_64 qemu-openrc qemu-img bridge iptables ip6tables | apk add qemu-system-x86_64 qemu-openrc qemu-img bridge iptables ip6tables |
| </code> |
| |
| Nastavte potřebná práva pro přístup ke KVM a TUN (do skupin //kvm// a //netdev// by měl patřit uživatel //qemu//, pod kterým bude běžet vytvořený virtuál): |
| |
| <code shell> |
| chown :kvm /dev/kvm |
| chmod g+rw /dev/kvm |
| chown :netdev /dev/net/tun |
| chmod g+rw /dev/net/tun |
</code> | </code> |
| |
<code shell> | <code shell> |
mkdir -p /var/lib/qemu/myvirt/ | mkdir -p /var/lib/qemu/myvirt/ |
qemu-img create -f raw /var/lib/qemu/myvirt/disk0.img 5G | qemu-img create -f raw /var/lib/qemu/myvirt/disk0.raw 5G |
chown qemu:qemu /var/lib/qemu/myvirt/disk0.img | chown qemu:qemu /var/lib/qemu/myvirt/disk0.raw |
chmod 0600 /var/lib/qemu/myvirt/disk0.img | chmod 0600 /var/lib/qemu/myvirt/disk0.raw |
</code> | </code> |
| |
<code shell> | <code shell> |
cd /etc/conf.d | cd /etc/conf.d |
cp qemu qemu.jarvis | cp qemu qemu.myvirt |
vi qemu.jarvis # read comments and edit | vi qemu.myvirt # read comments and edit |
</code> | </code> |
| |
</code> | </code> |
| |
| <note important> |
| Pokud máte problémy s tím, že při větším provozu na síťové kartě spadne ve virtuálu sít, skuste použít driver e1000 místo výchozího virtio-net-pci: |
| |
| <code shell>net0_device="e1000"</code> |
| |
| stabilitu je možno otestovat iperf-em, na testovanem stroji: |
| |
| <code shell>iperf -s</code> |
| |
| na hostiteli pak: |
| <code shell> |
| iperf -c 172.17.1.X -P 20 |
| </code> |
| </note> |
| |
==== Nastavení iptables ==== | ==== Nastavení iptables ==== |
<code shell> | <code shell> |
rmdir /etc/iptables | rmdir /etc/iptables |
wget -O /etc/iptables http://haste.fit.cvut.cz/raw/iwuqoso | wget -O /etc/iptables https://gist.githubusercontent.com/jirutka/3742890/raw/c9f6bdbfcf597578e562c92ea1e256a9ebcf3a2c/rules-both.iptables |
</code> | </code> |
| |
VPS má pouze privátní / lokální IPv4 adresu ''172.16.20.12'' / ''192.168.122.1'' a je z pohledu internetu za NATem v rámci sítě vpsfree.cz a není z internetu dostupná, kromě výše zmíněného portu 1022 (na veřejné IPv4 adrese ''185.8.164.43'' KVM virtuálu) pro přístup na SSH dané VPS. Pokud má VPS privátní IPv4 adresu ''172.16.20.12'' (rozsah v rámci sítě vpsfree.cz), má VPS IPv4 konektivitu do internetu. Pokud má VPS lokální IPv4 adresu ''192.168.122.1'' (rozsah v rámci sítě VPS ⇔ KVM virtuál), nemá VPS IPv4 konektivitu do internetu a není možné například stahovat a instalovat aktualizace přes IPv4 (pouze případně jen přes IPv6). | VPS má pouze privátní / lokální IPv4 adresu ''172.16.20.12'' / ''192.168.122.1'' a je z pohledu internetu za NATem v rámci sítě vpsfree.cz a není z internetu dostupná, kromě výše zmíněného portu 1022 (na veřejné IPv4 adrese ''185.8.164.43'' KVM virtuálu) pro přístup na SSH dané VPS. Pokud má VPS privátní IPv4 adresu ''172.16.20.12'' (rozsah v rámci sítě vpsfree.cz), má VPS IPv4 konektivitu do internetu. Pokud má VPS lokální IPv4 adresu ''192.168.122.1'' (rozsah v rámci sítě VPS ⇔ KVM virtuál), nemá VPS IPv4 konektivitu do internetu a není možné například stahovat a instalovat aktualizace přes IPv4 (pouze případně jen přes IPv6). |
| |
Nejprve je potřeba ve vpsAdminu, v detailu vaší VPS, ke vlastnostem Bridge, iptables a KVM také zapnout vlastnost: | <note warning>Nejprve je potřeba ve vpsAdminu (v detailu nastavení vaší VPS), zapnout / zkontrolovat vlastnosti: Bridge, iptables, KVM a TUN/TAP. |
| </note> |
* TUN/TAP - povolí možnost vytvoření virtuálního síťového rozhraní TUN/TAP. | |
Dále nakonfigurujte bridge ''br0'' pro KVM virtuál na straně VPS. Jelikož OpenVZ přepisuje soubor ''/etc/network/interfaces'', konfiguraci bridge ''br0'' přidáváme do ''interfaces.tail'', OpenVZ ji pak sám po restartu vloží do ''/etc/network/interfaces''. | Dále nakonfigurujte bridge ''br0'' pro KVM virtuál na straně VPS. Jelikož OpenVZ přepisuje soubor ''/etc/network/interfaces'', konfiguraci bridge ''br0'' přidáváme do ''interfaces.tail'', OpenVZ ji pak sám po restartu vloží do ''/etc/network/interfaces''. |
| |
address 172.16.20.12 | address 172.16.20.12 |
netmask 255.255.255.255 | netmask 255.255.255.255 |
mtu 1280 | |
bridge_ports venet0:0 | bridge_ports venet0:0 |
bridge_stp on | bridge_stp on |
VPS má vlastní veřejnou IPv4 adresu ''185.8.164.43'' a má plnou konektivitu z / do internetu přes veřejnou IPv4 adresu ''185.8.164.43'' (kromě portů směrovaných na služby KVM virtuálu). VPS má také lokální IPv4 adresu ''192.168.122.1'' (rozsah v rámci sítě VPS ⇔ KVM virtuál) která slouží jako brána pro NAT VPS. | VPS má vlastní veřejnou IPv4 adresu ''185.8.164.43'' a má plnou konektivitu z / do internetu přes veřejnou IPv4 adresu ''185.8.164.43'' (kromě portů směrovaných na služby KVM virtuálu). VPS má také lokální IPv4 adresu ''192.168.122.1'' (rozsah v rámci sítě VPS ⇔ KVM virtuál) která slouží jako brána pro NAT VPS. |
| |
Nejprve je potřeba ve vpsAdminu, v detailu vaší VPS, ke vlastnostem Bridge, iptables a KVM také zapnout vlastnost: | <note warning>Nejprve je potřeba ve vpsAdminu (v detailu nastavení vaší VPS), zapnout / zkontrolovat vlastnosti: Bridge, iptables, KVM a TUN/TAP.</note> |
| |
* TUN/TAP - povolí možnost vytvoření virtuálního síťového rozhraní TUN/TAP. | |
| |
Dále nakonfigurujte bridge ''br0'' pro KVM virtuál na straně VPS. Jelikož OpenVZ přepisuje soubor ''/etc/network/interfaces'', konfiguraci bridge ''br0'' přidáváme do ''interfaces.tail'', OpenVZ ji pak sám po restartu vloží do ''/etc/network/interfaces''. | Dále nakonfigurujte bridge ''br0'' pro KVM virtuál na straně VPS. Jelikož OpenVZ přepisuje soubor ''/etc/network/interfaces'', konfiguraci bridge ''br0'' přidáváme do ''interfaces.tail'', OpenVZ ji pak sám po restartu vloží do ''/etc/network/interfaces''. |
Například pomocí ''virt-manager'' vytvoříme KVM virtuál a nakonfigurujeme síťové rozhraní směřující na bridge ''br0'' VPS (důležité vybrat bridge ''br0''). Nastartujeme OS KVM virtuálu a v systému nakonfigurujeme jeho síť dle vzoru se správnými parametry (lokální IPv4 adresu KVM virtuálu si zvolíme dle použitého lokálního rozsahu v předchozích krocích, kde brána IPv4 je již zvolená IPv4 adresa pro bridge ''br0'', tedy lokální IPv4 adresa pro VPS OpenVZ kontejner): | Například pomocí ''virt-manager'' vytvoříme KVM virtuál a nakonfigurujeme síťové rozhraní směřující na bridge ''br0'' VPS (důležité vybrat bridge ''br0''). Nastartujeme OS KVM virtuálu a v systému nakonfigurujeme jeho síť dle vzoru se správnými parametry (lokální IPv4 adresu KVM virtuálu si zvolíme dle použitého lokálního rozsahu v předchozích krocích, kde brána IPv4 je již zvolená IPv4 adresa pro bridge ''br0'', tedy lokální IPv4 adresa pro VPS OpenVZ kontejner): |
<code shell> | <code shell> |
IP adresa: 192.168.122.2 | IP adresa: 192.168.122.2 |
Maska sítě: 255.255.255.0 | Maska sítě: 255.255.255.0 |
Brána: 192.168.122.1 | Brána: 192.168.122.1 |
VPS má vlastní veřejnou IPv4 adresu ''185.8.164.36''a má plnou konektivitu z / do internetu přes veřejnou IPv4 adresu ''185.8.164.36''. | VPS má vlastní veřejnou IPv4 adresu ''185.8.164.36''a má plnou konektivitu z / do internetu přes veřejnou IPv4 adresu ''185.8.164.36''. |
| |
Nejprve je potřeba ve vpsAdminu, v detailu vaší VPS, ke vlastnostem Bridge, iptables a KVM také zapnout vlastnost: | <note warning>Nejprve je potřeba ve vpsAdminu (v detailu nastavení vaší VPS), zapnout / zkontrolovat vlastnosti: Bridge, iptables, KVM a TUN/TAP.</note> |
| |
* TUN/TAP - povolí možnost vytvoření virtuálního síťového rozhraní TUN/TAP. | |
| |
Dále nakonfigurujte bridge ''br0'' pro KVM virtuál na straně VPS. Jelikož OpenVZ přepisuje soubor ''/etc/network/interfaces'', konfiguraci bridge ''br0'' přidáváme do ''interfaces.tail'', OpenVZ ji pak sám po restartu vloží do ''/etc/network/interfaces''. | Dále nakonfigurujte bridge ''br0'' pro KVM virtuál na straně VPS. Jelikož OpenVZ přepisuje soubor ''/etc/network/interfaces'', konfiguraci bridge ''br0'' přidáváme do ''interfaces.tail'', OpenVZ ji pak sám po restartu vloží do ''/etc/network/interfaces''. |
address 185.8.164.36 | address 185.8.164.36 |
netmask 255.255.255.255 | netmask 255.255.255.255 |
mtu 1280 | |
bridge_ports venet0:0 | bridge_ports venet0:0 |
bridge_stp on | bridge_stp on |
| |
A je hotovo. | A je hotovo. |
| |
| === * Routování veřejné IPv6 do KVM virtuálu, veřejná IPv6 u VPS === |
| |
| Tento návod byl otestován na VPS Debian 8 OpenVZ kontejneru, jako KVM virtuál byl použit systém Ubuntu 16.04.1 LTS x86_64. |
| |
| Máme veřejnou IPv6 adresu ''2a03:3b40:3::52'' a tu přidělíme KVM virtuálu a síťový provoz pro danou veřejnou IPv6 adresu ''2a03:3b40:3::52'' KVM virtuálu směrujeme přímo přes veřejnou IPv6 adresu ''2a03:3b40:3::47'' VPS na veřejnou IPv6 adresu ''2a03:3b40:3::52'' KVM virtuálu. KVM virtuál má plnou konektivitu z / do internetu přes veřejnou IPv6 adresu ''2a03:3b40:3::52''. |
| |
| VPS má vlastní veřejnou IPv6 adresu ''2a03:3b40:3::47'' a má plnou konektivitu z / do internetu přes veřejnou IPv6 adresu ''2a03:3b40:3::47''. |
| <note warning> |
| Následující návod předpokládá již provedení kroků konfigurace IPv4 pomocí jednoho z následujících postup v těchto odstavcích: |
| |
| * „Routování veřejné IPv4 přes lokální rozsah do KVM virtuálu, lokální IPv4 u VPS“, |
| |
| * „Lokální IPv4 adresa KVM virtuálu za NATem, veřejná IPv4 u VPS“ či |
| |
| * „Routování veřejné IPv4 do KVM virtuálu, veřejná IPv4 u VPS“ |
| |
| tohoto návodu výše. |
| |
| Bez těchto předchozích kroků nelze následující návod pro IPv6 použít v této formě! |
| </note> |
| |
| Do existujícího souboru ''/etc/network/interfaces.tail'' vložte následující kód za existující kódu pro definování IPv4 bridge ''br0'' (veřejnou IPv6 adresu VPS zvolíte správnou z aktuální nastavené konfigurace ve vpsAdminu): |
| <code shell> |
| iface br0 inet6 static |
| address 2a03:3b40:3::47 |
| netmask 128 |
| autoconf 0 |
| dad-attempts 0 |
| accept_ra 0 |
| </code> |
| |
| Do souboru ''/etc/network/interfaces.tail'' přidáme routování IPv6 rozsahu na rozhraní VPS tedy ''venet0'' a routování pro veřejnou IPv6 adresu KVM virtuálu na daný bridge ''br0''. |
| |
| Správný tvar pro rozsah IPv6 nalezneme ve vpsAdminu [[https://vpsadmin.vpsfree.cz/?page=networking&action=ip_addresses&list=1&limit=25&offset=0&v=0&vps=&network=0&ip_range=0&location=0|zde]] a danou veřejnou IPv6 adresu pro KVM virtuálu nastavíme správnou dle aktuální nastavené konfigurace ve vpsAdminu. |
| |
| Do souboru ''/etc/network/interfaces.tail'' přidáme řádky se správným rozsahem a správnou veřejnou IPv6 adresou pro KVM virtuál za předchozí kód: |
| <code shell> |
| up route -A inet6 add 2a03:3b40:3::/128 dev venet0 |
| down route -A inet6 del 2a03:3b40:3::/128 dev venet0 |
| up route -A inet6 add 2a03:3b40:3::52 dev br0 |
| down route -A inet6 del 2a03:3b40:3::52 dev br0 |
| </code> |
| |
| Povolíme předávání datagramů z jednoho síťového rozhraní na druhé (forwarding) a nastavíme DNS servery IPv6 sítě vpsfree.cz. Do souboru ''/etc/network/interfaces.tail'' přidáme řádky za výše uvedený kód: |
| <code shell> |
| post-up echo 1 > /proc/sys/net/ipv6/conf/all/forwarding |
| dns-nameservers 2a01:430:17:1::ffff:666 2a01:430:17:1::ffff:588 |
| </code> |
| |
| V systému KVM virtuálu nakonfigurujeme jeho síť dle vzoru se správnými parametry (veřejnou IPv6 adresu pro KVM virtuál jsme si již vybrali v předchozím kroku, zadáme stejnou a brána je IPv6 adresa již zvolená pro bridge ''br0'', tedy veřejná IPv6 adresa pro VPS OpenVZ kontejner): |
| <code shell> |
| IP adresa: 2a03:3b40:3::52 |
| Maska sítě: 128 |
| Brána: 2a03:3b40:3::47 |
| DNS servery: 2a01:430:17:1::ffff:666, 2a01:430:17:1::ffff:588 |
| </code> |
| |
| Soubor ''/etc/network/interfaces.tail'' uložíme a v tuto chvíli je nutné VPS tedy OpenVZ kontejner restartovat aby se daná nastavení v souboru ''interfaces.tail'' uplatnila a je hotovo. |
===== Kontakty ===== | ===== Kontakty ===== |
| |