《OpenStack实战指南》—— 2.1.2 网络节点的安装

简介:

本节书摘来自华章出版社《OpenStack实战指南》一 书中的第2章,第2.1节,作者:黄 凯 毛伟杰 顾骏杰 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.1.2 网络节点的安装

网络节点主要负责虚拟机的网络控制,包括DHCP、虚拟路由、公网访问虚拟机等。通过软件网桥等方式控制虚拟机的网络,代替传统环境中所需要的交换机、路由器等。在这个测试案例中,使用Open vSwitch作为底层的网络驱动。
1.?系统环境准备
操作系统仍旧使用Ubuntu 12.04 LTS。网络节点需要三个网口,分别连接network-1、network-2、network-3,前两个网络在控制节点安装的时候定义过,而network-3是个新网络,是个私有的网络,IP网段自定义,它需要和所有的计算节点通信,因此,可以和计算节点连在一个交换机上或者VLAN中。
(1)网络IP设置
eth0在前面定义的network-1网络中,这个网络连接Internet。计算节点中的虚拟机出入Internet的流量都从这里经过。
eth1在前面定义的network-2网络中。这个接入管理网络的网口主要负责和controller之间的组件通信,包括所有的数据库连接、RabbitMQ等。
eth2在新定义的网络中,命名为network-3。这个网络和所有的计算节点连接,用于Open vSwitch的GRE隧道,使得虚拟机能和网络节点通信。代码如下:

# cat /etc/network/interfaces
# network-1 Internet
auto eth0
iface eth0 inet static
    address 10.10.101.11
    netmask 255.255.252.0
    network 10.10.100.0
    broadcast 10.10.103..255
    gateway 10.10.100.1
    dns-nameservers 8.8.8.8

# network-2 Management
auto eth1
iface eth1 inet static
    address 10.80.80.11
    netmask 255.255.255.0

# network-3 vm
auto eth2
iface eth2 inet static
    address 10.10.50.1
    network 255.255.255.0

重启网络,命令如下:

# /etc/init.d/networking restart

(2)添加Havana的源
添加Havana的源,代码如下:

# apt-get install -y python-software-properties
# add-apt-repository cloud-archive:havana
# apt-get update -y
# apt-get upgrade -y
# apt-get dist-upgrade -y

更新完系统之后,可以根据实际情况重启服务器。
(3)同步时间
同步时间的命令如下:

# apt-get install -y ntp
# vi /etc/ntp.conf

编辑ntp.conf,在控制节点的IP中加入下面的一行,并且放在所有“server ntp服务器域名”的行之前,或者删除其他关于server ntp服务器的行。

server 10.80.80.10

重启NTP服务,命令如下:

# service ntp restart

打开IP转发的功能,因为网络节点需要把从vm网络来的数据包转发到Internet,其代码如下。

# sysctl net.ipv4.ip_forward=1

写入配置文件,使得重启后仍旧生效,命令如下。

# vi /etc/sysctl.coof
net.ipv4.ip_forward = 1

2.?安装Open vSwitch和Neutron
由于采用Open vSwitch作为Neutron的plugin来实现底层的网络虚拟化,因此需要安装Open vSwitch。在Open vSwitch中添加两个虚拟网络交换机:br-int、br-ex,其代码如下:

# apt-get install -y openvswitch-switch openvswitch-datapath-dkms
# ovs-vsctl add-br br-int
# ovs-vsctl add-br br-ex

在网络节点,需要安装Neutron的大部分组件,这里安装openvswitch-plugin的agent,负责neutron server和plugin之间的相互联系,dhcp-agent负责虚拟网络的DHCP,l3-agent负责虚拟网络的路由和外部连接,另外,还有metadata-agent,其代码如下。

neutron-plugin-openvswitch-agent
neutron-dhcp-agent
neutron-l3-agent
neutron-metadata-agent
    # apt-get -y install neutron-plugin-openvswitch-agent neutron-dhcp-agent
        neutron-l3-agent neutron-metadata-agent

3.?配置Neutron的agent
1)全局配置,代码如下:

# vi /etc/neutron/neutron.conf
[DEFAULT]
debug = True
verbose = True
rabbit_host = 10.80.80.10
# 如果修改过rabbit的guest密码,则一定要修改下面一行
rabbit_password = guest

