Puente (br0) que no reenvía paquetes (RPi)

Puente (br0) que no reenvía paquetes (RPi)

Actualmente estoy en medio de un proyecto de red LTE. Tengo dos interfaces wwan (wwan0.1 y wwan0.2) y dos interfaces Ethernet (eth0 y eth1). Estas interfaces están configuradas como se muestra a continuación:

                       +-------------------------------------------------------------------------------------+ 
                       | Raspberry Pi                                                                        |
                       |    +------------------+    +-----+    +-----+    +-----+                            |
 +----------------+    |    |  +------------+  |    |     |    |     |    |     |    +-------------------+   |
 |  PC 1          |    |    |  |            |  |    |     |    |     |    |     |    | WWAN0.1 (Private) |   | 
 |  DHCP          |----+----+--|    ETH0    |  |    |     |    |     |    |     |<-->| Static            |   | 
 |  192.18.1.123  |    |    |  |            |  |    |  E  |    |  D  |    |  I  |    | 10.16.ppp.ppp     |   |
 +----------------+    |    |  +------------+  |    |  B  |    |  N  |    |  P  |    +-------------------+   |
                       |    |                  |    |  T  |    |  S  |    |     |                            |
                       |    |       BR0        |<-->|  A  |<-->|  M  |<-->|  R  |                            |
                       |    |                  |    |  B  |    |  A  |    |  O  |                            |
 +----------------+    |    |  +------------+  |    |  L  |    |  S  |    |  U  |    +-------------------+   |
 |  PC 2          |    |    |  |            |  |    |  E  |    |  Q  |    |  T  |    | WWAN0.1 (Public)  |   |
 |  DHCP          |----+----+--|    ETH1    |  |    |  S  |    |     |    |  E  |<-->| DHCP              |   |
 |  192.18.1.169  |    |    |  |            |  |    |     |    |     |    |     |    | 10.xxx.xxx.xxx    |   |
 +----------------+    |    |  +------------+  |    |     |    |     |    |     |    +-------------------+   |
                       |    +------------------+    +-----+    +-----+    +-----+                            |
                       |                                                                                     |
                       +-------------------------------------------------------------------------------------+

Las siguientes obras:

  • Desde el RPi puedo hacer ping a un servidor en la red privada wwan0.1
  • Desde el RPi puedo hacer ping a un servidor en la red pública wwan0.2
  • A PC1 y PC2 se les asigna una dirección IP de DNSMasq (a través de br0)
  • Desde la PC1 puedo hacer ping a la PC2
  • Desde la PC2 puedo hacer ping a la PC1
  • Desde PC1 y PC2, puedo hacer ping al RPi (192.168.1.1)
  • Desde PC1 y PC2, puedo conectarme al RPi vía SSH (192.168.1.1)

Sin embargo, lo siguiente no funciona:

  • No puedo hacer ping a nada en las redes públicas o privadas desde la PC1
  • No puedo hacer ping a nada en las redes públicas o privadas desde la PC2

Está es mi configuración actual

brctl

brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0050b69c9bf5       no              eth0
                                                        eth1

ebtables

Bridge table: filter

Bridge chain: FORWARD, entries: 4, policy: DROP
-p IPv4 -j ACCEPT
-p ARP -j ACCEPT
-j ACCEPT
--log-level info --log-prefix "EBFW" --log-ip -j CONTINUE

Bridge chain: INPUT, entries: 4, policy: DROP
-p IPv4 -j ACCEPT
-p ARP -j ACCEPT
-j ACCEPT
--log-level info --log-prefix "EBFW" --log-ip -j CONTINUE

Bridge chain: OUTPUT, entries: 4, policy: DROP
-p IPv4 -j ACCEPT
-p ARP -j ACCEPT
-j ACCEPT
--log-level info --log-prefix "EBFW" --log-ip --log-arp -j DROP

sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.conf.br0.bc_forwarding=1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

ruta IP

default dev wwan0.2 scope link
10.16.ppp.ppp/30 dev wwan0.1 proto kernel scope link src 10.16.ppp.ppp
10.xxx.xxx.xxx/29 dev wwan0.2 proto kernel scope link src 10.xxx.xxx.xxx
10.10.124.0/24 dev wwan0.1 scope link
10.100.0.0/22 dev wwan0.1 scope link
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1

¿Alguien sabe cuál es la pieza que falta?

Salud,

Sotavento

Respuesta1

Probablemente se pierda la parte NAT, ya que requeriría cualquier enrutamiento de enrutador entre una LAN usando direcciones IP privadas en un lado y direcciones IP públicas en el otro lado.

Algo tan simple como:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wwan+ -j MASQUERADE

Si también tiene control total del wwan y su lado remoto, uno podría imaginar que los dispositivos remotos en la parte privada (wwan0.1) podrían recibir rutas directas a 192.168.1.0/24 a través de 10.16.ppp.ppp en lugar de usar NAT en el RPi, pero la posibilidad de hacerlo dependería de cómo se implemente la comunicación.

información relacionada