设为首页 收藏本站
查看: 780|回复: 0

[经验分享] 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(一)-简述与端口转发

[复制链接]

尚未签到

发表于 2017-12-5 12:30:53 | 显示全部楼层 |阅读模式
  VPC的概念与基于vxlan的overlay实现很早就有了,标题中的“新”只是一个和传统网络的相对概念。但从前年开始,不同于以往基础网络架构的新一代SDN网络才真正越来越多的走进国内甲方厂商的视野,而从去年至今,笔者经历的诸多客户也在历经学习、测试后逐步将其部署入生产。与此同时,国内的公有云厂商们也或多或少地投入了对市场的教育成本,鼓励客户使用功能更强大,安全性更好的VPC网络。


  • 什么是VPC
  VPC即virtual private cloud ,因其最大的特点还是网络方面,故行业内有时也称其为私有网络,在基础云计算环境之上,支持用户定义自己的虚拟网络,这个网络在逻辑上与云中的其他虚拟网络隔绝,用户可选择私有 IP 地址范围、创建子网以及配置路由表、网络网关和安全设置等。
  传统基础网络的管理员视角:

  (当然实际上,以往的IT集成架构会基于业务需求和安全需求作复杂的 外-核心-汇聚-接入-用户的层次划分。)
  从用户的视角甚至可以简化为:

  实际云环境中,抛开云主机的安全组策略、上层交换设备的ACL等不谈,各用户处于同一层次的网络中,IP自然也由平台管理端分配。
  而对于使用VPC网络的环境来说:

  左边颜色区域是一个用户,右边颜色区域是另一个用户。两者各自的网络广播域不会互相影响,IP自然也可以由用户指定。从图中不难发现,与基础网络相比,路由正是VPC网络的核心。
  那么开头所说的“功能更强大,安全性更好”具体指什么呢?功能更强大,指的是更便利、形式多样的互联互通、带宽分配等网络功能;安全性更好,指的是用户的私有网络隐藏在路由之内,不仅互不影响,还可以将访问控制的执行者,从云主机本身一直延伸到三层。


  • VPC-NAT
  NAT即网络地址转换,分为DNAT(目的地址转换)与SNAT(源地址转换),最直白地从常见功能目的来说, DNAT可以用于实现一个上层(路由的外层)地址的端口转发到下层(路由的内层)网络某个地址的某端口,SNAT可以用于实现多台云主机共享一个网关地址访问上层(路由的外层)网络。
  第一个很好理解,4层端口转发。

  有时候为了管理需要,要能在外层网络管理私网中的三台云主机,而这三台云主机仅有私网地址没有外层地址,那么可以使用端口转发,将路由外层地址 114.123.123.x 的22端口转发至第一台云主机10.1.1.3的22端口,将114.123.123.x的23端口转发至第二台云主机的22端口,将路由的24端口转发至第三台云主机的22端口。如此通过SSH一个外层地址的不同端口来连接到私网内的三台云主机。
  其实和7层的转发有那么点相似之处,比如 Nginx的80端口代理后端应用服务器的8080端口,81端口代理另一台服务器的8080端口。还真别说,Nginx自从1.9版本后开始支持TCP代理了。
  抛开应用层转发不谈,基于OpenStack该如何实现呢?
  熟悉虚拟化与容器技术的朋友肯定熟悉linux的namespace(命名空间),在Neutron 的L3节点上,不同用户的VPC路由正是用namespace技术实现的隔离,这一点和不同vxlan网络的隔离还是有很大区别的,本篇不谈。



netns是在Linux中提供网络虚拟化的一个项目,使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境

  所以,在L3节点使用ip netns 可以看到含本地所有网络命名空间的list:

  可以发现,其实不同网络的dhcp服务与负载均衡服务(非Octavia)也是使用类似的方式。

  qrouter后面接的uuid正是路由的uuid。通过这种方式即可进入VPC路由所在命名空间并使用iptables 执行对NAT表规则的增删。
  故端口转发的功能API流程可以简单描述为:
输入数据为 VPC路由uuid 及端口,私网云主机IP及端口,生成




VPC路由IP:端口 →  云主机IP:端口

  的一条 DNAT规则。
  进入VPC命名空间执行规则。
  执行后NAT表效果:



  系列下一篇 《深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(二)》中将给出上文的简单API 代码,并展开另一块内容——VPC网络带宽的共享与分离。考虑篇幅, VPC网络中实现互联互通的路由技术与隧道技术可能会放在系列的第三篇。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-420782-1-1.html 上篇帖子: OpenStack trove原理及配置实践 下篇帖子: openstack装B之路--------网关协议
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表