一、初始网络环境准备
在控制节点和计算节点都作!
1.将网卡设置为混杂模式
当网卡工作在混杂模式下时,网卡能将通过自己接口的所有数据都捕获。为了实现虚拟网络的数据转发,Neutron需要将外网网卡设置为混杂模式。
第1步,将外网网卡“ens34”设置成混杂模式。
第2步,设置开机后混杂模式自动生效。
在“/etc/profile”环境变量配置文件末尾加上命令语句“ifconfig ens34 promisc”。
2.加载桥接模式防火墙模块
网络过滤器(Netfilter)是Linux内核中的一个软件框架,用于管理网络数据包,不仅具有网络地址转换的功能,还具有数据包内容修改以及数据包过滤等防火墙功能。它与Linux网桥的功能联动,可以实现桥接模式防火墙(br_netfilter)功能。CentOS默认没有加载桥接模式防火墙模块,需要手动加载。
第1步,编辑配置文件
然后在文件的最下方按照如下内容增加两行信息。
第2步,加载“br_netfilter”模块。
# modprobe br_netfilter
第3步,检查模块加载情况。
# sysctl -p
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
如果能获得以上信息,则表明“br_netfilter”模块已经加载成功。
二、在控制节点安装与配置Neutron
官方说明文档
以下操作在控制节点完成。
1、安装Neutron软件包
这里一共安装了3个软件包,它们分别如下。
“openstack-neutron”:“neutron-server”模块的包。
“openstack-neutron-ml2”:ML2插件的包。
“openstack-neutron-linuxbridge”:网桥和网络提供者相关的软件包。
2、创建Neutron的数据库并授权
第1步,用下面的方法进入MariaDB数据库服务器。
第2步,新建“neutron”数据库。
第3步,给用户授权使用新建数据库。
上面的SQL语句把“neutron”数据库中的所有表(库名.*)的所有权限(ALL PRIVILEGES)赋予从本地主机(’localhost’ )及任意远程主机(’%’)上登录的名为“neutron”的用户,验证密码为“000000”。
第四步 退出数据库
3、修改Neutron服务相关配置文件
(1)备份配置文件neutron.conf并去掉注释和空行
第1步,备份配置文件。
第2步,去掉所有注释和空行,生成新的配置文件。
这里的正则表达式“^ParseError: KaTeX parse error: Expected 'EOF', got '#' at position 2: |#̲”的具体含义为:匹配空行(“^”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。
(2)编辑新的neutron.conf配置文件
第1步,打开配置文件进行编辑。
第2步,修改[database]部分,实现与数据库连接。
第3步,修改“[DEFAULT]”与“[keystone_authtoken]”部分,实现与Keystone交互。
第4步,修改“[DEFAULT]”部分,实现与消息队列交互及核心插件等。
第5步,修改“[oslo_concurrency]”,配置锁路径。
第6步,增加“[nova]”部分,实现与Nova交互。
(3)修改二层模块ML2插件配置文件ml2_conf.ini
二层模块插件是Neutron必须使用的核心插件。其配置文件是/etc/neutron/plugins/ml2/ml2_conf.ini。
第1步,备份配置文件。
第2步,去掉所有注释和空行,生成新的配置文件。
这里的正则表达式“^ParseError: KaTeX parse error: Expected 'EOF', got '#' at position 2: |#̲”的具体含义为:匹配空行(“^”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。
第3步,编辑新的配置文件
打开配置文件进行编辑。
第4步,启用ML2插件。
只有在“/etc/neutron/”下的插件才能生效,因此将“ml2_conf.ini”映射为“/etc/neutron/”下的“plugin.ini”文件,使ML2插件启用。
(4)修改网桥代理配置文件
第1步,备份文件并将配置文件去掉注释和空行
首先、备份配置文件。
其次、去掉所有注释和空行,生成新的配置文件。
这里的正则表达式“^ParseError: KaTeX parse error: Expected 'EOF', got '#' at position 2: |#̲”的具体含义为:匹配空行(“^”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。
第2步,编辑新的配置文件
打开配置文件进行编辑。
(5)配置Layer-3代理:
(6)修改DHCP代理配置文件
第1步,备份配置文件去掉注释和空行
首先,备份配置文件。
其次,去掉所有注释和空行,生成新的配置文件。
这里的正则表达式“^ParseError: KaTeX parse error: Expected 'EOF', got '#' at position 2: |#̲”的具体含义为:匹配空行(“^”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。
第2步,编辑新的配置文件
打开配置文件进行编辑。
(7)修改元数据代理配置文件
云主机运行在计算节点上,在其运行过程中需要和控制节点的“nova-api”模块交互,让Nova为云主机提供元数据。这个交互需要通过Neutron的“neutron-metadata-agent”进行。“neutron-metadata-agent”和“nova-api”一样运行在控制节点上,云主机先将元数据请求发送给“neutron-metadata-agent”,“neutron-metadata-agent”再将请求转发给“nova-api。
第一步,备份配置文件,并去掉注释行
第二步,编辑新的配置文件
(8)修改nova配置文件
Nova处于整个云计算平台系统的核心位置,需要和各个组件交互,因此Nova配置文件中需要指明如何与Neutron进行交互。
在[neutron]部分增加以下内容。
4、同步数据库
同步数据库的目的是将安装文件中的数据库的表信息填充到数据库中
三、初始化Neutron组件
以下内容在控制节点完成
(1)创建neutron用户并分配角色
第1步,导入环境变量模拟登录。
第2步,在OpenStack云计算平台中创建用户“neutron”。
第3步,给用户“neutron”分配“admin”角色
(2)创建neutron服务及服务端点
第1步,创建服务
创建名“neutron”、类型“network”的服务。
第2步,创建服务端点
OpenStack组件的服务端点有3种,分别对应Admin用户(admin)、内部组件(internal)、公众用户(public)服务的地址。
创建公众用户访问的服务端点。
创建内部组件访问的服务端点。
创建Admin用户访问端点。
(3)启动Neutron服务
由于修改了Nova的配置文件,因此启动Neutron服务前,还需要重启Nova服务。
第1步,重启Nova服务。
第2步,启动Neutron服务。
首先,设置Neutron服务组件、网桥代理、DHCP代理、元数据代理开机启用。
然后,立即启用Neutron服务组件、网桥代理、DHCP代理、元数据代理。
四、检测控制节点的Neutron服务
1.查看端口占用情况
由于Neutron服务会占用9696端口,通过查看这个端口是否启用,可以判断Neutron服务是否已经运行。
2.检测服务端点
3.查看服务运行状态
如果结果中能看到,“Loaded”状态是"enable",说明该服务已经设置了开机自启。"Active"状态是"active(running)",说明当前服务处于运行状态。