虚拟网络

虚拟网络基于物理计算机网络原理,功能由软件驱动。虚拟网络环境中每个VM分配一个基于软件的虚拟以太网卡,有独立的MAC和IP地址。

网络组成

计算设备:台式机和/或笔记本电脑

物理NIC(pNIC):是计算设备上的网卡和端口

交换机:提供网络支持的主要组件是位于7层协议第2层的以太网交换机。

外部网络:交换机通常连接到电缆或DSL调制解调器,使Internet能够访问计算设备。

配置网络步骤

1.启动以太网交换机

2.配置Internet(外部网络)访问。

3.配置LAN功能,如DHCP等。

4.将计算设备连接到交换机。计算设备将从交换机上的DHCP服务器获取IP地址。交换机将充当外部连接的网关。

经过以上步骤,两个计算设备能够相互通信,也可访问外部网络。

虚拟化

在虚拟化环境中,许多物理组件被转换为虚拟组件。

虚拟计算设备:俗称虚拟机(VM)作为主机服务器内的软件运行。

虚拟NIC(vNIC):为虚拟机提供网络支持的虚拟网络适配器(vNIC)。

虚拟交换机:在单个主机服务器中实例化多个虚拟机,需要一个虚拟交换机提供VM之间的连接及外部访问。

物理NIC(pNIC):在主机服务器上,物理NIC支持物理网络连接。

主机服务器:支持虚拟化的计算设备。

配置虚拟网络

1.启动以太网交换机。

2.配置外部网络访问。

3.配置LAN功能,如:VLAN等。

4.创建一个虚拟交换机。

5.在虚拟交换机中配置物理网络信息(pNIC)。

6.在虚拟交换机上配置LAN功能,如:DHCP等。

7.实例化虚拟机,将虚拟NIC关联到虚拟交换机。

尽管物理网络功能已得到很好的标准化,但虚拟网络配置却非常依赖于供应商和技术。

网络端口

在网络世界中,端口代表网络设备数据流量的入口和出口。

软件端口存在于操作系统中。通常是应用程序流量的入口和出口点。如,服务器上的80端口。

硬件端口是设备上的物理连接点,如:交换机、计算机、路由器等。

交换机端口类型

虚拟机的数据流量先在虚拟交换机上传输,然后在物理交换机上传输。因此,当涉及到虚拟网络时,两种类型的端口就变得非常重要。

物理交换机端口:对于常用的L2/Ethernet交换机,物理交换机端口是RJ45。RJ45连接器/电缆将交换机上的端口,连接到计算设备的网卡(NIC)上。

虚拟交换机端口:类似于物理交换机端口,虚拟交换机端口以为软件形式存在于虚拟交换机上。

由于虚拟网卡(vNIC)和虚拟端口都是软件,因此,由底层软件维护两者之间的关联。此关联就像虚拟电缆将vNIC连接到虚拟交换机端口。

如上图所示,将pNIC连接到物理交换机端口的蓝色箭头是真实的电缆,将vNIC连接到虚拟交换机端口的红色箭头是由软件维护的关联。

端口在网络中的重要性

端口是数据流量的入口和出口点,没有数据流量,网络就没有意义。

用户可以控制交换机的端口,从网络管理角度来看很重要。

端口具有调节/控制数据流量的能力。

VLAN

VLAN即虚拟LAN,也叫虚拟局域网。

VLAN的概念,类似于硬盘分区,将硬盘划分为几个逻辑分区。目的在于组织磁盘空间,确保一个逻辑分区的损坏/耗尽不会影响另一个分区。。

在L2/Ethernet网络中,VLAN能够将L2/Ethernet划分为多个逻辑L2/Ethernet网络,确保一个VLAN的流量不会与另一个VLAN的流量混合。

如上图所示,设备2的流量只传送到设备4,因为,相应的物理交换机端口位于同一个VLAN。

VLAN作用

VLAN能够跨多个物理交换机创建L2广播域。换句话说,可以将多个交换机上的设备位于同一局域网。

在正常的第2层操作中,由于各种原因,可能会发生L2帧泛洪。通过VLAN对物理网络进行分段,可以很好地控制泛洪的影响面。

注:L2即网络七层模型中的第2层。第1层和第2层实现局域网(LAN)。局域网很小,在地理上是局部的,由同构网络技术组成。第3层(IP)使用第2层服务来创建广域网(WAN),广域网更大,在地理上是分散的,由异构网络技术组成。

VLAN对虚拟网络的作用

虚拟网络具有物理网络的许多特性,云计算的出现提升了VLAN的重要性。在基础设施即服务(IaaS)产品中,如Amazon EC2、Rackspace等虚拟机总是被创建和删除。此外,用户希望他们的虚拟机不会与其他用户的虚拟机共享流量。因此,在云基础设施中支持网络分割显得很重要。VLAN在这方面无疑是一个成熟而又简单的解决方案。

端口和VLAN之间的关系

端口是数据流量的入口和出口点。VLAN能够隔离L2网络中的流量。

Linux Bridge

虚拟网络需要在服务器中存在虚拟交换机。有时被称为网桥,Linux Bridge实际上是一个虚拟交换机,与KVM/QEMU管理程序一起使用。Linux Bridge是一个内核模块,在2.2内核(大约在2000年)中首次引入。在Linux上使用brctl命令进行管理。