HCIP-17 BGP基礎2

HCIP-17? BGP基礎2

一、bgp的路由黑洞問題

1.bgp的同步功能

ipv4-family unicast? IPV4的地址簇

undo synchronization? 關閉BGP同步功能

bgp的同步功能原理

當邊界路由器從ibgp鄰居收到一條路由后,會使用該路由和igp路由表進行比較。

如果在igp路由表中存在該路由即BGP同步

如果在igp路由表中不存在該路由即BGP不同步

如果bgp同步,邊界路由器將會把該路由條目傳遞給其他的ebgp鄰居。

如果bgp不同步,邊界路由器將不會把該路由條目傳遞給其他ebgp鄰居。

2.將bgp路由引入igp

不推薦。

原理上可以,但是,從路由承載能力上不行

3.as內部采用全互聯模式(fullmesh)

4.使用gre隧道技術

[R2]int Tunnel 0/0/0

[R2-Tunnel0/0/0]ip add 24.1.1.2 24

[R2-Tunnel0/0/0]tunnel-protocol gre

[R2-Tunnel0/0/0]source g0/0/0

[R2-Tunnel0/0/0]destination 34.1.1.4

[R4]int Tunnel 0/0/0

[R4-Tunnel0/0/0]ip add 24.1.1.4 24

[R4-Tunnel0/0/0]tunnel-protocol gre

[R4-Tunnel0/0/0]source g0/0/1

[R4-Tunnel0/0/0]destination 23.1.1.2

5.通過lsp隧道解決路由黑洞

二、bgp的路由是如何產生的

1.通過network宣告路由表中已存在的路由條目

2.import-route 引入路由

被引入的路由需要在全局路由表加表。

3.自動聚合產生的路由條目

只能聚合import-route進來的路由條目,進行主類聚合。

被聚合的明細路由會被抑制。無法進行傳遞,只會傳輸聚合后的主類的路由

4.手動聚合產生

[R1-bgp]aggregate 172.16.2.0 255.255.254.0 detail-suppressed?? 手動抑制明細。

三、bgp報文open報文

open報文

它就相當于OSPF里面的hello報文。用于建立bgp的鄰居的連接,協商bgp參數的報文

update報文用于bgp鄰居之間交互路由信息及路由屬性的報文。

notification報文,差錯報文。用于報錯的信息的傳遞,并且中斷鄰居關系的報文。

keepalive報文用于保持鄰居連接的報文

refresh報文用于在改變策略之后。請求鄰居重新發送路由信息,并且只有支持刷新能力的設備才能響應這個報文

四、bgp的鄰居狀態機

1.idle叫初始狀態,bgp初始狀態。

在進入這個idle狀態時,會觸發華為的start事件,這個事件時間為32秒。

在這個時間之后,才開始建立該peer的三次握手。建立TCP連接,在發送了syn以后。

進入到connect狀態

常見的幾種idle狀態的原因:

如果沒有去往該peer的路由,就無法發送syn。此時,該peer會一直卡在idle狀態。

收到了notification報文之后會回退到idle狀態。

手動掛起鄰居:在鄰居表中表現為idle (admin)。

2.connect狀態(連接狀態)

在這個狀態下,bgp會啟動連接重傳定時器(connect retry默認為32秒鐘),用于等待TCP完成三次握手。

向鄰居發起syn后,就會進入到這個狀態。在這個狀態完成TCP三次握手。

如果TCP三次握手完成,則向該鄰居發送open報文,然后轉到opensent狀態。

如果TCP三次握手失敗,將會把這個peer狀態改為active。

如果重傳定時器超時,bgp沒有收到鄰居的響應。那么會卡在connect狀態

常見的幾種connect狀態原因。

鄰居沒有給我響應。

我發出的syn在沿途中遇到了阻礙,沒有到達對方。沿途路由不可達

ebgp鄰居沒有配置ttl多跳。

總結:卡在connect狀態其實就是鄰居沒有給我響應。

3.active狀態(活躍的狀態)

當TCP三次握手失敗時。才會進入這個狀態。

如果在多次嘗試下,TCP三次握手成功了。那么bgp會向該peer發送open報文。關閉重傳定時器,轉至opensent狀態

如果在多次嘗試下,TCP三次握手仍然失敗,那么bgp會將該peer停留在active狀態。

如果重傳定時器32秒超時,且沒有得到該peer的響應那么會轉至connect狀態

4.opensent狀態(open報文已發送狀態)

在這個狀態下。bgp已經向該peer發送了open報文,在等待對方給我發送open報文

如果收到了對方發來的open報文并且參數協商成功,則會向該pere發送keepalive報文,然后轉到openconfirm狀態

如果收到了對方發來的open報文參數,協商失敗,則會向該pere發送notification報文,然后轉到idle狀態。

5.openconfirm狀態

在這個狀態下bgp等待對方的keepalive報文。

