Openstack之七:实现基于桥接的内外网络
努力奋斗~~ 人气:2一、在控制端进行配置网络
#启动实例文档:https:/https://img.qb5200.com/download-x/docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance.html#
#创建网络提供者文档:https:/https://img.qb5200.com/download-x/docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance-networks-provider.html
#(提供者)桥接网络示意图:
#桥接网络IP划分,要求虚拟机与物理机必须在同一个相同子网的网络内。
1、创建提供者网络
1、在控制节点上,加载 admin
凭证来获取管理员能执行的命令访问权限:
. admin.sh
2、创建桥接网络
openstack network create --share --external \ --provider-physical-network external \ --provider-network-type flat external-net
3、在网络上创建一个子网,当分的子网用完时,我们可以再进行分配一段地址池,解决IP地址不够用的情况。
openstack subnet create --network external-net \ --allocation-pool start=192.168.200.201,end=192.168.200.220 \ #规划的地址池 --dns-nameserver 192.168.1.1 --gateway 192.168.1.1 \ #本地的dns和网关 --subnet-range PROVIDER_NETWORK_CIDR extarnal-sub
2、创建m1.nano类型
1、默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的,我们推荐创建只需要64 MB的``m1.nano``规格的主机。若单纯为了测试的目的,请使用``m1.nano``规格的主机来加载CirrOS镜像
. admin-openrc #需要管理员的权限创建 openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
3、生成一个键值对
1、导入``demo``项目凭证
$ . demo-openrc
2、大部分云镜像支持 :term:`public key authentication`而不是传统的密码登陆。在启动实例前,你必须添加一个公共密钥到计算服务。
$ ssh-keygen -q -N "" $ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey +-------------+-------------------------------------------------+ | Field | Value | +-------------+-------------------------------------------------+ | fingerprint | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d | | name | mykey | | user_id | 58126687cbcc4888bfa9ab73a2256f27 | +-------------+-------------------------------------------------+
3、验证公钥的添加:
$ openstack keypair list +-------+-------------------------------------------------+ | Name | Fingerprint | +-------+-------------------------------------------------+ | mykey | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d | +-------+-------------------------------------------------+
4、增加安全组规则
默认情况下, ``default``安全组适用于所有实例并且包括拒绝远程访问实例的防火墙规则。对诸如CirrOS这样的Linux镜像,我们推荐至少允许ICMP (ping) 和安全shell(SSH)规则。
1、添加规则到 default
安全组,创建完安全组之后,后面在openstack控制端需要授权,比较麻烦,后面会在计算节点服务器上将其关闭。
openstack security group rule create --proto icmp default
2、允许安全 shell (SSH) 的访问:
$ openstack security group rule create --proto tcp --dst-port 22 default
5、在公有网络上创建实例
官方文档:https:/https://img.qb5200.com/download-x/docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance-provider.html
1、在控制节点上,获得 admin
凭证来获取只有管理员能执行的命令的访问权限:
$ . demo-openrc
2、一个实例指定了虚拟机资源的大致分配,包括处理器、内存和存储。
列出可用类型:
$ openstack flavor list +----+---------+-----+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+---------+-----+------+-----------+-------+-----------+ | 0 | m1.nano | 64 | 1 | 0 | 1 | True | +----+---------+-----+------+-----------+-------+-----------+
3、列出可用镜像:
$ openstack image list +--------------------------------------+--------+--------+ | ID | Name | Status | +--------------------------------------+--------+--------+ | 390eb5f7-8d49-41ec-95b7-68c0d5d54b34 | cirros | active | +--------------------------------------+--------+--------+
这个实例使用``cirros``镜像。
4、列出可用网络:
$ openstack network list +--------------------------------------+--------------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+--------------+--------------------------------------+ | 4716ddfe-6e60-40e7-b2a8-42e57bf3c31c | selfservice | 2112d5eb-f9d6-45fd-906e-7cabd38b7c7c | | b5b6993c-ddf9-40e7-91d0-86806a42edb8 | provider | 310911f6-acf0-4a47-824e-3032916582ff | +--------------------------------------+--------------+--------------------------------------+
这个实例使用 ``provider``公有网络。 你必须使用ID而不是名称才可以使用这个网络。
5、列出可用的安全组:
$ openstack security group list +--------------------------------------+---------+------------------------+----------------------------------+ | ID | Name | Description | Project | +--------------------------------------+---------+------------------------+----------------------------------+ | dd2b614c-3dad-48ed-958b-b155a3b38515 | default | Default security group | a516b957032844328896baa01e0f906c | +--------------------------------------+---------+------------------------+----------------------------------+
6、启动云主机
1、在控制节点上,获得 admin
凭证来获取只有管理员能执行的命令的访问权限:
$ . demo-openrc
启动实例:
2、使用``provider``公有网络的ID替换``PUBLIC_NET_ID``
$ openstack server create --flavor m1.nano --image cirros-0.3.4 \ #cirros-0.3.4是镜像版本号 --nic net-id=PROVIDER_NET_ID --security-group default \ #用openstack network list查看ID号,然后将ID号复制到此。 --key-name mykey linux36-vm1 #命名为linux36-vm1
3、检查实例的状态:
$ openstack server list +--------------------------------------+-------------------+--------+------------------------+------------+ | ID | Name | Status | Networks | Image Name | +--------------------------------------+-------------------+--------+------------------------+------------+ | 181c52ba-aebc-4c32-a97d-2e8e82e4eaaf | provider-instance | ACTIVE | provider=203.0.113.103 | cirros | +--------------------------------------+-------------------+--------+------------------------+------------+
7、使用虚拟控制台访问实例
1、获取你实例的 Virtual Network Computing (VNC) 会话URL并从web浏览器访问它:
$ openstack console url show linux36-vm1 #打开镜像的URL +-------+---------------------------------------------------------------------------------+ | Field | Value | +-------+---------------------------------------------------------------------------------+ | type | novnc | | url | http://controller:6080/vnc_auto.html?token=5eeccb47-525c-4918-ac2a-3ad1e9f1f493 | +-------+---------------------------------------------------------------------------------+
2、验证能否ping通公有网络的网关,由于安装了防火墙机制,需要在web界面将安全机制打开,让外部可以ping通本机:
$ ping -c 4 203.0.113.1 PING 203.0.113.1 (203.0.113.1) 56(84) bytes of data. 64 bytes from 203.0.113.1: icmp_req=1 ttl=64 time=0.357 ms 64 bytes from 203.0.113.1: icmp_req=2 ttl=64 time=0.473 ms 64 bytes from 203.0.113.1: icmp_req=3 ttl=64 time=0.504 ms 64 bytes from 203.0.113.1: icmp_req=4 ttl=64 time=0.470 ms --- 203.0.113.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2998ms rtt min/avg/max/mdev = 0.357/0.451/0.504/0.055 ms
3、在控制节点或其他公有网络上的主机使用 SSH远程访问实例,由于配置了防火墙机制,需要在web网页打开ssh机制,才能以cirros用户进行连接:
$ ssh cirros@203.0.113.103 The authenticity of host '203.0.113.102 (203.0.113.102)' can't be established. RSA key fingerprint is ed:05:e9:e7:52:a0:ff:83:68:94:c7:d1:f2:f8:e2:e9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '203.0.113.102' (RSA) to the list of known hosts.
创建内网结构
1、用管理员的账号进行创建
# . admin.sh
2、控制端创建网络
# neutron net-create --shared --provider:physical_network internal --provider:network_type flat internal-net
3、创建子网
neutron subnet-create --name external-subnet --allocation-pool \ start=192.168.0.201,end=192.168.0.220 --dns nameserver 192.168.0.1 external-net 192.168.0.0/24
4、验证子网创建完成:
[root@linuxhost1 ~]# neutron net-list
加载全部内容