绑定两个连接到Openvpn的tun设备

时间:2012-02-20 07:04:10

标签: networking tunneling openvpn

我的客户端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

可能有什么不对。首先,可以绑定两个隧道设备吗?

3 个答案:

答案 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)