硬件配置笔记


文章目录

  • 一、关键词
    • 1. Underlay网络
    • 2.IGP & EGP & BGP &EBGP & IBGP
      • 2.1 IGP vs EGP vs BGP
      • 2.2 自治系统AS
      • 2.3 BGP
        • 2.3.1 什么是BGP?
        • 2.3.2 为什么需要BGP?
          • 2.3.2.1 补充:NAT vs PAT
      • 2.3.3 BGP协议
      • 2.4 EBGP vs IBGP



·

一、关键词

1. Underlay网络

Overlay网络和Underlay网络是一组相对概念,Overlay网络是建立在Underlay网络上的逻辑网络。而为什么需要建立Overlay网络,就要从底层的Underlay网络的概念以及局限讲起。

Underlay网络
Underlay网络正如其名,是Overlay网络的底层物理基础。
硬件配置笔记_第1张图片

如下图所示,Underlay网络可以是由多个类型设备互联而成的物理网络,负责网络之间的数据包传输。

在Underlay网络中,互联的设备可以是各类型交换机、路由器、负载均衡设备、防火墙等,但网络的各个设备之间必须通过路由协议来确保之间IP的连通性。

Underlay网络可以是二层也可以是三层网络。其中二层网络通常应用于以太网,通过VLAN进行划分。三层网络的典型应用就是互联网,其在同一个自治域使用OSPF、IS-IS等协议进行路由控制,在各个自治域之间则采用BGP等协议进行路由传递与互联。随着技术的进步,也出现了使用MPLS这种介于二三层的WAN技术搭建的Underlay网络。

然而传统的网络设备对数据包的转发都基于硬件,其构建而成的Underlay网络也产生了如下的问题:

由于硬件根据目的IP地址进行数据包的转发,所以传输的路径依赖十分严重。
新增或变更业务需要对现有底层网络连接进行修改,重新配置耗时严重。
互联网不能保证私密通信的安全要求。
网络切片和网络分段实现复杂,无法做到网络资源的按需分配。
多路径转发繁琐,无法融合多个底层网络来实现负载均衡。

Overlay网络
为了摆脱Underlay网络的种种限制,现在多采用网络虚拟化技术在Underlay网络之上创建虚拟的Overlay网络。
硬件配置笔记_第2张图片

在Overlay网络中,设备之间可以通过逻辑链路,按照需求完成互联形成Overlay拓扑。

相互连接的Overlay设备之间建立隧道,数据包准备传输出去时,设备为数据包添加新的IP头部和隧道头部,并且被屏蔽掉内层的IP头部,数据包根据新的IP头部进行转发。当数据包传递到另一个设备后,外部的IP报头和隧道头将被丢弃,得到原始的数据包,在这个过程中Overlay网络并不感知Underlay网络。

Overlay网络有着各种网络协议和标准,包括VXLAN、NVGRE、SST、GRE、NVO3、EVPN等。

随着SDN技术的引入,加入了控制器的Overlay网络,有着如下的优点:

流量传输不依赖特定线路。Overlay网络使用隧道技术,可以灵活选择不同的底层链路,使用多种方式保证流量的稳定传输。
Overlay网络可以按照需求建立不同的虚拟拓扑组网,无需对底层网络作出修改。
通过加密手段可以解决保护私密流量在互联网上的通信。
支持网络切片与网络分段。将不同的业务分割开来,可以实现网络资源的最优分配。
支持多路径转发。在Overlay网络中,流量从源传输到目的可通过多条路径,从而实现负载分担,最大化利用线路的带宽。

文章1【推荐】:什么是overlay?underlay vs overlay

文章2:overlay与underlay



·

2.IGP & EGP & BGP &EBGP & IBGP

2.1 IGP vs EGP vs BGP

根据路由协议的不同作用范围,可以将路由协议划分成:

IGP(Interior Gateway Protocol):内部网关协议,在一个AS内部所使用的一种路由协议。一个AS内部也可以有多个路由器管理多个网络。各个路由器之间需要路由信息以知道子网络的可达信息。IGP就是用来管理这些路由。代表的实现有RIP和OSPF。

EGP(Exterior Gateway Protocol):外部网关协议,在多个AS之间使用的一种路由协议,现在已经淘汰,被BGP取而代之。