如果收到了對方發來的keepalive報文則轉換為establisheded。

在這個狀態下bgp如果收到了notification報文,則轉換為idel狀態

6.Establisheded(鏈接已建立),

在這個狀態下說明鄰居已經建立完畢,這個狀態下可以交互的報文:

update;Notification;keepalive;Route-refresh

如果在這個狀態下收到正確的update和keepalive報文。bgp會認為鄰居處于正常狀態,繼續保持。

如果在這個狀態下收到了錯誤的update.和keepalive,那么bgp會認為鄰居處于異常狀態,會發送notification報文,轉到idle狀態。

Route-refresh報文的發送不影響鄰居關系。

七、bgp的報文細節

主要由兩部分組成,分別是bgp報文頭和具體報文內容

bgp報文頭:

Marker:占用16個字節。默認為全f。用于檢查bgp鄰居頭部的消息是否完整

Length:占用兩字節,用于描述bgp報文的總長度,包括報文頭+具體報文內容。

type是用于描述當前bgp報文類型的分為12345。

1.具體報文:

version:bgp版本。默認都是四,

my as用于描述發出該open報文的路由器所屬as號,同時校驗對端的as號和本地配置的as號是否一致

Hold time是描述路由器鄰居失效時間的。默認情況為keepalive時間的3倍。

當兩端holdtime時間不一致時,需要協商為數值較低的執行

<R1>dis bgp peer 12.1.1.2 verbose 查看該鄰居的具體信息。

BGp id描述發出該open報文的路由器bgp router ID

Optional parameter length? :bgp協商參數字段長度

Optional parameters :bgp協商參數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900967.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900967.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900967.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode_15. 三數之和_java

15. 三數之和https://leetcode.cn/problems/3sum/ 1、題目 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k &#xff0c;同時還滿足 nums[i] nums[j] nums[k] 0 。請你返回所有和為 0 且不重復的三元組。…

Open Interpreter:重新定義人機交互的開源革命

引言 在人工智能技術蓬勃發展的今天&#xff0c;人機交互的方式正經歷著前所未有的變革。Open Interpreter&#xff0c;作為一個開源項目&#xff0c;正在重新定義我們與計算機的互動方式。它允許大型語言模型&#xff08;LLMs&#xff09;在本地運行代碼&#xff0c;通過自然…

【JavaScript】錯誤處理與調試

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;HTML CSS JavaScript 文章目錄 1. JavaScript 錯誤處理基礎1.1 錯誤類型1.2 try...catch 語句 2. 錯誤拋出與自定義錯誤2.1 throw 語句2.2 自定義錯誤類型 3. 異步錯誤處理3.1 Promise 錯誤處理3.2 async/await 錯誤處理 4. 調試…

算法基礎模板

高精度加法 #include <bits/stdc.h> using namespace std; const int N10005; int A[N],B[N],C[N],al,bl,cl; void add(int A[],int B[],int C[]) {for(int icl-1;~i;i--){C[cl]A[i]B[i];C[cl1]C[cl]/10;C[cl]%10;}if(C[cl])cl; } int main() {string a,b;cin>>a&…

自行搭建一個Git倉庫托管平臺

1.安裝Git sudo apt install git 2.Git本地倉庫創建&#xff08;自己選擇一個文件夾&#xff09; git init 這里我在 /home/test 下面初始化了代碼倉庫 1. 首先在倉庫中新建一個txt文件&#xff0c;并輸入一些內容 2. 將文件添加到倉庫 git add test.txt 執行之后沒有任何輸…

[MySQL]數據庫與表創建

歡迎來到啾啾的博客&#x1f431;。 這是一個致力于構建完善 Java 程序員知識體系的博客&#x1f4da;。 它記錄學習點滴&#xff0c;分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 歡迎評論交流&#xff0c;感謝您的閱讀&#x1f604;。 本篇簡單記錄…

相機回調函數為靜態函數原因

在注冊相機SDK的回調函數時&#xff0c;是否需要設置為靜態函數取決于具體SDK的設計要求&#xff0c;但通常需要遵循以下原則&#xff1a; 1. 必須使用靜態函數的情況 當相機SDK是C語言接口或要求普通函數指針時&#xff0c;回調必須聲明為靜態成員函數或全局函數&#xff1a;…

《Vue Router實戰教程》4.路由的匹配語法

歡迎觀看《Vue Router 實戰&#xff08;第4版&#xff09;》視頻課程 路由的匹配語法 大多數應用都會使用 /about 這樣的靜態路由和 /users/:userId 這樣的動態路由&#xff0c;就像我們剛才在動態路由匹配中看到的那樣&#xff0c;但是 Vue Router 可以提供更多的方式&#…

Debezium報錯處理系列之第128篇:增量快照報錯java.lang.OutOfMemoryError: Java heap space

