首页 资讯 社群 我的社区 搜索

[管理篇]VMWare搭建Openstack——将FlatDHCP网络转化为GRE网络——实例化网络

木须虎
2018-09-29 18:54:38

我们已经将我们的网络模式更改为GRE网络,前面也讲到了GRE网络的表现形式,下面就实际操作一下,来感受一下GRE网络到底是一个什么样子的状态。



通过上图我们可以看到,我们的外部网络是在网络节点的eth2,我们需要创建一个外部网络,来保证通过外部网络可以访问虚拟机。

首先通过admin租户权限来创建外部网络

source admin-openrc.sh


1、创建外部网络

neutron net-create ext-net --shared --router:external=True


2、创建子网络

  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


创建一个子网络,该子网络的起始IP为203.0.113.101到203.0.113.200,分给我们了100个外部IP,所以该信息实际上是通过网络管理员来获知的。

由于我的外部网络已经提前创建完毕,我就不讲具体生成信息进行显示了。


接下来我们创建一个租户,来看一下怎么在租户内创建内部网络,怎么通过外部网络来访问租户的虚拟机。

1、创建一个租户,创建租户通过admin用户来创建,所以需要获得admin的环境变量,我们创建了一个租户TenantC,我们可以假设创建了一个部门。

  1. sm@controller:~$ source admin-openrc.sh
  2. sm@controller:~$ keystone tenant-create --name TenantC
  3. +-------------+----------------------------------+
  4. | Property | Value |
  5. +-------------+----------------------------------+
  6. | description | |
  7. | enabled | True |
  8. | id | 7a9a86dfd657482a859688fb97e2375f |
  9. | name | TenantC |
  10. +-------------+----------------------------------+

2、创建用户,使其属于刚刚创建的租户里

  1. sm@controller:~$ keystone user-create --name=UserC --pass=password --tenant-id TenantC --email=c@163.com
  2. +----------+----------------------------------+
  3. | Property | Value |
  4. +----------+----------------------------------+
  5. | email | c@163.com |
  6. | enabled | True |
  7. | id | 5bcdce96f7e749fbb157842c9eaf7765 |
  8. | name | UserC |
  9. | tenantId | 7a9a86dfd657482a859688fb97e2375f |
  10. | username | UserC |
  11. +----------+----------------------------------+

3、为新添加的用户添加角色

  1. sm@controller:~$ keystone role-list
  2. +----------------------------------+----------+
  3. | id | name |
  4. +----------------------------------+----------+
  5. | 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
  6. | f23b1fadeda94747ac6f3b612afc6e69 | admin |
  7. +----------------------------------+----------+
  8. sm@controller:~$ keystone user-role-add --tenant TenantC --user UserC --role _member_


4、为租户C创建一个网络

  1. sm@controller:~$ neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 net-create tenantC-Net
  2. Created a new network:
  3. +----------------+--------------------------------------+
  4. | Field | Value |
  5. +----------------+--------------------------------------+
  6. | admin_state_up | True |
  7. | id | e0b02bcc-0696-4099-9b02-18b98ada3fff |
  8. | name | tenantC-Net |
  9. | shared | False |
  10. | status | ACTIVE |
  11. | subnets | |
  12. | tenant_id | 7a9a86dfd657482a859688fb97e2375f |
  13. +----------------+--------------------------------------+


5、为租户C创建一个子网

  1. sm@controller:~$ neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 subnet-create tenantC-Net 12.0.0.0/24
  2. Created a new subnet:
  3. +------------------+--------------------------------------------+
  4. | Field | Value |
  5. +------------------+--------------------------------------------+
  6. | allocation_pools | {"start": "12.0.0.2", "end": "12.0.0.254"} |
  7. | cidr | 12.0.0.0/24 |
  8. | dns_nameservers | |
  9. | enable_dhcp | True |
  10. | gateway_ip | 12.0.0.1 |
  11. | host_routes | |
  12. | id | d3faf871-3def-47e4-b269-1226736be50c |
  13. | ip_version | 4 |
  14. | name | |
  15. | network_id | e0b02bcc-0696-4099-9b02-18b98ada3fff |
  16. | tenant_id | 7a9a86dfd657482a859688fb97e2375f |
  17. +------------------+--------------------------------------------+

6、为租户C创建一个虚拟路由,通过这个路由可以连接外部网络

  1. sm@controller:~$ neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-create tenant-R-C
  2. Created a new router:
  3. +-----------------------+--------------------------------------+
  4. | Field | Value |
  5. +-----------------------+--------------------------------------+
  6. | admin_state_up | True |
  7. | external_gateway_info | |
  8. | id | 40ea7752-64a5-4e14-9db1-8bf4dadea3de |
  9. | name | tenant-R-C |
  10. | status | ACTIVE |
  11. | tenant_id | 7a9a86dfd657482a859688fb97e2375f |
  12. +-----------------------+--------------------------------------+