2)Open vSwitch的plugin配置文件,代码如下:

# vi /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
[OVS]
tenant_network_type = gre
enable_tunneling = True
tunnel_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.10.50.1

[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

[database]
connection = mysql://neutronuser:openstack@10.80.80.10/neutron

重启服务,命令如下:

# service neutron-plugin-openvswitch-agent restart

3)对metadata-agent进行配置,命令如下:

# vi /etc/neutron/metadata_agent.ini
[DEFAULT]
debug = True

auth_url = http://10.80.80.10:5000/v2.0
auth_region必须和Keystone中Neutron服务的endpoint一致,默认配置文件里是RegionOne,而Keystone建立endpoint时如果不命名,默认是regionOne,这一个大小写问题曾经让笔者在研究metadata上花了一个下午的时间。
auth_region = regionOne
admin_tenant_name = service
admin_user = neutron
admin_password = openstack

nova_metadata_ip = 10.80.80.10

nova_metadata_port = 8775

metadata_proxy_shared_secret = openstack

重启服务,命令如下:

# service neutron-metadata-agent restart

4)对dhcp-agent进行配置,命令如下:

# vi
[DEFAULT]
debug = True

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_metadata_network = True

重启服务,命令如下:

# service neutron-dhcp-agent restart

5)对l3-agent进行配置,命令如下:

# vi
[DEFAULT]
debug = True

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
external_network_bridge = br-ex

重启服务,命令如下:

# service neutron-l3-agent restart

使用“neutron agent-list”命令可以验证目前的Neutron服务。记住,运行命令前必须先导入用户凭证。
4.?设置br-ex虚拟网络
前面已经创建了一个br-ex的虚拟交换机,使用命令ifconfig可以看到这个网口。这个虚拟网络是在l3-agent的配置里设置的,简单来说,是用于虚拟机和Internet之间通信的,因此,需要把网络节点上连接Internet的eth0接入到这个br-ex的虚拟交换机上。
运行下面这条命令后, eth0网络会断掉,需确保在配置的时候是通过管理网络接入的,或者是直接在console上执行的。

# ovs-vsctl add-port br-ex eth0

在/etc/network/interfaces中把eth0的网络配置进行修改,如下所示:

auto eth0
iface eth0 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    up ip link set $IFACE promisc on
    down ip link set $IFACE promisc off
    down ifconfig $IFACE down

如果需要让网络节点配置一个可以从这个网络访问的地址,那么可以把原来的eth0的地址配置在br-ex网口上。

相关文章
|
3月前
|
存储 网络协议 Linux
如何安装OpenStack?
【8月更文挑战第21天】
467 1
|
2月前
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
162 73
|
1月前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
1月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
122 0
|
3月前
|
监控 安全 网络协议
这10款网络扫描工具,是个网工,都想全部安装!
这10款网络扫描工具,是个网工,都想全部安装!
222 1
|
3月前
|
Linux
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置
|
3月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
53 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
3月前
|
机器学习/深度学习 数据可视化 数据挖掘
【Macos系统】安装VOSviewer及使用VOSviewer教程!!以ESN网络的研究进行案例分析
本文介绍了如何在MacOS系统上安装VOSviewer软件,并以ESN(Echo State Network)网络的研究为例,通过VOSviewer对相关科学文献进行可视化分析,以深入了解ESN在学术研究中的应用和发展情况。
251 0
【Macos系统】安装VOSviewer及使用VOSviewer教程!!以ESN网络的研究进行案例分析
|
4月前
|
域名解析 安全 物联网
阿里云EMAS HTTPDNS 扩展全球服务节点:提升解析安全性与网络覆盖
阿里云EMAS HTTPDNS新增国内西南、华南及国际欧洲、美东服务节点,提升了全球覆盖能力与性能。作为高效域名解析服务,EMAS HTTPDNS针对互联网、汽车、物流、IOT等行业提供支持,解决了传统解析易遭劫持等问题。新增节点优化了就近调度功能,显著缩短响应时间并增强了服务稳定性和连续性,尤其为中国企业的海外业务提供了强有力的支持。此次扩展展现了阿里云对服务质量的持续追求和全球市场布局的战略思考。
|
3月前
|
网络协议 Linux Shell
【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性
【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性

热门文章

最新文章