顺序也要记住
1.优选协议首选值(Preference_Value)最高的路由。(私有属性,仅本地有效)
2.优选本地优先级(Local_Preference)最高的路由。 (100,IBGP,越大越优)
3.优选本地生成的路由。手动聚合>自动聚合>network>import>从对等体学到的。
4.优选 AS_Path 短的路由。
5.比较 Origin 属性,起源类型 IGP>EGP>Incomplete。 i>e>?
6.优选 MED(Multi Exit Discriminator)值最低的路由。 (0,EBGP,越小越优)
7.优选从 EBGP 学来的路由(EBGP>IBGP)。
8.优选 AS 内部 IGP 的 Metric 最小的路由。
前 8 条选路规则一样,可以实现 BGP 的负载分担
bgp 100
maximum load-balancing 2
9.优选 Cluster_List 最短的路由。 (有做路由反射器RR才考虑)
10.优选 Router_ID 最小的路由器发布的路由。
11.优选具有较小 IP 地址的邻居学来的路由。
如果配置了负载分担,当前8个规则相同,且存在多条AS_Path完全相同的外部路由,则根据配置的路由条数选择多条路由进行负载分担
PreVal
BGP 路由属性的比较过程中,首先要比较的就是路由信息首选值 Preference Value,也简称为 PreVal。相当于BGP选路规则中的Weight值,值越大,优先级越高,默认为 0,不会发送给任何 BGP 邻居,仅作为本地路由器用来选路使用。
ip ip-prefix 1 permit 55.55.55.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply preferred-value 100
route-policy 10 permit node 2
bgp 100
peer 2.2.2.2 route-policy 10 import
router id: 1.1.1.1 。根据11条路由选路规则,R1的Router ID更小,他默认会往R1那条路走。
现在我想让他往R2走
1、基本配置 R1: sys sysname R1 int loop 0 ip add 1.1.1.1 32 int g0/0/0 ip add 192.168.13.1 24 int g0/0/1 ip add 192.168.14.1 24 q R2: sys sysname R2 int loop 0 ip add 2.2.2.2 32 int g0/0/1 ip add 192.168.23.2 24 int g0/0/0 ip add 192.168.24.2 24 q R3: sys sysname R3 int loop 0 ip add 3.3.3.3 32 int loop 1 ip add 33.33.33.33 32 int g0/0/0 ip add 192.168.13.3 24 int g0/0/1 ip add 192.168.23.3 24 q R4: sys sysname R4 int loop 0 ip add 4.4.4.4 32 int loop 1 ip add 44.44.44.44 32 int loop 2 ip add 55.55.55.55 32 int g0/0/0 ip add 192.168.14.4 24 int g0/0/1 ip add 192.168.24.4 24 q 2.配置RIP协议 R1: rip version 2 net 192.168.13.0 net 1.0.0.0 R2: rip version 2 net 192.168.23.0 net 2.0.0.0 R3: rip version 2 net 192.168.13.0 net 192.168.23.0 net 3.0.0.0 3.配置IBGP邻居 R1: [R1]bgp 100 [R1-bgp]router-id 1.1.1.1 [R1-bgp]peer 3.3.3.3 as-n 100 [R1-bgp]peer 3.3.3.3 con loo0 [R1-bgp]peer 3.3.3.3 next-hop-local [R1-bgp]peer 2.2.2.2 as-n 100 [R1-bgp]peer 2.2.2.2 con loo0 [R1-bgp]peer 2.2.2.2 next-hop-local R2: [R2]bgp 100 [R2-bgp]router-id 2.2.2.2 [R2-bgp]peer 1.1.1.1 as-n 100 [R2-bgp]peer 1.1.1.1 con loo0 [R2-bgp]peer 1.1.1.1 next-hop-local [R2-bgp]peer 3.3.3.3 as-n 100 [R2-bgp]peer 3.3.3.3 con loo0 [R2-bgp]peer 3.3.3.3 next-hop-local R3: [R3]bgp 100 [R3-bgp]router-id 3.3.3.3 [R3-bgp]peer 1.1.1.1 as-n 100 [R3-bgp]peer 1.1.1.1 con loo0 [R3-bgp]peer 2.2.2.2 as-n 100 [R3-bgp]peer 2.2.2.2 con loo0 4.配置静态路由 解决R1、R2的静态路由,回包路由 [R1]ip route-static 4.4.4.4 32 192.168.14.4 [R2]ip route-static 4.4.4.4 32 192.168.24.4 [R4]ip route-static 1.1.1.1 32 192.168.14.1 [R4]ip route-static 2.2.2.2 32 192.168.24.2 5.建立EBGP邻居 现在R1R2来和R4建立邻居 [R1]bgp 100 [R1-bgp]peer 4.4.4.4 as-n 200 [R1-bgp]peer 4.4.4.4 con loo0 [R1-bgp]peer 4.4.4.4 ebgp-max-hop [R2]bgp 100 [R2-bgp]peer 4.4.4.4 as-n 200 [R2-bgp]peer 4.4.4.4 con loo0 [R2-bgp]peer 4.4.4.4 ebgp-max-hop [R4]bgp 200 [R4-bgp]router-id 4.4.4.4 [R4-bgp]peer 1.1.1.1 as-n 100 [R4-bgp]peer 1.1.1.1 con loo0 [R4-bgp]peer 1.1.1.1 ebgp-max-hop [R4-bgp]peer 2.2.2.2 as-n 100 [R4-bgp]peer 2.2.2.2 con loo0 [R4-bgp]peer 2.2.2.2 ebgp-max-hop 6.宣告网段,传递路由 把R3的条目放到BGP里 [R3-bgp]net 33.33.33.33 32 [R4]bgp 200 [R4-bgp]net 44.44.44.44 32 [R4-bgp]net 55.55.55.55 32 [R3-bgp]dis bgp routing-table 44.44.44.44 查看详细参数 发现 IGP cost 1, not preferred for router ID 选择R1是因为 是通过Router ID,越小越优先 最优可用的路由条目会放在全局路由表 [R3]dis ip routing-table 44.44.44.44/32 IBGP 255 0 RD 1.1.1.1 7.负载分担 希望在R3的全局路由表有1.1.1.1也有2.2.2.2 选路规则前八条必须一模一样,然后开启负载分担 哪台路由器看,就哪台路由器开 [R3]bgp 100 [R3-bgp]maximum load-balancing 2 dis ip routing-table 44.44.44.44/32 IBGP 255 0 RD 1.1.1.1 GigabitEthernet 0/0/0 IBGP 255 0 RD 2.2.2.2 8.首选值 PreVal BGP路由默认是 1.1.1.1 现在想要 55.55.55.55 最优选2.2.2.2。 达到一种合理分流的效果 想 R3经过R1去44网段,R3经过R2去55网段
R4的路由到R2再进入到R3,import到R3 R2产生的路由条目 发给R3 import R3产生的路由条目 发给R2 export 三步骤: [R3]acl 2000 [R3-acl-basic-2000]rule permit source 55.55.55.55 0.0.0.0 [R3]route-policy 10 permit node 10 [R3-route-policy]if-match acl 2000 [R3-route-policy]apply preferred-value 99 [R3]route-policy 10 permit node 20 [R3]bgp 100 [R3-bgp]peer 2.2.2.2 route-policy 10 import 如果是R3产生的路由条目发送给R2,那就是export
Local_Preference
BGP属性 —— Local_Preference
Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由,也就是控制流量从哪个出口离开AS。默认为100,越大越优 (EBGP之间路由传递不携带Local_Preference)
修改默认本地优先级
bgp 200
default local-preference 200
修改一条路由的本地优先级
ip ip-prefix 1 permit 1.1.1.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply local-preference 500
route-policy 10 permit node 2
8
bgp 200
peer 192.168.12.1 route-policy 10 import
R2的Router ID比R3的Router ID小,默认走的是R2路线,现在想R3也要走
1、基本配置 R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int loop 1 ip add 11.11.11.11 24 int g0/0/0 ip add 192.168.12.1 24 int g0/0/1 ip add 192.168.13.1 24 q R2: sys sysname R2 int loop 0 ip add 2.2.2.2 24 int g0/0/0 ip add 192.168.12.2 24 int g0/0/1 ip add 192.168.24.2 24 q R3: sys sysname R3 int loop 0 ip add 3.3.3.3 24 int g0/0/1 ip add 192.168.13.3 24 int g0/0/0 ip add 192.168.34.3 24 q R4: sys sysname R4 int loop 0 ip add 4.4.4.4 24 int loop 1 ip add 44.44.44.44 24 int g0/0/1 ip add 192.168.24.4 24 int g0/0/0 ip add 192.168.34.4 24 q 2.配置OSPF R2: ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 192.168.24.2 0.0.0.0 R3: ospf 1 router-id 3.3.3.3 area 0.0.0.0 network 3.3.3.3 0.0.0.0 network 192.168.34.3 0.0.0.0 R4: 44.44.44.44 放在BGP ospf 1 router-id 4.4.4.4 area 0.0.0.0 network 192.168.24.4 0.0.0.0 network 192.168.34.4 0.0.0.0 network 4.4.4.4 0.0.0.0 3.建立 BGP R1: [R1]bgp 100 [R1-bgp]router-id 1.1.1.1 [R1-bgp]peer 192.168.12.2 as-n 200 [R1-bgp]peer 192.168.13.3 as-n 200 [R1-bgp]net 1.1.1.0 24 [R1-bgp]net 11.11.11.0 24 R2: [R2]bgp 200 [R2-bgp]router-id 2.2.2.2 [R2-bgp]peer 192.168.12.1 as-n 100 [R2-bgp]peer 4.4.4.4 as-n 200 [R2-bgp]peer 4.4.4.4 con loo0 [R2-bgp]peer 4.4.4.4 next-hop-local [R2-bgp]peer 3.3.3.3 as-n 200 [R2-bgp]peer 3.3.3.3 con loo0 [R2-bgp]peer 3.3.3.3 next-hop-local R3: [R3]bgp 200 [R3-bgp]router-id 3.3.3.3 [R3-bgp]peer 192.168.13.1 as-n 100 [R3-bgp]peer 2.2.2.2 as-n 200 [R3-bgp]peer 2.2.2.2 con loo0 [R3-bgp]peer 2.2.2.2 next-hop-local [R3-bgp]peer 4.4.4.4 as-n 200 [R3-bgp]peer 4.4.4.4 con loo0 [R3-bgp]peer 4.4.4.4 next-hop-local R4: [R4]bgp 200 [R4-bgp]router-id 4.4.4.4 [R4-bgp]peer 2.2.2.2 as-n 200 [R4-bgp]peer 2.2.2.2 con loo0 [R4-bgp]peer 3.3.3.3 as-n 200 [R4-bgp]peer 3.3.3.3 con loo0 [R4-bgp]net 44.44.44.0 24 [R4-bgp]dis bgp routing-table R4去往 11网段是 往R2走,因为R2的Router ID更小 Total Number of Routes: 5 Network NextHop MED LocPrf PrefVal Path/Ogn *>i 1.1.1.0/24 2.2.2.2 0 100 0 100i * i 3.3.3.3 0 100 0 100i *>i 11.11.11.0/24 2.2.2.2 0 100 0 100i * i 3.3.3.3 0 100 0 100i *> 44.44.44.0/24 0.0.0.0 0 0 i [R4-bgp] 4.修改优先级 单单改R3 default (换汤不换药) 可以dis default-parameter bgp 查看默认 如果想走R3,就在R3上改 [R3]bgp 200 [R3-bgp]default local-preference 200 改了之后,在R4上查看 dis bgp routing-table Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn *>i 1.1.1.0/24 3.3.3.3 0 200 0 100i *>i 11.11.11.0/24 3.3.3.3 0 200 0 100i *> 44.44.44.0/24 0.0.0.0 0 0 i 刚才是都走 2.2.2.2,现在都走3.3.3.3 换汤不换药,没达到分流效果 在上面R3 改了本地优先级的基础上,再改R2 R2上做了后通过IBGP邻居传给R4 [R2]ip ip-prefix 1 permit 1.1.1.0 24 [R2]route-policy 10 permit node 10 [R2-route-policy]if-match ip-prefix 1 [R2-route-policy]apply local-preference 299 [R2]route-policy 10 permit node 20 [R2]bgp 200 [R2-bgp]peer 192.168.12.1 route-policy 10 import 关键:路由条目是R1产生的,针对R1进入(import)到R2的时候改变属性值为 299,然后通过IBGP 传给R4,从而影响R4离开当前 AS 200选 R2 [R4]dis bgp routing-table Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn *>i 1.1.1.0/24 2.2.2.2 0 299 0 100i *>i 11.11.11.0/24 3.3.3.3 0 200 0 100i *> 44.44.44.0/24 0.0.0.0 0 0 i
AS-Path
AS_Path 属性顺序记录了某条 BGP 路由所经过的 AS 信息,BGP 在比较
AS_Path 属性后,会优选 AS_Path 长度较短的那条路由。另外,AS_Path 还可以用来防止路由之间的环路。当路由器从 EBGP 邻居收到 BGP 路由时,如果该路由的 AS_Path 中包含了自己的 AS 编号,则该路由将会直接丢弃。
ip ip-prefix asp permit 2.2.2.0 24
route-policy 10 permit node 1
if-match ip-prefix asp
apply as-path 500 500 additive
9
route-policy 10 permit node 2
bgp 100
peer 192.168.15.5 route-policy 10 import
apply as-path 500 500 additive
apply as-path 300 500 500 100 overwrite
Warning: The AS-Path lists of routes to which this route-policy is applied
will be overwritten. Continue? [Y/N] y
1、基本配置 R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int g0/0/1 ip add 192.168.15.1 24 int g0/0/0 ip add 192.168.13.1 24 q R2: sys sysname R2 int loop 0 ip add 2.2.2.2 24 int g0/0/1 ip add 192.168.26.2 24 int g0/0/0 ip add 192.168.24.2 24 q R3: sys sysname R3 int g0/0/0 ip add 192.168.13.3 24 int g0/0/1 ip add 192.168.34.3 24 q R4: sys sysname R4 int g0/0/0 ip add 192.168.24.4 24 int g0/0/1 ip add 192.168.34.4 24 q R5: sys sysname R5 int g0/0/1 ip add 192.168.15.5 24 int g0/0/0 ip add 192.168.56.5 24 q R6: sys sysname R6 int g0/0/0 ip add 192.168.56.6 24 int g0/0/1 ip add 192.168.26.6 24 q 2.配置BGP R1: bgp 100 router-id 1.1.1.1 peer 192.168.15.5 as-n 500 peer 192.168.13.3 as-n 300 net 1.1.1.0 24 R2: bgp 200 router-id 2.2.2.2 peer 192.168.26.6 as-n 500 peer 192.168.24.4 as-n 400 net 2.2.2.0 24 R3: bgp 300 router-id 3.3.3.3 peer 192.168.13.1 as-n 100 peer 192.168.34.4 as-n 400 R4: bgp 400 router-id 4.4.4.4 peer 192.168.34.3 as-n 300 peer 192.168.24.2 as-n 200 R5: bgp 500 router-id 5.5.5.5 peer 192.168.15.1 as-n 100 peer 192.168.56.6 as-n 500 peer 192.168.56.6 next-hop-local R6: bgp 500 router-id 6.6.6.6 peer 192.168.26.2 as-n 200 peer 192.168.56.5 as-n 500 peer 192.168.56.5 next-hop-local [R1]dis bgp routing-table Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 0.0.0.0 0 0 i *> 2.2.2.0/24 192.168.15.5 0 500 200i * 192.168.13.3 0 300 400 20 [R1]dis bgp routing-table 2.2.2.2 可以查看详细为什么到达2.2.2.2下一跳是15.5 AS-path 300 400 200, origin igp, pref-val 0, valid, external, pre 255, not preferred for AS-Path. 因为下面要经过3个AS号,上面只需要经过2个AS号 3.增加AS,修改优先级 希望R1 走 13.3 ,下面走,增加AS号 针对R5发送给R1的路由,import [R1]ip ip-prefix 2 permit 2.2.2.0 24 [R1]route-policy 10 permit node 10 [R1-route-policy]if-match ip-prefix 2 [R1-route-policy]apply as-path 499 599 additive 也可以覆盖 overwrite [R1]route-policy 10 permit node 20 [R1-route-policy]bgp 100 [R1-bgp]peer 192.168.15.5 route-policy 10 import [R1]dis bgp routing-table 选择AS-Path更短的 13.3 Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 0.0.0.0 0 0 i *> 2.2.2.0/24 192.168.13.3 0 300 400 200i * 192.168.15.5 0 499 599 500 200i 4.R2查看回包,来包回包路径要一样才正常。 R2还是默认在上面,刚才的改动对R2没影响,因此也要对R2进行修改,一样的方法dis bgp routing-table Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 192.168.26.6 0 500 100i * 192.168.24.4 0 400 300 100i *> 2.2.2.0/24 0.0.0.0 0 0 i [R2]acl 2000 [R2-acl-basic-2000]rule permit source 1.1.1.0 0.0.0.255 [R2-acl-basic-2000]q [R2]route-policy 10 permit node 10 [R2-route-policy]if-match acl 2000 [R2-route-policy]apply as-path 199 299 399 499 overwrite Warning: The AS-Path lists of routes to which this route-policy is applied will be overwritten. Continue? [Y/N]y [R2-route-policy]q [R2]route-policy 10 permit node 20 [R2-route-policy]q [R2]bgp 200 [R2-bgp]peer 192.168.26.6 route-policy 10 import 针对R6进入到R2的路由 调用 dis bgp routing-table Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 192.168.24.4 0 400 300 100i * 192.168.26.6 0 199 299 399 499i *> 2.2.2.0/24 0.0.0.0 0 0 i
Metric
优选 AS 内部 IGP 的 Metric 最小的路由。
BGP 在比较 Next Hop 属性时,会优选去往 Next Hop 属性中 IP 地址的 IGP开销最小的路由。
通信双方的往返报文选用不同路径的现象称为不对称路由。对于某些特定的应用,以及部署了某些特别的安全设备和安全策略的情况下,不对称路由的存在可能会导致通过中断的现象。
int g0/0/0
ospf cost 2000
Med
可选非过渡,内容不一定识别到,识别不到就不会传递。
MED 多出口区分器
MED(Multi-exit-disc)也称为多出口鉴别器,它是一个 4 字节的整数,默认 MED值为 0,MED 值越小,表明相应的路由优先级越高。MED属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS。 MED 属性主要作用是用来控制来自邻居 AS 的流量从哪个入口进入到本 AS 中。用于判断流量进入AS时的最佳路由
MED俗称是BGP的cost值
这里是前缀列表的做法,代码块写的是ACL做法
ip ip-prefix 1 permit 172.16.1.0 24
ip ip-prefix 2 permit 172.16.2.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply cost 100
route-policy 10 permit node 2
if-match ip-prefix 2
apply cost 200
route-policy 10 permit node 3
route-policy 20 permit node 1
if-match ip-prefix 1
apply cost 200
route-policy 20 permit node 2
if-match ip-prefix 2
apply cost 100
route-policy 20 permit node 3
bgp 100
peer 192.168.12.2 route-policy 10 export
peer 192.168.13.3 route-policy 20 export
bgp 400
compare-different-as-med
R2和R3去往172.16.1.1,都走12网段
R2和R3去往172.16.2.1,都走23网段
R5接收学习R2路由,因为R2的Router ID更小,我现在需要优选R4路由发送给R5,该怎么做。
1、基础配置 R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int loop 1 ip add 172.16.1.1 24 int loop 2 ip add 172.16.2.1 24 int loop 3 ip add 192.168.1.1 24 int g0/0/2 ip add 192.168.12.1 24 int g0/0/0 ip add 192.168.13.1 24 int g0/0/1 ip add 192.168.14.1 24 q R2: sys sysname R2 int loop 0 ip add 2.2.2.2 24 int g0/0/2 ip add 192.168.12.2 24 int g0/0/0 ip add 192.168.23.2 24 int g0/0/1 ip add 192.168.25.2 24 q R3: sys sysname R3 int loop 0 ip add 3.3.3.3 24 int g0/0/1 ip add 192.168.13.3 24 int g0/0/0 ip add 192.168.23.3 24 int g0/0/2 ip add 192.168.35.3 24 q R4: sys sysname R4 int loop 0 ip add 4.4.4.4 24 int g0/0/0 ip add 192.168.14.4 24 int g0/0/1 ip add 192.168.45.4 24 q R5: sys sysname R5 int loop 0 ip add 5.5.5.5 24 int g0/0/2 ip add 192.168.25.5 24 int g0/0/1 ip add 192.168.35.5 24 int g0/0/0 ip add 192.168.45.5 24 q 2.建立BGP R1: R1的192.168.1.1是针对R5来看的 [R1]bgp 100 [R1-bgp]router-id 1.1.1.1 [R1-bgp]peer 192.168.12.2 as-n 200 [R1-bgp]peer 192.168.13.3 as-n 200 [R1-bgp]peer 192.168.14.4 as-n 300 [R1-bgp]net 172.16.1.0 24 [R1-bgp]net 172.16.2.0 24 [R1-bgp] R2: [R2]bgp 200 [R2-bgp]router-id 2.2.2.2 [R2-bgp]peer 192.168.12.1 as-n 100 [R2-bgp]peer 192.168.25.5 as-n 400 [R2-bgp]peer 192.168.23.3 as-n 200 [R2-bgp]peer 192.168.23.3 next-hop-local 因为没有用环回口来建立IBGP邻居,所以ebgp多跳和connect 不需要。 R3: [R3]bgp 200 [R3-bgp]router-id 3.3.3.3 [R3-bgp]peer 192.168.13.1 as-n 100 [R3-bgp]peer 192.168.35.5 as-n 400 [R3-bgp]peer 192.168.23.2 as-n 200 [R3-bgp]peer 192.168.23.2 next-hop-local R4: [R4]bgp 300 [R4-bgp]router-id 4.4.4.4 [R4-bgp]peer 192.168.14.1 as-n 100 [R4-bgp]peer 192.168.45.5 as-n 400 R5: [R5]bgp 400 [R5-bgp]router-id 5.5.5.5 [R5-bgp]peer 192.168.25.2 as-n 200 [R5-bgp]peer 192.168.35.3 as-n 200 [R5-bgp]peer 192.168.45.4 as-n 300 查看邻居状态是否为Established 验证: [R2]dis bgp routing-table Total Number of Routes: 4 Network NextHop MED LocPrf PrefVal Path/Ogn *> 172.16.1.0/24 192.168.12.1 0 0 100i * i 192.168.23.3 0 100 0 100i *> 172.16.2.0/24 192.168.12.1 0 0 100i * i 192.168.23.3 0 100 0 100i 为什么最优是 12.1呢,可以查看原因 [R2]dis bgp routing-table 172.16.1.0 AS-path 100, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for peer type R1和R2之间是EBGP邻居,R2和R3是IBGP邻居 EBGP邻居的优先级>IBGP邻居的优先级 如果在R3上查看bgp路由表也是一样道理 3.现在要求 R2R3去往172.16.1.0 都往 12网段走 去往172.16.2.0 都往 13网段走 R1修改完成后,发给EBGP邻居 R2和R3,从而让R2和R3影响选路。 R1自己修改后 export给R2和R3 第一步:匹配ACL,应用策略 [R1]acl 2001 [R1-acl-basic-2001]rule permit source 172.16.1.0 0.0.0.255 [R1-acl-basic-2001]acl 2002 [R1-acl-basic-2002]rule permit source 172.16.2.0 0.0.0.255 [R1-acl-basic-2002] 配置R2和R3策略 R2: route-policy R2 permit node 10 if-match acl 2001 apply cost 20 # route-policy R2 permit node 20 if-match acl 2002 apply cost 30 # route-policy R2 permit node 30 R3: route-policy R3 permit node 10 if-match acl 2001 apply cost 30 # route-policy R3 permit node 20 if-match acl 2002 apply cost 20 # route-policy R3 permit node 30 R1上调用: bgp 100 peer 192.168.12.2 route-policy R2 export peer 192.168.13.3 route-policy R3 export
R2查看bgp路由表
MED属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS。
MED值只会传给一个 EBGP邻居,AS100传给了AS200,不会再传给AS400。
[R5]dis bgp routing-table 验证
MED和LocPrf 为空,都是默认值
4.R5优选学习 [R1]bgp 100 [R1-bgp]net 192.168.1.0 24 R1宣告网段,发送给R2R3R4,然后再发送给R5 在R5这台路由器上有三个邻居,默认会优选R2,因为R2的Router ID更小 [R5]dis bgp routing-table 192.168.1.0 .......d for router ID Router ID是选路规则的第十条,现在我要优选R4 MED是选路规则的第六条,匹配网段,然后改MED值 R2的MED是100,R3的MED是50,R4的MED是10 R2: [R2]ip ip-prefix 1 permit 192.168.1.0 24 [R2]route-policy R5 permit node 10 [R2-route-policy]if-match ip-prefix 1 [R2-route-policy]apply cost 100 [R2-route-policy]route-policy R5 permit node 20 [R2-route-policy]q [R2]bgp 200 [R2-bgp]peer 192.168.25.5 route-policy R5 export R3、R4都这样做,不同的是 apply cost 5010 还有bgp 调用,peer的地址。 验证: [R5]dis bgp routing-table
为什么不选R4,因为来自不同的表项
因为BGP只比较来自同一个AS的路由的MED值。 它会在AS 200里选。
如果真的想要选R4,在R5上启用一个特殊,谁查看就在谁的路由器上做
[R5]bgp 400
[R5-bgp]compare-difference-as-med
Community
可选过渡,advertise-community,让别的路由器也识别到。
Community 属性
BGP 路由的团体属性 Community 的主要作用是简化路由策略的实现过程,例如,可以将拥有团体属性的若干路由视为同一个团体,当需要对该团体中所有路由的某个特定属性进行修改时,就没必要逐一对每条路由单独进行修改。 团体属性是 BGP 路由的一种可选属性,路由器在向 BGP 对等体传递路由时,如果希望所传递的路由携带团体的属性,则需要额外的配置
两个作用: ①限定路由的传播范围 ②打标记,便于对符合相同条件的路由进行统一处理
4 个特殊的团体:
internet ,no-export , no-advertise , no-export-Subconfed
internet : 可以向任何 BGP 对等体发布路由
no-export: 不会发给 EBGP 对等体,但可以发布给联盟(Confederation)EBGP 对等体
no-advertise: 不会发给任何 BGP 对等体,谁都不发
no-export-Subconfed :不会发给 EBGP 对等体,也不会发布给联盟
(Confederation)EBGP 对等体
aa:nn 自定义团体属性
1、基本配置 R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int loop 1 ip add 10.0.100.1 32 int loop 2 ip add 10.0.100.2 32 int loop 3 ip add 10.0.100.3 32 int loop 4 ip add 10.0.100.4 32 int loop 5 ip add 10.0.100.5 32 int g0/0/0 ip add 192.168.12.1 24 q R2: sys sysname R2 int loop 0 ip add 2.2.2.2 24 int g0/0/0 ip add 192.168.12.2 24 int g0/0/1 ip add 192.168.23.2 24 int g0/0/2 ip add 192.168.24.2 24 q R3: sys sysname R3 int loop 3 ip add 3.3.3.3 24 int g0/0/1 ip add 192.168.23.3 24 q R4: sys sysname R4 int loop 0 ip add 4.4.4.4 24 int g0/0/2 ip add 192.168.24.4 24 int g0/0/0 ip add 192.168.45.4 24 q R5: sys sysname R5 int loop 0 ip add 5.5.5.5 24 int g0/0/0 ip add 192.168.45.5 24 q 2.建立BGP R1: [R1]bgp 100 [R1-bgp]router-id 1.1.1.1 [R1-bgp]peer 192.168.12.2 as-n 200 [R1-bgp]net 10.0.100.1 32 [R1-bgp]net 10.0.100.2 32 [R1-bgp]net 10.0.100.3 32 [R1-bgp]net 10.0.100.4 32 [R1-bgp]net 10.0.100.5 32 R2: [R2]bgp 2001 [R2-bgp]router-id 2.2.2.2 [R2-bgp]conf [R2-bgp]confederation id 200 [R2-bgp]confederation peer-as 2002 [R2-bgp]peer 192.168.12.1 as-n 100 [R2-bgp]peer 192.168.24.4 as-n 2001 [R2-bgp]peer 192.168.24.4 next-hop-local [R2-bgp]peer 192.168.23.3 as-n 2002 [R2-bgp]peer 192.168.23.3 next-hop-local R3: [R3]bgp 2002 [R3-bgp]router-id 3.3.3.3 [R3-bgp]confederation id 200 [R3-bgp]confederation peer-as 2001 [R3-bgp]peer 192.168.23.2 as-n 2001 R4: [R4]bgp 2001 [R4-bgp]router-id 4.4.4.4 [R4-bgp]confederation id 200 [R4-bgp]peer 192.168.24.2 as-n 2001 [R4-bgp]peer 192.168.45.5 as-n 300 [R4-bgp]peer 192.168.45.5 next-hop-local 也可以不加next-hop-local。因为这个实验只宣告R1的,R5没有宣告 R5: [R5]bgp 300 [R5-bgp]router-id 5.5.5.5 [R5-bgp]peer 192.168.45.4 as-n 200 [R5-bgp]dis bgp routing-table Total Number of Routes: 5 Network NextHop MED LocPrf PrefVal Path/Ogn *> 10.0.100.1/32 192.168.45.4 0 200 100i *> 10.0.100.2/32 192.168.45.4 0 200 100i *> 10.0.100.3/32 192.168.45.4 0 200 100i *> 10.0.100.4/32 192.168.45.4 0 200 100i *> 10.0.100.5/32 192.168.45.4 0 200 100i 3.advertise-community [R1]bgp 100 [R1-bgp]peer 192.168.12.2 advertise-community [R2]bgp 2001 [R2-bgp]peer 192.168.23.3 advertise-community [R2-bgp]peer 192.168.24.4 advertise-community [R4]bgp 2001 [R4-bgp]peer 192.168.45.5 advertise-community 4.配置策略 第一种:no-export [R1]ip ip-prefix 2 permit 10.0.100.2 32 [R1]route-policy 10 permit node 2 [R1-route-policy]if-match ip-prefix 2 [R1-route-policy]apply community no-export 不发给R5 [R1]route-policy 10 permit node 10 [R1]bgp 100 [R1-bgp]peer 192.168.12.2 route-policy 10 export
R2验证:dis bgp routing-table community
R5验证:dis bgp routing-table 收不到100.2
R5收不到,R3能收到吗? 肯定的,因为是R3是联盟的EBGP
R4也可以去 dis bgp routing-table
如果我希望 100.3 ,R5收不到,R3也收不到 —— no-export-subconfed
第二种:no-export-subconfed R1: 刚才已经调用过了,可以直接配置看 [R1]ip ip-prefix 3 permit 10.0.100.3 32 [R1]route-policy 10 permit node 3 [R1-route-policy]if-match ip-prefix 3 [R1-route-policy]apply community no-export-subconfed
R2:
[R2]dis bgp routing-table community
R3和R5上可以查看是否有没 dis bgp routing-table
R3:
第三种:no-advertise 只告诉R2,让R2别发 100.4 [R1]ip ip-prefix 4 permit 10.0.100.4 32 [R1]route-policy 10 permit node 4 [R1-route-policy]if-match ip-prefix 4 [R1-route-policy]apply community no-advertise 在R2上查看是否有属性, dis bgp routing-table community 在R3R4R5 dis bgp routing-table 验证
第四种:打标记,对符合相同的条件路由做统一处理 希望100.5不要给R4和R5收到 [R1]ip ip-prefix 5 permit 10.0.100.5 32 [R1]route-policy 10 permit node 5 [R1-route-policy]if-match ip-prefix 5 [R1-route-policy]apply community 100:5 直接在R4上收到标记100:5的 拒绝deny 拒绝来我R4,自然也不会去R5。 [R4]ip community-filter 1 permit 100:5 [R4]route-policy 10 deny node 10 [R4-route-policy]if-match community-filter 1 [R4-route-policy]route-policy 10 permit node 20 调用策略:拒绝R2来R4的路由 [R4]bgp 2001 [R4-bgp]peer 192.168.24.2 route-policy 10 import
第五种:internet [R1]ip ip-prefix 1 permit 10.0.100.1 32 [R1]route-policy 10 permit node 6 if-match ip ip-prefix 1 apply community internet internet可以向任何BGP对等体发布路由
最终结果
BGP 路由反射器
内部路由器过多的时候,通过IBGP收到的路由条目不会反射给另一个IBGP,IBGP邻居太多了,两两配置比较麻烦
如何解决IBGP邻接关系过多的情况?
RR 路由反射器 (防环:origintor-id cluster-list)
通过IBGP收到的路由条目,发送给另一个IBGP邻居
3 条规则
①从一个非客户端那里接收到的路由,反射器会将它只传递给所有的客户端,
②从一个客户端那里接收到的路由,反射器会将它传递给所有其它的客户端以及非客户端,
③从 EBGP 对等体那里接收到的路由,反射器会将它传递给所有客户端和非客户端
禁止客户机之间的路由反射
bgp 100
undo reflect between-clients
主要的配置
bgp 100
group 1
peer 2.2.2.2 group 1
peer 1 reflect-client
peer 1 next-hop-local
reflector cluster-id 1
IBGP通过环回口建立,IGP协议为OSPF,EBGP通过物理接口建立
123在组1 456在组2 7不属于任一组 1.基本配置 2.OSPF配置 3.建立IBGP邻居 R2R3是客户端,R1是服务器端(路由反射器) R1: bgp 100 router-id 1.1.1.1 group 1 peer 2.2.2.2 group 1 peer 3.3.3.3 group 1 peer 1 next-hop-local 表示peer 这个组1 peer 1 reflect-client 表示这个组是客户端 reflector cluster-id 1 组1编号 peer 4.4.4.4 as-n 100 peer 4.4.4.4 con loo0 peer 4.4.4.4 next-hop-local 如果按之前的配置,R2需要指3,R3需要指2 现在R2R3 直接经过R1 反射给 R3R2 [R1]bgp 100 net 1.1.1.0 24 R2: bgp 100 router-id 2.2.2.2 peer 1.1.1.1 as-n 100 peer 1.1.1.1 con loo0 不需要指3 net 2.2.2.0 24 R3: bgp 100 router-id 3.3.3.3 peer 1.1.1.1 as-n 100 peer 1.1.1.1 con loo0 net 3.3.3.0 24 [R1]dis bgp peer 发现和 2、3都建立起来了 这是谁发的? dis bgp routing-table 3.3.3.0 路由反射器的功能 [R1-bgp]undo reflect between-clients 关闭路由反射器 R4:只有内部邻居,因此不用加 next-hop-local bgp 100 router-id 4.4.4.4 peer 1.1.1.1 as-n 100 peer 1.1.1.1 con loo0 net 4.4.4.0 24 group 2 peer 5.5.5.5 group 2 peer 6.6.6.6 group 2 peer 2 reflect-client peer 192.168.47.7 as-n 100 R5: bgp 100 router-id 5.5.5.5 peer 4.4.4.4 as-n 100 peer 4.4.4.4 con loo0 net 5.5.5.0 24 r6: BGP 100 router-id 6.6.6.6 peer 192.168.46.4 as-n 100 peer 192.168.47.7 as-n 100 net 6.6.6.0 24 ______ R7 bgp 100 router-id 7.7.7.7 peer 192.168.47.4 as-n 100 net 7.7.7.70 24 R8 bgp 200 router-id 8.8.8.8 peer 192.168.18.1 as-n 100 net 8.8.8.0 24 [R1]bgp 200 peer 192.168.18.1 as-n 100 R1:[R7]net 7.7.7.0 R7是非客户,宣告网段的路由更新能到R4,不能传到R1 R1没有 7.7.7.7 怎么办?如何实现全网互通 R1和R7单独建立个邻居 [R7]bgp 100 peer 1.1.1.1 as-n 100 peer 1.1.1.1 con loo0 [R1]bgp 100 peer 7.7.7.7 as-n 100 peer 7.7.7.7 con loo0 peer 7.7.7.7 next-hop-local
BGP 联盟(Condeferation)
BGP 路由反射器可以用来减少大型 AS 中 IBGP 邻居关系的数量和简化 IBGP 邻居关系的管理和维护,BGP 联盟(Condeferation)也可以用来实现类似的目的
一个 BGP 联盟是一个具有内部层次结构的 AS,一个 BGP 联盟由若干个子 AS组成。对于一个 BGP 联盟,其成员 AS 内部的路由器之间需要建立全互联的IBGP 邻居使用 BGP 路由反射器,而成员之间需要建立 EBGP 邻居关系。从联盟外的 EBGP 对等体来看,整个联盟无异于一个普通的 AS,联盟内部的结构对于联盟外的 EBGP 对等体来说是完全透明的。
bgp 2001
router-id 2.2.2.2
confederation id 200 标识自己的联盟号
confederation peer-as 2002 2003 子成员,联盟内的
先完成以上两步,再去peer 外部EBGP
peer 192.168.12.1 as-n 100
联盟内的EBGP
peer 192.168.25.5 as-n 2003
peer 192.168.25.5 next-hop-local 对于整体也要next-hop-local
R1: bgp 100 router-id 1.1.1.1 peer 192.168.12.2 as-n 200 net 1.1.1.0 24 net 11.11.11.0 24 R2: bgp 2001 router-id 2.2.2.2 confederation id 200 标识自己的联盟号 confederation peer-as 2002 2003 子成员,联盟内的AS 要先配置上面两步再peer外部EBGP peer 192.168.12.1 as-n 100 外部的EBGP peer 192.168.25.5 as-n 2003 内部的EBGP peer 192.168.25.5 next-hop-local 为了让R5能够学习到R2传过来的路由 peer 192.168.23.3 as-n 2002 peer 192.168.23.3 next-hop-local R3: bgp 2002 router-id 3.3.3.3 confederation id 200 confederation peer-as 2001 peer 192.168.23.2 as-n 2001 peer 192.168.34.4 as-n 2002 peer 192.168.34.4 next-hop-local 不起作用 R4: bgp 2002 router-id 4.4.4.4 confederation id 200 peer 192.168.34.3 as-n 2002 R5: bgp 2003 router-id 5.5.5.5 confederation id 200 confederation peer-as 2001 peer 192.168.25.2 as-n 2001 peer 192.168.56.6 as-n 2003 peer 192.168.56.6 next-hop-local 不起作用 R6: bgp 2003 router-id 6.6.6.6 confederation id 200 peer 192.168.56.5 as-n 2003 邻居能够建立,但路由传递有点问题。 在R3和R5上的next-hop-local 不起作用 R3传不到R4,R5传不到R6
学不到,下一跳不可达。为什么下一跳不可达?为什么不起作用?
让R4、R6到达,跑一个OSPF协议,让他们路由表有 下一跳的网段。
[R2]ospf
area 0
net 192.168.23.2 0.0.0.0
net 192.168.25.2 0.0.0.0
R3:
ospf
area 0
net 192.168.23.3 0.0.0.0
net 192.168.34.3 0.0.0.0
R4:
ospf
area 0
net 192.168.34.4 0.0.0.0
R5:
ospf
area 0
net 192.168.25.5 0.0.0.0
net 192.168.56.5 0.0.0.0
R6:
ospf
area 0
net 192.168.56.6 0.0.0.0
结果验证:
若公司网络规模需要扩大,则一般只需要在相应的成员 AS 中添加路由器并进行相关的配置即可,配置工作量远远小于不使用 BGP 联盟的情形。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !