Crmgo Blog

uvod

uvod

Спречавање цурења IPv6 У својим експериментима користићемо глобалне IPv6 адресе из опсега намењеног за употребу на Интернету. Данас, када провајдери не подржавају и не додељују IPv6 адресе својим клијентима, такви експерименти не би требало да изазову било какве проблеме. Међутим, за сваки случај,...

uvod

Sprječavanje curenja IPv6

U svojim eksperimentima ćemo koristiti globalne IPv6 adrese iz opsega namenjenog korišćenju na Internetu. Danas, kada provajderi ne podržavaju i ne dodeljuju IPv6 adrese svojim klijentima, takvi eksperimenti ne bi trebalo da izazovu bilo kakve probleme. Međutim, iz svake mogućnosti, ipak blokirajte na svom ruteru propuštanje IPv6 paketa napolje. Ako vaš router radi pod Linuxom, možete blokirati sav IPv6 saobraćaj sledećim komandama:

1
2
3
# ip6tables -P OUTPUT DROP
# ip6tables -p INPUT DROP
# ip6tables -p FORWARD DROP
Dodeljivanje globalnih IPv6 adresa

Link-local adrese koje smo koristili u prvom članku su prilično ograničene u primeni. U stvarnom životu biće nam potrebne globalne unicast adrese. Takve adrese su adrese iz opsega 2000::/3. Znatiželjne osobe mogu znati da su adrese iz opsega 2001:0DB8::/32 namenjene za korišćenje u eksperimentima, pa ćemo ih mi koristiti. Dodelimo pravu IPv6 adresu mrežnom interfejsu eth0:

1
# ip -6 addr add 2001:0db8::1/64 dev eth0
Imajte na umu: /64 nije CIDR notacija, to je broj bitova prefiksa. Sledeća dijagrama će pomoći da razumete o čemu je reč:

1
2
3
2001:db8:0000:0000:0000:0000:0000:0001
_____________|____|___________________
Network ID Subnet Interface ID
Network ID određuje provajder kada dodeljuje blok IPv6 adresa. Vi možete upravljati vrednostima Subnet i Interface ID. Dakle, u našem slučaju 64 bita je odvojeno za Network ID + Subnet i 64 bita za Interface ID. Setite se da je u IPv4 za celu adresu bilo odvojeno 32 bita, tako da će vam ovaj izdvojeni blok adresa dugoročno biti sasvim dovoljan!

Sada možete pingovati interfejs unutar lokalnog sistema po dodeljenoj IPv6 adresi. Ovde samo radi primera unosim dugačku IPv6 adresu u punom formatu, kako biste videli kako će program ping6 automatski skratiti adresu:

1
2
3
$ ping6 2001:db8:0:0:0:0:0:1
PING 2001:db8:0:0:0:0:0:1(2001:db8::1) 56 data bytes
64 bytes from 2001:db8::1: icmp_seq=1 ttl=64 time=0.043 ms
Međutim, ping sa drugog hosta neće proći, jer za to, kao i sa IPv4, takođe biće nam potreban ruter.

Dodavanje adresa

Možete dodavati koliko god želite adresa interfejsima svojih sistema. Jednostavno brojite u heksadekadnom sistemu redom: 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11 i tako dalje, dobijajući na taj način nove adrese:

1
2
3
4
5
6
7
8
2001:db8::1
2001:db8::2
2001:db8::3
...
2001:db8::18
2001:db8::19
2001:db8::1a
2001:db8::1b
Rutiranje

Podrazumeva se da vaš ruter mora podržavati IPv6. Ako je vaš ruter Linux sistem, rutiranje možete uključiti sledećom komandom:

1
# sysctl -w net.ipv6.conf.all.forwarding=1
Proveriti da li je IPv6 rutiranje uključeno može se komandom:

1
2
# cat /proc/sys/net/ipv6/conf/eth0/forwarding
1
„1“ znači da je sve u redu i da je na vašem uređaju uključeno rutiranje šeste verzije IP protokola. Sada instalirajte radvd – router advertiser daemon i u njegovoj konfiguracionoj datoteci /etc/radvd.conf stavite sledeće, izmenivši ime interfejsa eth0 ako je potrebno:

1
2
3
4
5
6
7
interface eth0
{
AdvSendAdvert on;
prefix 2001:db8::/64
{
};
};
Sada dodajte IPv6 adresu interfejsu vašeg rutera:

1
# ip address add 2001:db8::1a/64 dev eth0
Proverite da li je sve uspelo kako treba, pomoću komandi

1
2
3
$ ifconfig eth0 | grep inet6
inet6 addr: 2001:db8::1a/64 Scope:Global
inet6 addr: fe80::20e:2eff:feb9:cbad/64 Scope:Link

