El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

las reglas del juego ipv6

| Comments

ipv4 se parece a ipv6, lo que las damas se parecen al ajedrez

Ambos juegos se desarrollan sobre un tablero de 64 casillas, moviendo fichas y comiéndose las del adversario. Pero sus fundamentos, aunque similares, no son iguales y para que hablar de las reglas.

En la entrada anterior, comentaba los disparates primordiales que he ido viendo con respecto a ipv6. Aquí les dejo un básico sobre las reglas del juego con ipv6.

2001:db8:: NO ES UN RANGO USABLE

Realmente sí lo es, pero está reservado para documentación esto quiere decir que NO DEBE HABER UNA LAN CON ESTE RANGO.

¿Entonces la LAN y la pública?

En ipv6, las direcciones de la LAN, son parte de la pública. No existe una distinción real entre LAN o internet y sobre todo:

NO HAY NATEO!!!

Te delegarán un prefijo y tú tendrás suficientes ip como para asignarle un ip a cada partícula de polvo de tu oficina. Pero ojo:

esas ip serán visibles desde y hacia internet

Cada ip que delegues de tu prefijo, formará parte del ciberspacio. Visto de otra forma. Si asignas 2001:db8::aaa1 a una máquina en tu LAN, esa dirección será de facto, alcanzable desde internet (si tienes internet claro).

Para lidiar con esta situación, deberás tener bien claro el forward en tu router.

pero yo no tengo una ipv6 real

No estés tan seguro… Si tienes una ipv4 pública, tienes algo parecido. Más adelante veremos como hacer un túnel 6in4, así que el prefijo de dirección más apropiado para tu LAN lo calcularás así:

“ipv6calc”
1
ipv6calc --quiet --action conv6to4 tu.ipv4.publica.aqui

Nota para los imbéciles: ¿¿Notaste lo que dice tu.ipv4.publica.aqui??

Eso te devolverá algo como 2002:a00:1:: lo cual es prefijo 6in4 en base a la ipv4 pública de tu LAN. Ese será tu prefijo ipv6.

Otra cosa: NO SE PONEN IP CORRIDAS como por ejemplo 2002:a00:1::1 y 2002:a00:1::2 ya que una de las cosas que intenta evitar ipv6 es el escaneo de redes. Las ipv6 se calculan en base a la mac. Más tarde veremos como lo hace el protocolo SLAAC.

A mi en lo personal, me gusta ponerle al ruter “cafe” 2002:a00:1::cafe y un ejemplo mas creativo 2002:a00:1::caba110 (caballo) así cada servidor tendría un nombre: cafe, caba110, ada, ded0, dad0, 1ce, a5ado

Por cierto, los 0 a la izquierda, se descartan

2002:a00:1::0001 es la misma dirección que 2002:a00:1::1 y de echo, es mucho más largo, porque tiene una pila de 0 por medio, pero así se expresa de manera más corta. Incluso así puede hacer ping y cualquier referencia a la dirección que el stack ipv6 se encarga de comprimirla y descomprimirla, sepa usted.

Note que en a00 sí se ponen los ceros, porque NO están a la izquierda.

Entonces el Forward

El forward de un cortafuegos será lo que controla que será visible dentro de tu LAN. La puerta de enlace decide qué será visible o no. Más adelante veremos un firewall ipv6 lo más sencillo posible. Usaremos ip6tables.

¿y el dhcp?

Hay servidores dhcp para ipv6, pero el mecanismo bacán es SLAAC. Te adelanto que dnsmasq tiene SLAAC, pero el pro, es radvd

Una configuración de radvd típica se ve así:

“/etc/radvd.conf”
1
2
3
4
5
6
7
8
9
10
interface eth1 {
     AdvSendAdvert on;
     MinRtrAdvInterval 3;
     MaxRtrAdvInterval 10;
     prefix ::/64 {
            AdvOnLink on;
            AdvAutonomous on;
            AdvRouterAddr on;
     };
};

Como vez, no especificas que rango de ip darás ni cosa parecida. El rango que darás, será del mismo prefijo que tiene en la interfaz eth1 (en este caso).

¿qué son las direcciones ff02 y fe80?

Son direcciones link-local. En ipv6, hay direcciones del tipo “multicast” cuyo destino serán todas las ip que estén dislocadas en la red. Esto no debe confundirse con anycast y vale aclarar que en ipv6 NO EXISTE broadcast.

“ping multicast”
1
2
3
4
[root@artema ~]# ping ff02::1%wlp2s0
PING ff02::1%wlp2s0(ff02::1%wlp2s0) 56 data bytes
64 bytes from fe80::420e:85ff:fe7a:e6d7%wlp2s0: icmp_seq=17 ttl=64 time=112 ms
64 bytes from fe80::420e:85ff:fe7a:e6d7%wlp2s0: icmp_seq=18 ttl=64 time=7.42 ms

Eso hará le hará ping a malanga y puesto de vianda que tengan un link-local en la red que tiene conectado el cable de eth0.

Sin embargo, al hacer ping a ff02::2 solo responderán aquellas ipv6 que sean routers. Eso es una manera de saber quien es un router o simplemente si hay alguno.

Las direcciones fe80:: son enlaces locales. Podría decirse que las direcciones fe80 son como decir “arp” pero se les puede hacer ping y otras boberías. O sea, es de palo tener direcciones fe80:: aparte de las globales.

¿y dnsmasq?

Ese es otro que bien baila y con cualquier música. Tiene un SLAAC implementado que es una maravilla. Al parámetro dhcp-range se le mandan unas clásulas especiales que hacen maravillas. La que más me gusta es ra-names que asigna una ip y un registro AAAA para máquina.

que bolá con bind?

Los registros del tipo AAAA resuelven punteros address para direcciones ipv6.

Sean:

  • ns01 el nombre del servidor
  • ns01 registro A con ip 192.168.0.1
  • ns01 registro AAAA con ip 2001:db8::cafe
  • proxy registro CNAME que apunta a ns01

Cuando preguntes por la ipv6 de proxy, resolverá 2001:db8::cafe, de esta manera, el sistema operativo preguntará simplemente por “proxy” y el DNS le resolverá ambas direcciones (4 y 6), la configuración de dichos stack, decidirá cual usar.

Esto en bind se escribe así:

“dominio.zone”
1
2
3
4
5
6
; El 1 el proxy
ns01         IN      A       192.168.0.1
ns01         IN      AAAA    2001:db8::cafe
             IN      MX  0   ns01
ruter        IN      CNAME   ns01
proxy        IN      CNAME   ns01

Ejemplo vivo:

“ping ipv6 a un CNAME”
1
2
3
4
[lazaro@artema ~]$ ping -6 proxy.hcg.sld.cu
PING proxy.hcg.sld.cu(ns01 (2002:c9dc:d582::cafe)) 56 data bytes
64 bytes from ns01 (2002:c9dc:d582::cafe): icmp_seq=1 ttl=64 time=0.100 ms
64 bytes from ns01 (2002:c9dc:d582::cafe): icmp_seq=2 ttl=64 time=0.174 ms

¿Qué aprendimos?

  • 2001:db8:: es un rango reservado, no se usa
  • ipv6 es complejo pero no complicado.
  • hay un ip6tables aparte de iptables
  • ipv6 NO necesita nateo
  • que existen tecnologías transicionales como 6in4
  • no es DHCP, si no RA y SLAAC
  • no hay ARP, si no link-local
  • los punteros AAAA funcionan igualito que los A

Si este artículo te resultó interesante, considere donar 0.04 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

Comments