我的客户端pc上有两个隧道设备tun0和tun1连接到远程OpenVPN服务器.ifconfig将它们显示为
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.128.23 P-t-P:10.0.128.23 Mask:255.255.128.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.128.24 P-t-P:10.0.128.24 Mask:255.255.128.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
现在我尝试通过执行此命令来绑定这些设备
sudo modprobe bonding miimon=100 mode=balance-rr
sudo ifconfig bond0 10.2.1.4 netmask 255.255.255.0
sudo ifenslave bond0 tun0
sudo ifenslave bond0 tun1
但ifenslave命令失败会抛出以下消息
ifenslave.c:v1.1.0 (December 1, 2003)
o Donald Becker (becker@cesdis.gsfc.nasa.gov).
o Detach support added on 2000/10/02 by Willy Tarreau (willy at meta-x.org).
o 2.4 kernel support added on 2001/02/16 by Chad N. Tindel
(ctindel at ieee dot org).
ABI ver is 2
Interface 'tun0': flags set to 10D0.
Interface 'tun0': address cleared
Master 'bond0': Error: SIOCSIFHWADDR failed: Invalid argument
Master 'bond0': Error: set hw address failed
Slave 'tun0': MTU set to 1500.
Master 'bond0', Slave 'tun0': Error: Enslave failed
可能有什么不对。首先,可以绑定两个隧道设备吗?
答案 0 :(得分:3)
您不能绑定两个TUN设备,因为它们没有MAC地址。绑定需要 MAC地址才能运行。请注意,绑定设备继承其中一个从属的mac地址。
尝试使用TAP设备(而不是TUN),有些人声称它有效(我自己没有尝试过)。
答案 1 :(得分:0)
您需要在bond0
设备上设置硬件地址:
ifconfig bond0 hw ether 00:11:22:33:44:55
答案 2 :(得分:0)
尝试查看https://forums.openvpn.net/topic14153.html#p37300
总之,他们建议:设置Bonding" mode" to" balance-xor"而不是" balance-rr": 具有多个连接的更高吞吐量(无数据包重新排序)
set" xmit_hash_policy"到" layer3 + 4": TUN接口没有MAC地址,因此在上层进行均衡 (source / dest IP + source / dest port)