Tag-Archive for ◊ IPv6 ◊

IPv6 Part III: Linux Routing
Friday, August 21st, 2009 | Author: AlexJ

[Part I]
[Part II]

Clientul este un Linux box. Legătura la Internet este prin eth1, interfață peste care se face tunelul 6to4.

După ce am creat tunelul, am aflat că pot cere o clasă de IPv6 să fie routată prin IP-ul meu v6. Astfel, mi-a fost alocată rețeaua 2001:470:9f00::/48 ( 1208925819614629174706178 adrese adică adică aproximativ 1 milion de miliarde de miliarde de adese), pe care am început să o subnetez.

Prima rețea am alocat-o rețelei de pe eth1 (uplink-ul la Internet, precum și legătura cu alte servere locale). Pentru ușurință în denumire, am ales rețeaua 2001:0470:9f00:0141:0085:0037:0208::/112, adresă obținută prin o concatenare (la nivel de notație) a adresei IPv6 /48 alocate cu adresa IPv4/24 (141.85.37.208). Atenție, valorite în binar sunt total diferite, pentru că adresa IPv6 conține cifre în hexadecimal și IPv4 în decimal.

Configurație prin /etc/network/intefaces:

iface eth1 inet6 static
address 2001:0470:9f00:0141:0085:0037:208:1
netmask 112

Routarea IPv6 nu este implicit activată, și pachetele nu vor trece dintr-o rețea în cealaltă. Pentru aceasta, trebuie modificat fișierul /etc/sysctl.conf și decomentată (sau adăugată) linia:
net.ipv6.conf.all.forwarding=1
urmată de un restart a sysctl
sysctl -p

În continuare am alocat o altă rețea /112 pentru tunelul VPN peste care am o rețea IPv4 172.30.0.0/24 în spatele unui NAT. Partea frumoasă aici este că la IPv6 nu mai este nevoie de NAT pentru că sunt adrese routabile IPv6, deci traficul IPv4 va fi translatat la router în spatele unei singure adrese iar cel IPv6 va fi routat normal spre Internet. Rezultatul final a fost conectivitate IPv6 pe două sisteme care se află în cu totul altă rețea decât cea unde există tuneul 6to4, rețea ce se află in spatele unui NAT. Pentru a ajunge la un server IPv6 extern, aceste stații trebuiat să treacă peste printr-un tunel 6to4 aflat peste o conexiune VPN(OpenVPN) până la server unde era routat în altă rețea IPv6 care trecea peste un alt tunel 6to4 și routat mai departe doar prin IPv6.

IPv6 Part II: Linux Configuration
Friday, August 21st, 2009 | Author: AlexJ

[Part I]

De la provider-ul tunelului [1] am primit următoarele:

Server IPv4 address:      216.66.80.30
Server IPv6 address:     2001:470:1f0a:68d::1/64
Client IPv4 address:     141.85.37.208
Client IPv6 address:     2001:470:1f0a:68d::2/64

Între cele două adrese IPv4 este creat un tunel ce are alocată rețeaua IPv6 2001:470:1f0a:68d::/64 ( deci aproximativ 18 milidarde de miliarde de adrese pierdute pentru 2 adrese…dar nu e problemă pentru că sunt destule ).
Configurarea tunelului poate fi făcută în mai multe feluri.

Temporară prin ifconfig/route

ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.66.80.30
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:470:1f0a:68d::2/64
route -A inet6 add ::/0 dev sit1

Temporară prin iproute2

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 216.66.80.30 local 141.85.37.208 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:1f0a:68d::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr

Permanentă (on boot) prin /etc/network/interfaces
iface he-ipv6 inet6 v4tunnel
endpoint 216.66.80.30
address  2001:470:1f0a:68d::2
netmask  64
mtu 1480
up ip -6 route add 2000::/3 dev he-ipv6
down ip -6 route del 2000::/3 dev he-ipv6

[1] http://www.tunnelbroker.net/

IPv6 Part I: TunnelBroker & IPv6 Certification
Thursday, August 20th, 2009 | Author: AlexJ

Deși mai configurasem o adresăIPv6 și cu alte ocazii [1], nu intrasem adânc în subiect decât la clasa de BSCI de la Cisco pe care am terminat-o recent. După clasă, pentru că mi-a plăcut subiectul, am încercat să văd IPv6 în viața reală, ceea ce era puțin problematic pentru că legăturile mele la Internet vin numai în varianta IPv4.

