OpenStack创建网络和虚拟机、dhcp设备、虚拟路由器、虚拟机访问外网原理分析

创建网络和虚拟机流程:

1、创建网络和子网

  背后发生了什么:

    Neutron让控制节点上针对此子网的dhcp(虚拟设备)启动,用于给该子网下的实例分配ip

2、生成虚拟机

  背后发生了什么:

    用户通过GUI或CLI发送创建实例的请求;

    Nova将请求中包含的虚拟机基本信息部分存入Nova数据库,调用glance,cinder服务生成虚拟机。实例基本信息包括:实例类型,内存,数量等

    Nova调用Neutron API配置网络,包括实例ip地址。Neutron 会在 subnet 中创建一个 port,port中包含 IP 和 MAC 地址,并将 port 分配给实例。(参考:https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587630&idx=1&sn=4c9495f74f3360c5ef81e73af5122eec&chksm=8d3080b7ba4709a13f4f78247c8ba23b6bd17963b99bf0a7165f195b36c19d3e09baa8dd8853&scene=21#wechat_redirect)

 

 

参考:

创建虚拟机细致的流程:https://www.cnblogs.com/sammyliu/p/9192592.html

创建虚拟机大致流程和创建虚拟机时的具体信息:https://www.sdnlab.com/21244.html

DHCP工作过程

虚拟机路由器

虚拟机访问外网原理

创建外网ext_net:外网的网段和网关应该是物理网络的网段和ip.创建外网后,要在已有虚拟机路由器上添加外网网段的接口,从而访问ext_net

参考:https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587552&idx=1&sn=f6eff207c135c1d25352e0da88bba175&chksm=8d308079ba47096f20fdda00a19c54764fe1b1f97238bae469771ad0ae06bd0f12348f13ef5c&scene=21#wechat_redirect

由虚拟机发起向外网的通信:通信过程是,经过含有外网网段接口的router1时,router1做了SNAT,将虚机发往外网的数据包的源地址改为自己的外网ip地址(也就是接口上的ip),这样外网返回的ip就知道从哪里出去。

由外网主机向虚拟机主动发起的通信:通过浮动ip实现。浮动ip为虚拟机ip

参考:https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587542&idx=1&sn=4d209648987ab21349d8ca93af1e370e&chksm=8d30804fba4709599201f35102648fbaaa3165a220fa5a9bccb97d3c633162f9074f7df472c5&scene=21#wechat_redirect

 

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587547&idx=1&sn=437882d6c5c24929d0455e41c0b4a226&chksm=8d308042ba470954a45fb20f9cfc3245a94e91a0816238dd54097838eabbbaa148cfc162d436&scene=21#wechat_redirect

posted @ 2019-05-20 11:48  IcarusYu  阅读(736)  评论(0编辑  收藏  举报