openstack学习笔记十 neutron



网络节点           为虚拟机提供DHCP    路由功能

quantum--->nova-network 早期版本  linux 桥接--flatDHCP

网络节点            外网--eht1--br-ex  -------br-int--透明eth0=====eht0--内网

计算节点            虚拟机qbr-xxxxx--br-int-----------phy-eth0-----透明eth0=====eht0

虚拟机互联         br-tun------vpn------br-tun        vxlan

实现不同租户之间网络隔离的几种技术:

vlan                   4096个

gre                     一种VPN 隧道  每个虚拟主机都要互相建立VPN

vxlan(默认)    1600万个



3台机器,h1是控制节点      h1安装了rabbitmq+keystone+swift+cinder+glance  ,可以看前面的写的博客

h2是网络节点

[[email protected] ~(key)]# keystone user-create  --name neutron  --pass  hequan
[[email protected] ~(key)]# keystone  user-role-add  --user neutron --role admin  --tenant  services
[[email protected] ~(key)]# keystone service-create  --name neutron  --type network  --description "neutron"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |             neutron              |
|   enabled   |               True               |
|      id     | 6e0c0784195f40658f725f796a35bc44 |
|     name    |             neutron              |
|     type    |             network              |
+-------------+----------------------------------+
keystone  endpoint-create  --service-id  6e0c0784195f40658f725f796a35bc44  --publicurl  ‘http://192.168.1.5:9696‘  --internalurl  ‘http://192.168.1.5:9696‘  --adminurl  ‘http://192.168.1.5:9696‘   #控制节点的地址
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
|   adminurl  |     http://192.168.1.5:9696      |
|      id     | 85c82c7119a04f7cb2a95614e078c3c2 |
| internalurl |     http://192.168.1.5:9696      |
|  publicurl  |     http://192.168.1.5:9696      |
|    region   |            regionOne             |
|  service_id | 6e0c0784195f40658f725f796a35bc44 |
+-------------+----------------------------------+
[[email protected] ~(key)]# yum  install  openstack-neutron.noarch   openstack-neutron-ml2.noarch     ##在控制节点上安装
ml2是  网络核心插件,不同租户隔离    作用:实用 VLNA 还是VXLAN  分配
[[email protected] neutron(key)]# ls
conf.d          metadata_agent.ini  plugins
dhcp_agent.ini  neutron.conf        policy.json
l3_agent.ini    neutron.conf.bak    rootwrap.conf
[[email protected] neutron(key)]# mv neutron.conf neutron.conf.bak

vim neutron.conf      ###修改配置文件
[DEFAULT]
verbose = True
router_distributed = False
debug = False
state_path = /var/lib/neutron
use_syslog = False
use_stderr = True
log_dir =/var/log/neutron
bind_host = 0.0.0.0
bind_port = 9696
core_plugin =neutron.plugins.ml2.plugin.Ml2Plugin
service_plugins =router
auth_strategy = keystone
base_mac = fa:16:3e:00:00:00
mac_generation_retries = 16
dhcp_lease_duration = 86400
dhcp_agent_notification = True
allow_bulk = True
allow_pagination = False
allow_sorting = False
allow_overlapping_ips = True
advertise_mtu = False
agent_down_time = 75
router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.ChanceScheduler
allow_automatic_l3agent_failover = False
dhcp_agents_per_network = 1
l3_ha = False
api_workers = 1
rpc_workers = 1
use_ssl = False
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://192.168.1.5:8774/v2
nova_region_name =RegionOne
nova_admin_username =nova
nova_admin_tenant_name =services
nova_admin_password =hequan
nova_admin_auth_url =http://192.168.1.5:5000/v2.0
send_events_interval = 2
rpc_response_timeout=60
rpc_backend=rabbit
control_exchange=neutron
lock_path=/var/lib/neutron/lock
[matchmaker_redis]
[matchmaker_ring]
[quotas]
[agent]
root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf
report_interval = 30
[keystone_authtoken]
auth_uri = http://192.168.1.5:5000/v2.0
identity_uri = http://192.168.1.5:35357
admin_tenant_name = services
admin_user = neutron
admin_password = hequan
[database]
connection = mysql://neutron:[email protected]/neutron
max_retries = 10
retry_interval = 10
min_pool_size = 1
max_pool_size = 10
idle_timeout = 3600
max_overflow = 20
[nova]
[oslo_concurrency]
[oslo_policy]
[oslo_messaging_amqp]
[oslo_messaging_qpid]
[oslo_messaging_rabbit]
kombu_reconnect_delay = 1.0
rabbit_host = 192.168.1.5
rabbit_port = 5672
rabbit_hosts = 192.168.1.5:5672
rabbit_use_ssl = False
rabbit_userid = guest
rabbit_password = guest
rabbit_virtual_host = /
rabbit_ha_queues = False
heartbeat_rate=2
heartbeat_timeout_threshold=0
[qos]
[[email protected] ml2(key)]# pwd
/etc/neutron/plugins/ml2
[[email protected] ml2(key)]# grep  -vE "^$|^#" ml2_conf.ini      ##修改此配置文件
[ml2]
type_drivers = vxlan
tenant_network_types = vxlan
mechanism_drivers =openvswitch
path_mtu = 0
[ml2_type_flat]
[ml2_type_vlan]
[ml2_type_gre]
[ml2_type_vxlan]
vni_ranges =10:100
vxlan_group =224.0.0.1
[ml2_type_geneve]
[securitygroup]
enable_security_group = True

