Debian 9 虚拟网络适配器-在本地有效但在远程无效?

Debian 9 虚拟网络适配器-在本地有效但在远程无效?

我正在尝试在我的远程外部服务器和本地机器之间建立 IPSEC 隧道。我的远程服务器在数据中心有一个裸露的公共 IP4。我附近的服务器有一个本地 NAT 隐藏的 192.168.xy 地址,但是我已将所有必需的端口和协议转发给它;UDP 500、UDP 4500、ah、esp,以及删除了路由器辅助程序绑定。两者都运行 Debian 9 Stretch。我的路由器很好,已经解决了。远程服务器可以使用 nmap 在 ESP、AH 和 IKE 上查看本地。

在本地,我这样做了(内部 100 范围 IP 已更改)

modprobe dummy
ip link add name dummy0 type dummy
ip address add 100.64.1.1/32 dev dummy0

当我这样做的时候

ifconfig

它显示如下

dummy0: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
        inet 100.64.1.1  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 189  bytes 70950 (69.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

当我们访问外部服务器时,

modprobe dummy

它与 lsmod 一起显示:

root@host:~# lsmod  | grep dummy
dummy                  16384  0
root@host:~#

,并且在执行一组类似的后续命令后,ifconfig 命令没有显示任何虚拟以太网端口。

为什么 dummy0 没有显示?

知道哪里出了问题吗?

[编辑 - 添加于 2018 年 10 月 13 日 22:18 BST] 为了清晰起见,我添加了此图表。这是我要设置的内容:

Debian 9 上采用 StrongSwan 的数据中心到本地托管 IPSEC 隧道解决方案的描述。Cyrus 复制隧道已启动。

答案1

最初选择“虚拟”eth适配器的原因如下所述:

https://wiki.strongswan.org/issues/722

“无需创建额外的接口(如 TUN)或别名(如 eth0:1,这是一个老概念)。如果您想在 IPsec 隧道内使用私有 IP 地址,只需使用 ip addr add 将它们添加到现有接口之一(eth0 或 lo)即可”。

因此,我需要将隧道 IP 端点绑定到适配器。我不想将其绑定到 eth0,因为该适配器承载着服务器的公共 IP。将其绑定到 lo 似乎“错误”。所以我最初选择尝试创建 dummy0。

从使用过许多不同发行版和平台的人的经验来看,虚拟接口似乎偶尔不可靠,并且很难在启动时脚本中可靠地启动。这也是我发现的。

https://bugzilla.redhat.com/show_bug.cgi?id=1120823

https://askubuntu.com/questions/994669/why-does-ip-link-add-not-work-in-rc-local

https://unix.stackexchange.com/questions/335284/how-can-we-create-multiple-dummy-interfaces-on-linux

https://community.nethserver.org/t/virtual-network-interface-for-virtual-machines/7728/10

我的解决方案是创建一个 TUN 设备。即使没有数据包通过它,它也可以作为每个端点 IP 地址的可靠绑定点。虽然这仍然不是推荐的做法,但我发现,当你输入

ifconfig 

TUN 在系统启动脚本中很容易且可靠地启动。

在我的问题图表中,用 dummy0: 替换 tun0: 以获得可行的解决方案。

使用如下方法:

ip tuntap add name tun0 mode tun
ip link set dev tun0 up
ip address add 100.64.2.1/32 dev tun0
route add -net 100.64.1.0/24 gw 100.64.2.1

使 IP 端点绑定起来。

[编辑 2018/09/17 00:50] Cyrus 邮箱复制现在运行正常。

相关内容