En este post voy a hacer una pequeña guía para configurar una máquina Linux como router y así reemplazar al router de Digi, aunque se puede aplicar a cualquier operador.
Lo primero es planificar el cableado. En caso de ser una prueba y sólo se quiera internet en el router, se puede conectar la ONT al router.
En el caso de que haya más clientes hay dos opciones:
- Conectar la ONT directamente a un interfaz del router. Desde otro interfaz (el router tendrá que tener dos tarjetas de red) conectar a un switch con los clientes.
- Conectar la ONT, el router (un sólo interfaz) y los clientes a un switch con VLAN.
Yo he optado por la opción 2.
- La ONT de Digi tiene el tráfico en la VLAN 20, así que hay que etiquetar su puerto en el switch con esta VLAN.
- El router estará conectado a un puerto con la VLAN por defecto sin etiquetar y la VLAN 20 etiquetada.
- Los clientes estarán en puertos con la VLAN por defecto sin etiquetar
Se configura un interfaz VLAN sobre el interfaz físico. Se puede hacer con nmcli
o nmtui
. El interfaz no necesita dirección ya que no utilizaremos protocolo IP para hablar con la ONT.
[connection]
id=vlan
uuid=99999999-9999-9999-9999-999999999
type=vlan
[ethernet]
[vlan]
flags=1
id=20
parent=enp2s0
[ipv4]
method=disabled
[ipv6]
addr-gen-mode=default
method=ignore
[proxy]
Sobre este interfaz se genera otro interfaz tipo PPPoE que es el que hará la conexión con la ONT y obtendrá la IP pública.
[connection]
id=pppoe-ppp2
uuid=99999999-9999-9999-9999-999999999
type=pppoe
interface-name=ppp2
timestamp=1681558168
[ethernet]
[ppp]
[pppoe]
parent=enp2s0.20
password=XXX
username=XXX
[ipv4]
method=auto
[ipv6]
method=ignore
[proxy]
Una vez que los interfaces se han levantado por orden, el router ya tendrá la IP pública asignada y estará expuesto a internet.
Para que los clientes puedan conectar hay que permitir el reenvío de paquetes mediante un parámetro del kernel:
net.ipv4.ip_forward=1
Y las siguientes reglas de iptables
:
-t filter -A FORWARD -o ppp2 -j ACCEPT
-t filter -A FORWARD -i ppp2 -j ACCEPT
-t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp2 -j MASQUERADE
-t mangle -A FORWARD -p tcp -o ppp2 -j TCPMSS --set-mss 1452
En este punto los clientes ya podrán utilizar el router para navegar. Por supuesto el router no se puede quedar así y hay que aplicarle las medidas de seguridad necesarias, pero aquí sólo me centro en la configuración de la conectividad.