前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >桥接模式?NAT模式?深入原理,一文带你彻底搞清楚!

桥接模式?NAT模式?深入原理,一文带你彻底搞清楚!

作者头像
方才编程_公众号同名
发布2024-09-19 20:44:16
2010
发布2024-09-19 20:44:16
举报
文章被收录于专栏:方才编程

VMWare虚拟机提供了三种网络模式:

·bridge(桥接模式)

·NAT(网络地址转换模式)

·host-only(主机模式)

安装好虚拟机以后,在网络连接里面可以看到多了两块网卡:【ps:为什么没有 桥接模式的网卡?看了后面就明白了】

通过在VMware虚拟网网络编辑器中,也可以看到有三个虚拟交换机分别对应不同的网络模式:

·VMnet0:用于桥接模式下的虚拟交换机【需要管理员权限】

·VMnet1:用于仅主机模式下的虚拟交换机

·VMnet8:用于NAT模式下的虚拟交换机

网络基础知识点

交换机

是什么?

交换机的功能是连接计算机、服务器、网络打印机、网络摄像机、 IP 电话等终端设备,实现与其他交换机、无线接入点、路由器、网络防火墙等网络设备的互联,从而构建局域网,实现所有设备之间的通信。

比如下图所示,利用交换机,就能实现多台虚拟机之间的通信。【如果没有,拓扑结构就会变得非常复杂】

交换机通常用在大的局域网内,并且搭配路由器使用,而家庭的网络布局,通常一个小路由器就能搞定,没必要再搭配交换机。

如何工作?

交换机设备中有一张mac地址表,并且在通讯前是空的。

②当同一局域网中的A设备通过新的交换机去访问B设备,A设备会将自己的mac地址和B设备的mac地址封装进数据帧中,A设备的地址为源地址,B设备则为目的地址

③A访问B设备时交换机会收到来自A的请求,主动将A设备的mac地址学习到mac地址表中,但是地址表中没有通往B的地址的信息,所以交换机会对除了A以外的端口外所有端口进行广播

④B收到广播后主动回复,其他设备丢弃

⑤B回复后交换机可以查询到mac地址表中通往A设备的路,将B设备的mac地址学习到mac表中,所以A设备可以和B设备进行通讯

⑥下一次A和B通讯即可直接进行单播通讯

交换机有四大功能:

①学习功能:数据帧经过交换机时,会学习mac地址

②转发功能:数据帧经过交换机时,会在mac表中查找目的地址,查到数据直接转发

③查询功能(泛洪):会在mac表中寻找目的地址,mac表中没有则在除源地址端口外所有端口进行广播

④刷新功能:交换机每300秒会刷新一次mac表

NAT技术

是什么?

网络地址转换(NAT)技术可以帮助局域网设备通过私有IP地址访问互联网。

如何工作?

以下是NAT技术如何实现这一功能的基本原理:

1.私有IP地址:在一个局域网中,通常使用私有IP地址来为设备分配网络标识。私有IP地址范围包括以下几个常见的子网,如10.0.0.0/8、172.16.0.0/12和192.168.0.0/16。这些地址范围是在互联网上不是唯一的【你的电脑ip大概率也是 192 网段的】,因此不能直接从互联网访问。

2.公共IP地址:与私有IP地址不同,公共IP地址是全球范围内唯一的,可以在互联网上进行识别和寻址。ISP(互联网服务提供商)会分配给路由器一个公共IP地址,作为局域网与互联网之间的接口。

3.NAT转换:当局域网设备通过路由器的WAN口访问互联网时,NAT技术将私有IP地址转换为公共IP地址。这个过程涉及将数据包的源IP地址和端口号修改为路由器的公共IP地址和新的端口号。

4.路由表:NAT设备(比如路由器)会维护一个NAT转换的路由表,记录每个局域网设备的私有IP地址和对应的公共IP地址、端口号。这样,当互联网上的响应数据包返回时,路由器可以根据路由表中的信息将数据包正确转发到对应的局域网设备。

5.端口转发NAT技术还支持端口转发(Port Forwarding),允许外部网络访问局域网中特定设备的特定端口。通过在路由器上配置端口映射规则,路由器可以将外部网络的请求转发到局域网设备的私有IP地址和端口上

LAN口和WAN口之间数据流管理和控制的基本流程:

1.数据接收:当数据从局域网上的设备通过某个LAN口进入路由器时,路由器的交换机或交换模块会接收到这些数据包。

2.数据转发决策:交换机或交换模块会检查数据包的目标IP地址,并根据路由表等配置信息进行数据转发决策。如果目标IP地址是局域网内的设备,则数据包会被交换机直接转发到相应的LAN口,以便在局域网内进行本地通信。

