分享

openstack【juno】入门 【网络篇】十八:创建实例化网络

pig2 发表于 2015-2-12 15:20:11 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 70 214327
本帖最后由 pig2 于 2015-5-18 16:19 编辑
问题导读


1.如何添加租户网络?
2.如何添加路由?
3.网络连通性如何验证?





接上篇:openstack【juno】入门 【网络篇】十七:neutron安装部署(计算节点)


实例化网络结构
创建第一个实例之前,你必须创建实例连接所必需的虚拟网络基础设施,包括外网和租户网络。 参见图6.1, “Initial networks”.创建完虚拟网络基础设施之后,我们建议验证网络连接性,在继续之前解决遇到的任何问题。图6.1“Initial networks”可以看到初始化网络组件,展示了实例与外网或则Internet之间的流通。
图 6.1. Initial networks

1.png

外部网络


外部网络通常提供互联网访问实例。实例使用NAT允许互联网访问。你可以使用互联网访问内部实例,通过使用 floating IP 地址,和合适的安全组规则。admin租户有这个网络,因为它提供外部网络访问多租户。
注意:
执行下面命令在控制节点

创建外部网络

1.生效环境变量

  1. source admin-openrc.sh
复制代码


2.创建网络

  1. neutron net-create ext-net --router:external True \
  2.   --provider:physical_network external --provider:network_type flat
复制代码
上面命令进一步修改:[待验证]由于网络是个问题,所以这里修改下网络模式及网络共享。
neutron net-create ext-net --shared --router:external True \
  --provider:physical_network external --provider:network_type flat


2.png

  1. Created a new network:
  2. +---------------------------+--------------------------------------+
  3. | Field                     | Value                                |
  4. +---------------------------+--------------------------------------+
  5. | admin_state_up            | True                                 |
  6. | id                        | 0028b1d7-07c9-468c-abf2-ccd4dc17b240 |
  7. | name                      | ext-net                              |
  8. | provider:network_type     | flat                                 |
  9. | provider:physical_network | external                             |
  10. | provider:segmentation_id  |                                      |
  11. | router:external           | True                                 |
  12. | shared                    | False                                |
  13. | status                    | ACTIVE                               |
  14. | subnets                   |                                      |
  15. | tenant_id                 | c52f15ccf48741c08fa8ba53b8b8ce01     |
  16. +---------------------------+--------------------------------------+
复制代码



就像一个物理网络,虚拟网络需要的子网分配给它的。这个网络与网络节点连接外网的物理网卡共享同一个子网和网关
你应该指定路由子网的ip地址范围及floating ip地址,以防止干扰外网的其它网络设备。


创建外网的子网

创建一个子网,形式如下:

  1. neutron subnet-create ext-net --name ext-subnet \
  2.   --allocation-pool start=FLOATING_IP_START,end=FLOATING_IP_END \
  3.   --disable-dhcp --gateway EXTERNAL_NETWORK_GATEWAY EXTERNAL_NETWORK_CIDR
复制代码


替换掉FLOATING_IP_START,FLOATING_IP_END,分别是floating ip地址的开始地址和结束地址。替换掉EXTERNAL_NETWORK_CIDR子网关联的物理网络。替换 EXTERNAL_NETWORK_GATEWAY 与物理网络的网关。通常.1ip地址。禁用子网ip地址,因为实例不直接连接外网,floating ip需要手工分配。

举例:, 使用 203.0.113.0/24  , floating IP 地址范围 203.0.113.101 to 203.0.113.200:

  1. neutron subnet-create ext-net --name ext-subnet \
  2.   --allocation-pool start=203.0.113.101,end=203.0.113.200 \
  3.   --disable-dhcp --gateway 203.0.113.1 203.0.113.0/24
复制代码
3.png


  1. Created a new subnet:
  2. +-------------------+----------------------------------------------------+
  3. | Field             | Value                                              |
  4. +-------------------+----------------------------------------------------+
  5. | allocation_pools  | {"start": "203.0.113.101", "end": "203.0.113.200"} |
  6. | cidr              | 203.0.113.0/24                                     |
  7. | dns_nameservers   |                                                    |
  8. | enable_dhcp       | False                                              |
  9. | gateway_ip        | 203.0.113.1                                        |
  10. | host_routes       |                                                    |
  11. | id                | e6fab309-a8ff-4385-8b32-c942434414cf               |
  12. | ip_version        | 4                                                  |
  13. | ipv6_address_mode |                                                    |
  14. | ipv6_ra_mode      |                                                    |
  15. | name              | ext-subnet                                         |
  16. | network_id        | 0028b1d7-07c9-468c-abf2-ccd4dc17b240               |
  17. | tenant_id         | c52f15ccf48741c08fa8ba53b8b8ce01                   |
  18. +-------------------+----------------------------------------------------+
复制代码


创建租户网络

租户网络提供内部网络访问实例,这种结构使与其它租户分开。demo租户拥有自己的网络,因为内部它提供网络访问实例。
注意:
控制节点,执行下面命令

1.生效demo环境变量
  1. source demo-openrc.sh
