IPv6 a la eXO

2021-06-16

Andrés (Evilham)

Víctor Oncins

https://exo.cat

Índex

IPv6

mini-intro

(diapositives i xerrada a SAX2020)

Pre-requisits: Internet

Versió curta

Els ordinadors treballen amb adreces IP, fan aquesta pinta:

IPv4:  45.150.187.207      (32 bits)
IPv6:  2a0f:de00:ffff::10 (128 bits)

Pre-requisits: Internet — Assignació IPs

Com funciona l'assignació?

(com a membres RIPE NCC)

Per què IPv6?

(com a operadores)

Per què IPv6?

(com a subscriptors)

Serveis només amb IPv6?

És Possible!

(FreeBSD es pot compilar sense suport per IPv4!)

Per què IPv6?

"[…] Sense IPv6 estàs bloquejat i deixes que siguin les grans empreses qui canvien el món.

IPv6 us dona a vosaltres, hackers, desenvolupadores, empreses petites i mitjanes, i administradores de sistemes la llibertat de triar.[…]"

Estat de IPv6

El dia a dia amb IPv6

El dia a dia amb IPv6

Hola, vull una IP(v4)

Màquina
nova
Demanda IPv4: DHCP
Assignació IPv4 DHCP
funció de MAC, estat/memòria
Router
Estat DHCP
MAC+IP
48+32=80bits
2^8 IPs: uns 8kB

El dia a dia amb IPv6

Hola, vull una IP(v6)

Màquina
nova
Rep prefix /64
Determina IPv6
Detecta col·lisions
Sol·licitud ruta: SLAAC
Anunci de ruta: SLAAC
prefix /64
Anunci periòdic de ruta: SLAAC
prefix /64
Router
Prefix IPv6 /64
MAC+IP
48+128=176bits
2^64 IPs: exabytes
No es desa!

El dia a dia amb IPv6

Qui ets?

# Client: Ep! Qui és ns3.exo.cat?
> host ns3.exo.cat
# Servidor: Aquí tens!
#           ns3.exo.cat és això:
ns3.exo.cat has address 45.150.187.207
ns3.exo.cat has IPv6 address 2a0f:de00:ffff::10

Què fa un programa amb diverses IPs?

Pífies habituals

Suposem: entrada AAAA (IPv6) en DNS

Tallafocs!

Tallafocs!

Mala config de programa

Evitant les pífies

Desactivar Happy-Eyeballs

Evitant les pífies

Comprovem-ho tot, sempre

# nc -z -6 turn.exo.cat 443
Connection to turn.exo.cat 443
 port [tcp/https] succeeded!

(Bonus: monitoritzem en IPv4 i IPv6 per separat)

Implementació a la eXO

Arquitectura general d'accés

Arquitectura general

Arquitectura general d'accés

Les implementacions dels components centrals són open source:

Procediment de proveïment de IPv6

El BNG negocia la connexió PPPoE/L2TP informant al CPE quin és el prefix IPv6 delegat /56 (256 subxarxes /64):

[2021-05-28 15:39:56]:  info: bstrm0.220: send [RADIUS(1) Access-Request id=1 \
    <User-Name "i0099c0@exo.cat"> <NAS-Identifier "accel-ppp"> \
    <NAS-Port-Type Virtual> <Service-Type Framed-User> \
    <Framed-Protocol PPP> <Calling-Station-Id "94:40:c9:1e:2c:86"> \
    <Called-Station-Id "bstrm0.220"> ...

[2021-05-28 15:39:56]:  info: bstrm0.220: recv [RADIUS(1) Access-Accept id=1 \
    <Framed-Protocol PPP> <Framed-Compression Van-Jacobson-TCP-IP> \
    <Framed-IP-Address <IP-Publica-IPv4>> <NAS-Port-Id "i0099c0"> \
    <Delegated-IPv6-Prefix 2a0f:de00:fe00:6300::/56> ...

[2021-05-28 15:39:56]:  info: ppp18: connect: ppp18 <--> pppoe(94:40:c9:1e:2c:86)

[2021-05-28 15:39:56]:  info: ppp18: i0099c0@exo.cat: authentication succeeded

Procediment de proveïment de IPv6

Finalment BNG crea una interfície PPP amb una IPv6 d'un pool intern:

27529: i0099c0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> \
    mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 192.168.155.1 peer <IP-Publica-IPv4>/32 scope global i0099c0
       valid_lft forever preferred_lft forever
    inet6 2a00:1508:100:e2bc:ca1c:45f6:e86c:3c47/64 scope global nodad
       valid_lft forever preferred_lft forever
    inet6 fe80::ca1c:45f6:e86c:3c47/64 scope link
       valid_lft forever preferred_lft forever

Procediment de proveïment de IPv6

El CPE configura un client DHCPv6 sobre la seva interfície PPP i pot assigar un /64 a cada LAN segons convingui a l'usuari:

/ipv6 dhcp-client
add add-default-route=yes interface=exo pool-name=exo-prefix \
    pool-prefix-length=56 request=prefix
/ipv6 address
add address=::764d:28ff:fe61:4e9 eui-64=yes \
    from-pool=exo-prefix interface=lan

Gràcies!

Aquesta presentació és a internet

https://evilham.com/ca/slides/2021-guifilab-mataro-ipv6/


Feu servir IPv6!

Fin de la cita

Aquí veńen coses extra si calen

Extra 1: IPv6-Only

Extra 2: NAT64

Extra 3: DNS64