Hi 大家好,很高兴今天能有机会和大家进行这个分享。我是腾讯云负责IaaS网络产品策划的产品经理高航,今天和大家分享的主题是《人人都是网络工程师》。

网络是个很复杂的东西,经常晚上有美女家里上不了网,就打电话给我说“高老师,我家网络坏了,快来帮我修一下”。修了几次之后,我就有了这样一个心得:网络工程师的桃花运都比较好。

当然,修复无线路由器只是小菜一碟(PS:我一般都带个新的路由器过去),网络工程师的日常更多的时候是这样的:

凌晨1点,刚刚完成网络变更的你,躺在舒服的床上准备睡觉,望着枕边熟睡的儿子,嘴边泛起一丝微笑,感觉未来都是亮的。突然手机“bilibili”声响起,短息告警显示核心交换机网络异常,内网丢包率15%。你不能多想,立即然后穿好衣服,奔向机房,看着下面一坨网线,陷入沉思,想到底是哪里又出了问题。

人人都是网络工程师_java

所以大部分网络工程师都有一个特点:黑眼圈。哈哈,这里就不调侃了,我们进入正题。

人人都是网络工程师_java_02

今天的主题是人人都是网络工程师,但是很明显在过去的很长一段时间,网络工程是一件很专业的事情。那么,我们先基本罗列一下在传统的IT环境下,一个组织想获得稳定可靠的网络环境需要做哪些事情呢?

一般来讲,网络系统的交付可以分成两个部分:网络的规划建设 + 网络的监控运营。


人人都是网络工程师_java_031F网络规划和建设


一个典型的网络可能像下面一样(图片来自互联网,仅用于本次交流分享):

人人都是网络工程师_java_04

为了完成网络的规划和建设部署,工程师需要了解以下内容:

  • 网络基础知识:OSI协议、路由协议(OSPF、RIP、BGP等)、内网组网、Internet联网

  • 网络设备知识:常见品牌的交换机、路由器规格配置、性价比、可维护性

  • 运营商知识:中国各省市运营商状况、专线及公网接入

其中第一条的网路基础知识,花1年时间学习并完成CCIE课程应该可以搞定;

第二条的网络设备知识需要工程师有多个项目交付经验,对市场中常见品牌及型号有了解,同时具备熟悉的操作能力,2年左右时间可以搞定;

第三条需要有实际项目和运营商经验,可以在第二条基础之上一同学习。简单来说,至少需要3年左右时间,才可以具备独立搞定一套网络的知识储备(当然大神学习特别快的不特殊而论哈)。不过很明显,一般人真搞不定!


人人都是网络工程师_java_032F网络监控及运营


网络建设整体交付后,为了保证整个网络的可运维性,需要配套开发一整套网络监控和管理系统。一般私有云交付会提供配套的网络监控系统,如果是按照自己的需求从头到尾自己弄,那配套需要一个运营开发团队才能按照ITIL的模式搭建起一套完成的网络监控、故障派单的系列管理系统。

系统搭建起来后,还需要雇用一个专业的网络运营团队7*24小时不间断进行网络的运维监控,发现问题在一定时间内完成系统的应急修复。如果发现基础业务网络架构拓扑无法满足需求,还需要额外补充建设环路以保证网络互连可用性。下面是一个看起来比较酷炫的NOC监控中心形象。

人人都是网络工程师_java_06

说了这么多,总结起来一句话:

在传统的IT架构中,人人来做网络工程师,痴心妄想~不仅建设规划的时候要下血本,后期的监控运维也要付出很大的人力代价。

然而,公有云的普及给人人都是网络工程师一个机会!

人人都是网络工程师_java_07

这是一个典型的公有云和用户的服务分界。无论是通过标准的vxlan网络虚拟化协议,还是通过腾讯云这样自研的3层GRE隧道封装,公有云服务商都普遍在网络层(IP)来划定用户和平台的边界。IP层协议全世界都是标准的,刚刚上面写的传统网络部署中,不标准的交换机、路由器和运营商网络环境,都被公有云提抽象成了标准的网络服务组件,复杂的运营商网络环境通过统一的BGP出口和附带有SLA的标准网络服务来代替。

人人都是网络工程师_java_02

