Konfiguracja tunelu ipv6 z xs26 i revdns pod FreeBSD
0. WSTĘP
Postaram się w sposób łatwy i skuteczny przedstawic konfiguracje tunelu ipv6 do jednego
z węzłów sieci xs26.net pod systemem operacyjnym FreeBSD.
Potrzebne rzeczy:
1. system operacyjny FreeBSD 4.x ( w artykule 4.11-STABLE)
2. tunel ipv6
3. wydelegowana domena przypisana na nasz nameserver (NS)
4. named 8.3.7-REL (takiego użyłem w artykule)
5. ipv6 calc (bardzo pomocny dla mnie był skrypt na stronie www.satanbsd.org
1. JĄDRO
Jeśli użytkownik używa jądra GENERIC to nie musi nic robić. Standardowo w GENERIC-u są opcje odpowiedzialne za ipv6.
Jednak żeby nie było wątpliwości, wykonujemy następujące sprawdzenia:
pseudo-device gif # IPv6 and IPv4 tunneling
cat /usr/src/sys/i386/conf/GENERIC | grep faith
pseudo-device faith # IPv6-to-IPv4 relaying (translation)
cat /usr/src/sys/i386/conf/GENERIC | grep INET6
options INET6 # IPv6 communications protocols
ustawiamy zmienną:
oraz do /etc/rc.conf dodajemy:
2. TUNEL
Konfiguracja tunelu ze strony href="http://www.xs26.net">www.xs26.net (opcjonalnie www.tunnelbroker.net lub www.sixxs.net)
Otwieramy przeglądarkę i wpisujemy http://www.xs26.net/
Opiszę w skrócie co zrobić po kolei:
- przechodzimy do zakładki "Create new account" - wypełniamy odpowiednie pola
(jeśli wszystkie pola wypełniliśmy prawidłowo, dostaniemy maila z potwierdzeniem, że konto zostało utworzone")
- nastepnie logujemy się na nowo utworzone konto
- wypełniamy pola: "Tunnels" i "Zones"
- należy pamiętać o zakładce DNS na liście stref (tam podajemy swój NS.)
- jeśli wszystko zostało zrobione poprawnie, dostaniemy na maila informacje o naszym tunelu.
np.
Your username: Piotrek
Changed zone: 3ffe:80ee:277c::/48
IP address: nasz_IP
Thank you for using XS26.
XS26 - 'Access to IPv6'
A Zatem:
Ip POP-a : 195.250.159.83
Otrzymana siec : 3ffe:80ee:277c::/48
(Wybrałem pop-a o numerze ID 0101, ponieważ jest w miarę stabilny i czasy
dostępu były poniżej 100ms)
3. SKRYPT
Tworzymy skrypt startowy w basesystemie:
touch ipv6.sh
chmod +x ipv6.sh
pico ipv6.sh
#!/bin/sh
echo -n 'IPv6'
ifconfig gif0 create tunnel nasze_IP IP_POP-a up
ifconfig gif0 inet6 3ffe:80ee:277c::1 prefixlen 128
ifconfig xl0 inet6 3ffe:80ee:277c::1/128
route add -inet6 default -interface gif0
#Route6d
/usr/sbin/route6d
Zapisujemy wszystko.
(Można skorzystać ze skryptów oferowanych przez xs26 jednak nie polecam ich!)
Nie będę pisał co robią poszczególne polecenia. Dodam tylko, że xl0 jest interfejsem zewnętrznym.
(Jest to bardzo ważne! Przykładowo przy połączeniu z serwerem irc-owym
widoczny jest revdns, wiec jeśli coś zrobimy niepoprawnie, to zamiast adresu user@domena.pl będziemy mieli adres w postaci user@3ffe:80ee:277c::1)
Uruchamiamy skrypt:
sh ipv6.sh
i poleceniem ifconfig sprawdzamy czy został podniesiony interfejs gif0. Jeśli tak to sprawdzamy poprawność działania, jeśli nie to jeszcze raz sprawdzamy czy np. w skrypcie nie popełniliśmy jakiejś literówki.
testujemy:
Powinniśmy otrzymać coś takiego:
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/std-dev = 399.114/431.478/468.480/25.362 ms
Jeśli natomiast zobaczymy 100% packet loss to znak, że coś jest nie tak. Warto sprawdzić naszego firewalla. (tak było w moim przypadku ;)
Uruchamiamy skrypt firewalla: (w tym przypadku ipfw)
(przy założeniu, że w jądro wkompilowane są odpowiednie opcje)
4. NAMED
Teraz zabieramy się za konfigurację nameda. Musimy obliczyć revDNS naszego adresu.
Ja użyłem do tego adresu www.satanbsd.org
(Pozdrowienia dla autora ;)
Wpisujemy w formularz nasza siec: 3ffe:80ee:277c::/48 i otrzymujemy:
"c.7.7.2.e.e.0.8.e.f.f.3.ip6.int"
Jednak na stronie xs26.net możemy wyczytać, że prawidłowa forma jest arpa a nie int, dlatego że rekordy int nie są juz na niektórych serwerach obsługiwane, zatem zmieniamy.
Edytujemy plik /etc/namedb/named.conf i wpisujemy strefę odwrotna domeny:
zone "c.7.7.2.e.e.0.8.e.f.f.3.ip6.arpa"{
type master;
file "ipv6.rev";
allow-update { none; };
allow-query { any; };
};
oraz strefę prosta domeny:
np.
type master;
file "domena.pl";
allow-update { none; };
allow-query { any; };
notify yes;
};
zapisujemy i przechodzimy do utworzenia wyżej zadeklarowanych plików czyli: ipv6.rev i domena.pl.
touch ipv6.rev
pico ipv6.rev
powinien wyglądać tak:
@ IN SOA ns.domena.pl. root.domena.pl. (
2005010310 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns.domena.pl.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR domena.pl.
Wyjaśnię skąd się wzięło "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0" otóż
liczymy ile mamy wyrazów w "c.7.7.2.e.e.0.8.e.f.f.3.ip6.arpa" pomijając ip6.arpa
ja naliczylem 12. Zatem 32-12=20, dlatego 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
Nastepnie:
pico domena.pl
powinien wyglądać tak:
np.
$ORIGIN domena.pl.
@ IN SOA ns.domena.pl. root.domena.pl. (
2005010310 ; serial
10800 ; refresh
900 ; retry
2419200 ; expire
86400 ; minimum
)
IN NS ns.domena.pl.
@ IN AAAA 3ffe:80ee:277c::1
zapisujemy i restartujemy binda:
zerkamy jeszcze w logi
jeśli ujrzymy coś takiego:
CET 2004 user@domena.pl:/usr/obj/usr/src/usr.sbin/named
Jan 3 18:13:03 named[146]: Ready to answer queries.
...oznacza to, że skonfigurowaliśmy prawidłowo naszego nameda.
Jeżeli w logach jest coś innego, oznacza że popełniliśmy gdzieś błąd
(przewaznie logi informują, w której linii jest błąd)
5. TESTOWANIE
Aby sprawdzić czy nasz revDNS i DNS działa prawidłowo, testujemy nasze ustawienia na stronie
www.ipv6tool.com (POLECAM! bardzo
przydatne narzędzie :) )
Minimalny czas na rozejście się domeny to 48 godzin. Warto więc
odczekać.
Łączymy się na irc np. krakow6.irc.pl, warszawa6.irc.pl lub irc.xs26.net (te serwery oferują I:line na tunel z xs26.net)
Nie możemy zapomnieć, aby wkompilować w naszego klienta irc-owego obsługę ipv6.
np. BitchX ;)
cd /usr/ports/irc/bitchx/ && make WITH_IPV6=yes && make install clean
Warto przed kompilacją sprawdzić jaką wersję klienta irc-owego posiadamy. Przykładowo
BitchX-1.1 posiada opcję ipv6 domyślnie.
6. LITERATURA
7. ZAKOŃCZENIE
Wszelkie poprawki mile widziane: dr4n(at)wp(dot)pl
Przy tej konfiguracji tunel z xs26 jest stabilny i nie mam z nim większych problemów (w/pew krążącym opiniom)
To chyba wszystko :)
Jeśli ktoś miałby jakiś problem związany z konfiguracja, niech napisze, postaram się pomoc.
!!! Na maile w postaci: "...nie działa mi tunel! dlaczego?" nie odpowiadam z wiadomych względów !!!
9. PODZIĘKOWANIA
Podziękowania dla : Mateusza Guzika vel frag4 za mobilizację i wsparcie ;)
Poprawki: Krzysztof Stryjek vel wtp
Pozdrowienia dla : Kamilki (mojej niuni), Szatanusa i Swifta oraz dla
wszystkich z BSDGuru i kanalu #freebsd.pl
tytus, pt., 18/04/2008 - 19:57