BGP(Border Gateway Protocol):对应中文是边界网关协议;这个名字比较抽象,而维基中文的解释我觉得比较好(维基英文甚至都没有类似的解释)。BGP是互联网上一个核心的去中心化自治路由协议。从这个解释来看,首先这是一个用于互联网(Internet)上的路由协议。它的地位是核心的(目前是最重要的,互联网上唯一使用的路由协议),它的目的是去中心化,以达到各个网络自治。
BGP是在EGP的基础上发展出来的路由协议。

IGP 包括 RIP、IGRP、OSPF、IS-IS 等,EGP 已经被 BGP 取而代之。


2.2 自治系统AS

AS(Autonomous system):自治系统,指在一个(有时是多个)组织管辖下的所有IP网络和路由器的全体,它们对互联网执行共同的路由策略。也就是说,对于互联网来说,一个AS是一个独立的整体网络。而BGP实现的网络自治也是指各个AS自治。每个AS有自己唯一的编号。

在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用各种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。

文章1:自治系统是什么?自治系统协议介绍


2.3 BGP

文章1【推荐】:什么是BGP?

2.3.1 什么是BGP?

BGP(Border Gateway Protocol):对应中文是边界网关协议;这个名字比较抽象,而维基中文的解释我觉得比较好(维基英文甚至都没有类似的解释)。BGP是互联网上一个核心的去中心化自治路由协议。从这个解释来看,首先这是一个用于互联网(Internet)上的路由协议。它的地位是核心的(目前是最重要的,互联网上唯一使用的路由协议),它的目的是去中心化,以达到各个网络自治。

由于BGP就是为了替换EGP而创建,它的地位与EGP相似。但是BGP也可以应用在一个AS内部。

因此BGP又可以分为IBGP(Interior BGP :同一个AS之间的连接)和EBGP(Exterior BGP:不同AS之间的BGP连接)。

既然EGP已经被替代了,那EBGP的存在比较好理解,但是IGP协议都还活得好好的(这里指的是OSPF),那IBGP的意义何在?

IGP的协议是针对同一个AS网络来设计的,一个自治网络的规模一般都不大,所以设计的时候就没有考虑大规模网络的情况。而当一个自治网络足够大时,OSPF存在性能瓶颈(后面会说明)。BGP本身就是为了在Internet工作,其设计就是为了满足大型网络的要求,所以大型私有IP网络内部可以使用IBGP。

总的来说,这几类路由协议,小规模私有网络IGP,大规模私有网络IBGP,互联网EBGP。


2.3.2 为什么需要BGP?

BGP号称是使互联网工作的协议,看起来似乎很重要,为什么平常的生活中很少接触呢?似乎云里面也不怎么提BGP,我们来看看原因吧。

假设小明正在搭建一个云环境,提供虚拟机服务。

(1)硬件配置笔记_第3张图片
云里的虚机需要有互联网访问能力,于是小明向ISP(Internet service provider)申请了一个公网IP,这里的ISP可以是联通,移动,电信等等。虚机们可以通过路由器的NAT/PAT(Network / Port address translation)将自己的私网IP转换成这个公网IP,然后小明在云中路由器上将ISP router的地址设为默认路由。这样地址转换之后的IP包都发送到了ISP,进而发送到了互联网(这也是我们家用路由器能让家里的设备上网的原理)。这样小明的1.0版本云简单上线。这里小明不需要BGP。


(2)硬件配置笔记_第4张图片

版本上线之后怎么办?当然是开发下一版本!下一版本的需求是可以通过互联网访问虚机(也就是从互联网访问我们家里的电脑)。这个也不难,可以通过端口转发(Port Forward),将虚机的一个端口与公网IP的端口进行映射。例如将虚机的22端口映射到公网IP的1122端口,那么可以通过互联网ssh到公网IP:1122,登陆虚机。这部分工作仍然是在小明的云中路由器完成。这样,小明的2.0版本云上线了,这里小明还是不需要BGP

2.0版本虽然支持了从互联网访问虚机,但是还有问题:
1、每个虚机每开放一个端口都需要映射一次
2、公网IP的端口是有限的

为了解决这些问题,小明向联通申请了一些公网IP地址,对于需要从外网访问的虚机,直接给它们分配公网IP。这样小明的3.0版本云上线了,这里小明还是不需要BGP。因为:

联通是小明云唯一连接的ISP,小明只能通过联通访问互联网,所以小明的云中路由器的默认路由只能设置成ISP 路由器的地址。
小明云里面的公网IP都是联通分配的,联通当然知道该从哪个IP地址作为下一跳去访问那些IP地址。