[[email protected] neutron(key)]# ln -s  /etc/neutron/plugins/ml2/ml2_conf.ini  plugin.ini                 ##创建快捷链接,在neutron目录下
[[email protected] ~(key)]# openstack-db --init  --service  neutron  --password hequan  --rootpw  123456  ##创建数据库
ERROR 1146 (42S02) at line 1: Table ‘neutron.migrate_version‘ doesn‘t exist                     ###这个报错忽略
Final sanity check failed.
Please file a bug report on bugzilla.redhat.com against the openstack-neutron package.
[[email protected] neutron(key)]# systemctl   start  neutron-server.service
[[email protected] neutron(key)]# systemctl   enable  neutron-server.service 

网络节点
[[email protected] ~]# hostname
h2.hequan.lol
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500          ##做内网
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500          ##绑定到外网了
        inet 192.168.2.2  netmask 255.255.255.0  broadcast 192.168.1.255
[[email protected] ~]# systemctl  stop NetworkManager.service
[[email protected] ~]# systemctl  disable NetworkManager.service

配置好  yum  可参考前面的博客
[[email protected] ~]# yum install openstack-neutron.noarch openstack-neutron-openvswitch.noarch -y
[[email protected] ~]# systemctl start openvswitch
[[email protected] ~]# systemctl enable openvswitch
[[email protected] ~]# ovs-vsctl  add-br br-ex
[[email protected] ~]# ovs-vsctl  add-br br-int
[[email protected] ~]# ovs-vsctl  add-br br-tun
[[email protected] ~]# ovs-vsctl list-br   
br-ex
br-int
br-tun
[[email protected] network-scripts]# ovs-vsctl add-port eth1
ovs-vsctl: ‘add-port‘ command requires at least 2 arguments
[[email protected] network-scripts]# ovs-vsctl add-port br-ex eth1
[[email protected] ~]# ovs-vsctl show
f03c4634-99af-4388-af85-65bbdf45f5d3
    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
        Port "eth1"
            Interface "eth1"
    Bridge br-int
        Port br-int
            Interface br-int
                type: internal
    Bridge br-tun
        Port br-tun
            Interface br-tun
                type: internal
    ovs_version: "2.4.0"
[[email protected] neutron]# mv neutron.conf neutron.conf.bak

##把上面写的  neutron.conf 复制到 这里
[[email protected] neutron]# chown root.neutron  neutron.conf