只要你在计算机专业学过简单的图知识,花1天时间看一下IP协议和基本的静态路由知识,就可以分分钟在公有云平台上部署起一套金融级网络架构。下面我分别简单介绍一下公有云提供的网络服务,并和传统网络环境做一下对比。

人人都是网络工程师_java_09


人人都是网络工程师_java_031F公网服务


用户在公有云上部署的集群,大部分用于对外提供服务。公有云的用户不需要理解中国有多少家运营商(电信、联通、移动、长城宽带、教育网……..还有几十家可以列出来),也不需要理解各家运营商分布在哪些区域,覆盖哪些客户,自己的客户都在用什么网络。你只要知道有你有一个很NB的公网IP,这个IP很牛逼可以服务所有的客户就好了。如果你是一个有追求的人,还可以从监控平台看一下这个IP辐射中国大江南北各种用户的时延和可用性。

公有云厂商为了实现这样简单的用户体验,至少要做以下几样事情:

  • 运营商融合:购买支持多运营商的公网IP和带宽(腾讯云聚合了20家运营商,还在增加)。如果是传统网络,只能用户自己一家一家的去接入,同时还要自己估算每家的接入带宽,事实告诉我们这些预估总是不准确的,一部分超出的会导致成本徒增,一部分低估的会在业务增长时成为瓶颈。(公有云平台一般都是按量的,不存在这样的问题)

  • 大带宽出口预备:通过足够大的公网带宽保证用户的服务波峰不会阻塞网络出口,同时入流量DDoS攻击不会影响正常网络服务,单出口没有个500G都不好意思说平台是搞公有云的。如果是传统网络架构,多买100m的带宽,就要付100m的成本,为了保证不停服需要提前购买很多网络带宽导致网络带宽成本居高不下,而公有云上面就可以实现全面的按量计费,用多少付多少的钱,平台通过足够多的客户来削峰填谷降低单个客户的成本。

  • 网络流量调度:使用SDN或手动方式使网络流量可以跨出口调度以应对运营商的网络故障,比如北京电信的网络断了,就把流量切到上海电信。这个能力在国内也只有腾讯、阿里这样的互联网公司提供的网络有,其他中小型公有云厂商最多只能做到运营商之间来做流量切换(电信流量临时切换至联通),业务峰值时跨运营商的流量切换业务时延基本没有保证。而传统网络下,基本没可能做此类流量调度方案,原因很简单:一个字,贵!

  • DDoS流量清洗:由于用户体量大,公有云平台被DDoS攻击的风险也很大,过去一段时间我统计腾讯云100Gbps左右的DDoS攻击每天平均10次,300Gbps以上的攻击每个星期也会出现几次,因此强大的流量清洗能力也是公有云平台的必备能力。传统网络中只能借助第三方DDos清洗平台,而且价格十分之贵。


人人都是网络工程师_java_032F内网服务


内网服务方面,公有云平台为了方便用户配置,一般会提供VPC这样的虚拟专有云服务。通过对基础网络环境进行虚拟化,用户可以自行规划自己云主机的内网IP、内网网段、划分子网、指定路由等等,底层的交换机、路由器设备可能有各种各样的型号,但是最终都通过虚拟化整合成了一套虚拟化后的网络结构,这样用户只要学习一边公有云的网络架构后,再也不需要去感知硬件厂商的各种变化和更新了。

公有云上,划分子网、变更路由等操作都是在可视化的web 控制台中操作的,不用担心对网络对象的变更是否会影响到其他业务服务触发重大事故。鼠标点一点,输入一下核心参数,一个网络变更就完成了。像AWS、腾讯云这样在VPC设计上还支持了子网的策略路由功能,每次路由变更也只会对关联子网范围内生效,其他子网根本不受影响。是不是感觉心里顿时少了一块大石?

为了更加简化用户使用公有云的网络服务,公有云厂商还会对标准的边界网关进行开发,提供黑核型的边界网关服务,以腾讯云为例,我们提供了:

  • NAT网关:用于云主机主动访问Internet

  • IPsec VPN网关:用于建立IPsec VPN连接

  • SSL VPN 网关:用于建立SSL VPN连接

  • 专线网关:用于接入专线,并提供专线两端的网络地址转换(NAT)功能

  • 对等连接:用于公有云上同地域或不同地域之间的VPC互联

