我正在尝试在站点 A(服务器-Merlin)和站点 B(客户端 DD-WRT)之间设置 OpenVPN 站点到站点。隧道已建立,两个对等点都可以互相 ping 通,但是当客户端子网(10.1.30.0/24)上的任何人尝试 ping 服务器端(10.1.10.0/24)上的任何主机时,服务器会丢弃数据包,因为即使添加了路由,服务器也不知道如何到达客户端的子网。以下是配置:
服务器
自动生成的配置
守护进程
服务器 172.16.254.0 255.255.255.248
原始 UDP
端口 1198
开发者 tun21
密码 AES-256-CBC
comp-lzo自适应
保持活动 15 60
动词 3
推“路由 10.1.10.0 255.255.255.0”
客户端配置目录 ccd
客户对客户
重复-cn
ca 证书
dh dh.pem
证书服务器.crt
密钥服务器.key
状态版本 2
状态 状态
自定义配置
ifconfig 172.16.254.1 255.255.255.248M
管理 127.0.0.1 5001M
无授权
防火墙 - 服务器
iptables -I 输入 2 -p udp --dport 1198 -j 接受
iptables -I 转发 -i br0 -o tun21 -j 接受
iptables -I 转发 -i tun21 -o br0 -j 接受
路由表服务器:
172.16.254.2 dev tun21 proto 内核范围链接 src 172.16.254.1
xxxx dev eth0 范围链接
172.16.254.0/29 通过 172.16.254.2 dev tun21
xxxx/28 dev eth0 proto 内核范围链接 src xxxx
10.1.10.0/24 dev br0 proto 内核范围链接 src 10.1.10.254
127.0.0.0/8 dev lo 范围链接
默认通过 xxxx dev eth0
客户端配置:
ca /tmp/openvpncl/ca.crt
证书 /tmp/openvpncl/client.crt
密钥 /tmp/openvpncl/client.key
管理 127.0.0.1 5001
管理日志缓存 50
动词 4
靜音 3
日志附加到 /var/log/openvpncl
写入pid /var/run/openvpncl.pid
客户
解析-重试无限
不绑定
持久密钥
坚持-tun
脚本安全 2
mtu-disc 是
开发tun1
原始 UDP
密码 aes-256-cbc
无授权
远程 xxxx 1198
comp-lzo自适应
tun-mtu 1500
快速输入输出
客户端防火墙
iptables -I 输入 2 -p udp --dport 1198 -j 接受
iptables -I 转发 -i br0 -o tun1 -j 接受
iptables -I 转发 -i tun1 -o br0 -j 接受
客户端路由表:
内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 Iface
0.0.0.0 192.168.2.253 0.0.0.0 UG 0 0 0 eth1
10.1.10.0 172.16.254.5 255.255.255.0 UG 0 0 0 tun1
10.1.30.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 低
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br0
172.16.254.0 172.16.254.5 255.255.255.248 UG 0 0 0 tun1
172.16.254.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
239.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 br0
奇怪的是,在客户端,tun 设备的 IP 为 172.16.254.6,而网关为 172.16.254.5;在服务器端,IP 为 172.16.254.1,tun IP 为 172.16.254.2。在服务器端,我无法 ping 172.16.254.2,但我可以 ping 客户端的 tun IP(172.16.254.6);反之亦然,在客户端,我无法 ping 172.16.254.5(即网关),但我可以 ping 172.16.254.1。
服务器接口
IP 地址
1:lo:mtu 16436 qdisc 无队列
链路/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 范围主机 lo
2:eth0:mtu 1500 qdisc pfifo_fast qlen 1000
链路/以太 d8:50:e6:cb:f5:f0 brd ff:ff:ff:ff:ff:ff:ff
inet xxxx/28 brd xxxx 范围全局 eth0
3:eth1:mtu 1500 qdisc pfifo_fast qlen 1000
链路/以太 d8:50:e6:cb:f5:f0 brd ff:ff:ff:ff:ff:ff:ff
4:eth2:mtu 1500 qdisc pfifo_fast qlen 1000
链路/以太 d8:50:e6:cb:f5:f4 brd ff:ff:ff:ff:ff:ff:ff
5:vlan1@eth0:mtu 1500 qdisc 无队列
链路/以太 d8:50:e6:cb:f5:f0 brd ff:ff:ff:ff:ff:ff:ff
6:vlan2@eth0:mtu 1500 qdisc 无操作
链路/以太 d8:50:e6:cb:f5:f0 brd ff:ff:ff:ff:ff:ff:ff
7:br0:mtu 1500 qdisc 无队列
链路/以太 d8:50:e6:cb:f5:f0 brd ff:ff:ff:ff:ff:ff:ff
inet 10.1.10.254/24 brd 10.1.10.255 范围全局 br0
8:tun21:mtu 1500 队列规定
pfifo_fast qlen 100
链接/[65534]
inet 172.16.254.1 对等体 172.16.254.2/32 范围全局 tun21
客户端接口:
ath0 链路封装:以太网 HWaddr B0:C7:45:75:1C:F6
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2528056 errors:0 dropped:0 overruns:0 frame:0 TX packets:3317121 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:177453174 (169.2 MiB) TX bytes:539912763 (514.9 MiB)
ath1 链路封装:以太网 HWaddr B0:C7:45:75:1C:F7
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:12502 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:0 (0.0 B) TX bytes:1688459 (1.6 MiB)
br0 链路封装:以太网 HWaddr B0:C7:45:75:1C:F6
inet addr:10.1.30.251 Bcast:10.1.30.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3715741 errors:0 dropped:3772 overruns:0 frame:0 TX packets:5006361 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:415672171 (396.4 MiB) TX bytes:6820174338 (6.3 GiB)
br0:0 链路封装:以太网 HWaddr B0:C7:45:75:1C:F6
inet addr:169.254.255.1 Bcast:169.254.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth0 链路封装:以太网 HWaddr B0:C7:45:75:1C:F6 向上广播运行多播 MTU:1500 指标:1
RX packets:610099 errors:0 dropped:4 overruns:18 frame:0 TX packets:931175 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:263258272 (251.0 MiB) TX bytes:833541212 (794.9 MiB) Interrupt:4
eth1 链路封装:以太网 HWaddr B0:C7:45:75:1C:F6
inet addr:192.168.2.254 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1 RX packets:5071499 errors:0 dropped:787 overruns:0 frame:0 TX packets:3681042 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2519572372 (2.3 GiB) TX bytes:462892303 (441.4 MiB) Interrupt:5
lo 链路封装:本地环回
inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1 RX packets:421 errors:0 dropped:0 overruns:0 frame:0 TX packets:421 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:37100 (36.2 KiB) TX bytes:37100 (36.2 KiB)
mon.ath0 链接封装:UNSPEC HWaddr B0-C7-45-75-1C-F6-00-00-00-00-00-00-00-00-00-00 UP 广播运行多播 MTU:1500 指标:1
RX packets:462186 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:105722162 (100.8 MiB) TX bytes:0 (0.0 B)
mon.ath1 链接封装:UNSPEC HWaddr B0-C7-45-75-1C-F7-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3114 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:377428 (368.5 KiB) TX bytes:0 (0.0 B)
tun1 链接封装:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.16.254.6 P-t-P:172.16.254.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:268 errors:0 dropped:0 overruns:0 frame:0 TX packets:14279 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:22488 (21.9 KiB) TX bytes:775355 (757.1 KiB)
从服务器 Ping 对等 IP:
ping 172.16.254.2
PING 172.16.254.2 (172.16.254.2): 56 个数据字节
--- 172.16.254.2 ping 统计 ---
已发送 4 个数据包,已接收 0 个数据包,数据包丢失率为 100%
从服务器 ping tun0 的客户端 IP 地址:
ping 172.16.254.6
PING 172.16.254.6 (172.16.254.6): 56 个数据字节
来自 172.16.254.6 的 64 字节:seq=0 ttl=64 time=30.222 毫秒
来自 172.16.254.6 的 64 字节:seq=1 ttl=64 time=29.536 毫秒
来自 172.16.254.6 的 64 字节:seq=2 ttl=64 time=30.918 毫秒
来自 172.16.254.6 的 64 个字节:seq=3 ttl=64 time=30.386 毫秒
来自 172.16.254.6 的 64 个字节:seq=4 ttl=64 time=30.788 毫秒
来自 172.16.254.6 的 64 字节:seq=5 ttl=64 time=31.271 毫秒
--- 172.16.254.6 ping 统计 ---
已发送 6 个数据包,已接收 6 个数据包,0% 数据包丢失
往返最小/平均/最大 = 29.536/30.520/31.271 毫秒
从客户端 ping 对等 IP:
ping 172.16.254.5
PING 172.16.254.5 (172.16.254.5): 56 个数据字节
^C --- 172.16.254.5 ping 统计 ---
已发送 7 个数据包,已接收 0 个数据包,数据包丢失率为 100%
从客户端 ping 服务器上 tun21 的 IP
ping 172.16.254.1
PING 172.16.254.1 (172.16.254.1): 56 个数据字节
来自 172.16.254.1 的 64 字节:seq=0 ttl=64 time=29.253 毫秒
来自 172.16.254.1 的 64 字节:seq=1 ttl=64 time=31.730 毫秒
来自 172.16.254.1 的 64 字节:seq=2 ttl=64 time=30.010 毫秒
^C
--- 172.16.254.1 ping 统计 ---
已发送 3 个数据包,已接收 3 个数据包,0% 数据包丢失
往返最小/平均/最大 = 29.253/30.331/31.730 毫秒
我尝试使用 IP 172.16.254.6 在服务器上添加一条到 10.1.30.0(客户端 LAN)的路由,但它只允许我将其映射到 172.16.254.2
ip route 通过 172.16.254.6 dev tun21 添加 10.1.30.0/24
RTNETLINK 回答:没有这样的过程
ip route 通过 172.16.254.2 dev tun21 添加 10.1.30.0/24
从服务器 ping 客户端 LAN 上的主机——没有成功
PING 10.1.30.100 (10.1.30.100): 56 个数据字节
--- 10.1.30.100 ping 统计 ---
已发送 3 个数据包,已接收 0 个数据包,数据包丢失率 100%
从客户端 ping 服务器 LAN 上的主机——没有成功
ping 10.1.10.100
PING 10.1.10.100 (10.1.10.100): 56 个数据字节
^C
--- 10.1.10.100 ping 统计信息 ---
已发送 2 个数据包,已接收 0 个数据包,数据包丢失率为 100%
来自服务器端的日志:
LOG:1432700723,D,Client/xxxx:44820 UDPv4 读取 [81] 来自 [AF_INET]xxxx:44820: P_DATA_V1 kid=0 DATA len=80
LOG:1432700723,,Client/xxxx:44820 MULTI:客户端 [10.1.30.100] 的源地址错误,数据包丢失
LOG:1432700723,D,Client/xxxx:44820 UDPv4 读取 [81] 来自 [AF_INET]xxxx:44820: P_DATA_V1 kid=0 DATA len=80
LOG:1432700723,,Client/xxxx:44820 MULTI:客户端 [10.1.30.106] 的源地址错误,数据包丢失
日志:1432700724,D,客户端/xxxx:44820 UDPv4 读取 [81] 来自 [AF_INET]xxxx:44820:P_DATA_V1 kid=0 数据长度=80
LOG:1432700724,,Client/xxxx:44820 MULTI:客户端 [10.1.30.110] 的源地址错误,数据包丢失
2700729,,Client/xxxx:44820 MULTI:客户端 [10.1.30.100] 的源地址错误,数据包丢失
来自客户端的日志:
日志:1432686050,D,UDPv4 写入 [81] 至 xxxx:1198:P_DATA_V1 kid=0 数据长度=80
日志:1432686050,D,UDPv4 写入 [81] 至 xxxx:1198:P_DATA_V1 kid=0 数据长度=80
日志:1432686051,D,UDPv4 写入 [81] 至 xxxx:1198:P_DATA_V1 kid=0 数据长度=80
我甚至在两个路由器上运行了 tcpdump,结果发现来自服务器端 LAN 的数据包甚至没有到达客户端路由器。
任何帮助,将不胜感激。
谢谢
答案1
我通过在我的配置中添加以下几行解决了这个问题
路由 10.1.30.0 255.255.255.0
推“路由 10.1.10.0 255.255.255.0”
推“路由 10.1.30.0 255.255.255.0”
并在 CCD 文件夹中为我的客户端添加了以下几行
少/tmp/etc/openvpn/server1/ccd/CALPHA
iroute 10.1.30.0 255.255.255.0