Temat: [howto] konfiguracja IPv6 dla końcówek sieci.
szybkie howto dla ipv6 w openwrt.
Generalnie celem tego howto jest przydzielenie na końcówkach sieci zewnętrznego adresu ipv6.
Wstęp:
1. Zapoznajemy się jak działa protokół ipv6
2. Jak już większość zignorowała 1 punkt to tak w skrócie jakie mamy drogi:
a) provider daje nam adres ipv6 z pulą /64 (native ipv6)
b) tworzymy tunel (tun6)
c) generujemy sobie sami ipv6 na podstawie ipv4 (6to4)
aby dowiedzieć się w której jesteśmy sytuacji wykonujemy polecenie ipconfig i patrzymy czy mamy jakieś zewnętrzne adresy ipv6. Adresy zaczynające się od fe80 oraz ::1, się nie liczą.
2a - przypadek nieciekawy bo już router posiada ipv6 - idź do punktu 3
2b - przypadek w którym rozpisywanie się jak ustawić tunel ipv6 i jakie są typy zajęło by za wiele czasu - w ramach tego puntu pytać wujka google o dostawców tunelu i jak już się na jakiegoś zdecydujemy to poszukać jak taki tunel ustawić na swoim routerze. Wadą tego rozwiązania jest niska prędkość. Po ustanowieniu tunelu przechodzimy do punktu 3.
2c - przypadek 'ciekawy' którym się zajmę. Jeśli nasz provider przydziela nam adres ipv4 to na jego podstawie możemy wygenerować adres ipv6 np. adresowi 80.90.100.110 odpowiada adres 2002:505A:646E:: z pulą /48. Jak to się dzieje? aby dostać swoje ipv6 korzystamy z bramy 6to4 dostepnej w internecie (192.88.99.1). Nasz router staje się routeren typu dual stack tzn. obsługuję stos ipv4 oraz ipv6. Dość teori, pora na działanie.
opkg update
opkg install kmod-ipv6 6to4 6rd
opkg remove dnsmasq
opkg install dnsmasq-dhcpv6plik /etc/config/network:
w sekcji config interface 'lan' dopisujemy następujące linie:
option ip6assign '64'
option ip6hint '10' na końcu dopisujemy:
config interface 'wan6'
option proto '6to4'
kilka słów komentarza: option ip6assign '64' mówi jaki prefix dostanie interfejs br-lan. ip6hint w której podsieci będziem nasz br-lan (ta liczba która następuje po wygenerowanym adresie). interface wan6 bedzie odpowiadał nam za stos ipv6. Po podniesieniu ten interfejs bedzie miał maskę /16.
uci del firewall.@zone[1].network=wan6
uci add firewall zone
uci set firewall.@zone[-1]._name=wan6
uci set firewall.@zone[-1].network=wan6
uci set firewall.@zone[-1].family=ipv6
uci set firewall.@zone[-1].input=ACCEPT
uci set firewall.@zone[-1].output=ACCEPT
uci set firewall.@zone[-1].forward=REJECT
uci commit
uci add firewall forwarding
uci set firewall.@forwarding[-1].src=wan6
uci set firewall.@forwarding[-1].dest=lan
uci commit
uci add firewall forwarding
uci set firewall.@forwarding[-1].src=lan
uci set firewall.@forwarding[-1].dest=wan6
uci commit
uci add firewall rule
uci set firewall.@rule[-1]._name='Allow Multicast v6'
uci set firewall.@rule[-1].src=wan
uci set firewall.@rule[-1].src_ip=ff00::/8
uci set firewall.@rule[-1].dest_ip=ff00::/8
uci set firewall.@rule[-1].family=ipv6
uci set firewall.@rule[-1]target=ACCEPT
uci commit
uci add firewall rule
uci set firewall.@rule[-1]._name=6to4
uci set firewall.@rule[-1].src=wan
uci set firewall.@rule[-1].proto=41
uci set firewall.@rule[-1].target=ACCEPT
uci commitzapisujemy wszystko i robimy
/etc/init.d/network restart sprawdzamy poleceniem ifconfig czy jest interfejs 6to4-wan6 (poniżej przykład)
6to4-wan6 Link encap:IPv6-in-IPv4
inet6 addr: 2002:505A:646E::::1/16 Scope:Global
inet6 addr: ::80.90.100.110/128 Scope:Compat3. sparwdzamy czy działa ping6 ipv6.google.com (jak odpowiada to znaczy ze router ma ipv6) można przejść do punktu 4
4. jak już mamy pulę to trzeba ją rozgłosić dla naszych klientów w tym celu:
edytujemy plik: /etc/sysclt.conf
upewniamy się że są opcje ustawione jak poniżej:
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1plik: /etc/dnsmasq.conf (nasza wisieńka na torcie)
dhcp-range=2002:505A:646E:10::,ra-names
enable-rauwaga dhcp-range to podany przez nas ipv6 oraz sieć (/etc/config/network -> option ip6hint '10' - tak to właśnie to "10" i powinno być tu i tu to samo, oczywiście 10 można zmienić na coś innego np. 1, dead, beef, cafe tylko trzeba pamiętać aby to zrobić w obydwóch miejscach).
po tym wszystkim
/etc/init.d/sysctl restart
/etc/init.d/network restart
/etc/init.d/dnsmasq restarti sprawdzamy czy końcówki otrzymują ipv6 i mogą pingować inne ipv6 (test z punktu 3).
edit: zgodnie z zaleceniami cezarego przepisałem firewalla do uci firewall.