BGP详解1

环境拓扑

BGP详解1

一、预配:

   R2:

   inteface s1/0

   ip address 12.1.1.2 255.255.255.0

   no shut

   interface lo0

   ip address 2.2.2.2 255.255.255.0

   no shut

   R1:

   inteface s1/0

   ip address 12.1.1.1 255.255.255.0

   no shut

   interface f0/0

   ip address 134.1.1.1 255.255.255.0

   no shut

   interface lo0

   ip address 1.1.1.1 255.255.255.0

   no shut

   R3:

   inteface f0/0

   ip address 134.1.1.3 255.255.255.0

   no shut

   interface lo0

   ip address 3.3.3.3 255.255.255.0

   no shut

   R4:

   inteface f0/0

   ip address 134.1.1.4 255.255.255.0

   no shut

   interface lo0

   ip address 4.4.4.4 255.255.255.0

   no shut

二、测试彼此之间的连通性

   R1:ping 12.1.1.2

       ping 134.1.1.3

       ping 134.1.1.4

三、建立BGP的邻居

   R2:

   router bgp 2

   bgp router-id 2.2.2.2

   neighbor 12.1.1.1 remote-as 1

   R1:

   router bgp 1

   bgp router-id 1.1.1.1

   neighbor 12.1.1.2 remote-as 2

   neighbor 3.3.3.3 remote-as 1(该条命令不能生效,因为3.3.3.3这个IP地址不可达)

   neighbor 3.3.3.3 update-source lo0指定更新源IP地址是lo0的IP地址

   show ip route 无3.3.3.0/24的路由信息,所以我们需要在R1和R3上启用一个IGP,获取彼此

   环回口的路由

   router rip

   version 2

   no auto-summary

   network 1.0.0.0

   network 134.1.0.0

   R3:

   router rip

   version 2

   no auto-summary

   network 3.0.0.0

   network 134.1.0.0

   router bgp 1

   bgp router-id 3.3.3.3

   neighbor 1.1.1.1 remote-as 1

   neighbor 1.1.1.1 update-source lo0

   neighbor 134.1.1.4 remote-as 4

   R4:

   router bgp 4

   bgp router-id 4.4.4.4

   neighbor 134.1.1.3 remote-as 1

四、在R2上通告环回口的路由

   R2:

   router bgp 2

   先看路由表是否有该条路由

   do show ip route

   network 2.2.2.0 mask 255.255.255.0

   show ip bgp


  Network          Next Hop            Metric LocPrf Weight Path

*> 2.2.2.0/24       0.0.0.0                  0         32768 i

Next Hop 是0.0.0.0说明是自己本身产生的一条路由更新

   R1:show ip bgp

  Network          Next Hop            Metric LocPrf Weight Path

*> 2.2.2.0/24       12.1.1.2                 0             0 2 i

*是可用的路由条目 >是最优的路由条目

   R3:show ip bgp    


  Network          Next Hop            Metric LocPrf Weight Path

* i2.2.2.0/24       12.1.1.2                 0    100      0 2 i

我们看到该路由条目到这个设备上后,不是最优的路由条目了,为什么呢?Next Hop是12.1.1.2

而这个12.1.1.2,对这个设备来说是不可达的路由,不是同步问题,已经关闭同步了

就只剩下这个下一跳问题了。怎么解决呢?用next-hop-self,该命令在R1上启用

代表的意思就是发送更新的时候,更改Next Hop是自己就可以了

    R1:

    router bgp 1

    neighbor 3.3.3.3 next-hop-self

再在R3上show ip bgp

  Network          Next Hop            Metric LocPrf Weight Path

*>i2.2.2.0/24       1.1.1.1                  0    100      0 2 i

呵呵,最优了吧

哦,对啦,在R1上的neighbor 3.3.3.3 next-hop-self等会再打上去