复制代码

1.png

demo-openrc.sh的内容如下:
  1. export OS_TENANT_NAME=demo
  2. export OS_USERNAME=demo
  3. export OS_PASSWORD=DEMO_PASS
  4. export OS_AUTH_URL=http://controller:5000/v2.0
复制代码


2.创建网络

  1. neutron net-create demo-net
复制代码
4.png


像外部网络一样,租户网络需要添加子网,你可以指定任何的有效子网,因为这个结构是租户网络结构隔离。默认子网使用dhcp,因此你的实例,可以得到ip地址。

创建租户子网

创建子网
  1. neutron subnet-create demo-net --name demo-subnet \
  2.   --gateway TENANT_NETWORK_GATEWAY TENANT_NETWORK_CIDR
复制代码

替换子网TENANT_NETWORK_CIDR 成你想更换的租户网络,和TENANT_NETWORK_GATEWAY 替换成你想更换的网关。通常是.1ip地址。
例如使用192.168.1.0/24:

  1. neutron subnet-create demo-net --name demo-subnet \
  2.   --gateway 192.168.1.1 192.168.1.0/24
复制代码


5.png


  1. Created a new subnet:
  2. +-------------------+--------------------------------------------------+
  3. | Field             | Value                                            |
  4. +-------------------+--------------------------------------------------+
  5. | allocation_pools  | {"start": "192.168.1.2", "end": "192.168.1.254"} |
  6. | cidr              | 192.168.1.0/24                                   |
  7. | dns_nameservers   |                                                  |
  8. | enable_dhcp       | True                                             |
  9. | gateway_ip        | 192.168.1.1                                      |
  10. | host_routes       |                                                  |
  11. | id                | dfb5a684-e837-4556-8c29-c7e01ada590a             |
  12. | ip_version        | 4                                                |
  13. | ipv6_address_mode |                                                  |
  14. | ipv6_ra_mode      |                                                  |
  15. | name              | demo-subnet                                      |
  16. | network_id        | 299e4203-135e-4305-8a9f-cdd4f4bda185             |
  17. | tenant_id         | bfb31e69f05b44cd89e1336c09042e2f                 |
  18. +-------------------+--------------------------------------------------+
复制代码


一个或则多个网络由路由来连通。一个路由需要一个或则多个网卡和网关来提供访问指定的网络。这种情况下,你需要创建一个路由附加到租户和外部网络。

在租户网络创建路由和附加外网和租户网络到路由

1.创建路由

  1. neutron router-create demo-router
复制代码
6.png

  1. root@controller:~# neutron router-create demo-router
  2. Created a new router:
  3. +-----------------------+--------------------------------------+
  4. | Field                 | Value                                |
  5. +-----------------------+--------------------------------------+
  6. | admin_state_up        | True                                 |
  7. | external_gateway_info |                                      |
  8. | id                    | 0481ede7-93e6-40c7-aa08-cc2c040a639e |
  9. | name                  | demo-router                          |
  10. | routes                |                                      |
  11. | status                | ACTIVE                               |
  12. | tenant_id             | bfb31e69f05b44cd89e1336c09042e2f     |
  13. +-----------------------+--------------------------------------+
复制代码


2.附加路由到demo租户子网
  1. neutron router-interface-add demo-router demo-subnet
复制代码
输出如下内容:
  1. Added interface 1dd67bdd-5a2c-416b-a3f7-25661f78ba57 to router demo-router.
复制代码



3.连接路由器到外部网络通过设置为网关:

  1. neutron router-gateway-set demo-router ext-net
复制代码
输出如下内容:

  1. Set gateway for router demo-router
复制代码


验证安装

我们建议在进行下一步前,验证网络连通性,一下外部子网的例子使用 203.0.113.0/24,在floating ip地址范围内,路由网关应该是最低的ip地址, 203.0.113.101.如果你配置了虚拟机网络和外部物理网络正确,你应该可以ping ip地址从外部网络。说明:
如果你创建的openstack网络是虚拟机,你必须配置hypervisor 允许在外部网络上设置混杂模式。

验证连连通性

ping路由网关

7.png



  1. root@controller:~# ping -c 4 203.0.113.101
  2. PING 203.0.113.101 (203.0.113.101) 56(84) bytes of data.
  3. 64 bytes from 203.0.113.101: icmp_seq=1 ttl=128 time=4.76 ms
  4. 64 bytes from 203.0.113.101: icmp_seq=2 ttl=128 time=3.87 ms
  5. 64 bytes from 203.0.113.101: icmp_seq=3 ttl=128 time=3.86 ms
  6. 64 bytes from 203.0.113.101: icmp_seq=4 ttl=128 time=3.73 ms
  7. --- 203.0.113.101 ping statistics ---
  8. 4 packets transmitted, 4 received, 0% packet loss, time 3007ms
  9. rtt min/avg/max/mdev = 3.737/4.059/4.765/0.415 ms
  10. root@controller:~# ^C
  11. root@controller:~# ping -c 4 203.0.113.101
  12. PING 203.0.113.101 (203.0.113.101) 56(84) bytes of data.
  13. 64 bytes from 203.0.113.101: icmp_seq=1 ttl=128 time=56.6 ms
  14. 64 bytes from 203.0.113.101: icmp_seq=2 ttl=128 time=3.86 ms
  15. 64 bytes from 203.0.113.101: icmp_seq=3 ttl=128 time=101 ms
  16. 64 bytes from 203.0.113.101: icmp_seq=4 ttl=128 time=4.42 ms
  17. --- 203.0.113.101 ping statistics ---
  18. 4 packets transmitted, 4 received, 0% packet loss, time 3005ms
  19. rtt min/avg/max/mdev = 3.863/41.512/101.157/40.554 ms