3.转发到WAN口:如果目标IP地址不属于局域网,交换机或交换模块会将数据包转发到连接到WAN口的外部网络,如互联网。这通常涉及使用网络地址转换(NAT)技术,将局域网内部的私有IP地址转换为公共IP地址,并将数据包发送到WAN口。

4.路由和转发:一旦数据包到达WAN口,路由器会根据外部网络的路由协议和配置信息,将数据包发送到互联网上的目标地址。这可能涉及使用IP路由表、网络协议等来确定数据包的下一跳和最佳路径。

5.数据返回:对于从互联网返回的响应数据或外部网络发来的数据包,路由器会通过WAN口接收这些数据,并根据源IP地址和端口等信息确定目标设备和LAN口。

6.数据转发到LAN口:路由器的交换机或交换模块会将收到的数据包转发到目标LAN口,以便将数据包传递给局域网内的设备。

DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

DHCP通过“租约”来实现动态分配IP的功能,实现IP的时分复用,从而解决IP资源短缺的问题。其地址分配方式有如下三种

·人工配置:由管理员对每台具体的计算机指定一个地址

·自动配置:服务器为第一次连接网络的计算机分配一个永久地址,DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址

·动态配置:在一定的期限内将地址租给计算机,客户端第一次从DHCP服务器分配到IP地址后,并非永久地使用该地址,每次使用完后,DHCP客户端就得释放这个IP地址,并且租期结束后客户必须续租或者停用该地址,而对于路由器,经常使用的地址分配方式是动态配置。

而我们的目标是期望虚拟机有一个永久固定的ip,去方便我们管理,所以就需要手动配置为静态。

Bridge桥接模式

架构说明

桥接模式就是将主机网卡与虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。

在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。

所以,桥接模式下的所有虚拟机都是和主机是在同一网段的,可以把它们看成是"平等"的关系,这存在一个问题点,比如192.168.31段下只有254个主机地址,所以桥接模式下虚拟机和物理的总数不能超过254。

桥接模式(Bridge Mode)是一种网络模式,它通过将两个或多个局域网连接在一起,形成一个扩展的局域网,使得这些局域网的设备能够互相通信。在桥接模式中,设备之间的数据流量可以直接传输,并且不经过路由器进行转发。

在桥接模式下,网络设备(如无线接入点、交换机等)被配置为桥接设备,用于将两个或多个网络连接在一起。每个网络设备被配置为同一广播域,并拥有同一子网掩码,以允许设备之间进行直接通信。

配置实现

1.在系统的虚拟机设置中将网络连接模式选择为桥接模式:

1.因为桥接模式虚拟机与宿主机在同一网段下,先查看下宿主机的网络信息【在cmd窗口,通过 ipconfig 查看 】:

无线局域网适配器 WLAN: 连接特定的 DNS 后缀 . . . . . . . : www.tendawifi.com 本地链接 IPv6 地址. . . . . . . . : fe80::51f4:5581:9635:5ee5%21 IPv4 地址 . . . . . . . . . . . . : 192.168.0.104 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : 192.168.0.1

2.使用命令 vi /etc/sysconfig/network-scripts/ifcfg-ens33,打开ifcfg-ens33⽂件,修改配置【一定要注意,一下配置严格按 上面的截图内容来,同时注意单词拼写的正确性】

BOOTPROTO=static # 更改为静态 ONBOOT=yes # 设置开机⾃动启⽤⽹络连接 IPADDR=192.168.0.3 # 虚拟机的静态ip,一定要按 主机的实际网络情况进行配置,不和已有的冲突即可 NETMASK=255.255.255.0 # 和 主机 的子网掩码一致 GATEWAY=192.168.0.1 # 和 主机 的网关IP一致 DNS1=192.168.0.1 # 和 主机 的网关IP一致

1.使用命令 service network restart 重启网卡,验证访问互联网的情况【可以和本机互通、也可以访问互联网】;

NAT模式

架构说明

上面说过,桥接模式可能会导致一定的ip资源紧缺,这时候NAT模式时最佳选择。先看网络结构图:

在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。

VMware Network Adapter VMnet8网卡是为了实现主机与虚拟机之间的通信【后面可以测试下】。

配置实现

1.在系统的虚拟机设置中将网络连接模式选择为NAT模式:

2.通过 VMware的【虚拟网络编辑器】,查看VMnet8 对应的 网关地址、子网掩码等信息

1.使用命令 vi /etc/sysconfig/network-scripts/ifcfg-ens33,打开ifcfg-ens33⽂件,修改配置【一定要注意,一下配置严格按 上面的截图内容来,同时注意单词拼写的正确性】

