openstack之neutron linuxbridge + vlan组网
physical_interface_mappings的作用:
physical_interface_mappings是linuxbridge中最重要的配置项,用来定义节点中的物理网络,可以有多个。openstack中的节点(按功能不同,可分为计算节点,dhcp节点,L3节点等)通过物理网络实现互联。这个物理网络用来实现neutron中定义的虚拟网络拓扑,和openstack的管理网络不是一个,是不同的概念。
虚拟网络的流量需要通过物理网络承载,而物理网络其实就是该节点上的网卡。在linuxbridge实现中,每个网络对应一个bridge,每个网络又会有一个物理网络(provider:physical_network属性)来承载,与该物理网络对应的网卡(physical_interface_mappings中配置,如physnet1对应eth1),会被加入这个bridge中,这样该网络就可以和外部系统通信了。
如果虚拟机中需要和外网相连(访问Internet),需要在L3节点(负责路由功能)上配置可以访问外部的物理网络,然后创建一个provider网络 和这个物理网络对应起来。把该provider网络和需要访问外网的虚拟机所在网络加入同一个路由器,即可实现访问外网的功能;
例子:创建provider网络,public01是该网络的名字,physnet1是物理网络的名字。physical_interface_mappings需要配置physnet1对应的物理网卡,如eth0。
1 $neutron router-create router01 2 $ neutron net-create --tenant-id $tenant public01 \ 3 --provider:network_type flat \ 4 --provider:physical_network physnet1 \ 5 --router:external=True 6 $ neutron subnet-create --tenant-id $tenant --name public01_subnet01 \ 7 --gateway 10.64.201.254 public01 10.64.201.0/24 --disable-dhcp 8 $ neutron router-gateway-set router01 public01
创建可访问外网的网络net01(vlan类型),该网络的物理网络是physnet2。physical_interface_mappings需要配置physnet2对应的物理网卡,如eth1。
$ neutron net-create --tenant-id $tenant net01 \ --provider:network_type vlan \ --provider:physical_network physnet2 \ --provider:segmentation_id 101 $ neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24 $ neutron router-interface-add router01 net01_subnet01
创建另外一个可访问外网的网络net02
$ neutron net-create --tenant-id $tenant net02 \ --provider:network_type vlan \ --provider:physical_network physnet2 \ --provider:segmentation_id 102 $ neutron subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24 $ neutron router-interface-add router01 net02_subnet01
这两个网络中的VM就可以访问外网,通过SNAT方式。如果需要外部网络直接访问VM,需要给VM分配一个floating IP地址。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
有了Docker的程序猿们就能开启“上帝视角”?
现在,如果有程序猿说不知道Docker,这将是难以想象的。 百科是这样描述Docker的。“Docker是dotCloud开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。”而更为通俗的说法是,Docker是轻量的虚拟化技术,它拥有“统一、一次操作和随处运行”的特性。 在很多程序媛心中,这应该是男神级的程序猿了吧 今年是Docker三周年,Docker之父Solomon Hykesgo说出了自己的愿望,“希望Docker社区能够围绕在它的一些核心理念下不断地发展壮大,特别是我希望能够看到在社区里的每一个人更加理解彼此。这是一个非常庞大并且多元化的社区,我们有开发者、运维人员、企业、狂热爱好者、新手以及
- 下一篇
Mac使用Docker-machine访问docker publish port
Step 1、Export the port in yourContainer(Docker-machine or boot2docker) 首先,要保证你发布端口的image已经run起来了。如果你是通过Dockerfile build起来的image,注意在image里面加上下面的一段话: [html] view plain copy print ? Expose80 如果你需要发布其他端口,只需把80改变即可。 Expose这个命令的意思是docker image发布一个端口。 然后你需要将基于这个容器的image指定一个端口去绑定: [html] view plain copy print ? dockerrum-p80:80-dYOUR_IMAGE -p选项的含义是把80端口绑定在主机的80端口(这里的“主机”指docker-machine或者boot2docker容器) 如果你不想在你的mac或者windows上通过http://localhost:80的方式去访问,到这就可以结束了。你可以通过你docker-machine或者boot2docker的ip去访问。 [htm...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路