| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> BGP基础 -> 正文阅读 |
|
[网络协议]BGP基础 |
高级距离矢量协议 属于EGP协议 用于AS间数据传输 无类协议classless BGP报文封装 Layer2 |ipv4|TCP|BGP|FCS 179 帧头 |ip|tcp传输|载荷|帧尾?? 基于tcp目的端口179源端口随机 只支持单播 建立BGP时只能纯手工 默认不支持ECMP 运用场景(双宿主情况下,内外接多根外线外网) Igp??? 路由器逐跳 hop-by-hop Egp? 一个AS就是一个大路由器 AS-by-AS BGP的三张表 ???? 邻居表 ?????? BGP表(拓扑表) ???? 路由表 通过交互open建立邻居 只发一次 通过交互keepalive维护邻居关系60s一次 三倍keepalive时间内没有收到交互邻居关系down BGP默认不会产生任何路由 只支持触发更新(增量更新) 增量更新Update用于做路由通告和路由撤销 警报notification 用来报错 一旦出现邻居关系自动重置 Route refresh? 路由刷新 External? BGP???? EBGP?? 外部BGP? AS间传输? 一般只能直连建立EBGP邻居 Internal? BGP???? IBGP??? 内部BGP? AS内传输? 可以非直连建立IBGP邻居(建议使用环回口建立) 本地产生BGP路由 ? 1. 宣告 2. 引入(重分发) ?? 加入到本地BGP表中 新出现的BGP路由会继承原始路由的原始下一跳 (0.0.0.0 代表下一跳不存在) ?? 如果本地BGP表里的路由下一跳位全零的地址发送给任何邻居下一跳都会变更为针对邻居的更新源地址 ?? 本地BGP表里包含下一跳的地址 发送给IBGP邻居时下一跳不变 发送给EBGP邻居时下一跳变更为针对邻居的更新源地址 通过邻居收到的 IBGP路由 只能通告给EBGP邻居 不能通告给其他IBGP邻居(BGP的水平分割)下一跳改变 EBGP路由 可以通告给任何其他邻居 通告给IBGP邻居时下一跳不变 通告给EBGP邻居时下一跳改变 next-hop-self解决下一跳不可达问题 MPLS多协议标签交换 AS-Path 用于存放AS号 收到一条EBGP路由查看AS-Path字段中是否包含自身AS号 包含则丢弃不包含则接收(EBGP水平分割) 保证open报文正常交互 需要修改更新源 IBGP同步原则 (收到一条IBGP路由且该路由通过其他IGP协议学到过相同路由才可加表) BGP特殊下一跳 ????? 去往上游邻居的下一跳地址和去往下游邻居的下一跳地址在同一个ip子网段内 ????? 自动把路由下一跳设置为去往上游邻居的下一跳地址 BGP只支持MD5双边认证 自动汇总 主类汇总 ?? 精确network 子网 mask 掩码 (精确宣告无视自动汇总) ? 主类network 主类地址段 (可以跟mask但是会被隐藏)只要有属于该主类条目的任意明细存在 执行自动汇总 不会继承下一跳度量值MED 恒为0( 0.0.0.0) ?? 重分发 重分发任何路由条目 自动汇总会把路由条目汇总为主类网络 下一跳 MED 不会继承 手工汇总 ?? 在引入前就将本地明细路由汇总后 再引入BGP(条件明细路由没有被发布进BGP 来自相同信源路由器) ?? aggregate ?? BGP表中要包含被汇总的明细路由 BGP表 * 可以加表 可以给邻居传递 r 不能加表 可以给邻居传递 s 不能加表 不可以给邻居传递 BGP属性 公认属性 (公认强制) 所有厂商都能识别 路由必须携带的属性 ????? Origin???? Next-hop???? As-Path 公认自由 可以携带或不携带 可选属性 (厂商私有) 可选传递属性????????? ????????? 完整的可选传递 ????????? 部分的可选传递 可选非传递属性 选路原则 ? 1.如果此路由的下一跳不可达,则忽略此路由。 ? 2.preferred-value值 数值高的优先。 ? 3.local-preference值最高的路由优先 ? 4.聚合路由优于非聚合路由。 ? 5.本地手动聚合路由的优先级高于本地自动聚合的路由。 ? 6.本地通过network命令引入的路由高于本地通过import命令引入的路由。 ? 7.as路径的长度最短的路径优先。 ? 8.比较origin属性,igp优于egp,egp优于incomplete。 ? 9.选择MED较小的路由。 ?10.ebgp路由优于ibgp路由。 ?11.bgp优先选择bgp下一跳的igp度量值最低的路由。 ?????? 以上全部相同则为等价路由,可以负载分担,负载分担时,一下三条原则无效。 (as-path必须一致) ?12.比较cluster-list长度,短者优先。 ?13.比较originator id(如果没有则用route-id比较)选数值较小的路径。 ?14.比较对等体的ip地址,选择IP地址数值最小的路径。 RR路由反射器 RR Server? 服务端 RR Client?? 客户端 每个C都和S建立邻居,C和C之间不建立 S收到路由之后可以反射泛洪给其他C 以及所有建立IBGP的非RR clinet 非客户端发送的路由 反射给所有客户端 RR防环机制 ?Cluster-list???????? 收到路由检查是否有自身的 Cluster id 如果有则丢弃 ?Originator-ID???? 查看路由是否为自身的router-id 是则丢弃 BGP联盟(as下包含多个子as 打破水平分割) BGP团体属性community(打标记) 默认不给携带 ?标准属性(标记)10??? 新型10:10? x:y?????? x(路由产生的as号)y(路由器id) ?扩展属性? 在MPLS VPN环境中可以充当RT |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 2:01:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |