《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月前
|
Shell
openstack 查询网络的port
在OpenStack中,可以使用以下命令来查询网络的端口信息: ```bash openstack port list ``` 该命令将显示所有端口的列表,包括端口的ID、网络ID、MAC地址、IP地址等信息。 如果您只想查询特定网络的端口,可以使用`openstack port list --network <network_id>`命令,其中`<network_id>`是您要查询的网络ID。 另外,如果您想查看端口的详细信息,可以使用`openstack port show <port_id>`命令,其中`<port_id>`是您要查询的端口ID。该命令将显示端口的详细信息,包括网
|
3月前
|
Ubuntu Linux 网络安全
【计算机网络】SSH 服务安装
【1月更文挑战第10天】【计算机网络】SSH 服务安装
|
4月前
|
IDE Linux KVM
云计算|OpenStack|社区版OpenStack---基本概念科普(kvm的驱动类别和安装)
云计算|OpenStack|社区版OpenStack---基本概念科普(kvm的驱动类别和安装)
91 0
|
3天前
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
15 1
|
1月前
|
Kubernetes 应用服务中间件 nginx
Kubernetes服务网络Ingress网络模型分析、安装和高级用法
Kubernetes服务网络Ingress网络模型分析、安装和高级用法
36 5
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
182 0
|
1月前
|
存储 资源调度 JavaScript
安装 Composable Storefront 2211 遇到网络连接问题
安装 Composable Storefront 2211 遇到网络连接问题
17 0
|
2月前
|
消息中间件 安全 网络安全
【网络安全 | Kali】基于Docker的Vulhub安装教程指南
【网络安全 | Kali】基于Docker的Vulhub安装教程指南
56 0
|
2月前
|
安全 Java 网络安全
【网络安全 | 扫描器】御剑安装及使用教程详析
【网络安全 | 扫描器】御剑安装及使用教程详析
198 0
|
2月前
|
Web App开发 算法 网络安全
【网络安全 | Misc】解码工具Koczkatamas及CyberChef安装及使用详析
【网络安全 | Misc】解码工具Koczkatamas及CyberChef安装及使用详析
120 0