Sposób konfiguracji IPv6 na ADSL (Neostrada) pod Debianem
: 15 września 2008, 17:47
Poniższy poradnik pokaże w jaki sposób skonfigurować tunel IPv6 na modemie ADSL (Neostrada). Poradnik może być stosowany także do innych dostawców ADSL jak np. NET24 (Netia), różnice występują jedynie w konfiguracji modemu.[/list
:c5b74dbb32]Poradnik został oparty o artykuł http://pasternok.org/articles/ipv6-i-neostrada.html.
Z góry przepraszam za wszelkie orty, co do zredagowania słabo to wyszło wkrótce poprawię
- Na sam początek jest niezbędne prawidłowo działające połączenie z internetem. Użytkowników neostrady odsyłam do tego poradnika:[list:c5b74dbb32]http://debian.linux.pl/viewtopic.php?t=2875
- Po rejestracji/zalogowaniu na stronie należy przejść do "My Services" i w dziale "Host Services" dodać naszą domenę poprzez kliknięcie na "Add Hostname".
- Jesteśmy już właścicielem naszej dynamicznej domeny, teraz należy zainstalować program, który będzie aktualizował adres IP w naszej domenie. Robimy to w następujący sposób:Podczas instalacji program poprosi nas o wybranie serwisu, który obsługuje naszą domenę. Podanie loginu, hasła, nazwy naszej domeny oraz interface'u sieciowego (tj. ppp0). W poradniku posłużę się domeną ipv6.dydns.com.
Kod: Zaznacz cały
# apt-get install ddclient
- Po szybkiej i prostej rejestracji przechodzimy do "Subdomains" następnie klikamy na "Add a subdomain".
- W polu "Type" wybieramy NS, podajemy nazwę subdomeny, wybieramy jedną z dostępnych domen, a w polu "Address" podajemy wcześniej zarejestrowaną dynamiczną domenę. W moim przypadku będzie to ipv6.dydns.com. W krótkim czasie staliśmy się posiadaczem domeny np. ipv6.strangled.net wydelegowanej na nasz serwer nazw.
- Proponuje zainstalować BIND9, a robi się to tak:
Kod: Zaznacz cały
# apt-get install bind9
- Następnie dodajemy naszą strefę w głównym pliku konfiguracyjnym:i dodajemy wpis:
Kod: Zaznacz cały
# nano /etc/bind/named.conf
Kod: Zaznacz cały
zone "ipv6.strangled.net" IN { type master; file "ipv6.strangled.net"; allow-update { none; }; allow-transfer { none; }; notify yes; };
- Tworzymy plik strefy:i dodajemy wpis:
Kod: Zaznacz cały
# touch /var/cache/bind/ipv6.strangled.net # nano /var/cache/bind/ipv6.strangled.net
Adres IP można sprawdzić np. na TwojeIP. Zwracam szczególną uwagę na wpis "IN A", ważne aby został zapisany dokładniej w takiej postaci.Kod: Zaznacz cały
$TTL 120 $ORIGIN ipv6.strangled.net. @ IN SOA ipv6.strangled.net. root.ipv6.strangled.net. ( 2008091501 ; serial 3600 ; refresh 1800 ; retry 1209600 ; expire 86400 ) ; minimum @ IN NS ipv6.dyndns.com. @ IN A 83.26.212.195 ; Aktualny adres IP
Będzie to miało znaczenie podczas uruchomienia skryptu do podnoszenia tunelu ale o tym później. - Pozostało nam przeładować strefę i sprawdzić czy działa poprawnie.
Przeładowanie robimy tak:zaś sprawdzenie czy wszystko działa poprawnie poprzez:Kod: Zaznacz cały
# rndc reload ipv6.strangled.net zone reload queued
Kod: Zaznacz cały
# host -t A ipv6.strangled.net ipv6.strangled.net has address 83.26.212.195
- Rejestrujemy się w serwisie GO6.
- Pobieramy program Gateway6 5.1 Source Code (Linux/Unix/Darwin/BSD) i instalujemy:
Kod: Zaznacz cały
# apt-get install libssl-dev g++ # tar xvf gw6c-5_1-RELEASE-src.tar.gz # cd tspc-advanced # make install target=linux installdir=/usr/local/gw6c
- Konfiguracja GW6c:I uzupełniamy config w następujący sposób:
Kod: Zaznacz cały
# nano /usr/local/gw6c/bin/gw6c.conf
Kod: Zaznacz cały
userid=login_z_strony_go6.net passwd=hasło server=broker.freenet6.net auth_method=any host_type=router prefixlen=48 if_prefix=ppp0 dns_server=ipv6.dydns.com log_console=3
- Pozyskanie naszego adresu IPv6:w terminalu wyświetli nam się sporo informacji. Musimy odnaleźć linie:
Kod: Zaznacz cały
# /usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
posiadamy już adresacje IPv6 z przedziału 2001:05c0:a00c::/48Kod: Zaznacz cały
<prefix length="48">2001:05c0:a00c:0000:0000:0000:0000:0000</prefix>
- Na koniec mała modyfikacja kosmetyczna:i zmieniamy:
Kod: Zaznacz cały
# nano /usr/local/gw6c/bin/gw6c.conf
na:Kod: Zaznacz cały
log_console=3
Kod: Zaznacz cały
log_console=0
- Dodanie wpisów typu AAAA:uzupełniamy o:
Kod: Zaznacz cały
# nano /var/cache/bind/ipv6.strangled.net
Ważne! Wpis A (tj. @ IN A 83.26.212.195) musi zostać na końcu pliku strefy.Kod: Zaznacz cały
@ IN AAAA 2001:5c0:a00c::1 test.ipv6.strangled.net IN AAAA 2001:5c0:a00c::5 lubie.ipv6.strangled.net IN AAAA 2001:5c0:a00c::10
- Obliczanie revDNS dla naszego IPv6.nasz revDNS ma następującą postać:
Kod: Zaznacz cały
# apt-get install ipv6calc # ipv6calc -r 2001:05c0:a00c::/48 No input type specified, try autodetection...found type: ipv6addr c.0.0.a.0.c.5.0.1.0.0.2.ip6.int.
Kod: Zaznacz cały
c.0.0.a.0.c.5.0.1.0.0.2.ip6.arpa
- Dodajemy naszego revDNS'a do configu:i dodajemy wpis:
Kod: Zaznacz cały
# nano /etc/bind/named.conf
Kod: Zaznacz cały
zone "c.0.0.a.0.c.5.0.1.0.0.2.ip6.arpa" IN { type master; file "revdns.ipv6"; };
- Tworzymy plik strefy:i dodajemy wpis:
Kod: Zaznacz cały
# touch /var/cache/bind/revdns.ipv6 # nano /var/cache/bind/revdns.ipv6
Kod: Zaznacz cały
$TTL 120 $ORIGIN c.0.0.a.0.c.5.0.1.0.0.2.ip6.arpa. @ IN SOA ipv6.strangled.net. root.ipv6.strangled.net. ( 2007092708 3600 1800 1209600 86400 ) @ IN NS ipv6.dyndns.com. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ipv6.strangled.net. 5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR test.ipv6.strangled.net. 0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR lubie.ipv6.strangled.net.
- Sprawdzamy czy wszystko działa poprawnie:
Kod: Zaznacz cały
# host ipv6.strangled.net ipv6.strangled.net has address 83.26.212.195 ipv6.strangled.net has IPv6 address 2001:5c0:a00c::1 # host 2001:5c0:a00c::1 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.c.0.0.a.0.c.5.0.1.0.0.2.ip6.arpa domain name pointer ipv6.strangled.net.
Kod: Zaznacz cały
#!/bin/bash
ZONE=/var/cache/bind/ipv6.strangled.net # ścieżka do pliku strefy
BACKUP=/var/cache/bind/ipv6.strangled.net.bak # ścieżka do backupu strefy
IPLIST="1 5 10" # lista adresów IPv6
POOL="2001:5c0:a00c::" # pula adresów IPv6
DNSIP=`cat $ZONE | grep "IN A" | awk -F" " '{ print $4 }'`
MYIP=`/sbin/ifconfig ppp0 | grep "inet addr\:" | awk '{ print (substr($2,6)) }'`
if [ "$DNSIP" = "$MYIP" ];
then
echo '--------------------------------------------------------'
echo Tunel jest juz poprawnie skonfigurowany
echo '--------------------------------------------------------'
else
echo '--------------------------------------------------------'
echo '****** Podnoszenie Tunelu IPv6'
echo '****** ModProbe IPv6'
modprobe ipv6
echo '****** Wylaczanie nieaktualnego interfacu'
ifconfig sit1 down
echo '****** Aktualizacja BIND'
cat $ZONE > $BACKUP
sed -e '$d' $BACKUP > $ZONE
echo '@ IN A '$MYIP >> $ZONE
killall -HUP named
sleep 1s
echo '****** Uruchamianie GW6C'
/usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
echo '****** Dodawanie adresow IPv6 2001:05c0:a00c::1/48'
sleep 5s
for ip in $IPLIST; do
echo '--Dodaje '$POOL$ip
ip a a $POOL$ip dev sit1
done
echo '****** Tunel zostal podniesiony'
echo '--------------------------------------------------------'
fi

Z góry przepraszam za wszelkie orty, co do zredagowania słabo to wyszło wkrótce poprawię
