跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 使用桥接模式连接网络的虚拟机,其流量是否会经过路由器转发?
未分類
18 4 月 2021

使用桥接模式连接网络的虚拟机,其流量是否会经过路由器转发?

使用桥接模式连接网络的虚拟机,其流量是否会经过路由器转发?

資深大佬 : LeeReamond 7

如题,网络底层基础不好

应用场景是目前 PC 上有一个 hyperV 虚拟机里面跑了一个 redis,应该是使用了桥接模式连接网络,我不是很确定。总之连接到同一个路由器,本机 IP 是 192.168.0.100 ,虚拟机是 192.168.0.101 这样,目前主机和虚拟机网络都可以互通,并且都能访问互联网。

一个好奇是这种模式构建的网络,如果从主机向虚拟机发东西,或者反过来,流量是否需要经过路由,还是说在本地某一种虚拟网卡层面就能解决?我不知道如何模拟一个测试,直接来问老哥们了。

=====

另外一个好奇是,redis 虚拟机的使用场景,大多数时候不太需要单独使用互联网,大多数时候能保证与主机双向正常通讯就可以,有没有一种虚拟网络结构可以做到这种效果?这样既提高了通讯效率,又提高了安全性。只需要装机的时候下载东西时连接到互联网,之后稳定运行切换到这种网络就可以了

大佬有話說 (20)

  • 資深大佬 : cmostuor

    流量会通过路由器, 子网内的设备必须通过网关去转发数据.

  • 資深大佬 : Tink

    经过,流量怎么走,看网关

  • 資深大佬 : cmostuor

    想知道经不经过你可以在路由器上用 tcpdump 抓包然后用 wireshark 分析

  • 資深大佬 : alect

    NAT 模式可以保证最低延迟,
    而且大多数不上外网的情况下不走路由器,
    然后还可通过共享母机网络方式让你的小鸡上网。

  • 資深大佬 : noe132

    hyperv 虚拟机 和 主机 在同一个虚拟交换机下面,理论上到了虚拟交换机,直接走第二层转发,就不会从实际物理网卡发出去了。

  • 主 資深大佬 : LeeReamond

    @alect nat 模式下母鸡没法访问小鸡吧?

  • 資深大佬 : jasonyang9

    经不经过网关看是各自配的子网掩码,用自己的 IP 和子网掩码算的的网络号,比较对方的网络号(用对方的 IP 和自己的子网掩码计算),是否相同,相同就不经过网关,不同就查找本机路由表发送到对应的下一跳

  • 資深大佬 : noe132

    我这是虚拟机在一个内部网络下面
    vm: 192.168.3.58(vm bridge)
    host: 192.168.3.1(vm bridge), 192.168.1.9(host nic)
    从 vm 往 192.168.1.9 发数据,192.168.3.1 所在的 nic 会有数据,192.168.1.9 的 nic 则没有动静。
    不确定直接桥接是不是也是这样,不过我猜测应该是类似的。可以用 iperf 测一下虚拟机到主机的带宽就明白了。

  • 資深大佬 : just1

    你可以设置两个网卡,一个是桥接,用来给虚拟机上网,一个是 host-only,用来与宿主机通信

  • 資深大佬 : elfive

    @cmostuor #1 同一交换机下的数据交互,是可以不经过网关的,直接交换机就给你转发出去了。

  • 資深大佬 : ysc3839

    理论上桥接模式是虚拟机和主机都接入一个交换机,这个交换机再接入上级网络设备。
    但是我之前用 VMware 测试的时候似乎是类似集线器,虚拟机能抓到主机的包,且主机用 WiFi 时虚拟机跟主机通信的速度也会受 WiFi 速度影响。

  • 資深大佬 : ysc3839

    不过用 VMware 的 NAT 模式就没这问题。

  • 資深大佬 : Osk

    桥接网络, hv 中叫外部网络(?),guest 和 host 在同一子网内,相互通信是不用经过路由器转发的,除非像 dns 找对方等特殊的情况需要一丁点流量。
    这个通讯的转发应该是由 hv 的虚拟交换机软件实现的。有一个缺点:拔了网线后,guest 和 host 之间的通讯也好像会断。

    问题二:你可以创建 NAT 网络 + hv 的内部网络交换机,这样,guest 和 host 的通信全部走那张虚拟内部网卡,路由器的子网和它没任何关系了,而且速度是 10gbps 。
    192.168.0.0/24 这个子网内的设备无法访问 guest,guest 倒可以访问它们(nat),给 guest 配上 192.168.0.1 的 dns 就能实现:上网走路由器,与 host 通信不出虚拟网卡。

    顺便:手动创建的 nat 网络无 dns 与 dhcp 服务,guest 需要手动配置 ip 和 dns (不是 host 的 ip 哦)。Win 10 自动创建的 default switch 也是 nat ,且有 dns 和 fhcp 服务,server 上手动创建的好像就没有。。。

  • 資深大佬 : Zien

    桥接可以的呀,就类似于虚拟机 guest 和 host 在同一子网下

  • 資深大佬 : ryd994

    桥接模式下是可以的
    hyper v 的 vmswitch 启用后,vmswitch bind 到网卡( pnic )上。然后创建一个 vnic 给宿主系统。虚拟机绑定的也是 vnic 。
    所以无论是 host os 还是 guest os,流量都会经过 vmswitch 。

    有这个前提,那么你的问题就很容易解答了。这两个 IP 都在同一网段,所以不需要经过路由器,直接 vmswitch 转发就行。

    强制 vswitch 不本地转发而直接去 router 的,那叫 vepa mode 。vmswitch 是否支持 vepa mode 我不记得了。

  • 資深大佬 : ryd994

    1 说的是错的。同一网段下不需要路由器。有 arp,有 switch 就行了。也不需要网关。这是计算机网络的基础吧?这也能说错?

    如果你想要降低开销,internal switch 是个比较好的选择。还可以启用 jumbo frame 减少网络栈的开销。如果想要极致降低开销,https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service
    这是直通,不走网络,自然也就没有网络栈的开销。内存直接传输数据。

  • 資深大佬 : alphatoad

    @ryd994 本帖最正确的回答。一看的我头皮发麻

  • 資深大佬 : deorth

    此贴是程序员不一定都懂网络的证明,CS EE 还是要分家的

  • 資深大佬 : cubecube

    @ryd994 一的确把我看懵了,主要是还有点赞的。
    不跨广播域就不用到三层

  • 主 資深大佬 : LeeReamond

    @cubecube 我点的赞,我又不明白,看一回复还说你可以抓包验证,就以为是正确答案了。不过现在说来,似乎抓发出的包也不能分析路由路线。。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具