【视频】第一讲-云网络总览与概述
内容介绍:
一、课程目标
二、课程简介
三、阿里云网络概述
四、运维技术
五、排查手段
一、课程目标
首先我们先介绍课程目标,第一块是了解云网络的概念和特点,就是什么是云网络这个名词呢?
其实大家之前或多或少听说过,但是都是一个比较新而且不断迭代变化的一个东西,那么我们在这里会以我们个人或者说我们的角度去阐述云网络是一个什么东西,以及它的特点。
- 就是阿里云现在产品它非常多。网络产品它实际上就可能就有30个,那么我们尽可能的以一个思维导图的方式先向大家有一个介绍。
阿里云的网络产品有一个大致的了解,那么之后我们会用总分种这种形式在之后会对每一个产品或者是一组产品进行详细的阐述,包括它的功能,包括它的架构,原理等等都会做详细的。
第三这个其实是我们这一次的比较。独特的一块就是我们会站在云网络之支撑岗位,这个角度上去向大家介绍,如果在这个岗位上你需要支撑企业的网络或者说企业的业务需要掌握哪些技能?这一块是我们比较独特的内容。
最后就是根据我们之前的大客户在阿里云网络上碰到的问题,或者说常见的一些最佳实践总结出来的一些常见排查工具。我们这边会做一个简单的介绍。
目录,首先第一块是对今天第一讲的课程做一个简单的说明,第二块就是资本主席,我们会对阿里云网络或者说网络产品做一个简单的概述。一三就是之前提到的需要掌握的具体的技能。最后就是相关的排查手段。
二、课程简介
第一块课程简介。刚才在视频里面,大家也能简单的看到我们这边分为路径。首先第一块是第一讲是总览。之后的第二讲到第五讲是部分。具体的一个产品,最后做一个总结。这整个过程呢,会伴随着实验,然后,也会伴随着我们整个群内的一些互动讨论。
三、阿里云网络概述
第一块我们会简单的对云网络做一个概述。首先,说提到这个语,网络那肯定是要先解决什么是云网络这个概念。第二,就是会简单的对云网络的发展,还有它的大图做一个简单的阐述,最后我们会站在一个非常典型的应用,或者说非常典型的业务场景上来说明阿里云这么多网络产品,它的角色它的功能以及它一般处于业务网络或者说业务拓谱上的一个什么位置。
1、什么是云网络
概念:云计算加传统网络的一个结合。
首先将底下的基础设施网络定义为传统的物理网络,也就是传统的IDC 汇聚成的概念。但是在物理网络之上抽象出来的一个网络Overlay ,Overlay 可以理解为在传统的物理网络上,通过相关的技术虚拟化技术抽象出来的一层供用户自主创造的一个网络。这层网络可以理解为云网络,在此基础上,还会提供更多能力、服务、产品等,共同组成了云网络。
如上图:以下是对云网络定义的四个特点:
- 资源共享:所有的用户、所有的云网络都是基于底下的大的传统网络,再起之上独立的一个个个体。
(2)按量付费和自助服务:因为带有“云”的属性。例如,在传统机房增加服务器,通常周期都是以周或月来记,是很浪费时间的。但是换成云网络就是非常快的,可能在控制台制作的通过一些API 或者按钮快速的创建出来一个VPC 网络。同时按量就是用多少创建多少。
(3)弹性伸缩:可以根据实际情况自由伸缩。
综上所述,云网络既带有传统网络的特点,但是又将其更新换代加入了“云”的特性。
2、网络驱动应用发展
按照目前业界的整体发展趋势,我们认为其是一个结合运用同时驱动发展的一个过程。在最开始,可能对云网络新奇,将普通的移动互联网,例如手机等;到后来发现云网络带来了很大的性能提升以及办公自由度的提升。idc或者说它企业的协作等等,这一系列的应用,全都上,这就是一个伴随着整体的。应用网络去驱动应用去进行一个发展进行一个上瘾。
可以将云网络的发展历程分为三个世代:
- 第一代经典网络:对应阿里云的经典网络名词,当时所有的租户,所有的设备都在一个大网络上Underlay ,他们之间的安全隔离特性较差。
- 第二代VPC 网络:解决了第一代经典网络中安全隔离的问题。最大特点表现为不同租户之间通过VPC 这个物体隔离开了。VPC 就是单个用户独享的可以自由配置,随意创建的抽象逻辑实例。
- 第三代云企业网:在第二代VPC 上映后,所有的设备只能在云上用,但是到了之后,更多的业态发现更多的设备需要上网。例如,商场里面常见的名创优品,这种线下多个门店的业态,他们会有一个需求,在云上可能创造很多VPC ,部署很多业务,同时他们的门店也需要访问VPC 的网络,那么就有一个问题,门店远离网络,散店遍布全国,这样就没有办法通过二代的方式快速的连上云,这时就要通过sag 或别的方式快速的连接网络,这是一个很典型的业务形态。
- 最后,展望一下现在很多新进的技术例如:5G/IOT/边缘网络这些技术如何与云网络产生化学效应,看事情的发展未来云网络第四代,第五代会发展成什么样的业态,有可能是万物互联等等或者另一种形式。
阿里云网络产品的结构:任何的网络产品都不是独立的,其中都会有相互的关联。网络本身就是一个网状概念。
那么将其分成了五块。首先右边的三块是非常重要的,三块分为专有网络vpc、负载均衡slb还有混合云。分别对应我们的几次的讲课。
- 专有网络VPC:NAT网关,弹性公网IP,私网连接PrivateLink,共享带宽(提供带宽能力,他们之间互相结合,又可以产生不同功能),共享流量包。
- 负载均衡SLB:SLB之前指代一个特定的产品,但是到后面孵化出两个子产品:传统型负载均衡CLB(之前的SLB)、应用型负载均衡ALB。
- 混合云:云企业网CEN、全球加速GA、高速通道EC、VPN网关、智能接入网关SAG。
通过不同比例尺呈现出典型形态以及每个产品在整个业务价格中处于什么位置。首先,以VPC 专用网络的比例尺来做一个展示,最外面的框是VPC。
从外到内看,在VPC 边界上有三个产品,分别是公网NAT 网关、弹性公网IP、VPN网关,其中只有前两个结合使用起来才能提供一个完整的功能模块。公网网关提供的是一个转换的能力,这个类似传统设备。转换完后,会进行一个初化,但是没有更改IP 地址,在此时就要结合弹性公网IP ,这个产品来提供IP 地址。在VPC 下的CLB 本身是没有IP地址的。
中间的NAT 网关是一个相对比较完整的一个产品,其自身就可以提供对公网可访问的IP 地址。
这些就是打破VPC 内部与外部的一个模块,所以将其放在边界上 ,向内看,内部含有两个交换机。其中,ECS、Redis、RDS等都会归到一个交换机里。
单个交换机在交换机的边界上有一个VPC NAT网关,这个网关和公网NAT 网关的差别就是一个是公网,一个是私网。
将比例尺再缩小,放到全球来看,绘制完成就是一个全球企业大图。
中端包括手机电脑,他们通过云解析连入到了CLB 作为一个业务入口来供用户访问,在内部通过CEN 打破构建一个大网,同时有一些企业会在安全的地方多一些考虑,会将部分数据放入到SD-WAN。通过VPN 网关或者数据专线来打通云上或云下两个道路,在二层或者三层上做一个平级网络。最后的SAG 就是介绍的门店或者分公司,他们需要连入总公司或者是业务大网。
四、运维技术
这里主要讲两块一块是任何网络做网络的。那个网络一定离不开的osi 七层模型和tcp/ip 四层模型。第二块就是我们独特的一个东西是云网络运为基础大图。也是通过分层的方式来向大家说明我们这个岗位或者说支撑云网络定位的这个岗需要掌握的技能或者需要掌握的一个产品模式。
OSI七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
OSI 七层模型是一个非常理想化的模型,从上往下将网络通信拆分成了七层,每一层都严格执行着自己分内的小工作。但是随着技术的发展,一个程序便可以实现两层或者三层的内容。最终业界发展出了实际的业务模型TCP/IP协议族模型。
一般将TCP/IP协议族模型分为四层:应用层、传输层、网络层、数据链路层。每一层都是对上面一层负责,下面一层是上面一层的实际任务体现。
以下列举了一些协议:
各层典型协议:HTTP(S)/DNS/FTP/NTP、SSL/TLS、TCP/UDP、IP(V6)/ICMP(V6)、ARP/RAPP/IEEE 802.11/以太网、光纤/双绞线/电力线/同轴电缆。
典型实例:浙江杭州的a先生需要给在北京的b先生写一封纸质书信。首先就要将信的内容写在一张信签上,那么信签和写的东西就是应用层;写好信后,a先生将信放入了信封中,放信封这个过程等同于分装,应用层的数据会分装到传输层的载荷,传输层并不关心应用层传输的东西;邮局就是传输层的角色,传输层会选好目标邮局;信封装入车中就相当于传输层到网络层;货车将信从杭州运到北京的运输方式相当于数据链路层。
以分层模型来展示的协议栈,绿色是作为阿里云的用户(租户)能掌控到的一层内容;中间透明的是阿里云负责的内容。
从最底下的物理网络开始,这个跟之前的underlay 基础的传统设施网络没有很大差别,都是有不同的交换机、路由器等等方式来提供的一个大网络。虚拟网络洛神就是通过一些技术抽象出来一张虚拟网络在阿里云。在其之上,我们向用户真正交付的云服务,用户拿到了ECS ,就可以在服务上做很多事情。
右边的是在用户层面可以做的事情,比如,在系统内要将很多信息收集完成以后再判断问题的原因。就像通过tcpdump 抓包,或者通过strace 确定了具体的节奏,然后再联系阿里云来做协助才可以进一步的去定义问题的一个原因。
Strace 是内核调用的一个跟踪,可以看到每一个是如何调用的方法。Nsenter 是可以进入网络运营空间的一个工具,目前在容器的业务模型下应用较多。
之下就是阿里云的应用权限,包括一些内部的排查工具,就是内部技术。
五、排查手段
最后是排查手段,也就是刚才我们图右边这一块的东西我在这里其实只提了三个产品,三个工具。这三个工具是非常基础,但是又是非常重要的三个工具,大家平时比方说苹果相信大家一定用过,但是他的整个工作以及出现了问题。怎么样去初步的定位,这一块才是我们作为运维支撑或者说排查云网络产品的一个核心的一个能力。这个Ping 工具是确定两点之间通信是否正常的一个工具,在系统内,就能返回,回复。
Ping 工具是确定两点之间通讯是否正常的一个工具。Ping 工具通过ICMP 来进行请求和响应的能力。
- 基于ICMP 协议,Type==8&Code==0的Request(探测请求包) 和Type==0&Code==0 的Reply(探测回应包)。
- 典型的排查场景:探测连通性、探测链路MTU
首先第一个说的点是ping 工具它到底使用了什么协议来完成这个动作。这一块的ppt里面想到了是它通过icmp 来进行请求和响应的这个能力。那么其中我在左下角画了一个框图。这个框图是IP 层往上ICMP 报头加IP 报头的一个能力。
最开始的ip头部不用讲这个24节不在我们这边详细阐述了,这个会后可以详细了解。我们想说明的是在这儿。首先是一个字节的type 字段,还有一个一个字节的code 字段,ICMP 是一个非常通用的协议,使用ip 网有控制能力的,会对特定的协议栈做一些工作(改动)。Checksun 是为了保证完整性。Identifier 是作为进程的识别工具,例如,系统内程序初始化时,会给自己定一个随机值,这个随机值是唯一标识的程序。Sequence Number 是更进一步的发现响应,在回报的时候发现这个包是第几个包,看响应中request 包,Sequence Number 的大端和小端,对应回报的几个包。
在抓包里面可以看到Identifier ,同时拥有大端和小端,假设它以大端的方式10600,这个值的作用和功能,就是区分各路程序。
Ping 工具的最大功能就是判断连通性。
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0
Checksum: 0x6652 [correct]
[Checksun Status: Good]
Identifier (BE): 10600 (0x2968)
Identifier (LE): 26665 (0x6829)
Sequence Number (BE): 5 (0x0005)
Sequence Number (LE): 1280 (0x0500)
I C M P是internet control message protocol是叫ip网记控制。他是有控制的这个能力。它可以对你的机器或者对你的协议战做一些特定的工作或者特定的改动。那么Ping 他只用了非常基础的两个。Type的组合,一个是80,一个是00。分别表示上侧的请求包和对应的回应报。那么最终来实现响应这么一个能力。
再比方说我ping 工具发出一个探测报文的时候,我这个type 就是8,这就是8填充8。要的就是0。这个Checksum这个为了保持工具的完整性。都会有一个盒。然后这里,在后面这两个也是可以拿出来说的东西。
第一个是作为一个进程的识别的工具,比如说我系统内我开了一个Ping 程序。他初始化的时候他会给自己定一个随机值。这个随机值是唯一的标识,这个程序为什么会有这个东西大家可以想一想,之后这个是更进一步的,因为我发探测是一个连续的过程。我会发第一个包会发第二个包,第三个包。那假设对端回包的时候我怎么去判断这个包,它回应的是我的第七个包,解决这个问题。从而就定义了有这么一个去看这个响应中有左边这个抓看一下有没有在。
这是一个发出响应中按照大端和小端,对端回应的时候,对应这个包它也会将回应里边的这个字段对应,写成5。那么我的程序就知道,这是第五个包的回应。回到刚才那个问题,就是也可以看到抓包里边有这么两个字,同样是大小分。
假设它是以这个大段大段,这个方式它只是10600。这个词是什么?重用的会有什么功能的?其实它可以区分假设,我假设一个场景,你系统里边同时跑了两个ping 程序。他同时都在对同一个ip地址发送。那么对端他收到的时候他可能就会收到两个。那么他回应的时候,同样的会将这个id值填入。我收到的时候其实虽然说我的序列号有两个是1。但是我的id是有区别的。我的内核栈他就知道这个包对应的是哪一个进程它就能对应在一起,这个有点类似tcp的端口和ip,其实都有这异曲同工之妙。
- 排查工具-mtr/traceroute/winmtr/tracert
他们之中都有trace ,mtr的全称就是mytrace。任何设备收到了ttl<0或<=1时,都必须要毁掉一个ICMP 的插错报文。
根据ttl 不断递增,在ttl=1时,最近的一个设备就会回一个消息,ttl 不断增加,回复消息的设备就会越远。就可以完整的将整条设备的ip 地址全部拿到,通过单点就可以拉出整条链路。
在unix环境下用mtr,在windows 环境下用winmtr 。他们可以持续发报。而tracert 最多只能发五个报,traceroute 只能发十个报,这两个都是有限的,其经常作为路由探测,知道链路上有多少跳损,他们是一个静态的特征。Mtr是一个动态特征,更多的适用于链路上的丢报表现,通过持续探测,就能发现每一次丢报的点在哪里,进而知道每一跳的详细特征。
部分交换设备为了保证业务包的交换性能会将ICMP 的操作降低。
Wireshark 是在需要抓包的时候,需要看包或者说在课本里面听到这个东西。其实它是一个开源社区非常经典的由于开源社区孵化出来的一个工具。同时具备了抓包和分细胞的特点。同时他还有一些很强悍的命令行。大家平时更多关注的是他的图形化的前端界面。但是后端其实更多的都是由命令行工具特别是这两个命令行工具来提供支撑框的这些工具。就是像这两个工具是可以替代,就是它的图形化的,这个界面可以来完成。但是这三个工具。Merchcap, editcap ,capinfo这个。
- 一句话介绍:基于命令行的图形化数据包抓包、查看、分析软件。
- 包含的工具:tshark、mergecap、editcap、dumpcap、capinfo后端主要是由tshark 和dumpcap 来支撑。
Mergecap 可以将多个包合并成一个包;editcap 可以将一个包拆解成多个子包;capinfo 可以快速的对抓包进行摘要的分析,比如说它的开始时间点,它的结束时间点,它抓了多少包的量。
如果你去分析一个几个G的包,就是一两个G的。不知道大家有没有这个体量,就是如果你去分析四个G的包。你用图形化界面,显然是不现实,就是你可能过滤一次,或者说打开都要花很长的时间。那么这个时候命令行工具就可以派上用场。这个是非常好用的一些东西。那么接下去,希望大家能掌握的内容,因为是一个非常大的概念,就任何详细讲述的课件或者说内容都可以写成一本书,我这里就抛砖引玉,可以按照我自己的理解或者按照常规的与网络支撑岗位的理解。建议大家掌握这四块东西。
(1)建议掌握的功能:
①统计会话信息:Statistics->Conversation
②个性化Packet List,添加必要的列名(右击Packet Details->Apply as Column)
③捕获过滤器:与tcpdump类似,可以从man pcap-filter命令中查看详情
④显示过滤器:tcp.port/ip.addr/icmp/dns/http...
第一个功能抓包过滤器,在抓包时,建议只抓自己感兴趣的留,不要一下子把所有的都抓了,一方面是担心漏包,另一方面是分析包过大。
第二个工具是显示过滤器,可以输入tcp.port .
第三个功能是conversation ,它可以将抓包分解成不同的tcp 绘画。这里涉及到了一个五元组的概念,五元组包括原IP、原端口、目标IP、目标端口、协议。
常见应用是tcp 绘画,去看绘画详细的上下文,但是这时候会抓很多的流量掺杂里面,这个时候右击,conversation filter 再tcp。然后显示过滤器的内容就会发生变化,自动填充好五元组的信息,包括IP地址、端口、协议。
在看包里每一个组都是固定的,可以根据实际需要进行递进化处理。
(2)进阶功能
①TCP图形分析:Statistics->TCP Stream Graphs
②包染色:右击Packet List->Colorize Conversation
③过滤器按钮:Preferences->Filter Buttons
- 排查工具-更多的资料
- 云网络二三事-GNU类工具
- https://developer.aliyun.com/article/876645?groupCode=supportservice
(2)云网络二三事-老朋友,Wireshark家族
用设备访问一个不通的地址,在此时需要确认是否真的不通。第一步聘目标,确认是否通;若不通,在进一步通过mtr 看链路,观察哪一跳出了问题。在家的情况下,首先是本地路由器的网关,然后就是运营商的网关,在之后就是不同设备,在设备上观察延迟丢包是否正常。
如果第一跳延时非常高,有可能是路由器和设备出了问题。
在传输过程中出了问题就只能通过抓包或者油桶来处理,这类开销较大,不是很推荐。
只有当其他轻量化工具无法解决问题时候才会考虑抓包。
使用抓包就会看到详细内容,包括字段,延时。这是一个非常定量的排查方法。