ipv6 in Hetzner DC

Mamy podsieć:

2a01:4f8:101:3262:: /64

Gateway dla hosta (czyli Hetznerowy router):

2a01:4f8:101:3260::1 /59

Używalne adresy to:

2a01:4f8:101:3262::2     to    2a01:4f8:101:3262:ffff:ffff:ffff:ffff

czyli w pizdu i jeszcze trochę.

IP na hoscie, który będzie GW dla virtualek:

2a01:4f8:101:3262::2

Chyba, że wybierzemy coś innego, np:

2a01:4f8:101:3262:**dead:beef:dead**
2a01:4f8:101:3262: **dead:beef:dead**

Podział IP'ków:
to be done
ale wyjdzie po jakieś 2*2^60 na głowę, a pierwsze 4 bity będą dzielić między nas

od 2a01:4f8:101:3262:0000:0002:0000:000
od 2a01:4f8:101:3262:2000:0002:0000:000
od 2a01:4f8:101:3262:4000:0002:0000:000
od 2a01:4f8:101:3262:6000:0002:0000:000
od 2a01:4f8:101:3262:8000:0002:0000:000
od 2a01:4f8:101:3262:a000:0002:0000:000

Konfiguracja HOST:
A: PERMAMENT (to be done & tested)
1.

# vim /etc/sysconfig/network
NETWORKING_IPV6=yes

2.

vim /etc/sysconfig/network-scripts/ifcfg-xenbr0

Dodajemy wpisy (do tych tyczących ipv4):

IPV6INIT=yes
IPV6ADDR=2a01:4f8:101:3262::2
IPV6_DEFAULTGW=2a01:4f8:101:3260::1

**Uwaga! Mamy na hoście też plik /etc/sysconfig/network-scripts/ifcfg-xenbr0:1 , który definuje IP dla drugiej podsieci IPv4 **

3. Usuwamy blokadę IPv6

rm /etc/modprobe.d/disable-ipv6

4. Dodajemy alias IPv6 (nie wiem, czy konieczne) - TO BE TESTED

vim /etc/modprobe.d/modprobe.conf.dist

wpisujemy
alias net-pf-10 ipv6

5. Włączmy firewall'a dla IPv6 (konfiguracja innym razem):

chkconfig ip6tables on

6. Restart sieci. Po ostatnich doświadczeniach - warto odpalić w lokalnym screenie
Redhat way:

service network restart

lub po bożemu:

/etc/init.d/network restart

7. Wykumać co ustawić w sysctl, a trochę tego jest:

sysctl -a |grep -i ipv6 |grep -v vif |grep -v tap

Póki co przynajmniej trzeba włączyć:

sysctl -a |grep -i ipv6 |grep -v vif |grep -iv tap |grep -i forwa
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.xenbr0.forwarding = 1
net.ipv6.conf.eth0.forwarding = 1
net.ipv6.conf.lo.forwarding = 1

Konfiguracja questa
NOT PERMAMENT WAY
1. Sprwdzamy obsługę IPv6. Może być na stałe w kernelu, może być w modułach, którę mogą być wyłączone, więc sprawdzamy:

modprobe -c | grep net-pf-10
alias net-pf-10 off

Jeśli output j.w. to gdzieś ipv6 jest wyłączone (off), znajdź wykasuj

2. Dodajemy IP:

ip addr add 2a01:4f8:101:3262::2:1/64 dev eth0

dla leniwych (ip jest zajebiste)
ip a a 2a01:4f8:101:3262::2:1/64 dev eth0

NIE ZAPOMNIJ O MASCE /64 - i użyj INNEGO IP ze SWOJEJ puli

3. Sprawdź IP (różne sposoby):

ip addr list
ip a 
ip a l dev eth0
ip -6 a

4. Dodajemy trasę aka routing do naszej podsieci via eth0

ip r a 2a01:4f8:101:3262:: /64 dev eth0

5. Dodajemy trasę do gw, którym jest host (nie wiem czy tak ma być, czy to overhead, ale coś mi nie działało, może z powodu ustawień sysctl… TO BE CHECKED)

--ip r a 2a01:4f8:101:3262::1 dev eth0--

6. Dodajemy default gw dla IPv6

ip r add default via 2a01:4f8:101:3262::2

7. Sprawdzamy routing:

ip -r l

8. I pingujemy po kolei

hosta:

ping6 2a01:4f8:101:3262::2

GW hetznera:

ping6 2a01:4f8:101:3260::1

Śwait:

ping6 ipv6.google.com

9. Final test

wget o2-graphics.fr

...
--2010-07-08 12:49:58--  http://o2-graphics.fr/
Translacja o2-graphics.fr... **2001:470:1f12:2ed::66, 89.157.122.66**
Łączenie się z o2-graphics.fr**|2001:470:1f12:2ed::66|:80... połączono.**
...

10. W razie problemów sprawdź firewalla/zmień policy:

ip6tables -L -n

reszta komend po staremu.


UWAGI
1. nie znam się na ipv6
2. za głupoty tu napisane nie odpowiadam
3. coś słyszałem o automatic router and neighbour discovery - mi nie działa…
4. nie zdziwcie się, jak na hoście zobaczynie pełno innych adresów, typu fe80… to są jakieś specjalne adresy autokonfiguracji chyba… TO BE CHECKED/FIXED


USŁUGI

Większość usług działa od razu / po restarcie na ipv6, jeśli nie były zbindowane do konkretnych adresów IP.

1. Postfix trzeba dostroić (przynajmniej w debianie):

/etc/postfix/main.cf:
    # You must stop/start Postfix after changing this parameter.
    inet_protocols = ipv4       (DEFAULT: enable IPv4 only)
    inet_protocols = all        (enable IPv4, and IPv6 if supported)
    inet_protocols = ipv4, ipv6 (enable both IPv4 and IPv6)
    inet_protocols = ipv6       (enable IPv6 only)

Opcjonalnie, jeśli mamy więcej IPv6 adresów na maszynie możemy zbindować do konkretnego:

/etc/postfix/main.cf:
    smtp_bind_address6 = 2001:240:587:0:250:56ff:fe89:1

Jeśli mieliśmy wpis mynetworks, to trzeba go uzupełnić. Jeśli nie mieliśmy to postfix sam się domyśli:

mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [fe80::]/10 [2a01:4f8:101:3262:Twoj:adres:IPv6]/64

wszystki adresy ipv6 piszemy w [ ]

Więcej na Postfix IPv6

2. BIND
BIND
BIND
BIND


HELPFULL TOOLS

aptitude install ipv6calc

DOCU of /proc/sys/
proc/sys

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License