Debezium報錯處理系列之第128篇:增量快照報錯java.lang.OutOfMemoryError: Java heap space 一、完整報錯二、錯誤原因三、解決方法Debezium從入門到精通系列之:研究Debezium技術遇到的各種錯誤解決方法匯總: Debezium從入門到精通系列之:百篇系列文章匯總之研究Debezium技…

通過MCP+數據庫實現AI檢索和分析

通過 MCP&#xff08;Multi-Agent Collaboration Platform&#xff0c;多智能體協作平臺&#xff09; 數據庫&#xff0c;實現一個AI檢索和分析系統。 一、系統目標 實現通過 AI 多智能體對結構化&#xff08;數據庫&#xff09;和非結構化&#xff08;文檔、文本&#xff09…

【教學類-102-08】剪紙圖案全套代碼08——Python點狀虛線優化版本02(有空隙)+制作1圖2圖6圖24圖

背景需求 代碼實現了點狀虛線的全套流程,但是圖片中主體圖案和虛線與左右兩邊粘連。 【教學類-102-07】剪紙圖案全套代碼07——Python點狀虛線優化版本01(無空隙)+制作1圖2圖6圖24圖-CSDN博客文章瀏覽閱讀665次,點贊11次,收藏11次。【教學類-102-07】剪紙圖案全套代碼07…

循環神經網絡 - 長短期記憶網絡

在之前的博文中&#xff0c;我們介紹了循環神經網絡的長程依賴問題及改進方案&#xff0c;可以參考&#xff1a;循環神經網絡 - 長程依賴問題及改進方案-CSDN博客 但是改進方案只是可以緩解梯度消失&#xff0c;并不能徹底解決梯度爆炸問題和記憶容量(Memory Capacity)問題。 …

LLM應用開發(七)--記憶

1.LangChain記憶模塊 底層原理&#xff1a;在最新一次問題時&#xff0c;帶上前面的人機對話歷史內容 1.1.具體方式 緩沖記憶 緩沖窗口記憶&#xff08;限定存儲會話信息次數&#xff09; 令牌緩沖記憶 摘要總結記憶 摘要緩沖混合記憶 向量存儲庫記憶

Unity VideoPlayer 播放無聲音

增加一個videoPlayer下掛&#xff0c;audiorSource腳本 this.videoPlayer.EnableAudioTrack(0, true); this.videoPlayer.audioOutputMode VideoAudioOutputMode.AudioSource; this.videoPlayer.SetTargetAudioSource(0, this.videoPlayer.GetComponent<AudioSource>()…

AGI|AutoGen入門食用手冊,搭建你的智能體流水線

目錄 1. AutoGen簡介 主要特點 2.快速安裝 3. 相關概念 Agent Roles and Conversations 4.多代理對話 4.1 Agents 例子: 兩個對話代理 4.2 支持多樣化的對話模式 1. AutoGen簡介 AutoGen 是一個開源編程框架&#xff0c;用于構建AI代理并促進多個代理之間的合作以解…

基于ImGui+FFmpeg實現播放器

基于ImGuiFFmpeg實現播放器 演示&#xff1a; ImGui播放器 繼續研究FFmpeg&#xff0c;之前做了一個SDL的播放器&#xff0c;發現SDL的可視化UI界面的功能稍微差了點&#xff0c;所以今天我們換了一個新的工具&#xff0c;也就是ImGui。 ImGui官方文檔&#xff1a;https://g…

ES6變量聲明:let、var、const全面解析

一、引言 ECMAScript 6&#xff08;簡稱 ES6&#xff09;的發布為 JavaScript 帶來了許多革命性的變化&#xff0c;其中變量聲明方式的更新尤為重要。let、var和const成為開發者日常編碼中頻繁使用的關鍵字。 本文將深入解析這三種聲明方式的核心特性、區別及最佳實踐&#xff…

Java基礎 - 反射(2)

文章目錄 示例5. 通過反射獲得類的private、 protected、 默認訪問修飾符的屬性值。6. 通過反射獲得類的private方法。7. 通過反射實現一個工具BeanUtils&#xff0c; 可以將一個對象屬性相同的值賦值給另一個對象 接上篇&#xff1a; 示例 5. 通過反射獲得類的private、 pro…

FCOS目標檢測

一、模型框架 FCOS采用的網絡架構和RetinaNet一樣&#xff0c;都是采用FPN架構&#xff0c;如圖2所示&#xff0c;每個特征圖后是檢測器&#xff0c;檢測器包含3個分支&#xff1a;classification&#xff0c;regression和center-ness。 對于特征圖Fi∈RHWC&#xff0c;其相對…

Java基礎 - 泛型(常見用法)

文章目錄 泛型類泛型方法泛型類派生子類示例 1&#xff1a;子類固定父類泛型類型&#xff08;StringBox 繼承自 Box<String>&#xff09;示例 2&#xff1a;子類保留父類泛型類型&#xff08;AdvancedBox<T> 繼承自 Box<T>)示例 3&#xff1a;添加子類自己的…