【问题标题】:Bonding two tun device connected to Openvpn [closed]绑定两个连接到 Openvpn 的 tun 设备 [关闭]
【发布时间】:2012-03-10 13:42:49
【问题描述】:

我的客户端电脑上有两个隧道设备 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

可能出了什么问题。首先可以绑定两个隧道设备吗?

【问题讨论】:

    标签: networking tunneling openvpn


    【解决方案1】:

    试试看https://forums.openvpn.net/topic14153.html#p37300

    简而言之,他们建议:

    • 将绑定“模式”设置为“balance-xor”而不是“balance-rr”: 具有多个连接的更高吞吐量(无数据包重新排序)

    • 将“xmit_hash_policy”设置为“layer3+4”: TUN 接口没有 MAC 地址,所以在上层进行平衡 (源/目的IP + 源/目的端口)

    【讨论】:

      【解决方案2】:

      您不能绑定两个 TUN 设备,因为它们没有 MAC 地址。绑定需要 MAC 地址才能运行。请注意,绑定设备会继承其中一个从属设备的 MAC 地址。

      尝试使用 TAP 设备(而不是 TUN),有人声称它可以工作(我自己没有尝试过)。

      【讨论】:

      • 使用 TAP 设备对我来说很好,并解决了上述问题。
      【解决方案3】:

      您需要在bond0设备上设置一个硬件地址:

      ifconfig bond0 hw ether 00:11:22:33:44:55

      【讨论】:

      • 这行不通; bond0 一开始不会被创建。
      猜你喜欢
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 2020-10-27
      相关资源
      最近更新 更多