FreeBSD PF NAT IPv6

Se consideră rețeaua din schema următoare:

Avem un server pe care ruleaza freeBSD cu minim două interfețe de rețea: em0 și bce0.

Interfața em0 este conectată la internet, având adresa IPv6 2a02:2720:1003:10::2/64, iar interfața bce0 este conectată în rețeaua locală, mai exact la un calculator (care rulează și el freeBSD). Ruta implicită IPv6 a serverului este către 2a02:2720:1003:10::1 (nu are nici o importanță dacă este setată static sau obținută printr-un protocol de rutare dinamic). Adresele IPv6 pe interfețe sunt configurate manual.

Pe stația client este configurat manual adresa fd00:771:2348:1::2/64, cu ruta default fd00:771:2348:1::1.

Se va verifica în primul rând setările de firewall pe cele două sisteme (acest subiect nu face obiectul prezentului articol) și se va testa în primul rând conexiunea între cele două sisteme folosind ICMP. Astfel, de pe server vom rula:

ping6 -S fd00:771:2348:1::1 fd00:771:2348:1::2
PING6(56=40+8+8 bytes) fd00:771:2348:1::1 –> fd00:771:2348:1::2
16 bytes from fd00:771:2348:1::2, icmp_seq=0 hlim=64 time=0.271 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=1 hlim=64 time=0.253 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=2 hlim=64 time=0.190 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=3 hlim=64 time=0.264 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=4 hlim=64 time=0.166 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=5 hlim=64 time=0.177 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=6 hlim=64 time=0.253 ms
16 bytes from fd00:771:2348:1::2, icmp_seq=7 hlim=64 time=0.219 ms

De pe mașina client vom  rula:

ping6 -S fd00:771:2348:1::2 fd00:771:2348:1::1
PING6(56=40+8+8 bytes) fd00:771:2348:1::2 –> fd00:771:2348:1::1
16 bytes from fd00:771:2348:1::1, icmp_seq=0 hlim=64 time=0.201 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=1 hlim=64 time=0.286 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=2 hlim=64 time=0.231 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=3 hlim=64 time=0.175 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=4 hlim=64 time=0.204 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=5 hlim=64 time=0.247 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=6 hlim=64 time=0.188 ms
16 bytes from fd00:771:2348:1::1, icmp_seq=7 hlim=64 time=0.231 ms

După ce ne-am asigurat că această conexiune este funcțională vom trece mai departe și vom configura sistemul server pe care rulează freeBSD. Acest sistem trebuie să fie setat astfel încât sa ruteze pachetele IPv6 (a se vedea sysctl net.inet6.ip6.forwarding – trebuie să aibă valoarea 1).

Pe server trebuie să activăm translatarea de adrese pentru fd00:771:2348:1::2 astfel încât traficul generat de PC-ul cu ip-ul respectiv să plece în internet cu sursa 2a02:2720:1003:10::2 (adresa IPv6 de pe interfața em0 a serverului). Acest lucru se poate face foarte simplu, cu ajutorul PF:

nat on em0  from fd00:771:2348:1::2 to any -> 2a02:2720:1003:10::2

Nu insist despre activarea PF-ului și alte minuni de genul acesta.

Este simplu, nu?

Putem testa:

ping6 -S fd00:771:2348:1::2 www.google.ro
PING6(56=40+8+8 bytes) fd00:771:2348:1::2 –> 2a00:1450:4016:801::1017
16 bytes from 2a00:1450:4016:801::1017, icmp_seq=0 hlim=56 time=45.251 ms
16 bytes from 2a00:1450:4016:801::1017, icmp_seq=1 hlim=56 time=44.988 ms
16 bytes from 2a00:1450:4016:801::1017, icmp_seq=2 hlim=56 time=45.192 ms
16 bytes from 2a00:1450:4016:801::1017, icmp_seq=3 hlim=56 time=44.900 ms

 

 

Articole asemanatoare:

Bogdan Turcanu

Bogdan Turcanu

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.