Uno de los factores que suele influir cuando no obtenemos la máxima puntuación en el Maxim_Factor es la densidad de nodos que haya en la zona donde tenemos el servidor (A mayor distancia geográfica entre la IP de nuestro nodo y la IP de otros nodos, mayor valor de Maxim_Factor obtendremos). La mayoría de las veces los nodos están configurados para correr en IPv4, así que cambiar a IPv6 puede ser una manera de diferenciarnos para aumentar nuestro Maxim_Factor y así nuestro Score. Sobra decir que si en nuestra zona hay más nodos corriendo sobre Ipv6 no obtendremos esta diferencia.
Hay proveedores donde IPv6 ya viene habilitado por defecto y no hay que hacer nada, pero en otros hay que configurarlo, vamos a ver como hacerlo.
1.- HABILITAR IPv6 EN NUESTRO PROVEEDOR
El primer paso es entrar en el panel de control de la página de nuestro proveedor y habilitarlo. Podemos comprobarlo haciendo:
ip addr
Obtendremos algo así:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0..1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens191: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:21:4a:5c brd ff:ff:ff:ff:ff:ff
inet 82.223.202.51/32 brd 82.223.202.50 scope global dynamic ens192
valid_lft 29695sec preferred_lft 29695sec
inet6 2001:ba0:1800:61::1/128 scope global
valid_lft forever preferred_lft forever
Podemos ver que nuestra interfaz de red es ens191, nuestra Ipv4 es 82.223.202.51 y nuestra Ipv6 es 2001:ba0:1800:61::1
2.- CONFIGURAR NETPLAN
Vamos a usar netplan para habilitar IPv6. Para ello vamos al directorio
cd etc/netplan
Si el directorio no existe netplan, no ha sido instalado, saltamos al punto 6. Si está, vemos el contenido del directorio:
ls
Creamos el fichero 01-netcfg.yaml o lo editamos si ya existe.
nano 01-netcfg.yaml
Cambiamos su contenido por:
network:
version: 2
ethernets:
NUESTRA INTERFAZ DE RED:
addresses:
- NUESTRA IPv4 ppal
- NUESTRA IPv4 2 adicionales (si las hay)
- NUESTRA IpV6 1 ppal
- NUESTRA IpV6 2 adicionales (si la hay)
gateway6: NUESTRA GATEWAY PARA IPv6
nameservers:
addresses:
- NUESTRA DNS 1 PARA IPv4
- NUESTRA DNS 1 PARA IPv4
routes:
- on-link: true
to: default
via: NUESTRA GATEWAY PARA IPv4
version: 2
Veamos como obtenemos esta información. En el apartado anterior vimos como podemos obtener la interfaz de red y las IPvs con ip addr
3.- PUERTAS DE ENLACE (GATEWAY)
Para obtener las puertas de enlace tanto de IPv4 como de IPv6 usamos estos comandos respectivamente
IPv4:
ip route show | grep 'default'
IPv6:
ip -6 route show | grep 'default'
Obtendremos las salidas:
IPv4:
default via 10.255.255.1 dev ens191
default via 10.255.255.1 dev ens191 proto static onlink
IPv4:
default via fe80::250:56ff:fe8c:389f dev ens191 proto ra metric 1024 pref high
4.- SERVIDORES DNS
Para obtener las los servidores DNS tanto de IPv4 como de IPv6 usamos estos comandos respectivamente
IPv4:
curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
IPv6:
curl http://169.254.169.254/latest/meta_data/dns/nameservers6 -Lv
Obtendremos una salida tal que así:
IPv4:
Trying 169.254.169.254:80…
* TCP_NODELAY set
* Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
> GET /latest/meta_data/dns/nameservers HTTP/1.1
> Host: 169.254.169.254
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Fri, 10 Feb 2023 09:54:55 GMT
< Server: Apache
< Strict-Transport-Security: max-age=63072000; includeSubDomains
< Vary: Accept-Encoding
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, X-USER, Content-Type, X-API-TOKEN, Authorization
< Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
< Access-Control-Expose-Headers: Error-Msg
< Cache-control: no-cache, no-store, max-age=0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, Content-Type, X-API-TOKEN, Authorization
< Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
< Access-Control-Expose-Headers: Error-Msg
< Transfer-Encoding: chunked
< Content-Type: text/plain;charset=UTF-8
<
212.227.123.16,212.227.123.17
* Connection #0 to host 169.254.169.254 left intact
Nos quedamos con los valores 212.227.123.16, 212.227.123.17
5.- COMPROBAR EL ARCHIVO NETPLAN Y RESETEAR
Con los valores obtenidos, nuestro fichero netplan quedaría así:
network:
version: 2
ethernets:
ens191:
addresses:
- 82.223.202.51/32
- 2001:ba0:1800:61::1/128
gateway6: fe80::250:56ff:fe81:389f
nameservers:
addresses:
- 212.227.123.16
- 212.227.123.17
routes:
- on-link: true
to: default
via: 10.255.255.1
version: 2
Comprobamos el archivo de configuración con:
netplan - debug apply
Si todo está bien, no dará errores (cuidado con las sangrías, no usar tabuladores). Reseteamos para que se apliquen los cambios.
systemctl reboot
6.- SI NETPLAN NO ESTÁ INSTALADO
En este caso tenemos que modificar el fichero /etc/network/interfaces que tendrá este formato.
# The loopback network interface
auto lo NUESTRA INTERFAZ DE RED
iface lo inet loopback
# The primary network interface
allow-hotplug NUESTRA INTERFAZ DE RED
iface NUESTRA INTERFAZ DE RED inet static
# IPV6 Setup
iface NUESTRA INTERFAZ DE RED inet6 static
accept_ra
address NUESTRA IPv6 ppal
netmask 64
gateway NUESTRA GATEWAY PARA IPv6
En nuestro caso quedaría así:
# The loopback network interface
auto lo ens191
iface lo inet loopback
# The primary network interface
allow-hotplug ens191
iface ens191 inet static
# IPV6 Setup
iface ens191inet6 static
accept_ra
address 2001:ba0:1800:61::1
netmask 64
gateway fe80::250:56ff:fe81:389f
Guardamos el fichero y reseteamos para que se apliquen los cambios.
systemctl reboot
7.- REGISTRAMOS LA IPv6 EN EL NODO Y EN DISCORD
Tenemos que registrar la nueva IP, para ello vamos al archivo config.toml
nano /massa/massa-node/base_config/config.toml
En el apartado [network] añadimos nuestra IP, escribimos:
routable_IP = "2001:ba0:1800:61::1"
Guardamos y arrancamos el nodo.
También tenemos que ir al bot de Discord y cambiar la nueva IP para que nos registre bien el Score.
Nuestro nodo debe funcionar ahora sobre IPv6, nos queda comprobar si el Maxim_factor está puntuando el máximo o si al menos experimentamos un incremento respecto a la anterior configuración.
Buena suerte.