我想验证不是最优路由的2.2.2.0/24能否传递到R4上?


   R1:

   router bgp 1

   no neighbor 3.3.3.3 next-hop-self

   R4:

   show ip bgp 为空,无任何路由更新传送过来

   说明不是最优路由的更新时不会传送过来的

让它变得正常吧,neighbor 3.3.3.3 next-hop-self

   show ip bgp


  Network          Next Hop            Metric LocPrf Weight Path

*> 2.2.2.0/24       134.1.1.1                              0 1 2 i

我们会有点疑问,为什么Next Hop是134.1.1.1而不是134.1.1.3呢?

这就是我们要讨论的ICMP 重定向 功能

在R3上show ip interface f0/0

     ICMP redirects are always sent

讲述下工作原理吧:

     当R3接受R1发过来的关于2.2.2.0/24的路由更新的接口是F0/0

     当R3发送该2.2.2.0/24的更新给R4的时候,也是通过F0/0接口发送的

这个时候,设备R3就会利用ICMP 重定向功能,将该更新的Next Hop的地址从

自己的F0/0 IP地址重定向为R1上的F0/0接口IP地址  

更官方的说法:

第一,首先我们要搞清楚这个下一跳是谁改变的,是R3还是R4呢?

     我们在R3上开启debug ip bgp update查看更新报文的具体内容

     因为BGP是触发更新的,所以需要clear ip bgp * 这是硬清除 会断TCP连接

     为了速度快呢,我们需要软清除,也就是clear ip bpg * soft


*Mar  1 02:55:59.895: BGP(0): 134.1.1.4 NEXT_HOP part 3 net 2.2.2.0/24, next 134.1.1.1

*Mar  1 02:55:59.899: BGP(0): 134.1.1.4 send UPDATE (format) 2.2.2.0/24, next 134.1.1.1, metric 0, path 2...duplicate ignored

它是怎么知道改为134.1.1.1的呢?是因为R1上的next-hop-self吗?如果是的话,应该是1.1.1.1的啊?而且next-hop-self是应用在IBGP中的,不在EBGP中使用

官方解释如下:

当R3接受到2.2.2.0/24的更新的时候,通过递归查询

show ip route

1.0.0.0/24 is subnetted, 1 subnets

R       1.1.1.0 [120/1] via 134.1.1.1, 00:00:10, FastEthernet0/0

    2.0.0.0/24 is subnetted, 1 subnets

B       2.2.2.0 [200/0] via 1.1.1.1, 00:31:45

    3.0.0.0/24 is subnetted, 1 subnets

C       3.3.3.0 is directly connected, Loopback0

    134.1.0.0/24 is subnetted, 1 subnets

C       134.1.1.0 is directly connected, FastEthernet0/0

如果要到2.2.2.0/24需要通过134.1.1.1

而当R3要将该更新发送给R4的时候,发现目的IP是134.1.1.4和接受到更新的134.1.1.1是同一MA网段

由于ICMP重定向功能将我接受更新的下一跳作为发给R4更新的下一跳

而1.1.1.1怎么到达呢?通过show ip route,我们发现这个下一跳地址就是134.1.1.1


BGP的状态机:

1、IDLE:

  路由器正查找邻居的路由可达性

2、Connect:

  完成TCP的三次握手过程

3、Open sent:

  用来建立邻居

4、Open confirm:

  参数协商好后的状态

5、Established

  邻居建立


IDLE出现问题的原因:

1、邻居路由不可达

2、对端AS号输入错误


active:

1、发送的Open报文无回应

2、AS号配错


BGP的认证:

neighbor IP_address password string 使用MD5的认证方式


show ip bgp rib-failure

r 当路由即从IGP学到,也从BGP学到,且IGP路由AD比BGP小,BGP路由就是打r

一般发生在IBGP中

r的路由条目不能放进路由表,可以传递给BGP邻居


show ip bgp 12.1.1.1 adertised-routes  查看发送的路由更新

