【问题标题】:KVM bridged networking in a wirelss host [closed]无线主机中的 KVM 桥接网络 [关闭]
【发布时间】:2018-05-02 01:57:00
【问题描述】:

我正在学习 KVM 网络,我想出了这个问题: 当我将 KVM 域设置为使用桥接网络(无 NAT)时,我看到 KVM(或 libvirt)创建了一个 tap0,在我的情况下以 virbr0 作为主控。 现在,我看不到任何其他接口参与桥接(brctl show)。 我在做实验时在我的主机中使用无线连接,我在来宾中有连接。

  • 那么主机最终如何为客人提供连接?
  • 据我了解,网桥应该将一个接口连接到另一个接口。那么,只有一个界面的桥梁有什么意义呢?
  • 此外,无线接口不应该包含在网桥中,对吧?

好吧,我现在很困惑。我会感谢专家的一些启发。谢谢!

【问题讨论】:

    标签: linux networking kvm libvirt


    【解决方案1】:

    那么主机最终是如何为客人提供连接的呢?

    对于virbr0 上的默认 libvirt 网络,libvirt 创建 NAT 规则来伪装来自连接到该网桥的主机的出站连接。例如,在我的系统上,我们看到:

    # iptables -t nat -S
    [...]
    -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
    -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
    -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
    [...]
    

    据我了解,网桥应该将一个接口连接到另一个接口。那么,只有一个界面的桥有什么意义呢?

    网桥为您创建的所有使用该 libvirt“网络”的虚拟机形成一个虚拟网络。如果您启动第二台虚拟机,您将在网桥上看到多个接口。

    此外,无线接口不应该包含在网桥中吗?

    从上面可以看出,出接口不需要参与桥接。您的虚拟机与外部世界之间的连接是路由(第 3 层)连接,而不是第 2 层连接。

    为什么需要这座桥?它的作用是什么?那么有tap0还不够吗?

    网桥为您的虚拟机创建一个虚拟第 2 层网络。

    • 这使您的虚拟机可以直接相互通信。
    • 它允许虚拟机(和主机)之间的广播流量。
    • 它允许将策略(如防火墙规则)应用于虚拟网络,而不是应用于单个计算机。
    • 它允许 libvirt 将 DHCP 服务器连接到网络,以便为来自虚拟机的 DHCP 请求提供服务。

    【讨论】:

    • 太好了,这让它更清楚了。现在,最后一个澄清:我们如何从第 2 层的 tap0 到 ip?我的意思是,网桥 virbr0 本身是否会删除来自 tap0 的 eth 标头并将 IP 数据包发送到其分配的 IP?
    • 恐怕我没有听懂你的问题。 tap0 (大多数情况下)只是一个以太网接口,就像任何其他接口一样。以太网帧从附加的 vm 进入它,并由内核处理,就像进入物理网卡的帧一样。
    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2011-10-11
    相关资源
    最近更新 更多