(3)硬件配置笔记_第5张图片
联通的IP毕竟是有限的,而且联通还老是断线。这都发布3个版本了,小明决定干一票大的。
首先,小明向IANA(Internet Assigned Numbers Authority)申请了自己的公网IP池。因为有了自己的公网IP,也必须要考虑申请AS号。AS号是一个16bit的数字,全球共用这60000多个编号。1 – 64511 是全球唯一的,而 64512 – 65535 是可以自用的,类似于私网网段。每个自治网络都需要申请自己的AS编号,联通的AS号是9800。

然后,小明分别向联通和电信买了线路,这样就算联通断线还能用电信。

那现在问题来了:

联通或者电信怎么知道小明申请的公网IP是什么。换言之,我现在拨号拨进了联通宽带,我怎么才能访问到小明云的公网IP?
小明的云中路由器的默认路由该设置到联通的ISP路由器,还是电信的?

终于,在小明的4.0版本云上,小明需要用BGP了。通过BGP,小明可以将自己云中的路由信息发送到联通,电信,这样ISP就知道了改如何访问小明的公网虚拟机,也就是说我们普通的使用者通过ISP,能访问到小明的网络。另一方面,通过在云中运行BGP服务,小明可以管理云中路由器的默认路由。

总的来说,要是你之前没有听过或者用过BGP,只能说你的网络还没有到那个规模 :)


2.3.2.1 补充:NAT vs PAT

2.3.3 BGP协议

BGP可以说是最复杂的路由协议。它是应用层协议,其传输层使用TCP,默认端口号是179。因为是应用层协议,可以认为它的连接是可靠的,并且不用考虑底层的工作,例如fragment,确认,重传等等。BGP是唯一使用TCP作为传输层的路由协议,其他的路由协议可能都还到不了传输层。

TCP连接的窗口是65K字节,也就是说TCP连接允许在没有确认包的情况下,连续发送65K的数据。而其他的路由协议,例如EIGRP和OSPF的窗口只有一个数据包,也就是说前一个数据包收到确认包之后,才会发送下一个数据包。当网络规模巨大时,需要传输的数据也相应变大,这样效率是非常低的。这也是它们不适合大规模网络的原因。而正是由于TCP可以可靠的传输大量数据,且互联网的路由信息是巨大的,TCP被选为BGP的传输层协议,并且BGP适合大规模网络环境。

和大部分协议一样,BGP的数据由header和data组成。Header有19个字节,所有的BGP数据的Header格式是一样的。
硬件配置笔记_第6张图片
Marker有16个字节长,存储着同步信息和加密信息。Length2个字节,包含header在内的长度。Type1个字节,表示当前BGP数据的类型,具体有4类:

Open(code 1):TCP连接建立之后,BGP发送的第一个包。收到Open之后,BGP peer会发送一个Keepalive消息以确认Open。其他所有的消息都只会在Open消息确认之后,并且BGP连接已经建立之后发送。
Update(code 2):BGP连接后的首次Update会交换整个BGP route table,之后的Update只会发送变化了的路由信息。所以说BGP是动态的传输路由消息的变化。
Notification(code 3):出错时发送的消息,这个消息一旦发送,BGP连接将会中断。
Keepalive(code 4):没有data,只有header。用来保持BGP连接,通常是1/3的BGP session hold time。默认是60秒,如果hold time是0,不会发送Keepalive。
每一种BGP数据的data都不相同,这些都由网络设备商实现了,简单看一下Open和Update的data吧。
硬件配置笔记_第7张图片
BGP Open 数据,由于是发送的第一个包,因此就是一些配置信息。例如自身的AS号,BGP连接的超时时间(hold time),BGP id。
硬件配置笔记_第8张图片
BGP Update 数据,主要就是交换Network Layer Reachability Information (NLRI)。一个Update数据包里面只会有一条path的路由信息,因此只有一组path attribute,但是路由可以有多条。具体的说,一个BGP router可能连接了多个BGP peer router,那么它在发送BGP Update数据时,一次只会发送一个它的BGP peer router的信息。


2.4 EBGP vs IBGP

文章1【推荐:EBGP vs IBGP】

文章2:BGP中IBGP和EBGP的区别和联系

你可能感兴趣的:(云,网络,云计算,服务器)