Dziś w menu podajemy "Dodanie i skonfigurowanie tunelu IPV6 (z xs26.net) oraz konfiguracja RevDNS (bind)", czyli postaram się w sposób łatwy i skuteczny przedstawić konfiguracje tunelu ipv6 do jednego z węzłów sieci xs26.net pod systemem operacyjnym OpenBSD. Po co? Np. żeby się czegoś pożytecznego nauczyć. Mieć fajne vhosty do ircowania (z umiarem). Oferować usługi sieciowe na swoim serwerze poprzez protokół v4 i v6. Gdzie? Opisywane zabiegi, były przeprowadzone przeze mnie na następujących obiektach: * OpenBSD 3.6 STABLE * BIND 9.2.3 Jak? Ok, zakładamy, że OpenBSD użytkują ludzie troszkę bardziej doświadczeni i pewni tego co robią. Edytujemy więc plik /etc/rc.conf, szukamy wpisów i je ustawiamy tak jak poniżej: (OpenBSD ma obsługę IPv6 włączoną domyślnie). rtadvd_flags="gif0" route6d_flags="" rtsold_flags=NO (gif0 to nasze pesudodevice). Następnie edytujemy plik /etc/sysctl.conf i odznaczamy wpis: net.inet6.ip6.forwarding=1 # 1=Permit forwarding (routing) of packets Jeżeli jeszcze nie mamy konta (a więc i przydzielonej puli adresowej) na xs26.net (Nic nie stoi na przeszkodzie by konfigurować tunel od innego tunnelbrokera), rejestrujemy się tam. Proces rejestracji jest tak banalny i łatwy, że go pomijam. W mailu od xs26 otrzymujemy potrzebne informacje: (...) Your username: nasz_username Changed zone: 3ffe:80ee:1f1e::/48 IP address: 212.33.82.196 (...) Możemy więc przystąpić do stawiania tunelu. Ułatwieniem sobie życia będzie stworzenie prostego skryptu i wrzucenie go do /etc/rc.local. U mnie wygląda to tak: #!/bin/sh MV4="212.33.82.196" # nasz adres ipv4 PV4="212.14.4.4" # adres PoP'a MV6="3ffe:80ee:1f1e::1" # pierwszy adres z przydzielonej puli DEVICE="gif0" # interfejs naszego tunelu ifconfig $TUNLIF tunnel $MV4 $PV4 up route add -inet6 default fe80::%$DEVICE ifconfig $DEVICE inet6 $mv6 prefixlen 128 #Tworzymy sobie parę aliasów ifconfig $DEVICE inet6 3ffe:80ee:1f1e::2 prefixlen 128 ifconfig $DEVICE inet6 3ffe:80ee:1f1e::3 prefixlen 128 ifconfig $DEVICE inet6 3ffe:80ee:1f1e::4 prefixlen 128 ############ # Odpalamy jeszcze route6d i rtadvd podając jako parametr nasz interfejs /usr/sbin/route6d /usr/sbin/rtadvd $DEVICE Gdy już sobie go zapiszemy - odpalamy go i sprawdzamy wynik. # ping6 -c4 ipv6.ircnet.pl PING6(56=40+8+8 bytes) 3ffe:80ee:1f1e::1 --> 3ffe:8010:7:108::3 16 bytes from 3ffe:8010:7:108::3, icmp_seq=0 hlim=61 time=155.286 ms 16 bytes from 3ffe:8010:7:108::3, icmp_seq=1 hlim=61 time=169.454 ms 16 bytes from 3ffe:8010:7:108::3, icmp_seq=2 hlim=61 time=104.246 ms 16 bytes from 3ffe:8010:7:108::3, icmp_seq=3 hlim=61 time=132.103 ms --- ipv6.ircnet.pl ping6 statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 104.246/140.272/169.454/24.706 ms Tunel śmiga. Jeżeli jednak nie pinguje to może być to wina restrykcji na firewallu. Ja dodałem następujące regułki: #### makra ipv6_if = "gif0" ipv6_net = "{ 3ffe:80ee:1f1e:0:0:0:0:0/48 }" ipv6_pop = "212.14.4.4" #### Regulki pass out on $ext_if inet proto ipv6 from $ext_if to $ipv6_pop keep state pass in on $ext_if inet proto ipv6 from $ipv6_pop to $ext_if keep state pass out on $ipv6_if inet6 all keep state pass in on $ipv6_if inet6 all keep state Przeładowujemy pf i sprawdzamy znów ping6. Powinno działać, jak nie to szukaj dalej błędu sam. W końcu jesteś użytkownikiem systemu OpenBSD :>. Dużo pomocy znajdziesz w Internecie na google.pl/bsd. Ok zakładamy, że nasz tunel działa. Teraz nam potrzeba skonfigurować BINDa. Edytujemy plik named.conf i dopisujemy: zone "e.1.f.1.e.e.0.8.e.f.f.3.ip6.int" { type master; file "ipv6/ipv6.zone"; }; gdzie w 'zone' wpisujemy wartość dla własnej puli. Jak to obliczyć? Np instalując z /usr/ports/net/ipv6calc/ przyjemny kalkulatorek. Jego obsługa jest bajecznie prosta.. # ipv6calc -r 3ffe:80ee:1f1e::/48 e.1.f.1.e.e.0.8.e.f.f.3.ip6.int. I już wiemy co musimy wpisać. Ok w opcjach wpisu podaliśmy też ścieżkę do pliku przechowującego wpisy IN PTR u mnie jest on w /var/named/ipv6/. Najpierw (zakładamy, że mamy już skonfigurowaną domenę w naszym bindzie) dopisujemy rekord IN AAA do naszej domeny. Np. chcemy mieć adres ipv6.naszadomena.pl. Edytujemy plik ze strefa naszej domeny i dopisujemy: @ IN AAAA 3ffe:80ee:1f1e::1 ipv6 IN AAAA 3ffe:80ee:1f1e::2 ('@' oznacza to, że adres z końcówką 1 będzie wskazywał na naszą główna domenę). Uaktualniamy serial domeny. Edytujemy teraz plik ipv6.zone i dopisujemy do niego nasze hosty. Jego wygląd będzie mniej więcej taki: $TTL 3600 @ IN SOA ns.naszserwerdns.pl. root.naszadomena.pl. ( 2005111637 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS ns.naszserwerdns.pl. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR naszadomena.pl. 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ipv6.naszadomena.pl. ;tu do woli resztę w miarę wzboagacania sie w domeny :) Teraz wydajemy polecenie 'rndc reload' (zwykle "HUPowanie" też działa :P), co spowoduje przeładowanie naszego binda. W miarę czasu, jak rozejdzie się propagacja domeny, możemy sprawdzić wynik (np z innego komputera): # host satanbsd.org satanbsd.org has address 212.33.82.196 satanbsd.org has IPv6 address 3ffe:80ee:1f1e::1 satanbsd.org mail is handled by 10 mail.satanbsd.org. satanbsd.org mail is handled by 20 mail2.satanbsd.org. # host 3ffe:80ee:1f1e::1 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.1.f.1.e.e.0.8.e.f.f.3.ip6.int domain name pointer satanbsd.org. # host ipv6.satanbsd.org ipv6.satanbsd.org has IPv6 address 3ffe:80ee:1f1e::2 # host 3ffe:80ee:1f1e::2 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.1.f.1.e.e.0.8.e.f.f.3.ip6.int domain name pointer ipv6.satanbsd.org. I to by było na tyle w tym temacie :). Opis jest może chaotyczny i niedokładny, ale jest to czysta esencja moich czynności, jakie wykonałem, żeby takowy tunel postawić pod OpenBSD. Jako posłowie może przypomnę (ale pewnie to wiecie), że adresy w v6 są zapisane w postaci szesnastkowej. Po co te info? Ano, że mamy do dyspozycji (prócz cyfr) literki od 'a' do 'f', i możemy sobie w skrypcie stawiającym tunel dodać jakieś nieliniowe IP :P. Oto kilka moich propozycji :): - 3ffe:80ee:1f1e:dead:dead:dead:dead:dead - 3ffe:80ee:1f1e:be:bad:babe - 3ffe:80ee:1f1e::baca Itp itd :) Udanego eksperymentowania ;). Linkowisko . My 6bone router using OpenBSD . http://sixxs.net - Chyba jeden z największych tunnelbrokerów w Europie, bardzo dobry, ale trzeba długo czekać :) . TunelBroker "made in Pepiczki" :P. Szybka i łatwa obsługa, Ale pula adresów testowych :/. . Artykuł o ipv6 pod fBSD autorstwa Piotra Prodanowskiego . Kolejne HowTo, tym razem w wykonaniu Janusza Dziedzica