静态路由的优点:安全稳定。缺点:配置繁琐不灵活。动态路由的优缺点则反之。

BGP边界网关路由协议

路径向量(rip是距离矢量)

到达目的网段所要经过的所有as

BGP选路不看度量值而参考13种路径属性(但大多情况下比较到前面五个就差不多结束了)

使用BGP的原因:

1.IGP只能最多容纳上千条路由信息而BGP可以容纳数十万条(路由器性能优越)

2.丰富的路径属性

问题:为什么整个互联网全使用比如说ospf而不用BGP?

设备性能达不到或网络规模较小的情况不建议使用BGP。

企业连接ISP的方式:

单宿:只连接一个运营商并且没有冗余链路

双宿:只连接一个ISP,有冗余链路

多宿:连接多个ISP,没有冗余

双多宿:连接多个ISP,有冗余

消息类型:

open

update

keeplive
维护对等体关系的建立,周期发送

notification报错消息,tcp连接错误时发送

BGP特点

路由器之间交换信息基于TCP,端口号179

路由更新增量触发,不会周期发送!!(IGP所有更新条目都是周期发送的!!!通常30分钟)因为BGP的路由表太大。

对等体关系手动指定

丰富的选路策略

show ip bop
summary查询邻居表

命令:nei 对等体地址 remote-as
对等体的as号(对等体地址必须在此时的路由表中可达,也就是需要底层协议)

最好用环回口来建立peer关系

建立peer关系时双方的open消息的源和目的必须交差匹配!!!输入命令时要指定源update-sourse
lo0

默认情况下ebgp关系不使用环回口建立而使用物理接口!!因为一般as间就一条链路,断掉后就没有其他路径了。

BGP的边界在路由器上不在接口上!IGP中只有IS-IS的边界在路由器上。

clear ip bgp
*硬清除:强制重启bgp

”UUUUU“代表数据包能过去但回不来。

ebgp路由默认只有一跳,设置ebgp多跳,这样可以用环回口建立ebgp

来自ebgp的更新条目发送给ibgp,下一跳不是自己而是ebgp,对ibgp使用next-hop-self设定自己的ip为更新源,这样ibgp将数据包的源ip作为下一跳地址,非bgp路由器只是单纯依照目的ip转发消息包

路由黑洞解决方法:重分发或as中形成全互联的peer

BGP的as间还是DV算法,BGP路由器只把数据包交给下一跳就行了。

使用对等体组建立对等体关系:只是为了减少配置量。。。

BGP对等体建立经历的状态:

1.idle:协商建立tcp

2.connected:tcp已建立

3.open-sent:开始发送open,协商建立对等体关系

4.open-confirm:收到open,验证是否参数一致(源和目的ip)

5.established:建立成功

tcp连接失败进入active状态:重新连接;对等体建立失败

可能原因:ip不匹配,ip地址不可达,as不匹配(加错手段)

进入never状态。。

数据包源ip的价值:ping包的回包使用的目的IP;BGP路由更新用做下一跳地址。

BGP的水平分割:来自的ibgp的路由更新不会传递给其他ibgp

解决方案:路由反射器RR(中转设备):在所要任命RR的设备上指定ibgp为客户(客户并不知道自己是客户)

BGP 的认证:针对对等体进行认证,md5

BGP本身很慢

第一条选路原则“权重值”只针对思科设备有效:思科私有

本地学到的路由默认权重为32768,其他默认为0

权重值只在本地生效,不会通过路由更新传递出去!!只影响路由器自己的选路

两种方式:针对对等体!!(从他学到的所有路由);route-map

clear IP bgp * soft
in/out软清除

第二条选路原则:本地优先级(大优)

只能在ibgp中传递,ebgp传来的条目缺省100(ebgp比ibgp优?)

第三条:起源本路由器上的路由(无法修改)

第四条:as-path,可以修改!!!