各种边界网关、内网路由的可用性等都无需考虑双路由等设计,因为云平台厂商已经在底层网关设计、路由设计底层做了主备容灾切换逻辑,部分容灾是在同机房的不同设备上,部分容灾是在不同机房的不同设备上而已。

内网服务部分,各大云厂商平台还会提供安全组这样的通用安全策略工具,通过为云主机配置差异化的安全策略,就可以实现金融级的网络访问权限管理。


人人都是网络工程师_java_033F网络监控、告警及故障处理


完成了系统部署之后,大部分公有云平台还会提供全面的网络监控和告警功能,当每个监控对象触发了告警策略之后,即会通过你所配置的通信方式联系到你。如果是容量告警,您可以在控制台分分钟搞定网络扩容而不停服;如果是底层网络故障,那么无论是运营商层、设备层、服务对象层都会有云平台的工程师第一时间为您处理,您自己无需做很多现场的操作。

这里交给大型公有云厂商的好处显而易见:网络的故障不仅会影响你的服务,也会影响QQ、微信等服务,你在云上的部署相当于享受着和国际顶尖服务一样的网络运维管理能力(当然中小型厂商的云服务运维能力我这儿无法一一鉴定),比起自己搭建私有云,自己雇人来管理可靠得多!

那么看着这么眼花缭乱的功能,真的能做到人人都是网络工程师吗?

当然可以!只要你掌握了下面几个基础知识,就可以完全胜任公有云平台上的网络管理工作:

大学计算机基础 or 计算机网络等级考试——及格即可(我记得大学考网络三级考试也就花了1天时间刷刷题,就过了…)

有了上面的基础知识,如果让我面授一下,基本上1天之后可以完成控制台所有的网络操作和管理了。如果是看文档会比较抽象,不过自学能力强的同学有1个星期也可以玩个差不多了。

核心知识点:

  1. 定义VPC和子网 CIDR

  2. 公有云路由优先级的匹配规则(一般是最精确路由匹配)

  3. 根据业务需要,熟悉常见的网关对象,比如NAT网关、VPN网关等

  4. 配置基本的安全组策略

  5. 上手实操,边玩边学

  6. NAT网络地址转换(高级功能,上手可以先不用看)

只需要这几步,已经可以给公有云上95%的用户做网络架构规划了,而自学这些最多不需要1周的时间,你说未来是不是一个“人人都是网络工程师”的年代?

当然“人人都是网络工程师”也不是特别好,因为越来越多的公司转向公有云后,很多公司原有的网络工程师会被开发或者少数的几个运维替代,从而不可避免的面临失业问题。不过从全世界角度来看,私有云和混合云的部署方式还会长期存在,所以也不用特别担心这些问题哈。

好,今天的分享到此结束,感谢大家的参与!大家有什么问题可以在线上提问哈。

提问环节


人人都是网络工程师_java_13


人人都是网络工程师_java_14

腾讯VPC有流量限制不,最高单台可以到多少?

高航

VPC内的主机之间内网有流量限速,一般在1Gbps以下。如果有特殊需要的,也可以申请使用专用的网络增强型主机,可以到达3~5Gbps。边界网关的网路性能比较高,一般都是在NFV集群基础上平行扩容,一般都是5Gbps或以上

人人都是网络工程师_java_15人人都是网络工程师_java_16人人都是网络工程师_java_13


人人都是网络工程师_java_14

腾讯云目全部都是VPC还是和经典网络共存?

高航

目前还是和经典网络共存,计划今年6月份以后新用户将全部使用系统默认的VPC

人人都是网络工程师_java_15人人都是网络工程师_java_16人人都是网络工程师_java_13


人人都是网络工程师_java_14

腾讯云的VPC是硬件实现还是软件实现,目前和AWS的有什么区别?

是完全自研,还是和第三方厂商合作的?

高航

腾讯云VPC是在母机上通过软件分布式实现的,基于在网络包头增加3层GRE报文来进行网络虚拟化。虚拟机之间的访问通过GRE隧道进行点点通信。虚拟机的网络虚拟化整体为腾讯自研,部分边界网关采用了第三方的NFV镜像合作开发。

人人都是网络工程师_java_15人人都是网络工程师_java_16人人都是网络工程师_java_25


人人都是网络工程师_java_15

能否透露一些VPC实现的细节,我在搞OpenStack,OpenStack上实现VPC思路上有参考的没有?

