本文内容:
先贴个图在这
集线器工作在七层模型中的物理层,它的作用是对接收到的信号进行同步整形放大,再将其转发到所有端口,以扩大网络的传输距离。一些集线器会将接收到的弱信号重新生成,一些集线器会整理信号的时序以提供所有端口的同步通信。
中继:将接收到的衰减到不完整的信号进行整理,重新生成完整的信号再进行传输。
中继器(Repeater):专门用于中继的设备。
举例来说,假设集线器有8个端口,并且这8个端口连接了8个计算机。如果计算机a向计算机c发送数据,那么数据会先到达集线器,集线器会将数据广播到所有端口,所有的计算机都会接收数据并且判断是否是发给自己的数据,如果是则接收,如果不是则丢弃。
因为集线器的这种特性,它通常位于网络的中心,因此也被称为hub。
交换机是集线器的升级版本,它工作在链路层。它可以对接收到的数据进行解析并且重新生成,经过内部处理后转发到目的端口,具备自动寻址能力和交换能力。
在这里所说的交换机,并不是广义上的交换机,而是特指工作在链路层的交换机(或者说桥接设备)。广义上说,所有具备交换功能(即信号从设备入口到设备出口的转发)的设备都能被称为交换机。
桥接:按我个人理解,只要具备了对接收到的数据进行解析,根据解析到的MAC地址将其转发到指定的端口上的能力的,都算是桥接。至于连通两个网络之类的,是桥接能力的一种应用。比如说两个路由器分别连接了若干个计算机,再用一个交换机连接两个路由器,那么这个交换机就能连通由这两个路由器构建的网络。
交换机的工作过程如下:假设交换机连接了8个计算机,并且计算机a想要给计算机c发送信息。交换机内部维护了一个地址对照表,当计算机a第一次向计算机c发送信息时,交换机还不知道计算机c具体连接到哪个端口上,因此会将这条信息进行广播。计算机c的网卡收到消息会进行回应,交换机接收到回应后,修改地址对照表,将计算机c的网卡MAC地址和端口存储起来。下一次计算机a再向计算机c发送信息时,交换机就能够通过地址对照表,准确的将这条信息转发给连接着计算机c的端口。
交换机的转发速度非常快,但是也有缺点:交换机之间不能存在回路,并且因此交换机之间只能由一条网线连接,使得信息集中在一条链路上,不能均衡负载。
路由:任何网络中选取路径的程序。
路由器是网络中进行网间连接的关键设备,它工作在网络层。它为每一个流经它的数据报找到最佳传输路径,并且有效的将其送到目的地。它一方面可以跨越不同的网络类型,另一方面可以将整个互连网络抽象为分割的逻辑上独立的网络单位。它可以:
网桥是不同网络之间沟通的设备,它工作在链路层。它比交换机接口要少,功能和交换机差不多,但是它能够沟通不同的网络类型。如今的交换机大多也具备这个功能,甚至兼容了好几个网络协议的操作系统自己也可以是网桥。
顾名思义,网关是一个网络对外连接的出口,它是网络层的概念。假设一个地址为192.168.1.2/24
的计算机想要ping192.168.2.2/24
的计算机,那么它必须经过网关。因为要ping的目标明显不在自己这个网段里,只能去其他的子网中寻找,所以只能发给网关,由网关再转发给要ping的目标。一般情况下网关就是路由器的ip。
冲突域是物理层的概念,它所指的是物理上在一根网线上的所有设备,或者说同一物理网段上的所有节点的集合,或者说以太网上竞争同一带宽的节点集合,这三个概念都对。冲突域代表了冲突在其中发生并且传播的区域,这个区域被认为是共享的。
举例来说,假设一个Hub上连接了若干计算机,那么如果一个计算机向另一个计算机发送了消息,那么在发送消息这个极短的时间内,别的计算机就不能再发送消息,如果发送就会产生冲突(一根线不能同时传输多个消息),这个冲突会发生的区域即为冲突域。冲突域的本质是单一带宽资源的占用。冲突域的本质也决定了Hub和Repeater不能划分冲突域,而Switch,Router和Bridge都可以划分冲突域。
广播域是网络层的概念,它所指的是所有能够接收相同广播消息的设备集合。Hub,Repater,Switch,Bridge都不能划分广播域,Router可以。VLAN(Vritual Local Area Network)也可以划分广播域,倒不如说VLAN的目的就是为了划分广播域。
图中的三个网络设备是VMware设定的三个虚拟交换机,另外还有插在宿主机上的两张虚拟网卡。
在这种模式下,宿主机的网卡会与一个虚拟网桥连接,虚拟网桥的另一端是一个虚拟交换机,交换机连接所有虚拟机的网卡。因为交换机和网桥不能分割广播域,所以宿主机和几个虚拟机之间都能进行广播,而且互相都能收得到。
因为宿主机网卡和虚拟机网卡相当于是连在同一个交换机上,所以虚拟机网卡要求必须和宿主机网卡在同一网段中,子网掩码、DNS和网关一致才可以。因为在同一网段下,所以虚拟网桥会转发宿主机网卡收到的广播、多播消息,以及目标为虚拟机网段(192.168.1.1到192.168.1.30,其网段为192.168.1.0/27,广播地址为192.168.1.31)的单播,因此虚拟机网卡也能接收到宿主机连接的路由器的DHCP信息和路由更新。
另外,如果宿主机所在的网段ip数量较少,就不太适合桥接模式。
如果要使用桥接模式,最好强制指定桥接模式使用的网卡,否则它可能会使用其他的不联网的网卡。
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。
这种情况下,虚拟机能够通过NAT路由器设备上网,只要宿主机能够上网,虚拟机也就能上网;通过宿主机的虚拟网卡和宿主机通信(只能通信),对外隐藏了虚拟机的ip信息。宿主机接收到的广播,多播消息将不会被转发到虚拟机上(NAT路由器设备分割广播域)。如果宿主机的虚拟网卡被禁用,不会影响虚拟机上网,虚拟机也能发消息到宿主机上,只是宿主机和其他外部设备不能主动通过NAT路由器访问虚拟机。
仅主机模式下,除了VMnet1虚拟交换机连接所有虚拟机网卡和虚拟DHCP服务器不变,去掉了NAT设备,由宿主机的虚拟网卡Ethernet adapter VMware Network Adapter VMnet1与VMnet1直连。这种情况下,虚拟机和外部网络隔离开,成为了一个独立的网络,这只是保证宿主机和虚拟机之间的互相通信,默认是不联网的,想要联网的话,需要另外设置宿主机的网卡,使其共享网络给宿主机的虚拟网卡(光共享也不行,还得另外设置DHCP)。
共享网络设置位置:
配置kali虚拟机网卡信息都是通过修改/etc/network/interfaces
文件来完成的,寻求帮助可以man interfaces
,当然其实也可以选择图形化界面配置:
配置完成后可以尝试ping宿主机和ping www.baidu.com
试试,有结果就配置完成了。
正常情况下应该是这样的(已关闭防火墙,并且确保三个主机能够互相ping通):
组播也是一个情况,原本应该接收到的eth0网卡,并没有显示出数据,虽然抓包工具已经抓到了eth0网卡上的包。
组播也是一个情况,原本eth0就收不到了,现在Windows端也收不到(但是单播收得到),确实有点没理解。绑定0.0.0.0表示接收所有网卡的某个特定端口的所有信息,但是Linux系统里除了loopback网卡就是eth0网卡,总不能是通过环回网卡发过来的吧。桥接模式的Windows端更是和所有虚拟机就处于一个子网下,更没能理解为什么收不到。
本文作者:御坂19327号
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!