2024-03-16
暂时不归档
00

目录

1 常见网络设备
1.1 集线器(Hub)
1.2 交换机(Switch)
1.3 路由器(Router)
1.4 网桥(Bridge)
1.5 网关(Gateway)
1.6 冲突域
1.7 广播域
2 虚拟机网络的3(+1)种连接方式
2.1 桥接连接
2.2 NAT(Network Address Translation)模式
1.3 仅主机模式(Host Only)
1.4 配置方法
3 UDP广播 多播分析

本文内容:

  1. 常见网络设备/概念:路由器、交换机、集线器、网关、网桥
  2. 虚拟机网络的3(+1)种连接方式:桥接、NAT、仅主机、镜像
  3. UDP广播、多播说明

1 常见网络设备

先贴个图在这

image.png

1.1 集线器(Hub)

集线器工作在七层模型中的物理层,它的作用是对接收到的信号进行同步整形放大,再将其转发到所有端口,以扩大网络的传输距离。一些集线器会将接收到的弱信号重新生成,一些集线器会整理信号的时序以提供所有端口的同步通信。

中继:将接收到的衰减到不完整的信号进行整理,重新生成完整的信号再进行传输。

中继器(Repeater):专门用于中继的设备。

举例来说,假设集线器有8个端口,并且这8个端口连接了8个计算机。如果计算机a向计算机c发送数据,那么数据会先到达集线器,集线器会将数据广播到所有端口,所有的计算机都会接收数据并且判断是否是发给自己的数据,如果是则接收,如果不是则丢弃。

因为集线器的这种特性,它通常位于网络的中心,因此也被称为hub。

1.2 交换机(Switch)

交换机是集线器的升级版本,它工作在链路层。它可以对接收到的数据进行解析并且重新生成,经过内部处理后转发到目的端口,具备自动寻址能力和交换能力。

在这里所说的交换机,并不是广义上的交换机,而是特指工作在链路层的交换机(或者说桥接设备)。广义上说,所有具备交换功能(即信号从设备入口到设备出口的转发)的设备都能被称为交换机。

桥接:按我个人理解,只要具备了对接收到的数据进行解析,根据解析到的MAC地址将其转发到指定的端口上的能力的,都算是桥接。至于连通两个网络之类的,是桥接能力的一种应用。比如说两个路由器分别连接了若干个计算机,再用一个交换机连接两个路由器,那么这个交换机就能连通由这两个路由器构建的网络。

交换机的工作过程如下:假设交换机连接了8个计算机,并且计算机a想要给计算机c发送信息。交换机内部维护了一个地址对照表,当计算机a第一次向计算机c发送信息时,交换机还不知道计算机c具体连接到哪个端口上,因此会将这条信息进行广播。计算机c的网卡收到消息会进行回应,交换机接收到回应后,修改地址对照表,将计算机c的网卡MAC地址和端口存储起来。下一次计算机a再向计算机c发送信息时,交换机就能够通过地址对照表,准确的将这条信息转发给连接着计算机c的端口。

交换机的转发速度非常快,但是也有缺点:交换机之间不能存在回路,并且因此交换机之间只能由一条网线连接,使得信息集中在一条链路上,不能均衡负载。

1.3 路由器(Router)

路由:任何网络中选取路径的程序。

路由器是网络中进行网间连接的关键设备,它工作在网络层。它为每一个流经它的数据报找到最佳传输路径,并且有效的将其送到目的地。它一方面可以跨越不同的网络类型,另一方面可以将整个互连网络抽象为分割的逻辑上独立的网络单位。它可以:

  1. IP 数据报的转发,包括数据报的寻径和传送
  2. 子网隔离,抑制广播风暴
  3. 维护路由表,并与其它路由器交换路由信息,这是 IP 报文转发的基础
  4. IP 数据报的差错处理及简单的拥塞控制
  5. 实现对 IP 数据报的过滤和记帐

1.4 网桥(Bridge)

网桥是不同网络之间沟通的设备,它工作在链路层。它比交换机接口要少,功能和交换机差不多,但是它能够沟通不同的网络类型。如今的交换机大多也具备这个功能,甚至兼容了好几个网络协议的操作系统自己也可以是网桥。

1.5 网关(Gateway)

顾名思义,网关是一个网络对外连接的出口,它是网络层的概念。假设一个地址为192.168.1.2/24的计算机想要ping192.168.2.2/24的计算机,那么它必须经过网关。因为要ping的目标明显不在自己这个网段里,只能去其他的子网中寻找,所以只能发给网关,由网关再转发给要ping的目标。一般情况下网关就是路由器的ip。

1.6 冲突域

冲突域是物理层的概念,它所指的是物理上在一根网线上的所有设备,或者说同一物理网段上的所有节点的集合,或者说以太网上竞争同一带宽的节点集合,这三个概念都对。冲突域代表了冲突在其中发生并且传播的区域,这个区域被认为是共享的。

举例来说,假设一个Hub上连接了若干计算机,那么如果一个计算机向另一个计算机发送了消息,那么在发送消息这个极短的时间内,别的计算机就不能再发送消息,如果发送就会产生冲突(一根线不能同时传输多个消息),这个冲突会发生的区域即为冲突域。冲突域的本质是单一带宽资源的占用。冲突域的本质也决定了Hub和Repeater不能划分冲突域,而Switch,Router和Bridge都可以划分冲突域。

1.7 广播域

广播域是网络层的概念,它所指的是所有能够接收相同广播消息的设备集合。Hub,Repater,Switch,Bridge都不能划分广播域,Router可以。VLAN(Vritual Local Area Network)也可以划分广播域,倒不如说VLAN的目的就是为了划分广播域。

