BGP路由表:
- *:表示有效的
- 对勾:表示最优的.
BGP报文:
- open:协商BGP的一些参数
- keepalive保活报文(维持tcp会话)
- update增加或者减少BGP的路由报文
- notification当一个错误在BGP被检测出来的时候,会触发notification报文,一旦BGP对端收到该报文,会重置TCP会话
- refrash 刷新所有的BGP的路由条目
BGP邻居状态:
- idle:你向别人发起neighbor,别人还未向你发起neighbor
- connect:双方都发起neighbor,尝试去建立TCP连接,不一定成功
- open sent :成功建立TCP了连接,并成功发送了一个open报文
- active:TCP建立失败,不停的建立连接
- open confirm :检查收到对端的open参数匹不匹配
- established :open合适,建立成功。
2-6状态如果其中一个出错了,瞬间回到1状态。
IBGP:
在向IBGP邻居传递IBGP路由的时候不会更改下一跳
会导致R1能收到关于R3的IBGP路由,但是不加到路由表中。
解决方案:
conf-router#neighbor 1.1.1.1 next-hop-self
在向1.1.1.1 邻居更新路由的时候会将路由的下一跳指向自己
IBGP内无所谓(IBGP地址互知),主要是EBGP内互传路由需要更改下一跳为自
修改EBGP的跳数(即建立邻居的范围):
Conf-router#neighbor 1.1.1.1 ebgp-multihop 2
在EEGP中建立TCP时的SYN的TTL默认是1,从而导致R2和R3不修改跳数2.2.2.2 无法与3.3.3.3 成功建立,即使存在路由。
还有一种方法就是关闭直连检测,直连检测是防御别人攻击的。
EBGP默认跳数是1,防止别人攻击。
又例如:
BGP属性:
BGP在传递路由条目的时候,带的一些路由的信息。
公认属性:
公认必尊:
所有运行BGP协议的系统都要必须识别和支持的属性。
- AS-path所经过的路径
路由到达一个目的地所经过的一系列AS号码的有序列表
当BGP将一条路由通告其他AS时,便会把自己的AS号添加在AS- PATH列表的最前面
- Origin 包括IGP 和EGP和‘?’,属性定义了路由信息的来源
IGP:network产生的
表明路由信息产生于AS内部
‘ ?’:表示来源未知
向BGP里重分布路由的时候,前面就是?。
EGP:表示是从EGP学来的,不过现在不存在EGP了
3.Next-hop:下一跳具体的位置
公认任意:可选,只要携带就必须认识
1.local-preference
只在本AS生效
越大越优先
可选属性:可选属性并不要求所有BGP协议的系统都识别
可选过度:即使你不认识,也要接受并转发给邻居
可选非过渡:可以选择不传一定的属性
硬重置:
clear ip bgp *
直接断开该设备和其他所有BGP的邻居TCP会话
软重置:
R1#clear ip bgp 10.0.12.2 in 10.0.12.2
邻居收到了一个flresh报文,因此邻居重新发送BGP路由
R1#clear ip bgp 10.0.12.2 out
直接重新向10.0.12.2 发送更新
注意:
软重置不会中断BGP的TCP会话,而且软重置时针对特定的邻居起作用
在router-map中设置BGP的weight
(weight值越大同目的地路由越优先选择)
conf-route-map#set weight 200
先比weight值再比local-preference,谁大谁优先
在router-map的一个表中如果什么都不设置,则默认匹配所有。
BGP选路(优先级由上至下由重至轻):
- 比较weight
- 比较local-preference
- 遵循水平分割:同一个目的相同的路由从哪里收到过就不再发向那里
相同的weight和local-preference下,优先选择本地的路由。
###注意:当出现水平分割时,丢弃非直连路由,不丢弃直连路由
- 当1,2相同的时候,优选AS-path经过的AS更少的
- IGP
- metric越小,越优先
- EBGP的路由优先级大于IBGP的路由
配置BGP属性:
- local-preference 控制我出AS时的路径,设置我进来的路由的metric
- AS-path
- Origin
- MED属性控制的是我相邻的AS进入本AS的路径(相邻的AS和本AS 有多个接口相连),MED=metric
即,设置发放的路由metric
local-preference与MED功能正好相反
在router-map中增加AS-path
Conf-route-map#set as-path prepend 500 600
在BGP中重分布直连的路由:
conf-router#redistribute connected
在router-map中设置起源:
conf-router-map#set origin igp
在router-map中取消隐式拒绝:
conf-router#route-map jazzi 20 然后什么都不做就行了
BGP中只匹配掩码16-18:
conf# ip prefix-list qwe permit 0.0.0.0/0 ge 16 le 18
应用到接口上:
conf-router#neighbor 10.0.13.1 prefix-list qwe out