IPv6 router útmutató
Ez az útmutató részleteket tartalmaz az IPv6 útválasztás beállításáról a Gentoo Linux operációs rendszeren.
Telepítés
Kernel
Bármely v2.6.0 verziójú kernel vagy annak újabb verziója támogatja az IPv6 protokollt.
root #
emerge --ask sys-kernel/gentoo-sources
[*] Networking support --->
Networking options --->
<M> The IPv6 protocol --->
Emerge
root #
emerge --ask sys-apps/iproute2
root #
emerge --ask net-misc/radvd
Az
ipv6
USE változót egyes szoftvercsomagok esetében engedélyezni kell, és hozzáadható a /etc/portage/make.conf fájlhoz.További szoftverek
Néhány szoftvercsomag kifejezetten az IPv6 elemek kezelésére szolgál. Ezek többsége a net-misc szoftvercsomag-kategóriában található.
Szoftvercsomag | Leírás |
---|---|
net-misc/radvd | Router hirdetése szolgáltatás. |
net-misc/dhcpd | ISC DHCP szerver, DHCPv4 és DHCPv6 képesség. |
net-misc/dibbler | DHCPv6 szerver |
net-misc/ipv6calc | IPv6 cím tömör formátumba történő átalakítása. |
dev-perl/Socket6 | A C socket.h IPv6 protokollhoz kapcsolódó része meghatározásokat és struktúramanipulátorokat tartalmaz. |
IPv6 állapotának megerősítése
Ha az IPv6 engedélyezve van, akkor a loopback eszköznek meg kell jelenítenie egy IPv6 címet.
root #
ip -6 addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet6 ::1/128 scope host valid_lft forever preferred_lft forever
Beállítás
Cím és előtag megszerzése
A dhcpcd használható egyetlen, kizárólag a host számítógépnek szánt, /128 IPv6 cím megszerzésére a WAN interfész számára, valamint egy /64 IPv6 előtag létrehozására a LAN interfész számára.
/etc/dhcpcd.conf
Egy IPv6 előtag kérése az eth0.lan és eth0.management számára, hogy nyilvánosan irányítható legyen az eth0.wan segítségével# Letiltja az útválasztó kérelmeket minden felületen, és csak a kiválasztottakon engedélyezi a noipv6rs -t.
# WAN VLAN interfész beállítása az eth0 interfészen.
interface eth0.wan
# Engedélyezi az útválasztó kérelmet ezen az interfészen.
ipv6rs
# Normál cím kérése az iaid 1 használatával az eth0.wan interfészhez.
ia_na 1
# Előtag kérése az iaid 2 használatával, és hozzárendelése az eth0.lan interfészhez az sla_id 0 és 64-es előtagméret használatával.
ia_pd 2 eth0.lan/0/64
Dhcpcd
Az RFC 6177 alig tekinthető ajánlásnak a lakossági internetszolgáltatók számára, ezért az előtagdelegálás nem biztos, hogy működik.
Továbbítás (forwarding) engedélyezése
Az IPv6 csomagtovábbítást engedélyezni kell a kernelben, mielőtt egy rendszer útválasztóként működhetne. Ez a sysctl használatával megvalósítható:
root #
sysctl -w net.ipv6.conf.all.forwarding=1
A később használt radvd inicializáló szkript engedélyezi (és letiltja) a továbbítást (a forwargingot), így a következő lépés felesleges.
Az IPv6-címek kliensekhez való hozzárendeléséhez az IPv6-specifikáció mindkét (az állapot nélküli és állapottartó ip-hozzárendelési) metódust lehetővé teszi. Az IPv6 állapot nélküli cím automatikus beállítása egy útválasztó hirdetésnek (Router Advertisement) nevezett folyamatot használ, és lehetővé teszi a kliensek számára, hogy egy interfész egyszerű előhívásával megkapják az IP-címet és az alapértelmezett útvonalat. "Stateless" -nek nevezik, mert nincs rekord a hozzárendelt IP-kről és a hozzárendelt host számítógépről. Az állapotalapú hozzárendelést a dhcpv6 kezeli. "Stateful"-t jelentő, mert a szerver megőrzi az IP-t kérő és azokat fogadó kliensek állapotát.
Az IPv6 Stateless Address Autoconfiguration beállítja az IP-útválasztást és a kapcsolódást, míg a DHCPv6 szükséges az IPv6 címek kiosztásához, valamint olyan információk biztosításához, mint a DNS-szerverek.
Állapot nélküli (stateless) beállítás
Az állapot nélküli beállítás egyszerűen megvalósítható a Router Advertisement Daemon, vagyis radvd használatával:
A /etc/radvd.conf fájl a radvd beállítására szolgál, és alapértelmezés szerint nincs létrehozva. Ha az IPv6 előtag beállítása üresen marad, akkor a már hozzárendelt vagy beállított IPv6 előtag kerül felhasználásra.
/etc/radvd.conf
Útválasztó hirdetési (Router Advertisement, RA) beállítás az eth0.lan interfészhezinterface eth0.lan
{
# Engedélyezi a hirdetések küldését ezen az interfészen.
AdvSendAdvert on;
# Beállítja a Managed zászlót, lehetővé téve a DHCPv6 használatát (opcionális).
AdvManagedFlag on;
# Meghatározza az előtag-specifikus beállításokat a hozzárendelt előtag alapján.
prefix ::/64
{
# Hirdetés küldése, amikor ez a kapcsolat aktívvá válik.
AdvOnLink on;
# Hirdesse az RFC 4862 szabvány megfelelőségét.
AdvAutonomous on;
};
};
Az útválasztó hirdetések (Router Advertisements, RA) időszakosan elküldésre kerülnek az eth0.lan interfészen az összes csomópont multicast címére, egy LAN-hoz csatlakoztatott interfész használatával.
További információ elérhető a man radvd.conf dokumentációban.
Stateful beállítás
A Dibbler projekt lezárult.
Az stateful beállítás érdekében telepítse a net-misc/dibbler szoftvercsomagot.
root #
emerge --ask dibbler
Állítsa be a Dibbler klienst a /etc/dibbler/client.conf fájl szerkesztésével.
iface ppp0 {
rapid-commit yes
pd
option dns-server
}
Most már indítsa el a dibbler klienst, és állítsa be úgy, hogy a bootoláskor elinduljon:
root #
/etc/init.d/dibbler-client start
root #
rc-update add dibbler-client default
Szolgáltatás
OpenRC
A radvd elindításához és az automatikus indítás beállításához:
root #
/etc/init.d/radvd start
root #
rc-update add radvd default
DNS beállítása
IPv6 és DNS
Ahogyan a DNS az IPv4 esetén A rekordokat használ, úgy az IPv6 esetén AAAA rekordokat alkalmaz. (Ez azért van, mert az IPv4 címterülete 2^32, míg az IPv6 címterülete 2^128.) A fordított DNS (reverse DNS) esetében az INT szabvány elavult, de még mindig széles körben támogatott. Az ARPA a legújabb szabvány. Az ARPA formátum támogatását itt ismertetjük.
BIND beállítása
A BIND legújabb verziói kiváló IPv6 támogatást tartalmaznak. Ez a szakasz legalább minimális ismereteket feltételez a BIND beállításáról és használatáról. Feltételezzük, hogy a BIND nem egy chroot környezetben fut. Ha ez a feltételezés téves, akkor egyszerűen adja hozzá a chroot előtagot a következő szakaszban szereplő legtöbb elérési úthoz.
Először adja hozzá a bejegyzéseket mind az forward, mind a reverse DNS zónafájlokhoz a /etc/bind/named.conf fájlban.
/etc/bind/named.conf
A named.conf fájl bejegyzései## (Engedélyezzük, hogy a BIND figyelje az IPv6 címeket.
## Az 'any' használata az egyetlen módja ennek a bind-9.3 előtti verziókban.)
options {
[...]
listen-on-v6 { any; }
[...]
};
## (Ez biztosítja az forward DNS-t az 'ipv6-rules.com' domén számára:)
zone "ipv6-rules.com" IN {
type master;
file "pri/ipv6-rules.com";
};
## (Ez a formátum a reverse DNS-hez "bitwise". Az IPv6 előtagot vesszük,
## megfordítjuk a számok sorrendjét, és minden szám közé pontot helyezünk.)
zone "6.9.2.0.0.0.f.1.0.7.4.0.1.0.0.2.ip6.arpa" {
type master;
file "pri/rev-ipv6-rules.com.arpa";
};
Mostantól minden host számítógéphez hozzá kell adni a zónafájlokat és bejegyzéseket:
/etc/bind/pri/ipv6-rules.com
$TTL 2h
@ IN SOA ipv6-rules.com. webmaster.ipv6-rules.com. (
2003052501 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
NS ns1.ipv6-rules.com
IN AAAA 2001:470:1f00:296::1 ; address for ipv6-rules.com
host1 IN AAAA 2001:470:1f00:296::2 ; address for host1.ipv6-rules.com
host2 IN AAAA 2001:470:1f00:296::3:3 ; address for host2.ipv6-rules.com
/etc/bind/pri/ipv6-rules.com.arpa
$TTL 3d ; Default TTL (bind 8 needs this, bind 9 ignores it)
@ IN SOA ipv6-rules.com. webmaster.ipv6-rules.com. (
2003052501 ; Serial number (YYYYMMdd)
24h ; Refresh time
30m ; Retry time
2d ; Expire time
3d ) ; Default TTL
IN NS ns1.ipv6-rules.com.
; IPv6 PTR entries
$ORIGIN 6.9.2.0.0.0.f.1.0.7.4.0.1.0.0.2.ip6.arpa.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ipv6-rules.com.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR host1.ipv6-rules.com.
3.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0 IN PTR host2.ipv6-rules.com.
DJBDNS beállítás
Jelenleg elérhetők bizonyos harmadik fél által készített javítások a net-dns/djbdns szoftvercsomaghoz, amelyek lehetővé teszik az IPv6 névkiszolgálást. A DJBDNS ezekkel a javításokkal telepíthető az ipv6
USE jelölőzászlóval történő forráskód lefordítása során.
Ezekkel a javításokkal még nem támogatott minden rekordtípus. Különösen az NS és MX rekordok nem támogatottak.
root #
emerge --ask net-dns/djbdns
Miután a DJBDNS telepítésre került, a tinydns-setup futtatásával lehet beállítani. Néhány kérdésre kell válaszolni, például hogy mely IP-címekhez kell kötni, hol kell telepíteni a tinydns-t stb.
root #
tinydns-setup
Feltételezve, hogy a tinydns telepítésre került a /var/tinydns könyvtárba, szerkessze a /var/tinydns/root/data fájlt. Ez a fájl tartalmazza az összes szükséges adatot ahhoz, hogy a tinydns kezelje az IPv6 delegáció DNS-ét.
## (*.ipv6-rules.com is authoritatively handled by 192.168.0.1)
.ipv6-rules.com:192.168.0.1:a:259200
## (Authoritative reverse DNS for 2001:470:1f00:296::/64)
.6.9.2.0.0.0.f.1.0.7.4.0.1.0.0.2.ip6.arpa:192.168.0.1:a
## (Specify the IPs for host1 and host2)
6host1.ipv6-rules.com:200104701f0002960000000000000001:86400
6host2.ipv6-rules.com:200104701f0002960000000000000002:86400
## (Point www to host1)
3www.ipv6-rules.com:200104701f0002960000000000000002:86400
Azok a sorok, amelyek 6
előtaggal kezdődnek, mind AAAA, mind PTR rekordot létrehoznak. Azok, amelyek 3
előtaggal kezdődnek, csak AAAA rekordot hoznak létre. A data fájl manuális szerkesztése mellett lehetséges az új bejegyzések hozzáadása a add-host6 és add-alias6 szkriptek segítségével. Miután módosításokat végeztek a data fájlban, egyszerűen futtassa a make
parancsot a /var/tinydns/root könyvtárban. Ez létrehozza a /var/tinydns/root/data.cfb fájlt, amelyet a tinydns információforrásként használ a DNS lekérdezésekhez.
IPv6 kliensek
A radvd használata
Az e mögött a router mögött lévő kliensszámítógépeknek most képesnek kell lenniük az IPv6-on keresztül csatlakozni a hálózat többi részéhez. Ha radvd-t használ, a host számítógépek beállítása olyan egyszerű lehet, mint az interfész aktiválása. (Ez valószínűleg már megtörtént a net.ethX init szkriptek által.)
root #
ip link set eth0 up
root #
ip addr show eth0
1: eth0: <BROADCAST,MULTICAST,UP> mtu 1400 qdisc pfifo_fast qlen 1000 link/ether 00:01:03:2f:27:89 brd ff:ff:ff:ff:ff:ff inet6 2001:470:1f00:296:209:6bff:fe06:b7b4/128 scope global valid_lft forever preferred_lft forever inet6 fe80::209:6bff:fe06:b7b4/64 scope link valid_lft forever preferred_lft forever inet6 ff02::1/128 scope global valid_lft forever preferred_lft forever
Ha ez nem működik, akkor győződjön meg róla, hogy az IPv6 tűzfal engedélyezi az ICMPv6 csomagok áthaladását.
root #
ip6tables -A INPUT -p icmpv6 -j ACCEPT
Hibaelhárítás
Szoftvercsomagból hiányzik az IPv6 támogatás
A szoftvercsomagok általában az ipv6
USE jelölőzászlóval vannak a forráskódból lefordítva bináris futtatható kódra, de ha az IPv6 nem működik egy adott programon, akkor az első lépésként érdemes ellenőrizni, hogy ezzel a jelölőzászlóval lett-e létrehozva a szoftvercsomag.
Nincs akadálya annak, hogy az
USE="ipv6"
beállítást hozzáadja a /etc/portage/make.conf fájlhoz, de ez gyakran szükségtelen.Egyes szoftvercsomagok tévesen automatikusan érzékelik az IPv6 támogatást, ezért nincs ipv6 USE jelölőzászlójuk. Emiatt nem minden szoftvercsomag fogja ténylegesen támogatni az IPv6 protokollt, ha nem egy IPv6-kompatibilis kernellel lett lefordítva.
További olvasnivaló a témában
- IPv6 — the most recent version of the Internet Protocol (IP)
- IPv6 tunnels
Külső források
Számos kiváló online forrás érhető el az IPv6 témájában.
- www.ipv6.org - General IPv6 information
- www.linux-ipv6.org/ - USAGI project
- www.deepspace6.net - Linux/IPv6 site
- www.kame.net - *BSD implementation
- RFC 4861 - Neighbor Discovery for IP version 6 (IPv6)
- RFC 4862 - IPv6 Stateless Address Autoconfiguration
Az IRC-n próbálja ki az #ipv6 (webchat) csatornát a Libera.Chat hálózaton. Csatlakozzon a Libera.Chat szerverekhez egy IPv6-képes klienssel az irc.ipv6.libera.chat címen.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Peter Johanson, Jorge Paulo, Camille Huot, Pasi Valminen, , Markos Chandras (Hwoarang)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.