1
2
3
$ ip -6 route show
2001:db8::/64 dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
I sada možete pokrenuti radvd:

1
# /etc/init.d/radvd start
Sada biste trebali bez problema da pingujete interfejs vašeg rutera. Imajte na umu da, za razliku od link-local adrese, za globalnu adresu ne morate navoditi ime interfejsa:

1
2
3
$ ping6 2001:0db8::1a
PING 2001:db8::1a(2001:db8::1a) 56 data bytes
64 bytes from 2001:db8::1a: icmp_seq=1 ttl=64 time=1.73 ms
Svi računari koji se nalaze na istom switch-u kao i ruter sada bi trebali automatski dobiti adrese iz opsega 2001:0db8::/64. Da biste dodali podrazumevani ruter u tabelu rutiranja vaših hostova, koristite komandu:

1
# ip -6 route add default via 2001:db8::1a
Možete se osloboditi ručnog dodavanja ove stavke u tabele rutiranja hostova, tako što ćete malo dopuniti konfiguraciju vašeg radvd-a:

1
2
3
4
5
6
7
8
9
10
11
12
13
interface eth0
{
AdvSendAdvert on;

prefix 2001:db8::/64
{
AdvOnLink on;
AdvAutonomous on;
};
route ::/0
{
};
}
Sada ćete u tabelama rutiranja IPv6 vaših hostova videti sledeće:

1
2
3
4
$ ip -6 route show
...
default via 2001:db8::1a dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 0
...
Šta ako ne želite da radvd dodeljuje IPv6 adrese svima u vašoj mreži? U konfiguracionom fajlu demona navedite link-local adrese onih stanica kojima želite da dodelite adresu, a zahtevi ostalih će biti jednostavno ignorisani:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
interface eth0
{
AdvSendAdvert on;

prefix 2001:db8::/64
{
AdvOnLink on;
AdvAutonomous on;
};
route ::/0
{
};

clients
{
fe80::20d:b9ff:fe05:25b4;
fe80::20b:6aff:feef:7e8d;
fe80::221:97ff:feed:ef01;
};
};
IPv6 kalkulator adresa

Razumevanje binarne aritmetike veoma je važno za razumevanje principa adresiranja u IP-u. Ručno izračunavanje adresa može biti prilično zamorno i često dovodi do grešaka. Zašto ne biste prepustili ta izračunavanja računaru? Postoji mnogo online alata za to, izaberite onaj koji vam odgovara! Takođe, u većini distribucija u repozitorijumima ćete naći alat ipv6calc, koji će vam biti koristan za lokalnu upotrebu.

Imenske usluge

Уопште, подешавање DNS-а за IPv6 је тема за прилично опширан чланак, али се надам да ће неки од овде описаних аспеката дати потребан смер.

Идеја која лежи у основи ауто-конфигурације мрежних IPv6 интерфејса (link-local адресе и router advertisements) има за циљ да ослободи од потребе одржавања DHCP сервера, међутим, и даље морате да одржавате DNS сервер како би хостови могли да врше претварање имена у IP адресе и обрнуто. BIND9 већ подржава IPv6, али као и увек у случају BIND-а, мораћете да се потрудите и прерадите неколико конфигурационих фајлова који се налазе на различитим местима. У другим DNS демонима било би потребно мање напора, али ниједан од њих још увек не подржава IPv6 у потпуности. Ако вас занима тема подешавања IPv6 у BIND-у, можете се обратити упутству за BIND.

У претходном чланку разматрали смо опцију коришћења старог доброг /etc/hosts. Као алтернативу, можете користити Dnsmasq, који је мој омиљени алат за организацију DNS-а у локалним мрежама. Он подржава IPv6-DNS и TFTP, али нема DHCP, што га чини неунивзалним решењем. Dnsmasq чини садржај /etc/hosts доступним преко мреже користећи DNS протокол. Прво подесите IPv6 интерфејсе ваших хостова да користе статичке адресе, а затим поставите одговарајуће мапе адреса и имена у фајл /etc/hosts вашег Dnsmasq сервера и поново покрените Dnsmasq демон. Затим инсталирајте rdnssd – демон за откривање рекурзивних DNS сервера на истом хосту где имате инсталиран radvd, а затим додајте у конфигурациони фајл /etc/radvd.conf линију која указује адресу вашег Dnsmasq сервера:

1
RDNSS 2001:0db8::1b
Поново покрените radvd. Пројекти radvd и rdnssd су у фази развоја, тако да је могуће да ћете се суочити са неким проблемима, иако на мојим Debian системима раде савршено.

Napomena: tekst može biti uz pomoć AI uz ljudsku proveru. Odgovoran: Dmytro Lomaka, Kaltenkirchen.