Šis straipsnis ribojasi tik pateikiant jums atitinkamus „Linux“ komandų pavyzdžius, kurie iliustruoja bendras koncepcijas.
Įvadas
Visi skiriami ir virtualūs serveriai turi IPv4 adresą ir /64 IPv6 subnetaą.
Papildomus IPv4 adresus galite užsisakyti klientų erdvėje.
Pagrindinis adresas
Pagrindinis serverio IPv4 adresas yra adresas, kuris pradinėje įdiegimo konfigūracijoje priskiriamas serveriui.
Dėl IPv6 nėra aiškiai apibrėžtas pagrindinis adresas. Automatinio diegimo atveju priskiriamame subnetyje yra sukonfigūruotas ::2
.
Susijungusiais pagrindiniais serveriais ir CX linijos virtualiais serveriais IPv6 subnetaas nukreipiamas į tinklo adapterio vietinio ryšio adreso link-local. Jei užsisakėte papildomus vienus IPv4 adresus su savo MAC adresais, tuomet IPv6 subnetaą galite nukreipti į jų link-local adresą naudodami klientų erdvę.
Partikularus link-local adresas yra apskaičiuojamas iš MAC adreso naudojant RFC 4291 ir yra automatiškai sukonfigūruotas:
# ip address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 54:04:a6:f1:7b:28 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5604:a6ff:fef1:7b28/64 scope link
valid_lft forever preferred_lft forever
Su senesniais virtualių serverių modeliais (VQ/VX linijos), /64 IPv6 subnetaas nukreipiamas. Tai yra vietinis tinklas, kuriame ::1
subnetyje naudojamas kaip šaltinis. (Žr. žemiau).
Žemiau, <10.0.0.2>
naudojamas kaip pagrindinis IPv4 adresas pavyzdyje. Tai nėra tikras IP adresas.
Papildomi adresai
Tiek individualūs adresai, tiek adresai iš subnetų dažniausiai nukreipiami per pagrindinį IP adresą. Tolimesniam šio vadovo skaitymui, priimsime, kad turite šiuos papildomus adresus/tinklus:
<2001:db8:61:20e1::/64>
(IPv6 subnetas)<10.0.0.8>
(vienas adresas)<203.0.113.40/29>
(IPv4 subnetas)
Jūs galite toliau dalintis, persiųsti arba priskirti skiriamus subnetus pagal savo nuostatas.
Su IPv4 tinklu ir transliacijos adresais įprastai rezervuojami. Remiantis pateiktu pavyzdžiu, tai būtų IP <203.0.113.40>
ir <203.0.113.47>
. Jūs galite naudoti šiuos adresus kaip antrinį IP arba kaip taško-iš-taško sąrankos dalį. Dėl to /29 subnete visi 8 IP yra naudojami, o ne tik 6.
IPv6 atveju subneto pirmasis adresas (::0
) yra rezervuotas kaip „Subnet-Router anycast“ adresas. IPv6 nenaudoja transliacijos adreso, todėl galimas ir paskutinis adresas (priešingai nei IPv4).
Vartai
IPv6 dedikuotiems pagrindiniams serveriams ir virtualiems serveriams iš CX linijos vartai yra fe80::1
. Kadangi tai yra vietinio ryšio adresas, būtina nurodyti tinklo adapterį (dažniausiai eth0
):
# ip route add default via fe80::1 dev eth0
Su senesniais virtualių serverių modeliais (VQ/VX linijos), vartai yra priskirtame subnetyje:
# ip address add 2001:db8:61:20e1::2/64 dev eth0
# ip route add default via 2001:db8:61:20e1::1
IPv4 atveju vartai yra kiekvieno subnetyje pirmas naudojamas adresas:
# Pavyzdys: 10.0.0.2/26 => Tinklo adresas yra 192.0.2.64/26
#
# ip address add 10.0.0.2/32 dev eth0
# ip route add 192.0.2.65 dev eth0
# ip route add default via 192.0.2.65
Atskiros adresai
Jūs galite sukonfigūruoti priskirtus adresus kaip papildomus adresus tinklo adapteriuje. Kad IP adresai būtų vis dar sukonfigūruoti po paleidimo, turite pritaikyti atitinkamus operacinės sistemos/distribucijos konfigūracijos failus. Daugiau informacijos rasite Debian/Ubuntu ir CentOS puslapiuose.
Pridėti (papildomą) IP adresą:
ip address add 10.0.0.8/32 dev eth0
Arba jis gali būti persiunčiamas viduje serveryje (pvz., virtualiems kompiuteriams):
ip route add 10.0.0.8/32 dev tap0
# arba
ip route add 10.0.0.8/32 dev br0
Atitinkami virtualieji kompiuteriai turi naudoti pagrindinį serverio IP adresą kaip numatytąjį tinklo vartą.
ip route add 10.0.0.2 dev eth0
ip route add default via 10.0.0.2
Kai perduodamas IP, įsitikinkite, kad įgalinote IP peradresavimą:
sysctl -w net.ipv4.ip_forward=1
Jeigu Robotu sukonfigūravote atskirą MAC adresą IP adresui, tada turite naudoti atitinkamą IP adreso vartą.
Subnetai
Šviežiai priskirti IPv4 subnetai yra statinai maršrutizuojami pagrindinio serverio IP adreso pagalba, todėl nereikia vartų.
Jūs galite priskirti IP kaip antrinius adresus tinklo adapteriams, panašiai kaip vienus papildomus IP adresus:
ip address add 203.0.113.40/32 dev eth0
Jūs galite juos persiųsti individuliai arba kaip visumą:
ip route add 203.0.113.40/29 dev tun0
# arba
ip route add 203.0.113.40/32 dev tap0
Skirtingai nei su vienetais IP, taip pat galite priskirti subneto IP (virtualiems kompiuteriams) naudodami DHCP. Todėl turite sukonfigūruoti adresą iš subneto pagrindiniame sistemos serveryje:
ip address add 203.0.113.41/29 dev br0
Hostai „br0“ naudoja šį adresą kaip vartą. Skirtingai nei vienetais IP, tada taikomos subneto taisyklės; pavyzdžiui, negalite naudoti tinklo ir skelbimo IP adresų.
Dėl IPv6, subneto maršrutizavimas per vietinio ryšio adresą sukelia daug galimybių subneto tolesniam suskaidymui į įvairias dydžių dalis (/64 iki /128). Pavyzdžiui:
2a01:04f8:0061:20e1:0000:0000:0000:0000
│ │ │ │
│ │ │ └── /112 Subnetas
│ │ │
│ │ └── /96 Subnetas
│ │
│ └── /80 Subnetas
│
└── /64 Subnetas
Prieš persiunčiant subnetus, įsitikinkite, kad persiuntimas yra aktyvus:
sysctl -w net.ipv6.conf.all.forwarding=1 net.ipv4.ip_forward=1
Jūs galite persiųsti visą subnetą (pvz., VPN):
ip route add 2001:db8:61:20e1::/64 dev tun0
Arba tik dalį:
ip route add 2001:db8:61:20e1::/80 dev br0
Iš vieno subneto galite išgauti atskirus adresus ir likučius persiųsti. Atkreipkite dėmesį į prefikso ilgį:
ip address add 2001:db8:61:20e1::2/128 dev eth0
ip address add 2001:db8:61:20e1::2/64 dev br0
Hostai „br0“ parodys <2001:db8:61:20e1::2>
kaip vartą.
SLAAC (IPv6)
Be to, galite naudoti SLAAC (Stateless Address Autoconfiguration
) prijungtuose kompiuteriuose (br0
), įdiegę radvd
serveryje. Konfigūracija /etc/radvd.conf
priima sąlygą, kad serveris turi adresą iš <2001:db8:61:20e1::>
tinklo ar TAP įrenginio:
interface tap0
{
AdvSendAdvert on;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix 2001:db8:61:20e1::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
RDNSS 2001:db8:0:a0a1::add:1010
2001:db8:0:a102::add:9999
2001:db8:0:a111::add:9898
{
};
};
Todėl kompiuteriai automatiškai gaus maršrutus ir adresus iš subneto. Tai matyti kompiuteriuose:
$ ip address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:0a:c5:b2 brd ff:ff:ff:ff:ff:ff
inet6 2001:db8:61:20e1:38ad:1001:7bff:a126/64 scope global temporary dynamic
valid_lft 86272sec preferred_lft 14272sec
inet6 2001:db8:61:20e1:a00:27ff:fe0a:c5b2/64 scope global dynamic
valid_lft 86272sec preferred_lft 14272sec
inet6 fe80::a00:27ff:fe0a:c5b2/64 scope link
valid_lft forever preferred_lft forever
(Matyti čia: privatumo adresas, SLAAC adresas iš subneto ir RFC 4291 vietinio ryšio adresas.)
Naudoti virtualizaciją su maršrutizuojamu metodu
routed
metode konfigūruojamas naujas tinklo sąsaja serveryje, prie kurios prisijungia vienas arba daugiau virtualių mašinų (VM). Serveris pats veikia kaip maršrutizatorius, iš čia ir pavadinimas.
Routed metodo privalumas yra tas, kad srautas turi eiti per serverį. Tai naudinga diagnostikos įrankiams (tcpdump
, traceroute
). Tai taip pat būtina, norint naudoti serverio užkardą, kuri atlieka filtravimą VM.
Kai kurioms virtualizacijos sprendimams sukuriamas tinklo sąsajos vienetas (pvz., Xen ir LXC), galbūt jums reikės juos sujungti su virtualiajai jungtimi (pvz., per tiltelio ar TAP sąsają).
- Xen: Kiekvienai domU sukuriamas sąsajos vifM.N (deja, su dinaminiais numeriais) dom0. Šioms sąsajoms galima priskirti adresus. Alternatyviai galite sujungti VIF į segmentą naudodami tilto sąsają; tai galima padaryti naudojant
vif=['mac=00:16:3e:08:15:07,bridge=br0',]
nurodymus/etc/xen/vm/meingast.cfg
. - VirtualBox: Svečiai yra susieti su esama TAP sąsaja ir formuoja segmentą kiekvienai TAP įrenginiui. Sukurkite TAP sąsajas pagal savo distribuciją. Vienos mašinos nustatymų dialogo langelyje pasirinkite:
Network
>Attached to: Bridged Adapter
. Pavadinimas:tap0
. - VMware Server/Workstation: Naudodami savo VMware programas, sukurkite host-only sąsają (pvz., vmnet1) ir pridėkite adresų sritį. Priskirkite VM šiai sukurtaei host-only sąsają.
- Linux Containers (LXC, systemd-nspawn, OpenVZ): Kiekvienam konteineriui tėvynėje atsiranda sąsajos ve-… Galima priskirti adresus šioms sąsajoms. Alternatyviai galite sujungti VE sąsajas su tilto sąsaja.
- QEMU: Naudoja TAP, panašiai kaip VirtualBox.
Naudoti virtualizaciją su tiltelio metodu
Bridged metodas aprašo konfigūraciją, leidžiančią virtualiai mašinai būti sujungtai tiesiogiai su prisijungusiu tinklu kaip ir fizinė mašina. Tai galima tik su vienkartinėmis IP adresais. Subnetai visada yra maršrutizuojami.
Bridged sprendimo privalumas yra tas, kad tinklo konfigūraciją paprasta įgyvendinti, nes nereikia maršrutizavimo taisyklių ar taško-prie-taško konfigūracijos. Trūkumas yra tas, kad svečio sistemos MAC adresas tampa „matomas“ iš išorės. Todėl kiekvienam individualiam IP adresui turite suteikti virtualų MAC adresą, ką galite padaryti kliento srityje. Tada IPv6 subnetą turite maršrutizuoti per šį naują MAC adresą (Robot piktograma šalia subneto leidžia tai padaryti).
- VMware ESX: ESX sukuria tiltą į fizinį adapterį, ant kurio pakabintas VM branduolys, ir kurį galite pririšti prie kitų VM (pvz., maršrutizatoriaus VM, vykdančios tikrąją operacinę sistemą). ESX galite apibrėžti papildomus virtualius jungtinius, kurie tada per kitas NIC yra prieinami maršrutizatoriaus VM.
- Kiti virtualizacijos sprendimai leidžia naudoti tiltelio režimą, tačiau dėl paprastumo naudosime paprastesnį maršrutizavimo metodą, kadangi jis taip pat lengviau atpažįstamas ir paprasčiau atspindėti (pvz., mtr/traceroute). Tik ESX tikrai reikalauja tiltelio režimo.
- Šiuo metu tiltelio režimui naudojama sysctl funkcija
net.ipv4.conf.default.proxy_arp=1
(pvz., su Xen).