一、OpenStack Neutron概览
OpenStack Neutron是OpenStack的嵌入式网络组件。它允许管理员和用户创建和管理网络。当用户创建虚拟机时,Neutron可以为虚拟机分配IP地址和网络。Neutron可以与多个网络后端(例如Open vSwitch、LinuxBridge和物理硬件)一起使用,以便管理员可以选择自己的网络基础架构。
OpenStack Neutron可以实现以下功能:
- 创建和管理虚拟网络和子网
- 将虚拟机连接到网络上
- 创建和管理路由器和VPN
- 启用防火墙规则和负载均衡
下面我们将详细介绍Neutron中的网络组件。
二、网络组件
1. 网络和子网
在Neutron中,网络和子网是互相关联的。网络是共享通信的基础结构,而子网则定义了网络中的IP地址范围。网络和子网在创建虚拟机和路由器时都有用处。
# 示例代码: $ neutron net-create my-network $ neutron subnet-create --name my-subnet my-network 10.0.0.0/24
2. 路由器
路由器使得网络分离和网络互连变得可行。Neutron路由器允许管理员将虚拟机连接到外部网络和互联网,从而实现虚拟机与内外部的通信。路由器上的端口主要用于连接不同的网络。
# 示例代码: $ neutron router-create my-router $ neutron router-interface-add my-router my-subnet $ neutron router-gateway-set my-router public-network
3. 端口
端口连接了虚拟机和网络。Neutron端口在虚拟机启动时动态创建,并将虚拟机连接到网络上。端口也可以用来连接路由器和负载均衡器。
# 示例代码: $ neutron port-create --name web-port my-network --fixed-ip subnet-id=my-subnet-id
4. 负载均衡器
负载均衡器是一种将流量分配到多个虚拟机的组件。负载均衡器可以在Neutron网络上部署,通常与OpenStack中的其他服务(例如Horizon)一起使用。
# 示例代码: $ neutron lbaas-loadbalancer-create --name my-lb my-network --vip-subnet-id my-vip-subnet-id
5. 防火墙
防火墙规则可以在网络中实现安全控制。管理员可以在网络中添加规则以限制入站和出站流量。
# 示例代码: $ neutron firewall-rule-create --name web-allow --protocol tcp --destination-port 80:80 $ neutron firewall-policy-create --firewall-rule web-allow --firewall-rule web-deny $ neutron firewall-create --firewall-policy web-fw --router-id my-router-id
三、OpenStack Neutron网络后端
Neutron支持多种网络后端,包括Open vSwitch和LinuxBridge,也支持与真实硬件相连的物理网络。
1. Open vSwitch
Open vSwitch是一个开源的软件交换机,用于将虚拟机连接到虚拟网络上。Open vSwitch可以在Linux操作系统上运行,并且为Neutron提供了基于软件的网络交换机。
# 示例代码:创建Open vSwitch网络后端 $ sudo apt-get install openvswitch-switch $ sudo ovs-vsctl add-br br-ex $ sudo ovs-vsctl add-port br-ext eth0
2. LinuxBridge
LinuxBridge是Linux内核中的网络设备。它将虚拟机连接到虚拟网络中。LinuxBridge在运行时不需要专门的硬件。
# 示例代码:创建LinuxBridge网络后端 $ sudo apt-get install bridge-utils $ sudo brctl addbr br-ex $ sudo brctl addif br-ex eth0
3. 真实硬件
Neutron还支持与真实硬件相连的网络。当管理员希望将虚拟机连接到现有的网络中时,这种方法非常实用。
# 示例代码:使用真实硬件连接虚拟机 $ neutron net-create my-network --provider:network_type flat --provider:physical_network physnet1 $ neutron subnet-create my-network --name my-subnet --allocation-pool start=192.168.1.100,end=192.168.1.200 --gateway 192.168.1.1 192.168.1.0/24
四、Neutron插件
Neutron插件是用于将Neutron的API转换到具体的网络服务上的组件。在OpenStack中,有多个插件可用,包括OpenContrail、VMware NSX和Juno ML2等。
# 示例代码:安装OpenContrail $ sudo apt-get install neutron-plugin-contrail $ sudo vi /etc/neutron/neutron.conf [DEFAULT] ... core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin service_plugins = neutron.services.l3_router.l3_router_plugin.L3RouterPlugin ...
五、小结
OpenStack Neutron是OpenStack中的一个重要组件,它允许管理员和用户创建和管理网络。Neutron的网络组件包括网络、子网、路由器、端口、负载均衡器和防火墙。管理员可以选择使用Open vSwitch、LinuxBridge或其他真实硬件来作为Neutron的网络后端。Neutron插件可用于将Neutron的API转换到具体的网络服务上。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/160966.html