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

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. CocoaPods的一些略为高级一丁点的使用【转】

    记得我刚开始做iOS开发的时候,是没有项目依赖管理工具.当需要引入第三方库的时候是相当麻烦的,不是直接拷贝库近来,就是添加依赖工程,直到CocoaPods出来才改变这个状况.项目依赖管理不是Cocoa ...

  2. swift AVAudioPlayer播放音频时声音太小

    设置下声音输出的扬声器就行了 代码如下 do { try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionP ...

  3. CentOS Linux 系统 安装oracle 11g

    CentOS Linux 系统 安装oracle 11g 在Linux系统上安装oracle是比较麻烦,需要配置各种变量啥的,o(︶︿︶)o ,但是没办法,有些东西你总的去接触,而且接触理解的越早越深 ...

  4. 在App Store中无法更新xcode 8.3.2时 以及更新新系统10.12

    今天更新Xcode 遇到三个坑坑1 要想更新Xcode最新版本 需要先把电脑系统更新到10.12 坑2 电脑系统更新到10.12 需要更新Mac Sierra 就可以了坑3 在App Store中下载 ...

  5. 前端到后台ThinkPHP开发整站(1)

    1.前言: 我个人从来没有写过博客文章,作为一个程序员没有自己的博客算是一个合格的程序员,所以我地想想也要经营起一个的博客,做一个小项目,写这博客算就做这个项目的一个项目笔记吧!现在自学着ThinkP ...

  6. IPython+:一个交互式计算和开发环境

    一. IPython基础 代码自动补全:Tab键 可补全内容包括:变量名.函数名.成员变量函数.目录文件 内省(Itrospection) 在变量名之前或之后加上问号(?),这样可以显示这个对象的相关 ...

  7. C# 调用C++ 结构体示例

    C++ 定义 typedef struct Stu{public: int Age; char Name[20];}; typedef struct Num { int N1; int N2; }; ...

  8. 剑指OFFER——正则表达式匹配

    请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式.例如,字 ...

  9. 使用EasyWechat快速开发微信支付

    前期准备: 申请微信支付后, 会收到2个参数, 商户id,和商户key.注意,这2个参数,不要和微信的参数混淆.微信参数: appid, appkey, token支付参数: merchant_id( ...

  10. LinkedList之modCount和expectedModCount

    modCount和expectedModCount是用于表示修改次数的,其中modCount表示集合的修改次数,这其中包括了调用集合本身的add方法等修改方法时进行的修改和调用集合迭代器的修改方法进行 ...