高航

VPC的产品形态上,各大云厂商之间是比较类似的,包括OpenStack在内没有太大差异。但是虚拟化层面上,技术细节还是有不同的,有的是用标准的vxlan协议,有的是自研的协议。

人人都是网络工程师_java_27人人都是网络工程师_java_16人人都是网络工程师_java_13


人人都是网络工程师_java_15

刚才提到边界网关是怎么设计的?

高航

不同的边界网关实现方式是不一样的。但是各种边界网关之间会有共同的设计原则:

a)每个网关对象底层一定是主备的

b)网关的主备设备切换过程中用户是不停服的

具体实现上,VPN底层采用的是虚拟机来实现;跨地域互联、专线网关、NAT网关等采用物理设备来实现

人人都是网络工程师_java_14人人都是网络工程师_java_16人人都是网络工程师_java_13


人人都是网络工程师_java_15

腾讯云单个VPC的最大容量是多少?

高航

单个VPC目前CDIR最大为16位,理论上放60000个虚拟机是没问题的。不过目前我遇到的客户,最大的规模还没有超过10000台。由于是分布式的虚拟化方式,单VPC子机数不会影响到网络性能,无严格上限。

人人都是网络工程师_java_14人人都是网络工程师_java_36人人都是网络工程师_java_13


人人都是网络工程师_java_27

如何保证VPC 中的云主机的安全?

高航

这个问题比较大,可以从几个方面来看:

a)外网安全:通过公有云平台提供的基础DDoS防护服务,是可以抗住2Gbps以下的DDoS攻击的,购买高防服务可以最大防护300Gbps的DDoS攻击

b)内网安全:VPC本身是在网络上逻辑隔离的,已经实现了租户之间的安全隔离;再结合配置安全组和网络ACL策略,即可完成IP、端口级网络访问权限控制。

c)还可以在虚拟机中部署第三方的防火墙镜像,来实现4~7层的网络安全管控

人人都是网络工程师_java_15人人都是网络工程师_java_16人人都是网络工程师_java_13


人人都是网络工程师_java_14

您好,腾讯云目前机房之间是采用什么协议互联的?一个机房出口发生故障流量是如何切换到异地机房出口的?

高航

机房之间是通过腾讯云的核心骨干网进行跨地域互联的。目前腾讯云的核心骨干网环路带宽达1Tbps以上,主干采用MPLS服务协议和SDN控制器进行流量调度。 其中机房出口流量故障,我们是通过向运营商自动化管理路由下发BGP 策略来实现的,具体可以见我之前写的一篇文章,稍等我转到群里。

人人都是网络工程师_java_15人人都是网络工程师_java_16人人都是网络工程师_java_25


人人都是网络工程师_java_27

你们的VPC支持跨地区打通不,对混合云是如何支持的?

高航

支持自动化的跨地域打通,是通过腾讯云私有网络对等连接实现的。混合云是通过专线或IPsecVPN来实现的。用户拉专线到腾讯云上,然后通过BGP或静态路由进行打通。

人人都是网络工程师_java_15人人都是网络工程师_java_16人人都是网络工程师_java_25


人人都是网络工程师_java_15

刚才提到SDN,能否介绍下腾讯云SDN这里目前的情况,使用的是白牌交换机吗?

高航

SDN目前主要应用在两个方面:

1、用在内网传输的MPLS流量调度,采用类似openflow的框架,是骨干网流量利用率达到80%以上

2、用在前面说的公网流量调度,实现精确的路由下发管理

具体的硬件实现这里不方便透露。

人人都是网络工程师_java_27人人都是网络工程师_java_16人人都是网络工程师_java_25


人人都是网络工程师_java_27

腾讯云在网络这里的研发目前投入多少人力,在VPC的研发过程中,都碰到过那些技术难点。

高航

网络虚拟化这里是公有云的核心技术之一,我们投入了很大人力在做。技术上,实现功能比较容易,但是实现稳定可靠的功能就很难。我们整个研发过程比较谨慎,一步一个脚印,尽量在迭代过程中保证不对用户造成影响。

人人都是网络工程师_java_15人人都是网络工程师_java_16

以上内容来自云技术社区分享整理而成 

人人都是网络工程师_java_57

人人都是网络工程师_java_58