Dar am descoperit un site interesant, TunnelBroker [2], care oferă tunele IPv6 peste conexiuni IPv4, gratuit. Provider-ul respectiv are o rețea globală de servere accesibile prin IPv4, dar care routează IPv6 în Internet. Tot ce e nevoie este un server propriu sau un workstation care să aibă un IP public (acesta va fi clientul). Configurația tunelului se face într-o parte automat, pe site și cealaltă parte pe stația locală manual. Instrucțiunile complete se găsesc pe site.

ipv6_ping

Aceeași firmă ce administrează site-ul TunnelBroker și rețeaua de servere, Hurricane Electric, oferă și o certificare [3] de atestare a cunoștințelor despre IPv6. De exemplu, primul test constă într-un quiz despre IPv6 iar al doilea presupune configurarea unui client care să fie capabil să acceseze o pagină IPv6.

IPv6 Certification Badge for AlexJ

Fun fact: Există un ‘experiment’ pentru a promova IPv6 [4], dar care, momentan, pare a fi mort.

[1] http://alexj.info/?p=92

[2] http://www.tunnelbroker.net/

[3] http://ipv6.he.net/certification/cert-main.php

[4] http://ubergeek.ro/2008/08/22/ipv6-experiment/

Home Routers: GNS3 & IPv6
Thursday, November 13th, 2008 | Author: AlexJ

Termenul de care aud mult prea des in ultimul timp este IPv6. Don’t get me wrong, sunt pro IPv6, doar ca nu imi place ca se vorbeste prea mult si se implementeaza prea putin. In curiculumul nou de CCNA4 exista o buna bucata de IPv6 (desi calitatea lui lasa de dorit, precum si lipsa laboratoarelor practice).

Am decis sa fac un mini-lab in GNS3 (btw, ati putea sa va uitat peste Introul la GNS3) in care sa implementez basic IPv6 cu RIP ca protocol de rutare. O topologie cu 4 routere, legate astfel:

Primul lucru pe care il vom face e sa aplicam adresele. Ce mi-a placut mie la IPv6 e faptul ca merge mai usor configurarea pentru ca e mai putin de scris (cel putin daca folosesc adrese simple, pentru laburi). Desi adresa v6 este mult mai lunga, exista o metoda de a prescurta o adresa prin neglijarea zerourilor (ex. 0001:0000:0000:0000:0000:0000:0000:0002 se poate scrie doar 1::2). Pe langa prescurtarea adresei se prescurteaza si subnetul (deci vom folosi notatia cu / ex. /64).

Vom folosi patru retele /96 de exemplu (asta inseamna ca fiecare retea va avea disponibile atatea adrese IP pentru hosturi cat tot spatiul de adresare IPv4…cool huh? :P merge impotriva a tot ce am invatat despre conservarea IPurilor :P ). Si vom avea retele 1::0, 2::0, 3::0 si 4::0 /96.  Configuarea va arata cam asa:

R1>en

R1#configure terminal

R1(config)#interface f0/0

R1(config-if)#ipv6 address 1::1/96

R1(config-if)#no shutdown

R1(config)#end

Practic singura diferenta este faptul ca in loc de “ip address” avem “ipv6 addess”. Atentie, o interfata poate avea ambele adrese IP, si v4 si v6.

Facem o verificare daca am configurat cum trebuie cu #show ipv6 interface brief.

Facusem o greseala si vroiam sa va atrag atentia Pe R1 am setat gresit adresa ip (v6) si apoi am setat-o si pe cea buna. Nu se suprascrie peste cea veche… pot fi mai multe adrese asociate unei interfete. Am corectat dupa. Daca incercati sa dati show ip int brief veti vedea ca nu este nimic acolo. Sunt stackuri diferite… saterile ipv4 cu cele ipv6 nu au nici o legatura.

Hai sa trecem la routare. Prima data trebuie sa activam forward-area de pachete ipv6 prin comanda data pe toate routerele

R1(config)#ipv6 unicast-routing

Next, pornim RIP-ul. RIPv6 seamana putin cu OSPF deoarece putem lansa mai multe instante, doar ca in loc sa fie identificate prin numar de proces, sunt identificate printr-un nume. Activarea RIP se face prin

R1(config)#ipv6 router rip nume

R1(config-rtr)#exit

Spre deosebire de RIPul vechi, nu vom mai specifica retelele pe care facem schimb de route, ci vom specifica interfetele.

R1(config-if )#ipv6 rip nume enable

Verificam daca au fost invatate rutele prin show ipv6 route

Informatile despre procesele RIP le aflat prin show ipv6 rip

In tabele din show ip route nu se va produce nici o modificare deoarece, dupa cum am zis, sunt stive diferite.

Un ping intre oricare adrese va demonsta ca avem o convergenta.

That’s all.