He configurado la red que se muestra en el siguiente diagrama:
ROT1 es un enrutador basado en tomate. Tiene una interfaz de red en puente BR0 para todos los clientes dentro de la red interna con la subred 192.168.1.0/24. Uno de los clientes es un dispositivo NAS (NAS01) que proporciona algunos servicios básicos como ownCloud y servidor SMB. Tanto los clientes LAP01 como MOB01 pueden ver NAS01 y usar sus servicios. ROT1 también tiene dos VPN configuradas: TAP0 es un túnel puenteado OpenVPN que está puenteado con BR0, por eso el cliente LAP04 recibe la dirección IP del servidor DHCP dentro de la subred 192.168.1.0/24. Este cliente también puede hacer ping al dispositivo NAS01 dentro de la subred interna. El enrutador ROT01 ejecuta un arpwake
programa para activar automáticamente NAS01 con Magic Packet cuando algún otro cliente de la red solicita el host con una solicitud ARP (quién tiene). Puede encontrar la descripción de la aplicación y los enlaces para su código fuenteaquí . arpwake
la aplicación está escuchando en BR0 la solicitud ARP que contiene la dirección MAC de NAS01 y envía automáticamente Magic Packet si uno de los clientes dentro de la red lo solicita. El problema es que estoy tratando de configurar el túnel VPN enrutado también con OpenVPN que me permitirá usar la arpwake
aplicación para activar automáticamente NAS01 cuando uno de los clientes de la red TUN0 lo solicite. Si NAS01 está activo, puedo hacer ping y usar todos los servicios, pero si está inactivo, no puedo activarlo con la arpwake
aplicación, porque no hay solicitudes ARP en esa interfaz (TUN0). Ya lo he verificado con tcpdump en el enrutador . También intenté usar Proxy ARP con el comando, echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
pero aún así no funciona.
Aquí está la configuración del enrutador:
Rutas
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.200.2 * 255.255.255.255 UH 0 0 0 tun0
192.168.0.1 * 255.255.255.255 UH 0 0 0 vlan2
192.168.200.0 192.168.200.2 255.255.255.0 UG 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
192.168.0.0 * 255.255.255.0 U 0 0 0 vlan2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.0.1 0.0.0.0 UG 0 0 0 vlan2
iptables (salida de iptables-save
solo TUN0)
# Generated by iptables-save v1.3.8 on Sun Aug 28 12:08:23 2016
*nat
:PREROUTING ACCEPT [50195:5904352]
:POSTROUTING ACCEPT [409:28145]
:OUTPUT ACCEPT [4413:306096]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
# Completed on Sun Aug 28 12:08:23 2016
# Generated by iptables-save v1.3.8 on Sun Aug 28 12:08:23 2016
*mangle
:PREROUTING ACCEPT [1628436:1350223724]
:INPUT ACCEPT [43707:3160699]
:FORWARD ACCEPT [1563428:1344198921]
:OUTPUT ACCEPT [13790:1556262]
:POSTROUTING ACCEPT [1576178:1345632445]
COMMIT
# Completed on Sun Aug 28 12:08:23 2016
# Generated by iptables-save v1.3.8 on Sun Aug 28 12:08:23 2016
*filter
:INPUT DROP [10689:641141]
:FORWARD ACCEPT [19:1151]
:OUTPUT ACCEPT [13539:1531250]
-A INPUT -i tun0 -j ACCEPT
COMMIT
# Completed on Sun Aug 28 12:08:23 2016
Configuración TUN0 OpenVPN (opciones relacionadas con la seguridad eliminadas)
local [IP_address]
port [PORT]
proto udp
dev tun
server 192.168.200.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
push "dhcp-option DNS 192.168.1.1"
ifconfig para la interfaz TUN0 (de forma predeterminada, OpenVPN abre esta interfaz con la opción NOARP, pero incluso si vuelvo a activarlo con el comando ifconfig tun0 arp
no resuelve mi problema).
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.200.1 P-t-P:192.168.200.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:311 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:21166 (20.6 KiB) TX bytes:3486 (3.4 KiB)
Mi pregunta es: ¿cómo hacer que esta interfaz TUN0 comience a funcionar con ARP?