Preparación de una Raspberry Pi para su uso como Gateway
Compartir la conexión a Internet Wi-Fi de la Raspberry Pi con Ethernet
En este paso, la Raspberry Pi debe estar conectada a Internet mediante Wi-Fi y el PLC debe estar conectado a la Raspberry Pi mediante la conexión Ethernet.
Ahora configurará la Raspberry Pi para compartir la conexión a Internet Wi-Fi con Ethernet. Ejecute los siguientes comandos en la Raspberry Pi.
1. (Opcional) Actualice la Raspberry Pi:
sudo apt-get update
sudo apt-get upgrade
2. Para configurar el cliente DHCP, abra el archivo de configuración
sudo vi /etc/dhcpcd.conf
y pegue denyinterfaces eth0 al final del archivo. Cierre el archivo de configuración (Esc, :w (Enter), :q (Enter)).
3. A continuación, abra las interfaces de red
sudo vi /etc/network/interfaces
y pegue las siguientes líneas al final del archivo:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.66.1
netmask 255.255.255.0
network 192.168.66.0
broadcast 192.168.66.255
Cierre el archivo de interfaces de red (Esc, :w (Enter), :q (Enter)).
4. Instale y configure el servicio DHCP para asignar automáticamente direcciones IP a cada dispositivo del puerto Ethernet. Instale dnsmasq y cree una nueva configuración:
sudo apt-get install dnsmasq
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf
Añada las siguientes líneas al archivo
interface=eth0
listen-address=192.168.66.1
dhcp-range=192.168.66.50,192.168.66.100,12h
server=8.8.8.8
bind-interfaces
domain-needed
bogus-priv
y cierre la configuración (Esc, :w (Enter), :q (Enter)).
5. Reinicie la Raspberry Pi.
sudo reboot
Después, es necesario volver a abrir la conexión SSH.
6. Ahora, reenviamos la conexión a Internet desde el Wifi al puerto Ethernet donde está conectado el PLC, configurando el reenvío IPv4. Abra el archivo /etc/systcl.conf file:
sudo vi /etc/sysctl.conf
Descomente la siguiente línea eliminando el # (línea 28):
net.ipv4.ip_forward=1
Guarde y cierre el archivo (Esc, :w (Enter), :q (Enter)).
7. Active el reenvío de IP ejecutando el siguiente comando:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
8. Ahora, instalamos iptables y añadimos reglas de firewall. Ejecute los siguientes comandos uno por uno:
sudo apt install iptables
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
9. Compruebe que se realizaron los cambios y guarde las reglas:
sudo iptables -L -n -v
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Para recargar automáticamente estas reglas después de cada reinicio, edite el archivo /etc/rc.local:
sudo vi /etc/rc.local
Pegue la siguiente línea antes de exit 0:
iptables-restore < /etc/iptables.ipv4.nat
Guarde y cierre el archivo (Esc, :w (Enter), :q (Enter)).
10. Para comprobar la configuración del firewall, ejecute
route
La tabla de enrutamiento debería tener este aspecto:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 304 0 0 wlan1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 304
Ahora puede consultar la consola de SDA para comprobar si se estableció la conexión con el Gateway y si el PLC está conectado.