Transforme la Raspberry Pi en una tarjeta de red inalámbrica (3) ----- comparta la red inalámbrica, convierta la red inalámbrica en una red cableada y deje que el dispositivo de red cableada se conecte a la red inalámbrica

Los enrutadores inalámbricos actuales son muy baratos, por lo que, de hecho, salvo requisitos especiales como construir una VPN, nadie usará una Raspberry Pi u otros hosts con sistemas Linux instalados para configurarlos como enrutadores inalámbricos. Hay algunos dispositivos anticuados sin una tarjeta de red inalámbrica o una interfaz USB, por lo que no puede simplemente expandir una tarjeta de red inalámbrica a través de la interfaz USB, y solo puede acceder a Internet a través de una tarjeta de red cableada. Sin embargo, los routers inalámbricos suelen instalarse en lugares donde no es conveniente conectarse a cables de red, por lo que en ocasiones necesitamos compartir redes inalámbricas o convertir redes inalámbricas en redes Ethernet cableadas. Como se muestra abajo:

                                                     +- RPi -------+          +- old pc1----+
                                                     |         Eth0+----------+ Eth0        |    
                 +- Router ----+                     |  DHCP server|          | 10.0.0.10   |
                 | Firewall    |                     |   10.0.0.1  |          |             |
(Internet)---WAN-+ DHCP server +-WLAN AP-+-)))   (((-+ WLAN        |          +-------------+
                 | 192.168.3.1 |                     |             |          
                 +-------------+                     |             |   
                                                     |             |
                                                     |             |                                                     
                                                     +-------------+  
                                                                       

Es equivalente a agregar una tarjeta de red inalámbrica a un dispositivo antiguo.
Se reduce a los siguientes 4 pasos:

  1. Habilitar la función de reenvío de IP
  2. Habilitar enmascaramiento SNAT/IP
  3. Configurar una IP estática para la tarjeta de red
  4. Habilitar DHCP y DNS

El método descrito en este documento ha sido probado en los últimos bullseys de Raspberry Pi OS + Raspberry Pi zero W.

1. Preparación

  1. Privilegios de administrador en la Raspberry Pi
  2. Preferiblemente, conectando directamente la pantalla y el teclado al modo de acceso local de la Raspberry Pi (para no interrumpir la conexión ssh por el cambio de ip durante el proceso de configuración)
  3. El Raspberry Pi está conectado a Ethernet y arranca normalmente
  4. Actualice al último sistema operativo Raspberry Pi y, si instaló un paquete durante esta configuración, recuerde reiniciar Raspberry Pi para asegurarse de que la instalación se completó correctamente.
  5. La configuración de red actual es:
  6. Configuración de IP de la red Ethernet conectada a la Raspberry Pi:
    la red IP 10.10.0.1/24 está configurada en la LAN Ethernet y la Raspberry Pi se conectará a la red inalámbrica de 192.168.3.1/24.
  7. Tenga listo un dispositivo cliente Ethernet con cable, como una computadora portátil, un teléfono inteligente, etc., para la prueba.

2. Instale el software de administración de configuración y DNS

  1. Para proporcionar servicios de administración de red (DNS, DHCP) a clientes Ethernet con cable más antiguos, Raspberry Pi necesita instalar el paquete dnsmasq:
sudo apt install dnsmasq
  1. Instale netfilter-persistent y su complemento iptables-persistent. Estos dos programas se utilizan para guardar las reglas del cortafuegos y restaurarlas cuando arranca la Raspberry Pi:
sudo apt install -y netfilter-persistent iptables-persistent

3. Configure la función de enrutamiento de red

En esta configuración, Raspberry Pi proporciona funciones de enrutamiento entre la red inalámbrica y la red Ethernet, accede a la red inalámbrica y convierte la red inalámbrica en una red cableada, o comparte la red inalámbrica con clientes cableados, proporcionando acceso a Internet a clientes limitados.

3.1, configuración IP de la interfaz de red cableada de Raspberry Pi

La Raspberry Pi ejecuta un servidor DHCP para la red cableada; la NIC eth0 cableada de la Raspberry Pi debe configurarse con una IP estática. En este momento, la Raspberry Pi se utiliza como enrutador en esta nueva red y generalmente se configura como la primera dirección IP en esta subred IP: 10.0.0.1.

Necesitamos modificar el archivo de configuración dhcpcd:

sudo vi /etc/dhcpcd.conf

Agregue lo siguiente al final del archivo:

interface eth0
    static ip_address=10.0.0.1/24

3.2 Habilitar enrutamiento y enmascaramiento de IP

Configure la Raspberry Pi para que los clientes con cable puedan acceder a las computadoras en la red principal o acceder a Internet a través de la red inalámbrica. Necesitamos habilitar el reenvío de IP (permitiendo que el tráfico fluya de una red a otra en la Raspberry Pi), cree un archivo con el siguiente comando:

sudo vi /etc/sysctl.d/routed-ap.conf

El contenido del archivo es el siguiente (habilitar la función de reenvío de IPv4)):

# Enable IPv4 routing
net.ipv4.ip_forward=1

Después de habilitar la función de reenvío de IP, debido a que no podemos modificar la configuración del enrutador principal, para permitir que los terminales cableados del segmento de red 10 accedan a la red externa, la Raspberry Pi debe habilitar la función de "enmascaramiento" de IP, y reemplace la dirección IP del terminal con cable por la propia en la red inalámbrica. Dirección IP 192.168.3.xx en la red.

  • Desde la dirección ascendente, Raspberry Pi reemplazará todos los datos del terminal con cable con la dirección IP de su propia WLAN, por lo que para el enrutador principal, solo ve los datos de la dirección IP de Raspberry Pi.
  • Desde la perspectiva de la dirección del enlace descendente, Raspberry Pi reemplazará los datos externos a la dirección IP de cada terminal con cable y enviará los datos al terminal con cable.

Necesitamos habilitar el enmascaramiento de IP en Raspberry Pi, que es la función NAT:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Guarde y habilite automáticamente esta función de enmascaramiento de IP al iniciar el sistema a través del servicio persistente de netfilter

sudo netfilter-persistent save

Tenga en cuenta que esta regla NAT se guarda en el directorio /etc/iptables/.

3.3 Configuración de servicios DHCP y DNS para redes cableadas

El dnsmasq instalado anteriormente proporciona servicios DHCP y DNS. La plantilla de archivo de configuración predeterminada es muy grande, pero solo necesitamos una pequeña función, por lo que aquí elegimos agregar la configuración desde un archivo vacío, que es más fácil.

Realice una copia de seguridad del archivo de plantilla de configuración original y cree un archivo de configuración vacío:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf

Agregue lo siguiente al archivo y guárdelo:

interface=eth0 # Listening interface
dhcp-range=10.0.0.2,10.0.0.20,255.255.255.0,24h
                # Pool of IP addresses served via DHCP
domain=eth0     # Local wireless DNS domain
address=/gw.eth0/10.0.0.1
                # Alias for this router

Raspberry Pi elegirá una IP entre 10.0.0.2 y 10.0.0.20 para proporcionar una dirección IP para el terminal con cable, y el tiempo de arrendamiento es de 24 horas.

4. Corre

Reinicie la Raspberry Pi y pruebe si el punto de acceso con cable está disponible.

sudo systemctl reboot

Después de reiniciar Raspberry Pi, al cliente cableado se le asignará automáticamente una dirección IP de 10 segmentos de red. También puede acceder a Internet con normalidad.

5. Avanzado: agregue dos puertos Ethernet al mismo puente

Nuestra Raspberry Pi tiene dos puertos Ethernet, como se muestra en la figura a continuación, por lo que una mejor solución que es más consistente con un enrutador doméstico es:

  • Utilice ambas tarjetas de red, para permitir la inserción ciega de las dos tarjetas Ethernet, a cualquier puerto de red conectado se le puede asignar la dirección IP del segmento de red 10.0.0.0/24.
  • Deje que las dos tarjetas de red se unan al puente, y los datos entre sí se pueden reenviar directamente en la segunda capa, lo que equivale a formar dos puertos LAN, de modo que los dos puertos LAN puedan tener una función de conmutación de capa 2.

inserte la descripción de la imagen aquí

El diagrama de topología es el siguiente:
inserte la descripción de la imagen aquí

                                                     +- RPi -------+          +- old pc1----+
                                                     |         Eth0+----------+ Eth0        |    
                 +- Router ----+                     |  DHCP server|          | 10.0.0.10   |
                 | Firewall    |                     |   10.0.0.1  |          |             |
(Internet)---WAN-+ DHCP server +-WLAN AP-+-)))   (((-+ WLAN        |          +-------------+
                 | 192.168.3.1 |                     |             |          
                 +-------------+                     |             |          +- old pc2----+
                                                     |         Eth1+----------+ Eth0        |   
                                                     |             |          | 10.0.0.4    |                                                       
                                                     +-------------+          |             |
                                                                              +-------------+
  1. Agregue las dos tarjetas de red eth0 y eth1 al puente br0
    y coloque los siguientes tres archivos en el directorio /etc/systemd/network
ls -l /etc/systemd/network/br*
-rw-r--r-- 1 root root 40 May 22 21:19 /etc/systemd/network/br0-menber-eth0.network
-rw-r--r-- 1 root root 40 May 22 21:19 /etc/systemd/network/br0-menber-eth1.network
-rw-r--r-- 1 root root 30 May 22 21:19 /etc/systemd/network/bridge-br0.netdev

El contenido de los archivos es:


cat /etc/systemd/network/br0-menber-eth0.network
[Match]
Name=eth0

[Network]
Bridge=br0
cat /etc/systemd/network/br0-menber-eth1.network
[Match]
Name=eth1

[Network]
Bridge=br0
cat /etc/systemd/network/bridge-br0.netdev
[NetDev]
Name=br0
Kind=bridge

  1. Inicie el servicio systemd/networkd
sudo systemctl enable systemd-networkd
  1. Deje que el servidor dhcp funcione en la interfaz virtual br0

Agregue el siguiente contenido al archivo /etc/dhcpcd.conf

denyinterface eth0
denyinterface eth1

interface br0
static ip_address=10.0.0.1/24

Agregue lo siguiente al archivo /etc/dnsmasq.conf

cat /etc/dnsmasq.conf
interface=br0 # Listening interface
dhcp-range=10.0.0.2,10.0.0.10,255.255.255.0,24h
                # Pool of IP addresses served via DHCP
domain=br0    # Local wireless DNS domain
address=/gw.br0/10.0.0.1
                # Alias for this router

Después de reiniciar, puede actualizar a la solución puente de alto nivel.

Supongo que te gusta

Origin blog.csdn.net/meihualing/article/details/130755346
Recomendado
Clasificación