7、为创建的虚拟路由,增加租户C的子网接口

  1. sm@controller:~$ neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 router-interface-add tenant-R-C d3faf871-3def-47e4-b269-1226736be50c
  2. Added interface 987fa9d6-fec7-4b85-a808-1c90128eb217 to router tenant-R-C.

注意:d3faf871-3def-47e4-b269-1226736be50c为租户C子网的ID


8、为租户C路由增加网关,直接连接外部网络

  1. sm@controller:~$ neutron router-gateway-set tenant-R-C Ext-Net
  2. Set gateway for router tenant-R-C



接下来设置安全组

对于安全组,我们既可以在Horizon界面进行设置也可以使用命令行设置,设置的目的就是为租户的访问安全进行保障,例如我们是否可以ping通租户的VM,是否可以开启租户虚拟机的设定端口等。

获得租户C默认的安全规则

  1. sm@controller:~$ neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 security-group-list
  2. +--------------------------------------+---------+-------------+
  3. | id | name | description |
  4. +--------------------------------------+---------+-------------+
  5. | 809da267-56a9-4287-abcc-c54b753cb075 | default | default |
  6. +--------------------------------------+---------+-------------+


添加相关的安全规则,以下设置为最大的安全设置,可以任意进行ping,也可以对所有TCP和UDP接口进行访问,但是生产环境下,建议实行严格的安全机制

  1. sm@controller:~$ neutron --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 security-group-list
  2. +--------------------------------------+---------+-------------+
  3. | id | name | description |
  4. +--------------------------------------+---------+-------------+
  5. | 809da267-56a9-4287-abcc-c54b753cb075 | default | default |
  6. +--------------------------------------+---------+-------------+
  7. sm@controller:~$
  8. sm@controller:~$ nova --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default tcp 1 65535 0.0.0.0/0
  9. +-------------+-----------+---------+-----------+--------------+
  10. | IP Protocol | From Port | To Port | IP Range | Source Group |
  11. +-------------+-----------+---------+-----------+--------------+
  12. | tcp | 1 | 65535 | 0.0.0.0/0 | |
  13. +-------------+-----------+---------+-----------+--------------+
  14. sm@controller:~$ nova --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default udp 1 65535 0.0.0.0/0
  15. +-------------+-----------+---------+-----------+--------------+
  16. | IP Protocol | From Port | To Port | IP Range | Source Group |
  17. +-------------+-----------+---------+-----------+--------------+
  18. | udp | 1 | 65535 | 0.0.0.0/0 | |
  19. +-------------+-----------+---------+-----------+--------------+
  20. sm@controller:~$ nova --os-tenant-name TenantC --os-username UserC --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default icmp -1 -1 0.0.0.0/0
  21. +-------------+-----------+---------+-----------+--------------+
  22. | IP Protocol | From Port | To Port | IP Range | Source Group |
  23. +-------------+-----------+---------+-----------+--------------+
  24. | icmp | -1 | -1 | 0.0.0.0/0 | |
  25. +-------------+-----------+---------+-----------+--------------+


密钥对访问,创建密钥对,设定固定机器的访问

  1. sm@controller:~$ source userC-openrc.sh
  2. sm@controller:~$ ssh-keygen
  3. Generating public/private rsa key pair.
  4. Enter file in which to save the key (/home/sm/.ssh/id_rsa):
  5. Created directory '/home/sm/.ssh'.
  6. Enter passphrase (empty for no passphrase):
  7. Enter same passphrase again:
  8. Your identification has been saved in /home/sm/.ssh/id_rsa.
  9. Your public key has been saved in /home/sm/.ssh/id_rsa.pub.
  10. The key fingerprint is:
  11. 27:ba:56:33:8e:64:18:83:f7:8a:3c:5c:65:13:61:cc sm@controller
  12. The key's randomart image is:
  13. +--[ RSA 2048]----+
  14. | oo. |
  15. | .E |
  16. | . . |
  17. | . + + |
  18. | . B .S . |
  19. | o +.+o |
  20. | o o +.+ o |
  21. | = . o.. |
  22. | . .. |
  23. +-----------------+
  24. sm@controller:~$ nova keypair-add --pub-key ~/.ssh/id_rsa.pub c-key

查看创建的密钥对信息

  1. sm@controller:~$ nova keypair-list
  2. +-----------+-------------------------------------------------+
  3. | Name | Fingerprint |
  4. +-----------+-------------------------------------------------+
  5. | c-key | 27:ba:56:33:8e:64:18:83:f7:8a:3c:5c:65:13:61:cc |
  6. +-----------+-------------------------------------------------+


接下来就现在Horizon界面查看相关信息,我们可以创建虚拟机,虚拟机可以分配IP,但是外部网络还无法访问,我们需要设置浮动IP才能访问,下面我们就介绍如何实现。



--------------------- 本文来自 chinagissoft 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/chinagissoft/article/details/46649215?utm_source=copy   


用户评论