·BOOTPROTO=static # 更改为静态 ONBOOT=yes # 设置开机⾃动启⽤⽹络连接 IPADDR=192.168.31.3 # 虚拟机的静态ip,一定要按 VMnet8 的实际网络情况进行配置,不和已有的冲突即可 NETMASK=255.255.255.0 # 和 VMnet8 的子网掩码一致 GATEWAY=192.168.31.2 # 和 VMnet8 的网关IP一致 DNS1=192.168.31.2 # 和 VMnet8 的网关IP一致

o使用 vi 编辑器进行编辑保存即可:

1.使用命令 service network restart 重启网卡,验证访问互联网的情况

验证 宿主机和虚拟机的通信情况【虚拟机的ip,就是刚配置的 IPADDR】

一些验证

屏蔽 主机-》虚拟机

刚有提到:VMware Network Adapter VMnet8网卡是为了实现主机与虚拟机之间的通信。

简单验证下,我们在主机的网络连接中,将 VMnet8禁用掉,在和主机进行通信:

发现,主机不能访问虚拟机了,但虚拟机还是可以访问主机和互联网:

主机访问虚拟机的链路是:主机-> 虚拟机网卡VMnet8->VMnet8虚拟机交换机->虚拟机;

而虚拟机访问主机的链路是:虚拟机->VMnet8虚拟机交换机->虚拟NAT设备->主机网卡->主机。

验证NAT设备的端口转发

在禁用掉主机的虚拟网卡 VMnet8 的前提下,如果我们还是期望主机能访问到虚拟机,也可以利用虚拟NAT设备的端口转发功能去实现。

配置端口转发后,我们就通过主机的80端口访问到虚拟机 192.168.74.5的22端口。可以使用 windows 的 telnet 命令验证端口情况【telnet 192.168.0.104 80】,也可以直接通过xshell去连接虚拟机。

Host-Only(仅主机模式)

架构说明

仅主机模式可有看成是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

配置方式

1.在系统的虚拟机设置中将网络连接模式选择为NAT模式:

1.如果需要配置静态ip,和上面两种方式类似,只是不用配置网关地址和DNS地址即可:

BOOTPROTO=static # 更改为静态 ONBOOT=yes # 设置开机⾃动启⽤⽹络连接 IPADDR=192.168.239.3 # 虚拟机的静态ip,一定要按 VMnet1 的实际网络情况进行配置,不和已有的冲突即可 NETMASK=255.255.255.0 # 和 VMnet1 的子网掩码一致

2.网络情况验证,虚拟机是不可访问主机和互联网的,但主机可以访问虚拟机。

一些验证:共享网络

仅主机模式,也是可以通过共享网络的模式【类似wifi的感觉】,让虚拟机可以访问主机和互联网的。在主机的网络配置中,将可用的网络连接共享给 VMnet1虚拟网卡。

开启网络共享后,在Windows的 cmd 中通过 ip config 可以看到 VMnet1网卡的ip已经自动变更为了 192.168.137.1。

我们需要在VMware中,手动将虚拟机的 VMnet1的相关配置,都要更新为 192.168.137.* 网段。

先修改 【子网IP】,再修改 DHCP的设置,将其网段都设置到 192.168.137.* 网段。

然后我们去编辑更新虚拟机的网卡配置:

BOOTPROTO=static # 更改为静态 ONBOOT=yes # 设置开机⾃动启⽤⽹络连接 IPADDR=192.168.137.200 # 虚拟机的静态ip,一定要按 VMnet1 的实际网络情况进行配置,不和已有的冲突即可 NETMASK=255.255.255.0 # 和 VMnet1 的子网掩码一致 GATEWAY=192.168.137.1 # 和 网卡VMnet1 的子网掩码一致 DNS1=192.168.137.1 # 和 网卡VMnet1 的子网掩码一致

然后测试虚拟机的网络情况,发现可以访问互联网了。

如果要访问主机,是需要手动将Windows宿主机的防火墙开启的。

待续

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 方才编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 网络基础知识点
    • 交换机
      • 是什么?
      • 如何工作?
    • NAT技术
      • 是什么?
      • 如何工作?
    • DHCP
    • Bridge桥接模式
      • 架构说明
        • 配置实现
        • NAT模式
          • 架构说明
            • 配置实现
              • 一些验证
                • 屏蔽 主机-》虚拟机
                • 验证NAT设备的端口转发
            • Host-Only(仅主机模式)
              • 架构说明
                • 配置方式
                  • 一些验证:共享网络
                  相关产品与服务
                  专用宿主机
                  专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档