2 虚拟机网络的3(+1)种连接方式

image.png

图中的三个网络设备是VMware设定的三个虚拟交换机,另外还有插在宿主机上的两张虚拟网卡。

image.png

2.1 桥接连接

在这种模式下,宿主机的网卡会与一个虚拟网桥连接,虚拟网桥的另一端是一个虚拟交换机,交换机连接所有虚拟机的网卡。因为交换机和网桥不能分割广播域,所以宿主机和几个虚拟机之间都能进行广播,而且互相都能收得到。

因为宿主机网卡和虚拟机网卡相当于是连在同一个交换机上,所以虚拟机网卡要求必须和宿主机网卡在同一网段中,子网掩码、DNS和网关一致才可以。因为在同一网段下,所以虚拟网桥会转发宿主机网卡收到的广播、多播消息,以及目标为虚拟机网段(192.168.1.1到192.168.1.30,其网段为192.168.1.0/27,广播地址为192.168.1.31)的单播,因此虚拟机网卡也能接收到宿主机连接的路由器的DHCP信息和路由更新。

image.png

另外,如果宿主机所在的网段ip数量较少,就不太适合桥接模式。

如果要使用桥接模式,最好强制指定桥接模式使用的网卡,否则它可能会使用其他的不联网的网卡。

image.png

2.2 NAT(Network Address Translation)模式

NAT模式下,除了VMnet8虚拟交换机连接所有虚拟机网卡不变,宿主机网卡连接在一个虚拟的NAT路由器设备上,这个虚拟的NAT路由器设备和一个虚拟的DHCP服务器一起连接在VMnet8上,同时VMnet8上还会有一个接口,接的是宿主机的虚拟网卡Ethernet adapter VMware Network Adapter VMnet8。

NAT(Network Address Translation):网络地址转换,是1994年提出的一种在ip资源不够的情况下的解决方法,它需要一个安装了NAT软件的路由器。当NAT路由器下的设备想要向外界发送请求时,NAT路由器会收到这个请求,并且将其起始ip地址和端口映射为NAT路由器自己的ip和可用的端口。等到外界回复这个请求时,NAT路由器再将其目的ip地址和端口映射为原本的设备的ip地址和端口。

NAT确实能够很好的避免占用ip资源的问题,并且同时提升了安全性(不向外部暴露内部设备地址),但是也不是没有缺点,比如说可能不能兼容一些软件的自定义协议等。

DHCP:动态主机配置协议(Dynamic Host Configuration Protocol),它可以为同一子网下的设备自动分配ip和配置子网掩码,网关和DNS。

image.png

这种情况下,虚拟机能够通过NAT路由器设备上网,只要宿主机能够上网,虚拟机也就能上网;通过宿主机的虚拟网卡和宿主机通信(只能通信),对外隐藏了虚拟机的ip信息。宿主机接收到的广播,多播消息将不会被转发到虚拟机上(NAT路由器设备分割广播域)。如果宿主机的虚拟网卡被禁用,不会影响虚拟机上网,虚拟机也能发消息到宿主机上,只是宿主机和其他外部设备不能主动通过NAT路由器访问虚拟机。

1.3 仅主机模式(Host Only)

仅主机模式下,除了VMnet1虚拟交换机连接所有虚拟机网卡和虚拟DHCP服务器不变,去掉了NAT设备,由宿主机的虚拟网卡Ethernet adapter VMware Network Adapter VMnet1与VMnet1直连。这种情况下,虚拟机和外部网络隔离开,成为了一个独立的网络,这只是保证宿主机和虚拟机之间的互相通信,默认是不联网的,想要联网的话,需要另外设置宿主机的网卡,使其共享网络给宿主机的虚拟网卡(光共享也不行,还得另外设置DHCP)。

image.png

共享网络设置位置:

image.png

1.4 配置方法

配置kali虚拟机网卡信息都是通过修改/etc/network/interfaces文件来完成的,寻求帮助可以man interfaces,当然其实也可以选择图形化界面配置:

image.png

配置完成后可以尝试ping宿主机和ping www.baidu.com试试,有结果就配置完成了。

3 UDP广播 多播分析

正常情况下应该是这样的(已关闭防火墙,并且确保三个主机能够互相ping通):

  1. NAT模式下
  • Linux192.168.11.255发送广播,Windows端绑定Ethernet adapter VMware Network Adapter VMnet8来进行接收。
  • Linux192.168.11.225发送广播,Linux端绑定eth0网卡来进行接收。
  • Linux192.168.11.225发送广播,Linux端绑定0.0.0.0来进行接收。

组播也是一个情况,原本应该接收到的eth0网卡,并没有显示出数据,虽然抓包工具已经抓到了eth0网卡上的包。

  1. 桥接模式下
  • Linux192.168.234.255发送广播,Windows端绑定自身实体网卡/0.0.0.0来进行接收。
  • Linux192.168.11.225发送广播,Linux端绑定eth0网卡来进行接收。
  • Linux192.168.11.225发送广播,Linux端绑定0.0.0.0来进行接收。

组播也是一个情况,原本eth0就收不到了,现在Windows端也收不到(但是单播收得到),确实有点没理解。绑定0.0.0.0表示接收所有网卡的某个特定端口的所有信息,但是Linux系统里除了loopback网卡就是eth0网卡,总不能是通过环回网卡发过来的吧。桥接模式的Windows端更是和所有虚拟机就处于一个子网下,更没能理解为什么收不到。

本文作者:御坂19327号

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!