BGP基础【第三部】
静态路由的优点:安全稳定。缺点:配置繁琐不灵活。动态路由的优缺点则反之。
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基础【第三部】的更多相关文章
- HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...
- SE 2014年4月12日
BGP基础实验 拓扑 步骤: 1. 完成基本的配置 2. 按照需求自治系统AS 100 全网运行OSPF 单区域 3. 完成BGP基本配置 [RT2]bgp 100 [RT2-bgp]peer 67. ...
- 学习网络BGP必备基础知识
外部网关协议,使用TCP作为传输层协议,支持CIDR,增量更新,距离矢量路由协议,无环路,路由策略丰富,可防止路由震荡,易于扩展. BGP概述 #BGP工作原理 之 报文类型 TCP三次握手 open ...
- 四、NOSQL之Redis持久化缓存服务基础实战第三部
1.NOSQL的理解 NOSQL是不仅仅是SQL,说的就是sql的补充,但是不能替代SQL. nosql库:memcached.memcachedb.redis 2.redis 简介 Redis是一个 ...
- 图解TCP/IP→第2章基础知识
####TCP.IP背景**关键词:ARPANET,UNIX,分组交换技术,*ARPANET(阿帕网),也是全球互联网的鼻祖.阿帕网的成功也充分证明了基于分组交换技术的通信方法的可行性.*20世纪70 ...
- 【T-SQL基础】02.联接查询
概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...
- BGP路由协议详解(完整篇)
原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...
- MPLS基础
1.1 MPLS简介 MPLS(Multiprotocol Label Switching,多协议标签交换)是一种新兴的IP骨干网技术.MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三 ...
- 边界网关协议BGP
Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...
随机推荐
- 在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. ...
- CI框架主题切换的功能
CI框架主题切换的功能 本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法. 脑子里最简单的就是设置全局变量 如 : ...
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- C#去掉JSON字符串中的最后一个数字
这个问题总结起来就是去掉字符串中的最后一个"," 字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: ...
- NYOJ--20--搜索(dfs)--吝啬的国度
题意,N座城市有N-1条路,目的是找到哪个城市可以到目的城市 //NYOJ--search--吝啬的国度 #include<iostream> #include<vector> ...
- 照着官方文档学习react
笨人学习法 10000个小时策略来学习,因为笨.先照着官方文档敲一遍,写一遍. 准备 先要准备环境.搭建一个基于webpack的react环境:Hello ReactJS. demo: https:/ ...
- pickle和json模块
json模块 json模块是实现序列化和反序列化的,主要用户不同程序之间的数据交换,首先来看一下: dumps()序列化 import json '''json模块是实现序列化和反序列话功能的''' ...
- 使用xlrd模块从excel文件中导入数据
- Linux Socket多线程实现简单的多人聊天(pend)
Server: 设置可聊天数为5,为每一个client创建一个线程,这个线程负责接收client的聊天内容并发给其他用户看. 用mutex同步各个线程修改聊天室空余聊天位. Client: 主线程负责 ...
- ios逆向过程中lldb调试技巧-po篇
假如你准备在模拟器里面运行这个,你可以在"(lldb)"提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默认的调试器.假如你正在 ...