Configuración de Raspberry Pi como router ethernet
Raspberry PI 3b+: Router con Ubuntu server 20.04, Iptables y Dhcp server
Para configurar un enrutador ethernet en una Raspberry Pi 3b+ en el sistema operativo Ubuntu Server, se debe activar el IP Forwarding (encargado del reenvío de paquetes), definir una dirección IP fija en una interface de red, instalar un servidor dhcp y establecer reglas de enrutamiento en iptables.
En mi caso, el enlace principal del servicio de internet corresponde a un modem Mifi ZTE. Este modem esta conectado a un puerto usb del raspberry pi y resuelve la dirección IP 192.168.0.1 en la interfaz de red eth1
Configuración de interface de red ethernet en archivo /etc/netplan/50-cloud-init.yaml:
- ip fija (192.168.10.1)
- sin gateway
- con dns 192.168.0.1, 8.8.8.8, 1.1.1.1
network:
version: 2
ethernets:
eth0:
dhcp4: no
optional: true
addresses: [192.168.10.1/24]
nameservers:
addresses: [192.168.0.1, 8.8.8.8, 1.1.1.1]
Aplicar parámetros de interfaz de red:
sudo netplan apply
Activar reenvío de paquetes y comprobar el estado de enrutamiento:
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
cat /proc/sys/net/ipv4/ip_forward
sudo sysctl -p
Instalar servidor dhcp y editar su archivo de configuración:
sudo apt install isc-dhcp-server
sudo nano /etc/dhcp/dhcpd.conf
Archivo /etc/dhcp/dhcpd.conf:
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.40;
option domain-name-servers 192.168.0.1, 8.8.8.8, 1.1.1.1;
#option domain-name "internal.example.org";
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 600;
max-lease-time 7200;
}
Reiniciar servidor dhcp
sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server
Aplicar regla para activar NAT de tipo MASQUERADE en la interfaz de red eth1 (en mi caso, esta interfaz corresponde al modem/mifi ZTE, conectado a un puerto usb del raspberry pi):
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE
iptables -t nat -L
Eso es todo, podemos listar los clientes dhcp activos con el comando dhcp-lease-list --lease /var/lib/dhcpd/dhcpd.leases
¿tienes alguna consulta?
Puedes contactarme enviándome un mensaje desde aquí.
diciembre 16, 2022 Backend
septiembre 19, 2022 Redes/Networking, Embedded Systems
julio 20, 2022 Cloud
- Backend(4)
- Redes/Networking(4)
- Embedded Systems(2)
- Cloud(2)
- Frontend(3)
- Microservicios(4)