网络虚拟化基础

Posted yxh168

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络虚拟化基础相关的知识,希望对你有一定的参考价值。

网络通信

   1.二层网络通信

       所有的通信主机在同一个LAN(连接在同一个交换机上)中  直接通过各个主机的MAC地址就可进行数据交换 无需IP地址的参与 效率比三层通信高

       交换机会自动学习记录每个主机的MAC和对应交换机端口的对应信息

   2.三层网络通信

       跨网络通信 需要通过封装IP地址和路由器来进行数据包的转发  由于在路由器中需要查询转发路径 数据转发效率比二层通信要低

 

网络模式

    vlan模式

    VLAN IEEE 802.1Q 标准定义了 VLAN Header 的格式.它在普通以太网帧结构的 SA (src addr)之后加入了 4bytes 的 VLAN Tag/Header 数据,其中包括 12-bits 的 VLAN ID。        VLAN ID 最大值为4096,但是有效值范围是 1 - 4094

技术分享图片

 

 带vlan的交换机和不带vlan交换机的区别

     一个交换机如果不带vlan 那么这个交换机第一次接收到某个数据包的时候会发送广播消息到所有交换机端口 意味着所有主机都能收到数据报文

     一个交换机如果带vlan 那么这个交换机会把数据广播到具有相同vlan id的交换机端口上 意味着只有连接到指定vlan id的交换机端口的主机才能收到数据报文

带vlan交换机端口的分类

       Access口       这些端口被打上了vlan tag,只负责接收特定vlan的数据并且去掉vlan信息并转发给给主机

      Trunk口          不区分vlan 负责接收所有转入交换机的数据包 一般用于串联交换机的连接口

      Vlan Tag       信息一般是在交换机中进行封装和解封装 到达主机后都是被交换机删除vlan信息的数据包的 或者主机发送数据包的时候是在交换机内部添加vlan信息的

vlan的类型:

    1.基于端口的vlan

       在交换机上创建若干个vlan 然后将交换机上的若干个端口放到某个VLAN中.每个端口都有一个PVID 这种模式下一个端口收到的数据包是不包含任何vlan信息的 vlan的关系只能从PVID上看出来 交换机在数据转发的时候  只会把数据包转发到相同PVID的端口上

    2.基于数据包vlan

       数据包自己携带自己的vlan信息  交换机接收到一个带VLAN信息的数据包的时候会转发给相同VID的端口 要求连接到交换机端口的网络设备必须兼容802.1Q协议的这种网络设备必须能够添加vlan tag 以及处理vlan tag 获取真正的数据体

 

     

二层交换机的基本功能 

  1.MAC地址的学习

       当交换机从它的某个口接收到数据帧时候 它会把端口的ID和帧的源MAC地址保存到内部MAC地址表中.这样的用途是当它下次接收到目标MAC为内部MAC表中的某条记录

      时候就可以直接从对应的交换机端口进行转发  交换机只保存源MAC地址 不保存目标MAC地址

  2.数据帧的转发

      交换机从某个端口接收到数据帧的 再将数据帧转发出去之前会做一些逻辑判断

         1.如果帧的目标MAC是广播或者组播地址 会将帧从所有的端口上转发(除传入端口)

         2.如果帧的目标MAC在内部的MAC地址表中 那么按照记录从相应的交换机端口进行转发

         3.其他情况会从所有的端口进行转发(除传入端口)

  3.加vlan标签和去vlan标签

        1.帧接收    从trunk口接收到的数据必须是加vlan的 从access口接收到的数据必须是没有vlan的 否则该帧将会被丢弃

        2.帧处理    和上面的步骤一样

        3.帧发出   从trunk口发出的数据是要加上vlan的  从access口发送到主机的数据必须是不加vlan的

  技术分享图片

配置了vlan的交换机

技术分享图片

  1.MAC 表格中每一行有不同的 VLAN ID.做比较的时候,拿传入帧的目的 MAC 地址和 VLAN ID 和此表中的行数据相比较.如果都相同,则选择其 Ports 作为转发出口端口.

  2.如果没有吻合的表项,则将此帧从所有有同样 VLAN ID 的 Access ports 和 Trunk ports 转发出去

 

ARP协议

        二层网络使用 MAC (media access control address)地址作为硬件的唯一标识.基于 TCP/IP 协议的软件使用 ARP 来将 IP 地址转化为 MAC 地址

        目的 IP 地址在同一网段

           1.Host A 和 B 在同一个网段中.A 的 IP 地址是 10.0.0.99,B 的 IP 地址是 10.0.0.100.当 A 要和 B 通信时,A 需要知道 B 的 MAC 地址

           2.A 上的 IP 协议栈知道通过B 的 IP 地址可以直接到达 B.  A 检查它的本地 ARP 缓存来看B 的 MAC 地址是否已经存在

              判断两个两个主机在不在同一个网段 是通过各自的IP地址和子网掩码进行运算 得到的值如果相同则说明在同一个网段 不同则说明不在同一个网段

           3.如果A 没有发现B 的 MAC 地址,它发出一个 ARP 广播请求,来询问 10.0.0.100 的 MAC 地址是什么?

           技术分享图片

           4.该网段中所有的电脑都将收到该包,并且会检查 DST IP 和自己的IP 是否相同.如果不同,则丢弃该包.Host B 发现其IP 地址和 DST IP 相同,它将 A 的 IP/MAP 地址加入到自己的ARP 缓存中

          5.B 发出一个 ARP 回复消息

           技术分享图片

         6.交换机直接将该包交给 host A.    A 收到后,将 B 的 MAC/IP 地址缓存到 ARP 缓存中

         7.A 使用 B 的 MAC 作为目的 MAC 地址发出 IP 包

      目标IP地址不在同一个网段

         A 的地址是 10.0.0.99,B 的地址是 192.168.0.99.Router 的 interface 1 和 A 在同一个网段,其IP 地址为10.0.0.1;interface 2 和 B 在同一个网段,其IP地址为 192.168.0.1

         A 使用下面的步骤来获取 Router 的 interface 1 的 MAC 地址

            1.根据其路由表,A 上的 IP 协议知道需要通过它上面配置的 gateway 10.0.0.1 才能到达到 B.经过上面例子中的步骤,A 会得到 10.0.0.1 的 MAC 地址

            2.当 A 收到 Router interface 1 的 MAC 地址后,A 发出了给B 的数据包

           技术分享图片

           3.路由器的 interface1 收到该数据包后,根据其路由表,首先经过同样的ARP 过程,路由器根据 B 的 IP 地址通过 ARP 获得其 MAC 地址,然后将包发给它.

           技术分享图片

 

 

         

 

 

 

 

 

 

    

以上是关于网络虚拟化基础的主要内容,如果未能解决你的问题,请参考以下文章

干货网络虚拟化—— linux虚拟网络基础

网络虚拟化基础

轻松理解 Docker 网络虚拟化基础之 veth 设备!

网络虚拟化基础一:linux名称空间Namespaces

理论研究漫谈云计算IT基础设施03-网络虚拟化

让网络功能虚拟化(NFV)成为现实