Dacă în ipv4 avem ARP (Address Resolution Protocol), în cazul IPv6 avem NDP (Neighbor Discovery Protocol). In cazul rețelelor simple, treaba merge de minune. De curand însă am întâmpinat o situație în care am fost nevoit să folosesc NDP proxy în linux.
Considerăm un sistem pe care rulează freebsd, cu interfața bge0 conectată la un alt sistem pe care ruleaza linux (ex: Ubuntu 14). Pe linux, interfața în care este conectat cablul este em1.
Pe sistemul cu linux avem creată o interfață virtuală dummy0 care are asignată o adresă IPv6.
Veți constata că dacă dați ping6 de pe sistemul cu freebsd către 2a00:2222:4/48, nu veți primi nici un răspuns. Explicația este că sistemul freebsd trimite în rețea un mesaj „ICMP6, neighbor solicitation” la care sistemul linux nu raspunde, chiar dacă adresa respectivă este configurată acolo. Dacă adresa IPv6 era configurată pe interfața em1 a sistemului linux, atunci acesta răspundea cu mesaj de tip „ICMP6, neighbor advertisement”.
Cum putem rezolva situația și să putem face transfer de date între cele două sisteme? O soluție rapidă și ușoară ar fi mutarea adresei IPv6 pe interfața em1, dar uneori nu este posibil acest lucru din diverse motive. Cea de-a doua soluție, pe care am folosit-o eu, presupune câteva setări suplimentare pe sistemul cu linux:
- activăm forward pentru IPv6:
sysctl sys.net.ipv6.conf.all.forwarding=1 - activăm NDP proxy:
net.ipv6.conf.all.proxy_ndp=1 - definim adresa IP pentru care sistemul va adăuga proxy NDP:
ip neigh add proxy 2a00:2222:4/48 dev em1
Asta e tot!
Atenție: adresele IPv6 folosite în acest articol sunt doar pentru exemplificare și sunt alease aleator.
Articole asemanatoare:
- Utilitarul ping
- Primii pasi in lumea FreeBSD-ului
- FreeBSD PF NAT IPv6
- Au apărut
- ZTE ZXR 10 2609
- Accesarea unui sistem FreeBSD situat dupa un NAT folosind vtunel
- Orange Home Net prin fibră – dual stack IPv4/IPv6
- FreeBSD – server PPPoE – MPD5 + freeRADIUS
- Tunel intre doua calculatoare cu Win XP (OpenVPN client-server)
- Welltech WG-3504a și Eurovoice