《网络协议大作业》由会员分享,可在线阅读,更多相关《网络协议大作业(15页珍藏版)》请在金锄头文库上搜索。
1、网络协议分析课程大作业网络协议分析课程大作业学学号:号:姓姓名:名:班班级:级:指导老师:指导老师:完成时间:完成时间:指导教师评语:指导教师评语:成绩:成绩:签名:签名:年年月月日日BGP一、目的边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。BGP 是唯一一个用来处理像因特网大小的网络的协议, 也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在AS 级别
2、上可实施策略决策。二、总体设计1、背景知识BGP 是自治系统间的路由协议。BGP 交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策。特别地,BGP 交换包含全部 AS path 的网络可达性信息,按照配置信息执行路由策略。随着近年来互联网的进步和增长,它也不得不面对一些严重的规模问题,包括:(1)B 类网络地址空间的耗尽。该问题的主要原因之一,是缺少适于中型组织的中等大小的网络;C 类网络,最多拥有 254 个主机地址,实在太少,而 B 类网络允许最多65534 个地址,却又太大无法充分使用。(2)互联网路由器中路由表的增长使目前的软件(和人们)无法有效
3、管理。(3)32 位 IP 地址空间的耗竭。很明显,前两个问题和最后一个问题可能分别在今后一两年内和三年内变得急迫。无类别域间路由(CIDR)试图解决这些问题,设计相应机制来降低路由表和对新IP 网络分配需求的增长速度。 它并没有解决更具长期性的第三个问题, 而是努力让近期问题推迟使得互联网仍能有效运作,同时着手远期的解决方案。BGP-4 对 BGP-3 做了扩展,支持路由信息的聚合及基于无类别域间路由体系(CIDR)的路由减少。本备忘录论述了BGP-4 在互联网中的应用。本文档的所有讨论基于如下假设:互联网是一些随意连接的自治系统的集合。也就是说,互联网可以建模成一张一般的网络图,图上节点是
4、 AS,边是每对 AS 间的连接。自治系统的经典定义是,一组路由器在统一管理之下,在 AS 内使用内部网关协议和统一度量来路由数据包,而通过外部网关协议将数据包路由到其他 AS。该经典定义尚在发展,一些AS 在其内部使用多种内部网关协议和度量。在此,强调一下自治系统在本文档中的含义,即使它采用多种 IGP 和度量,它的管理区别于其他 AS,其内部路由是一致的, 当路由穿越它时, 它在图上视作一个节点。 每个 AS 由一个管理机构管理,至少在外部看来它代表着该系统的路由信息。2、BGP 特点BGP 属于外部或域间路由协议。BGP 的主要目标是为处于不同 AS 中的路由器之间进行路由信息通信提供保
5、障。BGP 既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。这是因为 BGP 在发布到一个目的网络的可达性的同时,包含了在 IP 分组到达目的网络过程中所必须经过的 AS 的列表。通路向量信息时十分有用的,因为只要简单地查找一下 BGP 路由更新的 AS 编号就能有效地避免环路的出现。BGP 对网络拓扑结构没有限制,其特点包括:(1)实现自治系统间通信,传播网络的可达信息。BGP 是一个外部网关协议,允许一个 AS 与另一个 AS 进行通信。BGP 允许一个 AS 向其他 AS 通告其内部的网络的可达性信息,或者是通过该AS 可达的其他网络的路由信息。同时, A
6、S 也能够从另一个 AS中了解这些信息。与距离向量选路协议类似, BGP 为每个目的网络提供的是下一跳(next-hop)结点的信息。(2)多个 BGP 路由器之间的协调。如果在一个自治系统内部有多个路由器分别使用BGP 与其他自治系统中对等路由器进行通信,BGP 可以协调者一系列路由器,使这些路由器保持路由信息的一致性。(3)BGP 支持基于策略的选路(policy-base routing)。一般的距离向量选路协议确切通告本地选路中的路由。而BGP 则可以实现由本地管理员选择的策略。BGP 路由器可以为域内和域间的网络可达性配置不同的策略。(4)可靠的传输。BGP 路由信息的传输采用了可靠
7、地 TCP 协议。(5)路径信息。在 BGP 通告目的网络的可达性信息时,处理指定目的网络的下一跳信息之外,通告中还包括了通路向量( path vector),即去往该目的网络时需要经过的AS的列表,使接受者能够了解去往目的网络的通路信息。(6)增量更新。BGP 不需要再所有路由更新报文中传送完整的路由数据库信息,只需要在启动时交换一次完整信息。 后续的路由更新报文只通告网络的变化信息。 这种网络变化的信息称为增量(delta)。(7)BGP 支持无类型编制(CIDR)及 VLSM 方式。通告的所有网络都以网络前缀加子网掩码的方式表示。(8)路由聚集。BGP 允许发送方把路由信息聚集在一起,用
8、一个条目来表示多个相关的目的网络,以节约网络带宽。(9)BGP 还允许接收方对报文进行鉴别和认证,以验证发送方的身份。三、详细设计1、BGP 的结构和功能BGP 用于在不同的自治系统(AS)之间交换路由信息。当两个 AS 需要交换路由信息时,每个 AS 都必须指定一个运行 BGP 的节点,来代表 AS 与其他的 AS 交换路由信息。这个节点可以是一个主机。但通常是路由器来执行 BGP。两个 AS 中利用 BGP交换信息的路由器也被称为边界网关 (Border Gateway) 或边界路由器 (Border Router) 。由于可能与不同的 AS 相连,在一个 AS 内部可能存在多个运行 BG
9、P 的边界路由器。同一个自治系统 (AS)中的两个或多个对等实体之间运行的BGP 被称为 IBGP(Internal/Interior BGP)。归属不同的 AS 的对等实体之间运行的 BGP 称为 EBGP(External/Exterior BGP)。在AS 边界上与其他 AS 交换信息的路由器被称作边界路由器(border/edge router)。在互联网操作系统(Cisco IOS)中,IBGP 通告的路由的距离为200,优先级比 EBGP 和任何内部网关协议(IGP)通告的路由都低。其他的路由器实现中,优先级顺序也是 EBGP 高于 IGP,而 IGP 又高于 IBGP。BGP 属
10、于外部网关路由协议,可以实现自治系统间无环路的域间路由。BGP 是沟通 Internet 广域网的主用路由协议,例如不同省份、不同国家之间的路由大多要依靠BGP 协议。BGP 可分为 IBGP(Internal BGP)和 EBGP(External BGP)。BGP 的邻居关系(或称通信对端/对等实体)是通过人工配置实现的,对等实体之间通过 TCP(端口 179)会话交互数据。BGP 路由器会周期地发送 19 字节的保持存活 keep-alive 消息来维护连接(默认周期为30 秒)。在路由协议中,只有BGP 使用 TCP 作为传输层协议。IETF 先后为 BGP 制定了多个建议,分别为:R
11、FC 4271:当前正使用的 BGP 协议版本,称之为 BGP4。RFC 1654:BGP4 协议的第一个规范。RFC 1105、RFC 1163、RFC 1267、RFC1771:BGP4 之前的 BGP 版本。2、BGP 消息类型及状态转换BGP 使用如下四种消息类型:(1)Open 消息:Open 消息是 TCP 连接建立后发送的第一个消息,用于建立 BGP 对等体之间的连接关系。(2)Keepalive 消息:BGP 会周期性地向对等体发出 Keepalive 消息,用来保持连接的有效性。(3)Update 消息:Update 消息用于在对等体之间交换路由信息。它既可以发布可达路由信息
12、,也可以撤销不可达路由信息。(4)Notification 消息:当 BGP 检测到错误状态时,就向对等体发出Notification 消息,之后 BGP 连接会立即中断。BGP 邻居建立中的状态和过程如下:(1)空闲(Idle):为初始状态,当协议激活后开始初始化,复位计时器,并发起第一个 TCP 连接,并开始倾听远程对等体所发起的连接,同时转向 Connect 状态。(2)连接(Connect):开始TCP 连接并等待 TCP 连接成功的消息。如果TCP 连接成功,则进入 OpenSent 状态;如果 TCP 连接失败,进入 Active 状态。(3)行动(Active):BGP 总是试图
13、建立 TCP 连接,若连接计时器超时,则退回到Connect 状态,TCP 连接成功就转为 Open sent 状态。(4)OPEN 发送(Open sent):TCP 连接已建立,自己已发送第一个 OPEN 报文,等待接收对方的 Open 报文, 并对报文进行检查, 若发现错误则发送 Notification 消息报文并退回到 Idle 状态。 若检查无误则发送 Keepalive 消息报文, Keepalive 计时器开始计时,并转为 Open confirm 状态。(5)OPEN 证实(Open confirm):BGP 等待 Keepalive 报文,同时复位保持计时器。如果收到了 K
14、eepalive 报文,就转为 Established 状态,邻居关系协商完成。如果系统收到一条更新或 Keepalive 消息,它将重新启动保持计时器;如果收到 Notification 消息,BGP 就退回到空闲状态。(6) 已建立 (Established) : 即建立了邻居 (对等体) 关系, 路由器将和邻居交换 Update报文,同时复位保持计时器。3、BGP 路由通告原则BGP 在进行路由通告的时候,需要遵循以下原则:(1)多条路径时,BGP Speaker 只选最优的给自己使用(负载均衡和 FRR 除外)。(2)BGP Speaker 只把自己使用的路由(最优路由)通告给相邻体。
15、(3)BGP Speaker 从 EBGP 获得的路由会向自己所有 BGP 相邻体通告(包括EBGP 和IBGP)。(4)BGP Speaker 从 IBGP 获得的路由不向自己的 IBGP 相邻体通告(反射器除外)。(5)BGP Speaker 从 IBGP 获得的路由是否通告给自己的 EBGP 相邻体要根据 IGP 和BGP 同步的情况来决定。(6)当收到对端的refresh 报文并且本端邻居支持 refresh 能力,BGP Speaker 将把自己所有 BGP 路由通告给对等体。(7)GR 过程中,主备倒换方在 GR 结束时 BGP Speaker 会把自己所有 BGP 路由通告给对等
16、体。四、实验结果与分析BGP:BGP 是建立在 TCP 之上的端口号为 179AS: (两者是区分开来的)特指被相关机构管理运行相同路由协议的一组路由器(中国人只能和中国人说,外国人和外国人说)BGP 是运用在 AS 之间的BGP 的前身是 EGP,EGP 只能在 AS 之间简单的传递路由信息,不会对路由进行任何优选, 也没有考虑如何在 AS 之间避免路由环路等问题, BGP 一般运营在运营商的核心网BGP 的邻居发现:先启动 BGP 的一端先发起 TCP 连接,如图所示,RTB先启动 BGP 协议,RTB使用随机端口号向 RTA的 179 端口发起 TCP 连接。路由器是通过物理口去建立邻居
17、的;Loopback 也能建立,前提是必须要有路由,需要建立一个动态路由或者静态路由。源是 12.1.1.1 目的 2.2.2.2源是 2.2.2.2 目的 10.1.1.1没有匹配,即三次握手没有成功。AS 号的分类:1-64511 由 IANA 统一分配。64512-65535 私有企业或者自行分配。特点:BGP 可以跨越多跳路由器建立邻居关系邻居关系:EBGP(外部网关边界协议):运行在不同AS 之间的 BGP 路由器建立的邻居关系,默认的优先级是 225,默认的 TTL 是 1。IBGP(内部 BGP 协议):运行在相同AS 之间 BGP 路由器建立的邻居关系,默认的优先级是 225,
18、默认的 TTL 是 255。R1router id 1.1.1.1 (标识路由器)R1bgp 100 (配置邻居关系)R1-bgppeer 2.2.2.2 as-number 100 (peer 后面是对端邻居的接口地址,as-number 后面是邻居路由器所在的 AS 号, AS 号相同, 就是 IBGP 邻居关系, AS 号不同, 就是 EBGP邻居关系)PS:建立 IBGP 邻居关系是时,一般使用 loopback 接口的 IP 地址,因为 loopback 接口开启后一直处于 UP 状态,只要保证路由可达,邻居关系就会处于稳定状态。而建立EBGP 邻居关系时,一般使用直接接口的 IP
19、地址,因为 EBGP 是跨 AS 建立邻居关系,邻居关系建立之前非直连接口之间的路由不可达。BGP 邻居关系配置的优化R1router id 1.1.1.1(标识路由器)R1bgp 100 (配置邻居关系)R1-bgppeer 2.2.2.2 as-number 100R1-bgppeer 2.2.2.2 connect-interface LoopBack 0 (修改更新源,路由器默认是物理口建立可连接)报文:Open keeplive update route-refresh notificationopen:邻居建立发送的第一个报文 协商参数keeplive:周期性发送,去看链路是否正常
20、update:去更新路由信息更新路由属性相同的多个路由条目更新路由不可达的路由条目(删除)route-refresh:当路由策略改变的时候会发送该报文去请求新的路由条目notification:当邻居失效就会发送这个报文一:Idle:BGP 的初始状态,不会去接受任何邻居发来的任何请求二:connect:如果成功了就进入 OPEN SENT 状态,如果失败了会根据重传计时器重新发起链接,同时切换到 Active 状态。也就是说,只要在 Connect 状态,就证明 BGP 正在试图建立连接,而不是等候。连接成功 连接不成功 请求超时三:active:请求连接,向邻居去请求连接的,在 OPENS
21、ENT 的时候,如果 BGP 链接忽然丢失,也会进入这个状态。第一种:请求成功 connect 第二种:请求不成功 第三种:请求超时四:opensent对收来的 open 报文进行检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle 状态,如果没有错误,BGP 就开始发送 Keepalive 报文,并复位 Keepalive 计时器,开始计时。协商成功进入下一个状态五:opencomfirm:如果收到了一个Keepalive 报文,就转入Established 阶段,BGP 邻居关系就建立起来了。如果 TCP 连接中断,就退回到 Idle 状态。六:establish:BGP 邻居关
22、系已经建立,这时,BGP 将和它的邻居们交换 Update 报文TTL:经过一台路由器,并且经过解封装和重新封装以后的源地址和目标地址不变,这时候,TTL 减 1。BGP 通告原则之一:仅将自己最优的路由发给邻居将 10.1.1.0/24 这个路由发布给邻居下一跳自我:看上图可知,10.1.1.0/24 的下一跳是 1.1.1.1,他就会把 1.1.1.1 发送给邻居,其他路由器也就接受到了这个 1.1.1.1,但是,这些路由器并不能直接通信,因为下一跳是直接到达 1.1.1.1 了,所以,不是最优的路由,没有到达直连的那个路由器,所以,需要修改下一跳,把下一跳设置为从传到他的那个路由。如上图
23、所示,它的下一跳就改变了,他就能把这个最优路由发布给其他的邻居,其他的路由器通过这个直连的下一跳,也就能通信了。配置命令:R2-bgppeer 4.4.4.4 next-hop-localBGP 通告原则之二:通过 EBGP 获得的最优路由发布给所有 BGP 邻居BGP 通告原则之三: 从 IBGP 学到的最优路由不会发给其他的 IBGP 邻居、 (也是 IBGP的水平分割)R3 从 R1 通过 EBGP 学来的 10.1.1.0/24 的路由发送给 R2,但是 R2 不会通过 IBGP 把10.1.1.0/24 学来的路由发送给 R4,所以,R4 是不会接收到 10.1.1.0/24 这条路
24、由的BGP 通告原则之四:BGP 与 IGP 的同步也就是把 BGP 的路由表和 IGP 的路由表同步华为默认关闭IBGP 水平分割:从 IBGP 学到的最优路由不会发给其他的 IBGP 邻居、路由黑洞解决:1.全互联(TCP 会话过多,资源占用就大了)2.路由的引入,把 BGP 的路由引入到 IGP 中前两个不是太靠谱,因为 BGP 有上万个路由条目,IGP 只有几千个3.MPLSBGP 路由信息处理当从 BGP 邻居接收到 Update 报文时,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径。得出的最佳路径被存储到本地 BGP 路由表(local_RIB)中,然后被提交给本地 IP
25、 路由表BGP 的属性公认:在 Update 报文当中,可以支持和识别的属性公认必遵:在 Update 报文当中,必须携带的属性公认任意:可以不携带在 update 报文当中可选:在 update 报文当中,可以不识别的属性可选过渡:本 BGP 路由器不识别的属性,但是可以把该属性传递给邻居可选非过渡:本 BGP 路由器忽略的属性,并且不传递给邻居五、小结与心得体会我收获了 BGP 最实用的方法:1、建立基本的 BGP 邻居关系在两个路由器之间的 BGP 对等通过二个步骤来完成:(1) 用 router bgp 命令建立 BGP 进程并明确本地 AS 号。(2) 用 neighbor remo
26、te-as 命令确定邻居以及邻居的 AS 号。通过对端物理接口的 IP 地址来建立邻居关系,这是 BGP 最基本最简单的配置,但这种配置不能提供冗余。2、通过环回接口来建立邻居这种配置能提供冗余,唯一的要求是在环回接口间保证连通性。如果二个建立邻居关系的路由器间存在多条路径, 那么我们使用每个路由器的环回接口来建立邻居关系就能提供更好地性能。不仅是因为环回接口相比物理接口更加稳定, 更重要的是提供了冗余, 当其中一条链路坏掉,那么这并不会影响 BGP 路由协议对邻居关系的建立。3、路由通告进 BGP要通过 BGP 协议通告目标网络, 必须首先把路由条目注入进 BGP 中。 总共有三种方法:(1
27、)通过把从 IGP 学习到的路由条目重分发进 BGP 中;(2)通过 network 命令把网络宣告进 BGP 中;(3)通过添加静态路由条目,然后再使用 network 命令把网络宣告进 BGP 中。4、如何向 BGP 邻居通告默认路由要给 BGP 对端通告一条默认路由,总共有三种方法可以实现。(1)如果只给特定的对端通告默认路由,那么可以通过 neighbor default-originate 命令完成,使用这条命令时,不管本地的路由表中有没有默认路由都可以实现。(2) 如果给所有的 BGP 邻居发送一条默认路由, 那么要完成这个任务我们必须通过三个步骤去完成。首先,建立一条指向NULL
28、 0 的默认路由,然后,重分发进BGP 进程,最后,在 BGP 进程中使用 default-information originate 命令。(3)在 IGP 表中首先建立指向 NULL 0 的路由条目,然后使用 network 命令通告出去。5、BGP 路由汇总通过二种方法可以实现路由汇总:(1)通过添加一条指向 NULL 0 的静态路由条目,然后通过 network 命令通告出去。(2)通过使用命令 aggregate-address 生成汇总路由。在这种方法中,默认情况下汇总与具体路由一起通告给对端,通过使用关键字summary-only,只将汇总路由通告出去,把具体路由抑制掉。如何辩证
29、地看待网络对人类社会的影响?如何辩证地看待网络对人类社会的影响?实践在人的认识的形成中具有决定作用。 实践产生了认识的需要, 为认识提供了可能,使认识得以产生和发展。互联网作为一种现代化的传播工具,打破了地域、民族、国别等界限,大大缩短了人们之间相互交往联系的距离。人的认识来源于实践,指导实践。互联网技术对人的思想的冲击证明了这个原理。由于互联网的出现,使人类认识世界的方式发生了改变,增加了人类认识世界的途径,是人类认识世界的一个工具。互联网对人类社会生活的影响,涉及社会结构、政治形态、交往方式、管理模式、经济运行、教育模式等诸多方面。更为重要的是,互联网不仅是一种客观的物质存在,也是一种思想
30、和文化的存在,对人们的思想观念产生着越来越大的影响。互联网是一个广阔而崭新的空间。互联网的迅速发展,源自其独特的技术特性:一是数字化,任何信息都可以转化成数字进行加工处理;二是网络化,能把世界各地的用户“一网打尽” ,形成即时互联互通;三是高速化, 强大的处理能力和极高的传输速度,把距离和时间瞬间融化;四是互动性,改变了传统的单向传播方式,实现了双向互动;五是海量化,带宽和容量很大,为信息洪流提供了充足的快速通道和存储港湾。互联网从根本上改变了人们获取信息的方式。与传统的三大媒体广播、电视、报纸主要以“平面传播”信息的方式不同,被称为“第四种媒体”的互联网是一种“立体媒体”。它能使声音、文字、
31、图像等综合性很强的各种知识信息在瞬间生成、光速传播、实时互动、高度共享。人们坐在家中,凭借着一台电脑一个鼠标就可以在信息海洋里遨游,达到“秀才不出门,能知天下事”的境地。人们的视野变得更加开阔,思想观念更具开放性和包容性。互联网也扩大了人们思想文化的交流。 互联网还为使用者提供了一个从未体验过的虚拟空间。在网上,网民身份被数字化、电子化、虚拟化,使人们更容易在互联网上比较真实地自由地表达意见,从而极大地激发了公众参与社会生活的热情。任何新技术的发明和应用,在给人类带来便利的同时,也往往会带来麻烦。互联网也同样具有这样的两面效应。 它既可以用来传播先进的文化和观念, 也可以被利用来散布种种文化垃圾; 既为人们思想观念的丰富发展提供了新的广阔天地, 又为许多负面信息的传播打开了方便之门。因此, 在充分肯定互联网对人类文明发展的积极意义的同时, 也要看到它所带来的负面效应。 正如许多现今人们所议论的一样网络是一把双刃剑, 在给人们带来巨大便利的同时,也在影响着人们生活习惯。网络成瘾;信息垃圾;人际淡化。互联网的传播使得人们了解的越多,好的学到的同时,不良风气也学到了不少,如现今活跃的非主流风潮,使得大多数未成年人盲目跟风。网络成瘾使人性情躁动,在游戏中遇到的不顺易带入现实生活。信息充斥使人与人信任度不断降低,人与人之间关系冷漠。人们在生活中受到互联网的影响不可不谓巨大。