我配置了如下图所示的网络:
ROT1是基于番茄的路由器。它具有BR0桥接网络接口,用于内部网络中具有子网192.168.1.0/24的所有客户端。其中一个客户端是NAS设备(NAS01),它提供一些基本服务,如ownCloud和SMB服务器。 LAP01和MOB01客户端都能够看到NAS01并使用其服务。 ROT1还配置了两个VPN:TAP0是一个与BR0桥接的OpenVPN桥接隧道,这就是客户端LAP04从子网192.168.1.0/24内的DHCP服务器接收IP地址的原因。此客户端还能够ping内部子网内的NAS01设备。路由器ROT01正在运行 arpwake
当具有ARP请求(who-has)的网络中的其他客户端请求主机时,程序自动使用Magic Packet唤醒NAS01。您可以找到应用程序的描述和源代码的链接 这里 。 arpwake
应用程序正在BR0上侦听包含NAS01 MAC地址的ARP请求,并在网络中的某个客户端请求时自动发送Magic Packet。
问题是我正在尝试使用允许我使用的OpenVPN设置路由VPN隧道 arpwake
应用程序,以便在TUN0网络中的一个客户端要求时自动唤醒NAS01。如果NAS01启动,我可以ping它并使用所有服务,但是如果它已经关闭我无法唤醒它 arpwake
应用程序,因为该接口上没有ARP请求(TUN0) - 我已经在路由器上用tcpdump检查过了。我也试过使用代理ARP命令 echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
但它仍然不起作用。
这是路由器的配置:
路线
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的 (输出 iptables-save
仅涉及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
TUN0 OpenVPN配置 (删除了安全相关选项)
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 for TUN0接口 (默认情况下,OpenVPN使用NOARP选项启用此接口,但即使我使用命令重新打开它 ifconfig tun0 arp
它没有解决我的问题)。
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)
我的问题是:如何让这个TUN0接口开始使用ARP?