[[email protected] neutron]# vim dhcp_agent.ini    #dhcp服务
[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
ovs_integration_bridge = br-int
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
use_namespaces = True
force_metadata = False
enable_isolated_metadata = False
enable_metadata_network = False
[AGENT]
[[email protected] neutron]# vim l3_agent.ini    ##路由
[DEFAULT]
debug = False
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
use_namespaces = True
external_network_bridge = br-ex
metadata_port = 9697
agent_mode = legacy
[AGENT]

[[email protected] neutron]#  vim   metadata_agent.ini  ##
[DEFAULT]
auth_url = http://192.168.1.5:5000/v2.0
auth_region = regionOne
admin_tenant_name = service
admin_user = neutron
admin_password = hequan
nova_metadata_ip = 192.168.1.5
nova_metadata_port = 8775
nova_metadata_protocol = http
nova_metadata_insecure = False
cache_url = memory://?default_ttl=5
[AGENT]
[[email protected] network-scripts]# cat ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.2.2
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=202.106.0.20

[[email protected] network-scripts]# cat ifcfg-eth1
DEVICE=eth1
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none

[[email protected] network-scripts]# systemctl  restart network

[[email protected] ml2]# vim  openvswitch_agent.ini
[ovs]
[agent]
[securitygroup]
3. With VXLAN tunneling.
[ovs]
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 192.168.1.10  ##本地ip
bridge_mappings = physnet1:eth0
[agent]
tunnel_types = vxlan

[[email protected] ml2]# systemctl start neutron-dhcp-agent.service  neutron-l3-agent.service  neutron-metadata-agent.service   neutron-openvswitch-agent.service
systemctl enable neutron-dhcp-agent.service  neutron-l3-agent.service  neutron-metadata-agent.service   neutron-openvswitch-agent.service

[[email protected] ~(key)]# neutron agent-list
+--------------------------------------+--------------------+---------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host          | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+---------------+-------+----------------+---------------------------+
| 1264da88-1570-445f-ab9a-a3fb0dcc4743 | DHCP agent         | h2.hequan.lol | :-)   | True           | neutron-dhcp-agent        |
| 5503e449-9373-430a-9f8f-9714d2ad1af6 | Linux bridge agent | h2.hequan.lol | :-)   | True           | neutron-linuxbridge-agent |
| 797a7b92-f62f-4e01-b075-b1fe5868618b | Metadata agent     | h2.hequan.lol | :-)   | True           | neutron-metadata-agent    |
| 8c5cd9c4-3ded-4eb5-91a2-fa420a3501a5 | L3 agent           | h2.hequan.lol | :-)   | True           | neutron-l3-agent          |
+--------------------------------------+--------------------+---------------+-------+----------------+---------------------------+
时间: 2024-10-27 05:16:11

openstack学习笔记十 neutron的相关文章

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];

第十七篇:实例分析(3)--初探WDDM驱动学习笔记(十)

续: 还是记录一下, BltFuncs.cpp中的函数作用: CONVERT_32BPP_TO_16BPP 是将32bit的pixel转换成16bit的形式. 输入是DWORD 32位中, BYTE 0,1,2分别是RGB分量, 而BYTE3则是不用的 为了不减少color的范围, 所以,都是取RGB8,8,8的高RGB5, 6, 5位, 然后将这16位构成一个pixel. CONVERT_16BPP_TO_32BPP是将16bit的pixel转换成32bit的形式 输入是WORD 16BIT中

初探swift语言的学习笔记十(block)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35783341 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在前面一些学习中,原本把闭包给理解成了block尽管有很多相似之处,但block还是有他自己的独特之外.近日,在写oc/swift混合编码时,有时候需要swift回调oc,oc回调swift . 因此我把swift中的 block 常见的声明和写

Swift学习笔记十:属性

1.存储属性       1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值.存储属性可分为变量存储属性(关键字var描述)和常量存储属性(关键字let描述). struct student{ let name = "" var score = 0 } let a = student(name:"小笨狼",score:96)           注意:                ① 定义储存属性时,需要为每一个属性定义一个默认值.在初始化的时候,

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

虚拟机VMWare学习笔记十二 - 将物理机抓取成虚拟机

1. 安装VMware vCenter Converter Standalone Client 运行虚拟机,File -- Virtualize a Physical Machine 这时如果电脑中没有VMware vCenter Converter Standalone Client ,则会进行安装. 安装过程 之后图标会出现在桌面上,双击运行 选择连接到本地服务器,登陆 点击转换计算机 这个,可以将本地计算机抓取成虚拟机,也可以将其他可以访问的计算机(需知道管理员用户名及密码)抓取成虚拟机.

Linux System Programming 学习笔记(十) 信号

1. 信号是软中断,提供处理异步事件的机制 异步事件可以是来源于系统外部(例如用户输入Ctrl-C)也可以来源于系统内(例如除0) 内核使用以下三种方法之一来处理信号: (1) 忽略该信号.SIGKILL和SIGSTOP不能被忽略. (2) 捕捉并且处理该信号.The kernel will suspend execution of the process's current code path and jump to a previously registered function. SIGK

APUE 学习笔记(十) 高级I/O

1. Unix IPC(InterProcess Communication) 同一主机的各个进程间的IPC:管道.FIFO.消息队列.信号量.共享存储器 不同主机上的各个进程间IPC:socket套接字 2. 管道 管道进行IPC有两个局限: (1) 半双工,即数据只能在一个方向上流动 (2) 只能在具有公共祖先的进程之间使用.通常,一个管道由一个进程创建,然后该进程调用fork,此后 父子进程之间可以使用该管道 fstat函数对管道的每一端都返回一个FIFO类型的文件描述符,可以用S_ISF

angular学习笔记(十九)

本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器,服务,一样,可以通过模块实例的directive的方法来创建指令: var someModule = angular.module('SomeModule',[]); someModule.directive('directiveName',function(){ return { link: f