IGP:
包括RIP/EIGRP/OSPF/ISIS/ODR等动态路由协议
运行在同一个AS中,
通过Cost/Metirc来判断路由的优劣(越小越好);
AS:自治系统(小)
An AS is a collection of networks under a single technical administration.(独立的一个技术/管理域)
IGP主要任务
正确的描述路由信息和尽快的将数据包送到目的地:
IGP强调收敛速度。
BGP(v4)
边界网关协议(Border Gateway Protocol):
运行在不同的AS之间,用于对BGP路由进行控制/策略,
BGP的主要任务:网管的人为意图的集中体现,强调策略控制,不强调收敛.
BGP是通过BGP的属性/Attributes,判断多条路径的优劣,从中进行择优选取.
BGP可以通过网管定义的策略/Policies,实现数据或路由的控制/操纵.
自治系统AS:(autonomous Systems)(大):
独立的技术/管理域,通常是一个大型公司,或者组织,或者国家.
这是区别于IGRP/EIGRP的AS(小)的概念;
BGP本身就是一种策略路由/PBR(Policy-Based Routing)
实现网管的人为意图的集中体现.
BGP是一种AS BYAS的高级距离向量/DV协议.
BGP认为,每经过一个AS是一跳
RIP认为,每经过一个router是一跳
应该使用BGP的情况:
1:ISP:
当允许AS 1 的数据包穿越AS2,
但是不允许AS 1的用户访问AS2内部的时候:
2:Multihome/多宿主:
对于一个用户的AS,如果他同时连接到多个AS/ISP
3:PBR:
当需要对BGP路由/数据,进行人为控制/操纵的时候.
不该使用BGP的情况:
1.与ISP只有单连接,没有同时连接到多个ISP
2.如果网络硬件设备的档次不够(内存/CPU).
3:对BGP路由操纵理解有限,无法预计BGP的后果.
4.链路带宽不足.
BGP特征:
1:BGP是高级DV协议.
2:BGP工作在TCP/IP协议栈的4层:TCP179端口.
3:BGP是触发/增量更新的协议
4:BGP通过周期性的发送Keepalive信息,保证TCP连接的可靠性.
5:BGP使用多种"BGP属性/Attribut",来衡量路径的优劣.
6:BGP是为巨型网络设计的,意味着这种路由协议,可能带来海量的路由和数据.
BGP协议的三张表:
1:BGP的邻居表(BGP neighbor table)
BGP的邻居可以直接相连,也可以凌空建立.
2:BGP表(BGP forwarding table/database)
2-1:一个BGP路由器,可能从它的多个BGP Neighbor那里,学到到达同一个目标网络的多条可能路径.
2-2:但是,BGP这种路由协议,默认情况下,是不进行负载均衡的.也就是说,到达一个目标网络,只允许有一条可用路径.
2-3:BGP路由器通过"BGP属性",从中多条候选路由中,优选出一条,它自己认为最好/最优/Best的路径,作为到达这个目标网络的"最佳路由",这条路由也会被称之为"优化"了.("优化"的路由,会标打上">")
2-4:只有"优化"了的路由,才能作为BGP选送出的,最佳的,种子选手,去参加,到达这个目标网络(10.0.0.0/8)的"AD竞争/竞选."
3:IP路由表:
上面BGP提交的"优化/最佳"路由,在经过不同寻路协议之间的"AD的竞争/竞选"之后,如果获胜,才能成功的送进路由表.
BGP的4种信息包类型:
1:Open
2:Keepalive
3:Update
4:Notification
Peers=neighbors
Any two routers
that have formed a TCP connection,
to exchange BGP routing information,
are called BGP peers or neighbors.
1:EBGP Neighbor
两个BGP Neighbor分别属于两个不同的AS.
EBGP Neighbor通常是直接相连的.(也会有特例哦,CCSP才会遇到这种非直连的情况)
2:IBGP Neighbor
两个BGP Neighbor同时属于一个相同的AS.
IBGP Neighbor可以是直连的,也可以是非直连的.
BGP的操作步骤
1:确认L1/L2连路通(通过Ping,进行链路测试)
2:确认L3的IGP的ROUTE通过(Show ip route rip/eigrp/ospf)
3:启动BGP,建立BGP邻居(TCP179)(show ip bgp summary)
4:宣告BGP路由(network 1.0.0.0 mask 255.0.0.0)
5:判断BGP优化的基础条件(同步,下一跳)
LAB1:BGP的基本配置:
Step1:确认L1/L2的连通性.
可以通过Ping,进行链路测试.
Step2:确保L3的IP路由的通达(是通过IGP实现):
(一般都是在同一个AS中完成)
(两个AS之间是不运行IGP的)
在AS123中的所有路由器(R2/R3),运行IGP:RIP V2
R2/R3#
router rip
version 2
network 23.0.0.0
no auto-summary
测试L3的IGP网络(ping)
show ip route rip
step3:启动BGP,并且立刻指定全局唯一的bgp router-id.
R2(config)#router bgp 123
R2(config-router)#bgp router-id 123.0.0.2
Step4:构建BGP Neighbor
R5-R3 EBGP
R5(config-router)#neighbor 35.0.0.3 remote-as 123
R3(config-router)#neighbor 35.0.0.5 remote-as 150
R3-R2 IBGP:
R3(config-router)#neighbor 23.0.0.2 remote-as 123
R2(config-router)#neighbor 23.0.0.3 remote-as 123
R2-R4 EBGP:
R2(config-router)#neighbor 24.0.0.4 remote-as 140
R4(config-router)#neighbor 24.0.0.2 remote-as 123
Step5:观察BGP邻居建立的过程,及其经历的5个状态:
R4#debug ip bgp 观察BGP邻居建立的过程,及其经历的5个状态:
1-1:Idle:router is searching
1-2:connect:Completed three-way TCP 179 handshake.
1-3:Open sent: Open message sent
1-4:Open confirm:router received agreement
1-5:Established: Peering is established;BGP Routing begins!!
R5#show tcp brief(察看TCP连接的摘要信息)
Local Address Foreign Address (state) state/PfxRcd
35.0.0.5.11001 35.0.0.3.179 ESTAB 收到的路由条目
R5#show ip bgp summary(察看BGP邻居的简要信息)
BGP router identifier 150.0.0.5,local AS number 150
Neighbor V AS *********** State / PfxRcd
35.0.0.3 4 123 * * * (如果邻居已经建立好了,这里必需空白) / 0(收到的路由条目)
18.0.0.8 4 100 * * * / 3
0:没有从这个邻居收到BGP路由,但是和这个邻居的BGP邻居关系已经建好了.
3:从这个邻居收到三条BGP路由,同时和这个邻居的BGP邻居关系已经建好了.
Step6:通过 network 命令,宣告BGP路由
BGP Network配置:
R5(config)#router bgp 150
R5(config-router)#network 105.5.0.0 mask 255.255.0.0
(接口所在的网络号) (这个网络的准确路由长度)
network命令的含义:
在IGP中:
1:激活接口,在这个接口中运行此IGP路由协议.
(在IGP中,路由协议是向运行的接口发送路由更新)
2:这个路由器的IGP路由协议,正在为此接口所在的网段进行路由.
在BGP中:
1.这个路由器的BGP路由协议,正在为此BGP网段进行路由.
(在BGP中,BGP路由协议是向BGP Neighbor发送路由更新.
所以,没有了"激活接口"的含义)
在BGP路由器上,检查自己的BGP路由,是否已经成功地宣告到BGP进程中:
R5#show ip bgp (察看BGP表,BGP数据库)
Network Next Hop(是指更新源)
*>105.5.0.0/16 0.0.0.0(源自本路由器)
* valid
> best
0.0.0.0 表示下一跳为0
R3#sh ip bgp
Network Next Hop Metric LocPrf Weight Path
* i104.4.4.0/24 24.0.0.4(源自AS140) 0 100 0 140 i
*> 105.5.0.0/16 35.0.0.5(源自AS150) 0 0 150 i
BGP 属性:
Metric:MED
LocPrf :local preference
Weight
Path: AS Path
Origin codes: i (表示使用Network命令,宣告到BGP中的)
R2#sh ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 104.4.4.0/24 24.0.0.4 0 0 140 i
* i105.5.0.0/16 35.0.0.5 0 100 0 150 i
step7:EBGP邻居的路由优化问题:
BGP路由优化必要条件(注意是必要而不是充分)
1:下一跳问题:
∵BGP路由的下一跳是其直连路由,
∴不存在下一跳不可达的问题.
(整个AS140中的100个路由器,察看到这条BGP路由的下一跳都是:24.0.0.2)
(整个AS123中的100个路由器,察看到这条BGP路由的下一跳都是:35.0.0.5)
其下一跳保持为相邻的AS的边缘节点(35.0.0.5)
2:同步问题:
对于EBGP邻居,
∵无需遵循同步规则,
∴没有同步问题!!
结论:对于EBGP,只要是从EBGP邻居那里传来的路由,
在不考虑其它BGP属性的情况下,是肯定可以优化的.
注意:只有已经优化了的BGP路由,才能进入IP路由表。
Step8:IBGP路由的优化
BGP路由器,把自己学到的BGP路由,转发给别的BGP邻居的必要条件:(R3)
每个BGP路由器,对于特定的某条BGP路由,
必须是自己已经优化的路由,才具备转发给别的BGP邻居的能力.
注意:
这是必要条件,不是充分条件!!!
这意味着:即使自己已经优化,但此路由器,可能转发,也可能不转发.
察看R3向R2发送了哪些BGP路由条目:
R3#show ip bgp neighbors 23.0.0.2 advertised-routes
IBGP路由的必要优化条件:(以下是必要条件,而不是充分条件)
1:下一跳可达
2:路由的同步
8-1:察看R2上,在R3没有作任何更改前,当前的BGP路由:
注意观察:
1:本路由器R2,是否能够到达这条BGP路由的下一跳?
(在R2上,观察从R3这个IBGP邻居获得的BGP路由)
R2#show ip bgp
Network Next Hop
* i105.5.0.0/16 35.0.0.5
当前下一跳它不可达
解决方案:
R3(config)#router bgp 123
R3(config-router)#neighbor 23.0.0.2 next-hop-self
R3#clear ip bgp *soft out(软清除,避免收敛速度过慢)
R2#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*>i105.5.0.0/16 23.0.0.3 0 100 0 150
当前的下一跳是可达的,所以是最优的
8-2:同步问题(在新版的IOS里面,默认是关闭同步的)
(本质:R2是否能够通过IGP,得到这条105.1.0.0/16路由)
所谓同步,是指:
如果R2能够通过IGP(RIP),学到这条路由(105.5.0.0/16),那么就同步.
(也就是:满足同步要求).(无论此路由是否本AS或者其他AS)
如果R2不能够通过IGP,学到这条路由(105.5.0.0/16),那就不满足同步,(也就是:不满足同步要求).
BGP路由器,对于从IBGP邻居学到的路由,默认要求同步.
但是,
∵实际上R2是不可能通过IGP,学到另外的一个AS中的路由.
∴只能关闭同步规则,也就是不遵循同步规则.
解决方案:关闭同步规则:
R2#
router bgp 123
no synchronization
Step9:检测各路由器能否通达
EBGP
R3#show ip bgp
Network Next Hop
*> 105.5.0.0/16 35.0.0.5
R3#show ip route
B 105.5.0.0 [20/0] via 35.0.0.5,
IBGP:
R2#show ip bgp
Network Next Hop
*>i105.5.0.0/16 23.0.0.3
R2#show ip route
B 105.5.0.0 [200/0] via 23.0.0.3
- 1.7-BGP⑥
BGP中的路由控制/过滤: LAB1:Distribute-list调用ACL(较落后) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Step1:通过ACL定义 ...
- 1.7-BGP⑤
BGP Attributes/BGP属性 (通过BGP的属性,实现对BGP路由的选择/操纵) BGP Route Selection/BGP的选路原则: 1: The BGP forwarding t ...
- 1.7-BGP④
注意:默认路由ip route 0.0.0.0 0.0.0.0 12.1.1.1是不可以作为BGP邻居TCP始发连接的(但回包可以) 要配静态路由:ip route 13.1.1.3 255.255. ...
- 1.7-BGP③
IBGP的水平分隔原则(Split Horizon Rule): IBGP的水平分割原则:by default,routes learned via IBGP are never propagated ...
- 1.7-BGP②
BGP的更新源(BGP Neighbor Update Source Address): 原则1: 在默认情况下, BGP路由器以自己路由表中,到达对方BGP邻居的地址的那条路由所指示的出接口(物理接 ...
- BGP路由协议详解(完整篇)
原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...
- 边界网关协议BGP
Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...
- 1.4-动态路由协议OSPF④
多区域的OSPF: 划分多区域的主要目的: 1.减少每个区域中的路由条目,进而减少每个路由器的内存中的路由,及其内存消耗,提高转发效率. 2.因为每一个OSPF区域对应在一个OSPF LSDB,配合在 ...
- BGP MPLS IP V匹N基本概念
BGP/MPLS IP VPN基本概念 Site 在介绍VPN时经常会提到"Site",Site(站点)的含义可以从下述几个方面理解: · Site是指相互之间具备IP连通性的一组 ...
随机推荐
- Scala简单计算实例,其在数据分析方面的优势体会
程序只是简单的从文件中读取数据,并进行计算. package com.bill.www /** * Created by Bill on 2016/2/3. * 目的:用scala实现简单的数据计算 ...
- NX自动出图 发布啦
经过4个月的努力,终于面世啦!!!!1.安装文件 :http://yunpan.cn/Q49TWSJmy2i5Z 请下载后,按照“安装说明.txt ”进行安装!2.学习视频:http://yun ...
- Hive扩展功能(二)--HWI接口
软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos ...
- windows2008 rs+sql 2008 下配置站点权限
几点注意 Windows 2008 iis7.5 1 建立应用程序池 2 文件目录的权限加上 IIS AppPool\应用程序池名称 (找不到直接录入) 3 文件目录要给 IUser权限,不然出错. ...
- 搭建FileZilla
FileZilla是C/S架构的,有服务端和客户端 客户端下载地址https://www.filezilla.cn/download/client 安装,一般就下一步下一步了. 服务端下载:https ...
- Java实现打包文件
把文件打包到压缩包里 public void zip (String... files) throws IOException { //创建文件打包流对象 ZipOutputStream zos = ...
- php切换版本之后 redis 安装使用
一:redis安装Download, extract and compile Redis with: $ wget http://download.redis.io/releases/redis-3. ...
- 【Hadoop】二、HDFS文件读写流程
(二)HDFS数据流 作为一个文件系统,文件的读和写是最基本的需求,这一部分我们来了解客户端是如何与HDFS进行交互的,也就是客户端与HDFS,以及构成HDFS的两类节点(namenode和dat ...
- Java之希尔排序
希尔排序 前面已经知道了插入排序,明白插入排序的原理,不断比较来交换相邻的元素,这样的话效率不高,为此希尔排序,在插入排序上做出了改进,通过间隔增量来比较并交换元素,这样可以减少比较交换的次数. pa ...
- Android 各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...