配置 External 网络
来源:互联网 发布:淘宝三木社 编辑:程序博客网 时间:2024/06/10 16:40
介绍
External 就是外部网络,相当于 Float ip,External 网络走的是 br-ex,也就是物理 eth1网卡,对于 External 网络我们只需要创建一个就够了,而所有的租户都用这一个 External 到外网。
我们用管理员创建一个 External 网络后,剩下的就交给每个租户自己来创建自己的网络了。
Quantum 里的名词理解:
Network:分为 External 和 Internal 两种网络, 也就是一个交换机。
Subnet:这个网络在哪个网段,它的网关和 dns 是多少
Router:一个路由器,可以用来隔离不同租户之间自己创建 的 Internal 网络.
Interface: 路由器上的 WLAN 和 LAN 口
Port:交换机上的端口,这个端口被谁使用,可以知道 IP 地址信息。
对于配置 Quantum 的网络来说,就是自己动手插网线、连路由器的一个过程。例如:比如一个公司是通过 ADSL 拨号上网,出口只有一个,公司内部是一个局域网(External网络),然而这个公司有多个部门组成(多个租户),A 部门(租户)需要经常测试,IP 地址或 DHCP 服务器会和其他部门(其他租户)冲突,只能在找一个路由器(Router-1)来隔离 A 部门和其它部门的网络, A 部门的网络地址不能设置成和路由器(Router-1)的 WLAN 口在同一网络位,因为路由器的 WLAN 口 IP 和 LAN 口 IP 不能在同一网段,这时候就需要 A 部门自己定义一个私有网段到路由器的 LAN 口,(租户自己创建自己的 Network 、 Subnet 以及 Router,并把 Interface 加到 Router 上,设置 Interface 的 WLAN口 为 External ip, LAN 口为 Subnet 包含的地址)。 A 部门正常可以上外网(Port 通过 Router-1的 Interface 到 External 上)。同理,现在多个部门都需要隔离网络,那就多个路由器来(Router-2,3,4,5…)隔离。
创建一个 External 网络
注意 router:external=True 参数,它指这是一个 External 网络
EXTERNAL_NET_ID=$(quantum net-create external_net1 --router:external=True | awk '/ id / {print $4}')
创建一个 Subnet
由于我的 Quantum 版本是2.0, 而源码包已经更新到了 2.2 了,命令参数以后可能会有些小变化。我这里的 quantum 命令不能直接设置 dns 和 host route。下面这个 192.168.8.0/24 就是我外部网络的网段了,注意网关必须是你指定的这个网络范围里,比如你指定了 cidr 是 192.168.8.32/24,网关是 192.168.8.1, 而 8.1 不再 cidr 的范围里。
创建 Float IP 地址的 Subnet, 这个 Subnet 的 DHCP 服务被禁用:
SUBNET_ID=$(quantum subnet-create external_net1 192.168.8.0/24 --name=external_subnet1 --gateway_ip 192.168.8.1 --enable_dhcp=False | awk '/ id / {print $4}')
创建一个 Internal 网络
这里为租户 demo 创建,需要 demo 的 id:
# DEMO_ID=$(keystone tenant-list | awk '/ demo / {print $2}')
为 demo 租户创建 Internal Network
demo 租户:我给你们部门规划创建了一套网络
# INTERNAL_NET_ID=$(quantum net-create demo_net1 --tenant_id $DEMO_ID | awk '/ id / {print $4}')
为 demo 租户创建 Subnet
demo 租户:我给你们定义了一个 网段 10.1.1.0/24 , 网关是10.1.1.1,默认开启了 dhcp 功能
# DEMO_SUBNET_ID=$(quantum subnet-create demo_net1 10.1.1.0/24 --name=demo_subnet1 --gateway_ip 10.1.1.1 --tenant_id $DEMO_ID| awk '/ id / {print $4}')
为 demo 租户创建一个 Router
又给 demo 租户拿来了一个路由器:
# DEMO_ROUTER_ID=$(quantum router-create --tenant_id $DEMO_ID demo_router1 | awk '/ id / {print $4}')
添加 Router 到 Subnet上
刚才对 demo 说的话, 应用到刚才拿来的路由器上,这个路由器 LAN口地址为: 10.1.1.1, 网段为 10.1.1.0/24:
# quantum router-interface-add $DEMO_ROUTER_ID $DEMO_SUBNET_ID
给Router添加 External IP
在给这个路由器的 WLAN 口插上连接外网的网线,并从 External 网络里拿一个 IP 地址设置到 WLAN 口:
# quantum router-gateway-set $DEMO_ROUTER_ID $EXTERNAL_NET_ID
给demo租户创建一个虚拟机
给我们即将要启动的虚拟机创建一个 Port,指定虚拟机用那个 Subnet 和 Network,在指定一个固定的 IP 地址:
# quantum net-list+--------------------------------------+---------------+--------------------------------------+| id | name | subnets |+--------------------------------------+---------------+--------------------------------------+| 18ed98d5-9125-4b71-8a37-2c9e3b07b99d | demo_net1 | 75896360-61bb-406e-8c7d-ab53f0cd5b1b || 1d05130a-2b1c-4500-aa97-0857fcb3fa2b | external_net1 | 07ba5095-5fa0-4768-9bee-7d44d2a493cf |+--------------------------------------+---------------+--------------------------------------+# DEMO_PORT_ID=$(quantum port-create --tenant-id=$DEMO_ID --fixed-ip subnet_id=$DEMO_SUBNET_ID,ip_address=10.1.1.11 demo_net1 | awk '/ id / {print $4}')
用 demo 启动虚拟机:
# glance image-list+--------------------------------------+--------+-------------+------------------+---------+--------+| ID | Name | Disk Format | Container Format | Size | Status |+--------------------------------------+--------+-------------+------------------+---------+--------+| f61ee640-82a7-4d6c-8816-608bb91dab7d | cirros | qcow2 | ovf | 9761280 | active |+--------------------------------------+--------+-------------+------------------+---------+--------+# nova --os-tenant-name demo boot --image cirros --flavor 2 --nic port-id=$DEMO_PORT_ID instance01
给 demo 租户的虚拟机添加 Float ip
虚拟机启动后,你发现你无法 ping 通 10.1.1.11, 有路由器在隔离你当然是无法 ping 通, 不过虚拟机可以出外网. (因为quantum版本问题,没有 DNS 参数选项,虚拟机的DNS有误,自己修改下虚拟机的resolv.conf), 如果想 ssh 到虚拟机的话,就加一个 Floating IP吧:
查看 demo 租户的虚拟机的 id
# nova --os_tenant_name=demo list+--------------------------------------+------------+--------+---------------------+| ID | Name | Status | Networks |+--------------------------------------+------------+--------+---------------------+| b0b7f0a1-c387-4853-a076-4b7ba2d32ed1 | instance01 | ACTIVE | demo_net1=10.1.1.11 |+--------------------------------------+------------+--------+---------------------+
获取虚拟机的 port id
# quantum port-list -- --device_id b0b7f0a1-c387-4853-a076-4b7ba2d32ed1+--------------------------------------+------+-------------------+----------------------------------------------------------------------------------+| id | name | mac_address | fixed_ips |+--------------------------------------+------+-------------------+----------------------------------------------------------------------------------+| 95602209-8088-4327-a77b-1a23b51237c2 | | fa:16:3e:9d:41:df | {"subnet_id": "75896360-61bb-406e-8c7d-ab53f0cd5b1b", "ip_address": "10.1.1.11"} |+--------------------------------------+------+-------------------+----------------------------------------------------------------------------------+
创建一个 Float ip
注意收集 id:
# quantum --os_tenant_name=demo floatingip-create external_net1+---------------------+--------------------------------------+| Field | Value |+---------------------+--------------------------------------+| fixed_ip_address | || floating_ip_address | 192.168.8.3 || floating_network_id | 1d05130a-2b1c-4500-aa97-0857fcb3fa2b || id | f3670816-4d76-44e0-8831-5fe601f0cbe0 || port_id | || router_id | || tenant_id | 83792f9193e1449bb90f78400974d533 |+---------------------+--------------------------------------+
关联浮动 IP 到 VM
# quantum --os_tenant_name=demo floatingip-associate f3670816-4d76-44e0-8831-5fe601f0cbe0 95602209-8088-4327-a77b-1a23b51237c2Associated floatingip f3670816-4d76-44e0-8831-5fe601f0cbe0
查看刚才关联的浮动 IP
# quantum floatingip-show f3670816-4d76-44e0-8831-5fe601f0cbe0+---------------------+--------------------------------------+| Field | Value |+---------------------+--------------------------------------+| fixed_ip_address | 10.1.1.11 || floating_ip_address | 192.168.8.3 || floating_network_id | 1d05130a-2b1c-4500-aa97-0857fcb3fa2b || id | f3670816-4d76-44e0-8831-5fe601f0cbe0 || port_id | 95602209-8088-4327-a77b-1a23b51237c2 || router_id | bf89066b-973d-416a-959a-1c2f9965e6d5 || tenant_id | 83792f9193e1449bb90f78400974d533 |+---------------------+--------------------------------------+# ping 192.168.8.3PING 192.168.8.3 (192.168.8.3) 56(84) bytes of data.64 bytes from 192.168.8.3: icmp_req=1 ttl=63 time=32.0 ms64 bytes from 192.168.8.3: icmp_req=2 ttl=63 time=0.340 ms64 bytes from 192.168.8.3: icmp_req=3 ttl=63 time=0.335 ms
租户如何在界面上创建网络?
对于浏览器最好用 chrome, 而 firefox 有的按钮点击不了。
创建一个 test 租户,我这里用命令创建:
# TEST_TENANT_ID=$(keystone tenant-create --name test | awk '/ id / {print $4}')# keystone user-create --name test --pass test --tenant-id $TEST_TENANT_ID
用 test 租户登录界面,并创建自己的网络:
点击 Netork Topology,可以看到我们在目录 13 创建的 External 网络:
接下来界面的操作对应目录 14 的步骤
1. 选择 Networks 按钮,在点击 Create Network,输入网络名称:
选择 Subnet,输入名称,网络地址和网关:
选择 Subnet Detail, 输入 dhcp 范围,输入 DNS 地址,也可以添加一个静态路由,静态路由可以到别的网络:
这时候就可以在 Network Topology 里看到刚才创建的网络了:
2. 选择 Routers,点击 Create Router, 输入名称:
登录路由器,点击刚才创建的 test_router1 名字,进入到 Interface 界面,点击 Add Interface (LAN口),选择刚才创建的网络 test_subnet:
在来看看拓扑图:
回到 Interface 界面, 在给这个路由器的 WLAN 口设置一个 IP ,IP 地址从 External 网络拿一个, 选择 Add Gateway Interface:
继续看图说话:
用 test 租户创建一个虚拟机后的网络拓扑图:
用 admin 管理员用户登录查看网络拓扑图, 可以看到 External 网络、demo 和 test 租户的网络:
其实 Quantum 的网络一点都不复杂,只要对应结合到实际生活中就会很好理解.
- 配置 External 网络
- eclipse配置external tool configurations外部工具
- NDK开发中配置External Tools
- Office 365 IT Professional —— 配置External User Sharing
- Cloud Design Pattern - External Configuration Store(配置外部集中)
- 网络配置
- 网络配置
- 配置网络
- 网络配置
- 配置网络
- 网络配置
- 网络配置
- 网络配置
- 网络配置
- 网络配置
- 网络配置
- 网络配置
- 网络配置
- OPenCV绘图函数
- [Android]Fragment源码分析(三) 事务
- 如何快速下载android sdk
- Android视图SurfaceView的实现原理分析
- 一种别样的鉴权方式 注解 + 接口 + 枚举 妙用
- 配置 External 网络
- IP地址分类
- Crontab杂记
- 如何查看Windows上文件系统块的大小
- 利用正则实现彩色控制台输出
- Android的程序关联和自定义类型文件的方法步骤和实现过程
- PHP程序员开发win32应用程序之梦
- centos下安装wireshark
- 编译jabberd 2出现expat.h: No such file or directory