B GP(边界网关协议) BGP基本概念: 1、路由协议分为两大类IGP(内部网关协议),如RIP ,IGRP,EIGRP,OSPF,ISIS和EGP(外部网关协议),BGP是最常用的EGP协议。 自治系统(AS)之外运行的路由选择协议称为外部网关协议(EGP)。 2、BGP分为两类EBGP 、IBGP BGP在位于不同自治系统的路由器之间运行时,被称为EBGP,运行EBGP的路由器通常彼此直接相连。由于大型网路环境EBGP不能直接相连时,使用BGP的多跳属性进行配置,使EBGP之间形成邻居关系。 BGP在位于同一个自治系统的路由器之间运行时,被称为IBGP,要建立IBGP邻接关系,运行IBGP的路由器无需彼此直接相连,只要TCP可达即可形成邻居关系。
BGP属性: 1、AS_PATH 属性:AS路径属性是一种公认强制属性,每当路由选择更新通过AS时,该AS的编号都被加入到路径列表的开头,然后将其通告给下一个EBGP邻居。AS路径越短路径越优先。 2、本地优先级属性:是赋予一条路由的优选程度,用于比较它和其他到达同一目的地的路由,值越高,优选程度就越高。它只用于AS内部,只在IBGP对等体之间交换,不会通告给EBGP对等体。 3、路由反射器的作用:由于IBGP通过邻居学到的路由条目不会传递到下一个路由,即水平分割的原理。 4、NULL0的作用:当做路由汇总时产生的,不管是手动汇总还是自动汇总,汇总的接口都是空接口NULL0,使用此接口能避免路由器转发分组的时候寻找匹配路由,阻止分组在网路内形成环路。 5、原子汇总属性:公认自决属性用汇总地址把一组有类的网络汇聚成一个地址的实际应用。 6、BGP同步实际上是要求bgp路由和igp路由的同步。通过此命令实现同步r1(config-router)#synchronization 管理距离总结表: 管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离,AD值越低,则它的优先级越高。
特殊重发布: 1、IBGP的管理距离大于EIGRP的管理距离,重发布时IBGP的路由条目,EIGRP获取不到。通过此命令把IBGP路由条目直接传递给EIGRP。 R1(config-router)#bgp redistribute-internal 2、将路由映射表用于重发布(限制性的重发布) Access-list 1 per 192.168.1.0 0.0.0.255 route-map abc deny 10 match ip add 1 举例:在ospf中发布rip redist rip subnets route-map abc 策略路由以及BGP配置、策略路由配置 1、本地优先级属性(local preference)只在本AS内部有效,AS内进行比较出口优先路径。 要说明一下:只有两条或多条路径可选择的情况下才会显示出本地优先级。只有一条路径可选的话,不会显示出本地优先级。 2、MED属性是一个任选非传递属性,向外部邻居路由器指示进入一个有多个入口的AS的优先路径,路径的MED值越低,它的优先级越高。它与本地优先级属性不同,MED属性是在自治系统之间交换的,该属性通知AS 外的路由器采用哪一条路径到达AS。MED 属性在自治系统间交换,但MED属性不能传递到第三方AS 。 BGP的配置 Router(config)#router bgp AS-number router(config-router)#network router(config-router)#neighbor ip-address remote-as as-number 注明:ip-address 是邻居接口的IP地址 Show ip bgp 显示BGP路由表中的所有条目 Show ip bgp neighbors 显示每个BGP连接的详细信息 no synchronization 关闭同步 neighbor 192.168.2.2 next-hop-self 修改下一跳属性
将汇总路由条目注入给null0
r1(config)#ip route 192.168.1.0 255.255.252.0 null0
反射器配置 :
r3(config-router)#neighbor 192.168.3.2 route-reflector-client
配置聚合后条目:(具体条目都显示)aggregate-address 1.1.0.0 255.255.252.0 as-set
通过此命令只显示聚合之后的条目,抑制具体的条目:aggregate-address 172.16.0.0 255.255.252.0 as-set summary-only
通过路由策略配置本地优先级:
设置:
r(config)# access-list 1 permit 1.1.1.1 0.0.0.255
r(config)# route-map locprf (名字) per 10 (相当于第一条映射表)
r (config-route-map)# match ip add 1(检查匹配的ACL条目)
r (config-route-map)# set local-preference 200(路由映射表将前往此路由的优先级设置为200)
r(config)# route-map locprf per 20(第二条映射表,没有match、set语句类似于ACL中的permit any语句,允许所有网络,这里代表没特指的优先级,都为默认的)
r (config-route-map)# set local-perference
应用:
r(config)# router bgp 200
r(config-router)# nei 192.168.2.1 route-map locprf in
通过路由策略配置MED:
设置:
r(config)# access-list 1 permit 1.1.1.1 0.0.0.255
r(config)# route-map set50 (名字) per 10 (相当于第一条映射表)
r (config-route-map)# match ip add 1(检查匹配的ACL条目)
r (config-route-map)# set metric 50(设置值为50)
r(config)# route-map set50 per 20
r (config-route-map)# set metric
r(config)#route-map set100 per 10
r(config-route-map)#match ip add 1
r(config-route-map)#set metric 100
应用:
r(config)# router bgp 200
r(config-router)# nei 192.168.1.2 route-map set50 out
r(config-router)# nei 192.168.4.1 route-map set100 out
通过BGP策略拒绝一条路由条目发布:
如:拒绝1.1.1.1 255.255.255.0发布到AS200
配置:
r1(config)#access-list 1 deny 1.1.1.1 0.0.0.255
r1(config)#access-list 1 permit any
应用:
r1(config-router)#neighbor 192.168.1.2 distribute-list 1 out
r1(config-router)#neighbor 192.168.4.1 distribute-list 1 out
过虑整个AS内的路由条目:
如:BGP-AS300的路由条目:
配置:
ip as-path access-list 1 deny ¬¬¬¬_300_
ip as-path access-list 1 permit .*
应用:
neighbor 192.168.4.1 filter-list 1 out
EBGP多跳配置 :
r(config-router)#neighbor ip地址 ebgp-multihop hops(表示跳数)
基于策略的实际项目实例(共 4个需求)
1、
需求A:两个地市拉了两条专线,拉两条专线主要目的为了控制专线走法,让193.1.1.1/24 走S口,193.1.2.1/24走E口。
实现方法如下:(应用了基于源地址的策略路由配置)
路由器默认是通过路由表来选路,我们要让路由不通过路由表选路,先通过策略来选路,必须先这样配置:
r(config)#ip local policy route-map lab1(名字)
需求A配置:
access-list 1 permit 193.1.1.0 0.0.0.255
access-list 2 permit 193.1.2.0 0.0.0.255
route-map lab1 permit 10
match ip address 1
set interface Serial1/3
route-map lab1 permit 20
match ip address 2
set interface Ethernet2/0
在接口应用:ip policy route-map lab1
测试方法:
通过此命令测试 Traceroute ip
通过抓包 Debug ip policy
需求B:两条专线,上面跑语音包101-1000字节,下面跑数据包64-100字节
需求B配置:
route-map lab1 per 10
match ip add 1
match length 64 100
set ip next-hop 192.168.3.2 (对方下一跳)
route-map lab1 per 20
match ip add 2
match length 101 1000
set ip next-hop 192.168.33.2 (对方下一跳)
通过实验我们发现,超出包流量的数据可以照常通过,只是不走策略而已,如何彻底限制,通过以下命令将超出包流量的数据扔给NULL0。
Route-map lab1 per 30
Set interface null 0
需求C:应用telnet时走下面路径,应用www时走上面路径,应该怎样?
需求C配置:
access-list 102 permit tcp any any eq telnet
access-list 103 permit tcp any any eq www
route-map lab1 permit 10
match ip address 102
set interface Ethernet1/1
set ip next-hop 192.168.1.2
route-map lab1 permit 20
match ip address 103
set interface Serial2/2
set ip next-hop 192.168.11.2
需求D:如果专用WAN链路出现故障,结果将无法访问总部的e-mail服务器和internet,我们如何解决?
需求D解决方案:添加一条浮动默认静态路由,浮动静态路由是AD比动态路由协议大的静态路由。
Ip route 0.0.0.0 0.0.0.0 192.168.1.2 100 (注:100为管理距离,此管理的设置决定于你所应用的路由协议)