NetBSD IPv6 Howto


1. Wstęp

2. Obsługa IPv6 w NetBSD

3. Kernel

4. Wstępna konfiguracja

5. Uzyskanie tunelu

6. Konfiguracja tunelu

7. Konfiguracja DNS i RevDNS

8. Usługi IPv6

9. confv6


1. Wstęp

Dokument ten opisuje jeden ze sposobów na szybkie i bezproblemowe zaistnienie w testowej sieci opartej na protokole IP następnej generacji - IPv6; pokazuje on, jak szybko skonfigurować NetBSD do obsługi IPv6 poprzez tunel gif.

2. Obsługa IPv6 w NetBSD

NetBSD (od wersji 1.5) standardowo obsługuje protokół IPv6. Jeśli korzystamy z wcześniejszego wydania, możemy zastosować patche KAME (do pobrania z ftp://ftp.kame.net/). Jednak znacznie lepszym rozwiązaniem jest uaktualnienie swojego systemu co najmniej do najnowszej wersji z gałęzi 1.5.

3. Kernel

Standardowy kernel GENERIC standardowo zawiera niezbędne opcje do korzystania z IPv6. Potrzebne są następujące linijki:
options         INET6           # IPV6
pseudo-device   gif     4       # IPv[46] over IPv[46] tunnel (RFC1933)
device          faith   1       # IPv6-to-IPv4 relaying (translation)

4. Wstępna konfiguracja

Warto dodać następujące wpisy do pliku /etc/hosts:
::1             ipv6-localhost ipv6-loopback
fe00::0         ipv6-localnet
ff00::0         ipv6-mcastprefix
ff02::1         ipv6-allnodes
ff02::2         ipv6-allrouters
ff02::3         ipv6-allhosts

W pliku /etc/rc.conf powinniśmy ustawić zmienną ip6mode:

ip6mode=host			# host, autohost or router

5. Uzyskanie tunelu

Pierwszym krokiem będzie uzyskanie tunelu IPv6 od kogoś już wpiętego do sieci 6BONE (testowej sieci opartej na IPv6). W Polsce taki tunel można uzyskać np. z ICM'u

6. Konfiguracja tunelu

Po uzyskaniu niezbędnych danych (adresu IPv4 oraz IPv6 zdalnego końca tunelu, adresu IPv6 naszego końca tunelu, oraz długości prefixu) od administratora udostępniającego nam tunel, możemy dokonać konfiguracji u siebie:

/sbin/ifconfig gif0 tunnel ${Local_IPv4} ${Remote_IPv4}
/sbin/ifconfig gif0 inet6 ${Local_IPv6} ${Remote_IPv6} prefixlen ${Prefix_Len}
/sbin/route add -inet6 default ${Remote_IPv6}

7. Konfiguracja DNS i RevDNS

W poniższych przykładach zakładam, że dysponujemy domeną mydomain.pl oraz podsiecią 3ffe:8010:ff::/48.

Plik named.conf:

zone "ipv6.mydomain.pl" {
        type master;
        file "ipv6.mydomain.pl";
};

zone "f.f.0.0.0.1.0.8.e.f.f.3.ip6.int" {
        type master;
        file "ipv6-mydomain-rev";
};

Plik ipv6.mydomain.pl:

ipv6.mydomain.pl.    1D IN SOA       ns.mydomain.pl. root.mydomain.pl. (
                                        2000060900; serial
                                        4H              ; refresh
                                        1H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

ipv6.mydomain.pl.       1D IN NS        ns1
ipv6.mydomain.pl.       1D IN NS        ns2
jakishost                 1D IN AAAA	3ffe:8010:ff::2
Plik ipv6-mydomain-rev:

$TTL 3000
@ IN      SOA     ns.mydomain.pl. root.mydomain.pl. (
                                2000062003
                                14400
                                3600
                                1209600
                                86400 )

                IN      NS              ns1
                IN      NS              ns2

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN      PTR     z-ICM.ipv6.mydomain.pl.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN      PTR     jakishost.ipv6.mydomain.pl.

8. Usługi IPv6

Większość standardowych daemonów bezproblemowo działa po IPv6, wystarczy tylko uaktywnić odpowiednie wpisy w plku inetd.conf:

#	IPv6 services.
#	The only difference with the above is "tcp6" instead of "tcp".
#	Be sure to enable both "tcp" and "tcp6" when you need service for
#	both IPv4/v6.  Consult inetd(8) for details.
#
#ftp		stream	tcp6	nowait	root	/usr/libexec/ftpd	ftpd -ll
#telnet		stream	tcp6	nowait	root	/usr/libexec/telnetd	telnetd
#shell		stream	tcp6	nowait	root	/usr/libexec/rshd	rshd -L
#login		stream	tcp6	nowait	root	/usr/libexec/rlogind	rlogind -L
#finger		stream	tcp6	nowait	nobody	/usr/libexec/fingerd	fingerd
#tftp		dgram	udp6	wait	root	/usr/libexec/tftpd	tftpd -l -s /tftpboot

#
#	IPv6 RPC services.
#
#rstatd/1-3	dgram	rpc/udp6	wait:100	root	/usr/libexec/rpc.rstatd	rpc.rstatd
#rusersd/2-3	dgram	rpc/udp6	wait:100	root	/usr/libexec/rpc.rusersd rpc.rusersd

Większość narzędzi typu OpenSSH standardowo obsługuje IPv6.

9. confv6

Prosty skrypt shellowy ułatwiajacy uruchomienie statycznego tunelu IPv6 na FreeBSD/NetBSD/OpenBSD


[Powered by NetBSD] [Powered by XML+XSL] [Powered by vi]