show ip bgp 12.1.1.1 received-routes   查看接受的路由更新,该命令起作用的前提是

开启neighbor 12.1.1.1 soft-reconfiguration inbound


no auto-summary

在IGP中起在主类边界汇总主类路由

在BGP中是在把别的协议重分发进BGP中的时候起作用

在R1

 router bpg 1

 auto-summary

 redistributed rip

在R2

 show ip route

就可以看到效果


auto-summary:

不携带原有的下一跳和metric值,并且汇总

no auto-summary:

携带原有的下一跳和metric值


必打命令:

bgp router-id

no auto-summary

no synchronzaiton


聚合:

有两种方法:

1、ip route 聚合网络地址 null0

  在进程中进行network

2、aggregate-address

  先将明细路由通告出来

  在R2

  router bgp 2

  network 192.168.8.0 mask 255.255.255.0

  network 192.168.9.0 mask 255.255.255.0

  network 192.168.10.0

  network 192.168.11.0

  aggregate-address 192.168.8.0 255.255.252.0

  这样的话,明细和汇总都会发出来的

  需要加 summary-only参数,这样明细路由就会被抑制

 

R2(config-router)#do show ip b

BGP table version is 11, local router ID is 2.2.2.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

             r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete


  Network          Next Hop            Metric LocPrf Weight Path

*> 2.2.2.0/24       0.0.0.0                  0         32768 i

s> 192.168.8.0      0.0.0.0                  0         32768 i

*> 192.168.8.0/22   0.0.0.0                            32768 i

s> 192.168.9.0      0.0.0.0                  0         32768 i

s> 192.168.10.0     0.0.0.0                  0         32768 i

s> 192.168.11.0     0.0.0.0                  0         32768 i

打s的是被抑制的路由,不会向其邻居传递,也不会放进路由表

可以选择抑制哪些明细,将192.168.8.0和192.168.9.0抑制掉


ip prefix-list 1  permit 192.168.8.0/23 ge 24 le 24


route-map sup permit 10

match ip address prefix 1


router bgp 2

aggregate-address 192.168.8.0 255.255.252.0 suppress-map sup


在R1上聚合192.168.8.0/22

R1(config-router)#do show ip bg

BGP table version is 43, local router ID is 1.1.1.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

             r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete


  Network          Next Hop            Metric LocPrf Weight Path

*> 2.2.2.0/24       12.1.1.2                 0             0 2 i

s> 192.168.8.0      12.1.1.2                 0             0 2 i

*> 192.168.8.0/22   0.0.0.0                            32768 i

s> 192.168.9.0      12.1.1.2                 0             0 2 i

s> 192.168.10.0     12.1.1.2                 0             0 2 i

s> 192.168.11.0     12.1.1.2                 0             0 2 i

红色的会回传会R2,因为没有打R2的AS号

所以聚合命令做如下更改:

router bgp 1

aggregate-address 192.168.8.0 255.255.252.0 summary-only as-set

这样就不会回传给R2了。这个是基于EBGP的水平分割原则


BGP的Attributes


1、公认的 、可选的

2、强制的 、*的

3、可传递的、不可传递的

4、添加的


1、AS path *公认强制的

2、Next-hop *

3、Origin * 起源属性

  i、通过network通告的

  E、将EGP重分发进BGP

  ?、将IGP或者静态路由重发布进BGP


怎样见到打E的起源属性?

access-list 1 permit 2.2.2.0 0.0.0.255


route-map test permit 10

match ip address 1

set origin egp 2

route-map test permit 20

让其他的路由进来

neighbor 1.1.1.1 route-map test in


BGP选路原则:

前提:为了确保多条路径都是优的,所以必须确保每条路径关闭同步和next-hop-self

BGP详解1


划红线的以上是越大越好,下面的是越小越好

BGP详解1

上一篇:Tomcat的设置1——设置根目录


下一篇:Tomcat的设置2——设置虚拟子目录和欢迎页