我尝试创建点击界面(水龙头210i0) 手动用于 kvm。但每次Tun设备显示无载体。
我有接口诺1,埃诺2,虚拟机BR0和水龙头210i0。 eno1 和 eno2 是奴隶为了虚拟机BR0。
这是我尝试过的一组命令。
ip tuntap add tap210i0 mode tap
ip link set dev tap210i0 up
ip link set tap210i0 master vmbr0
当我打字时“brctl秀”表明“tap210i0”与 eno1 一起作为接口之一。我用谷歌搜索了一下,但没有找到我的问题的任何直接答案。
我相信我也有工作的 Tap 模块。
lsmod | egrep -si tap
输出 :
点击 24576 1 vhost_net
请注意,所有类型的防火墙均已禁用。 (包括 iptables)
谁能给我任何工作建议吗?请不要建议我重新启动网络,因为我只能远程访问该服务器。我无法去物理服务器修复它。
答案1
A轻敲接口提供了两端的虚拟链路:
- 这界面主机上网络层看到的一侧,对于 OP 的用例来说,通常处于 Tap 模式(第 2 层以太网)并设置为桥接端口。
- 一个无形的侧面:一个过程打开一个特殊设备 ( ) 的文件描述符
/dev/net/tun
,允许该进程读取和写入 IP 数据包(tun 模式)或以太网帧(tap 模式)。这些数据包来自或发送至主机的接口侧。
创建界面并不是最重要的部分。最重要的部分是在该接口的不可见一侧附加一个进程来读取和写入数据包。只要没有这样的过程,这个链路上的通信就不存在。这很自然地被翻译为“NO-CARRIER”,因为它是有道理的。这是正常且预期的行为。
我想到的此类过程的三个示例是 QEMU(它为 KVM 提供设备模拟,包括网络接口)、OpenVPN 和 openssh 的隧道选项。
通常你会让盖姆或帮助者盖姆, 或者库虚拟机创建自己的接口(并将其连接到桥上)并手动盖姆使用相应的文件描述符需要什么。然后,界面将让这个不可见的另一端正确处理它:盖姆,并且它会报告检测到载体。或许可以将手动创建的界面交给盖姆(或者库虚拟机等),但由于这不是通常的方法,因此您将需要做额外的工作。