数据包中的目的ip字段都是前一个路由器紧邻的下一跳ip,而不是最终目标网络ip,目标网络ip存放在“负载”字段,数据包每经过一个设备都要封装一次,解析出最终的目标网络ip再查找路由表得到合适的下一跳放到目的ip字段,将包头中的目的IP字段变成下一跳的ip。这样一来二层交换机寻路时也就有了合适的依据而不谁便广播。路由器只关心目的ip指的是“负载”里的那个目的ip。同源ip字段!!!!!!但是BGP发包的下一跳是peer不一定是直连。

十三条选路原则就是为了针对同一个目标网络选择不同的下一跳:ibgp
peer(不止一个),ebgp peer,或者说选择合适的邻居AS!!!

BGP基础【第三部】的更多相关文章

  1. HCNP Routing&Switching之BGP基础

    前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...

  2. SE 2014年4月12日

    BGP基础实验 拓扑 步骤: 1. 完成基本的配置 2. 按照需求自治系统AS 100 全网运行OSPF 单区域 3. 完成BGP基本配置 [RT2]bgp 100 [RT2-bgp]peer 67. ...

  3. 学习网络BGP必备基础知识

    外部网关协议,使用TCP作为传输层协议,支持CIDR,增量更新,距离矢量路由协议,无环路,路由策略丰富,可防止路由震荡,易于扩展. BGP概述 #BGP工作原理 之 报文类型 TCP三次握手 open ...

  4. 四、NOSQL之Redis持久化缓存服务基础实战第三部

    1.NOSQL的理解 NOSQL是不仅仅是SQL,说的就是sql的补充,但是不能替代SQL. nosql库:memcached.memcachedb.redis 2.redis 简介 Redis是一个 ...

  5. 图解TCP/IP→第2章基础知识

    ####TCP.IP背景**关键词:ARPANET,UNIX,分组交换技术,*ARPANET(阿帕网),也是全球互联网的鼻祖.阿帕网的成功也充分证明了基于分组交换技术的通信方法的可行性.*20世纪70 ...

  6. 【T-SQL基础】02.联接查询

    概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...

  7. BGP路由协议详解(完整篇)

    原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...

  8. MPLS基础

    1.1  MPLS简介 MPLS(Multiprotocol Label Switching,多协议标签交换)是一种新兴的IP骨干网技术.MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三 ...

  9. 边界网关协议BGP

    Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...

随机推荐

  1. 在drawRect:方法中绘制图片,文字以及Core Graphics 框架的了解

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  2. CI框架主题切换的功能

    CI框架主题切换的功能 本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法. 脑子里最简单的就是设置全局变量 如 : ...

  3. NOIP 2014 提高组 题解

    NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...

  4. C#去掉JSON字符串中的最后一个数字

    这个问题总结起来就是去掉字符串中的最后一个"," 字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: ...

  5. NYOJ--20--搜索(dfs)--吝啬的国度

    题意,N座城市有N-1条路,目的是找到哪个城市可以到目的城市 //NYOJ--search--吝啬的国度 #include<iostream> #include<vector> ...

  6. 照着官方文档学习react

    笨人学习法 10000个小时策略来学习,因为笨.先照着官方文档敲一遍,写一遍. 准备 先要准备环境.搭建一个基于webpack的react环境:Hello ReactJS. demo: https:/ ...

  7. pickle和json模块

    json模块 json模块是实现序列化和反序列化的,主要用户不同程序之间的数据交换,首先来看一下: dumps()序列化 import json '''json模块是实现序列化和反序列话功能的''' ...

  8. 使用xlrd模块从excel文件中导入数据

  9. Linux Socket多线程实现简单的多人聊天(pend)

    Server: 设置可聊天数为5,为每一个client创建一个线程,这个线程负责接收client的聊天内容并发给其他用户看. 用mutex同步各个线程修改聊天室空余聊天位. Client: 主线程负责 ...

  10. ios逆向过程中lldb调试技巧-po篇

    假如你准备在模拟器里面运行这个,你可以在"(lldb)"提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默认的调试器.假如你正在 ...