复制代码



在window下ping
  1. ping 203.0.113.101
复制代码



8.png



相关内容:

openstack【juno】入门 【准备篇】零:整体介绍

openstack【juno】入门 【准备篇】一: Ubuntu14.04远程连接(ssh安装)

openstack【juno】入门 【准备篇】二::NTP安装

openstack【juno】入门 【准备篇】三:mysql(MariaDB)安装

openstack【juno】入门 【准备篇】四::RabbitMQ 安装

openstack【juno】入门 【keystone篇】五::Keystone部署及介绍

openstack【juno】入门 【keystone篇】六::Keystone使用及遇到问题解决办法

openstack【juno】入门 【keystone篇】七:创建 service entity 和 API endpoint

openstack【juno】入门 【keystone篇】八:新手操作篇(验证操作篇)

openstack【juno】入门 【keystone篇】九:创建openstack客户端环境变量脚本

openstack【juno】入门 【glance 篇】十:glance初步介绍

openstack【juno】入门 【glance 篇】十一:glance安装配置

openstack【juno】入门 【glance 篇】十二:glance安装配置验证及相关操作

openstack【juno】入门 【nova 篇】十三(1):nova简单介绍

openstack【juno】入门 【nova 篇】十三(2):安装配置计算服务

openstack【juno】入门 【网络篇】十四:neutron介绍

openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)

openstack【juno】入门 【网络篇】十六:neutron安装部署(网络节点)

openstack【juno】入门 【网络篇】十七:neutron安装部署(计算节点)

openstack【juno】入门 【网络篇】十八:创建实例化网络

openstack【juno】入门 【dashboard篇】十九:添加dashboard

openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】

openstack【juno】入门 【cinder篇】二十一:安装配置块存储节点(cinder)

openstack【juno】入门 【swift篇】二十二:对象存储安装配置【控制节点】

openstack【juno】入门 【swift篇】二十三:安装配置swift节点

openstack【juno】入门 【swift篇】二十四:创建初始rings

openstack【juno】入门 【swift篇】二十五:验证安装(控制节点)

openstack【juno】入门 【实例篇】二十六:创建实例(neutron)

openstack【juno】入门 【总结篇】二十七:openstack排除故障及常见问题记录

openstack【juno】入门 【总结篇】二十八:keystone及网络总结



已有(78)人评论

跳转到指定楼层
cappuccino 发表于 2015-3-15 19:22:48
"如果你创建的openstack网络是虚拟机,你必须配置hypervisor 允许在外部网络上设置混杂模式。"
——请问这句话是什么意思呢?

我现在遇到的问题是,ping -c 4 203.0.113.101不通。。。T_T
回复

使用道具 举报

pig2 发表于 2015-3-15 20:04:49
cappuccino 发表于 2015-3-15 19:22
"如果你创建的openstack网络是虚拟机,你必须配置hypervisor 允许在外部网络上设置混杂模式。"
——请问这 ...

1.png

第三块网卡如下配置即可
  1. auto eth2
  2. iface eth2 inet manual
  3.         up ip link set dev $IFACE up
  4.         down ip link set dev $IFACE down
复制代码


回复

使用道具 举报

zhenxianbo 发表于 2015-3-16 16:52:21
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

zhenxianbo 发表于 2015-3-16 17:09:58
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

arsenduan 发表于 2015-3-16 19:03:47
zhenxianbo 发表于 2015-3-16 17:09
加了--debug参数后得到这么一大串东西
root@controller:~# neutron --debug  net-create ext-net --router ...

试试

neutron   net-list
显示是否正常
回复

使用道具 举报

zhenxianbo 发表于 2015-3-17 10:00:18
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

arsenduan 发表于 2015-3-17 11:55:44
zhenxianbo 发表于 2015-3-17 10:00
报错:
Request Failed: internal server error while processing your request. (HTTP 500) (Request-I ...

也可能是neutron server出问题了,试试重新初始化下数据库。
删除后,重新同步。
然后重启下每个服务
回复

使用道具 举报

zhenxianbo 发表于 2015-3-17 12:55:17
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

arsenduan 发表于 2015-3-17 13:04:45
zhenxianbo 发表于 2015-3-17 12:55
正是在为此头疼,如何操作?是从这个系列文章15开始吗?

对的,先进入mysql,把neutron 数据库删除掉用root进入,直接执行下面命令即可

drop database neutron

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条