juniper cRPD 容器化路由協定 Daemonac
產品資訊
規格
- 產品名稱:Junos 容器化路由協定守護程序 (cRPD)
- 作業系統:Linux
- Linux 主機:Ubuntu 18.04.1 LTS(代號:bionic)
- Docker版本: 20.10.7
產品使用說明
第 1 步:開始
認識 Junos cRPD
Junos 容器化路由協定守護程式 (cRPD) 是由瞻博網路開發的軟體套件。它為網路設備提供容器化路由功能。
準備
在安裝 Junos cRPD 之前,您需要確保 Linux 主機上安裝並設定了 Docker。
在 Linux 主機上安裝和設定 Docker
請依照以下步驟在 Linux 主機上安裝和設定 Docker
- 在 Linux 主機上開啟終端機。
- 透過執行以下命令更新現有的軟體包清單並下載必要的工具
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- 透過執行以下命令將 Docker 儲存庫新增至進階打包工具 (APT) 來源
sudo apt update
- 使用以下命令更新 apt 套件索引並安裝最新版本的 Docker Engine
sudo apt install docker-ce
- 若要驗證安裝是否成功,請執行命令
docker version
下載並安裝 Junos cRPD 軟體
安裝並執行 Docker 後,您可以按照以下步驟繼續下載並安裝 Junos cRPD 軟體
- 造訪瞻博網路軟體下載頁面。
- 下載 Junos cRPD 軟體包。
- 根據提供的安裝說明安裝下載的軟體包。
常見問題 (FAQ)
- Q:我可以在沒有授權金鑰的情況下使用 Junos cRPD 嗎?
答:是的,您可以透過免費試用開始使用 Junos cRPD,無需許可證金鑰。請參閱「立即開始免費試用」部分以了解更多資訊。
快速入門
Junos 容器化路由協定守護程序 (cRPD)
第 1 步:開始
在本指南中,我們將引導您了解如何在 Linux 主機上安裝和設定 Junos® 容器化路由協定程序 (cRPD) 並使用 Junos CLI 存取它。接下來,我們向您展示如何連接和設定兩個 Junos cRPD 實例並建立 OSPF 鄰接關係。
認識 Junos cRPD
- Junos cRPD 是一種雲端原生容器化路由引擎,支援整個雲端基礎架構的簡單部署。 Junos cRPD 將 RPD 與 Junos OS 解耦,並將 RPD 打包為可在任何基於 Linux 的系統(包括伺服器和白盒路由器)上運行的 Docker 容器。 Docker 是一個開源軟體平台,可以讓建立和管理虛擬容器變得簡單。
- Junos cRPD 支援多種協議,例如 OSPF、IS-IS、BGP、MP-BGP 等。 Junos cRPD 與 Junos OS 和 Junos OS Evolved 共享相同的管理功能,可在路由器、伺服器或任何基於 Linux 的裝置中提供一致的設定和管理體驗。
準備
開始部署前
- 熟悉 Junos cRPD 授權協議。請參閱 cRPD 的 Flex 軟體許可證和管理 cRPD 許可證。
- 設定 Docker hub 帳戶。您需要一個帳戶才能下載 Docker Engine。有關詳細信息,請參閱 Docker ID 帳戶。
在 Linux 主機上安裝和設定 Docker
- 驗證您的主機是否符合這些系統需求。
- Linux 作業系統支援 – Ubuntu 18.04
- Linux核心 – 4.15
- Docker引擎– 18.09.1或更高版本
- 中央處理器– 2個CPU核心
- 記憶 - 4GB
- 磁碟空間 - 10GB
- 主機處理器類型 – x86_64 多核心 CPU
- 網絡接口 – 乙太網路
root-user@linux-host:~# uname -a
Linux ix-crpd-03 4.15.0-147-generic #151-Ubuntu SMP 18 月 19 日星期五 21:19:2021 UTC 86 x64_86 x64_86 x64_XNUMX GNU/Linux
root 使用者@linux 主機:lsb_release -a
沒有可用的 LSB 模組。
經銷商 ID: 烏班圖
描述:Ubuntu 18.04.1 LTS
發布: 18.04
代號:仿生
- 下載 Docker 軟體。
- 更新現有的軟體包清單並下載必要的工具。
root用戶@linux主機:~# apt install apt-transport-https ca-certificates curl 軟體屬性-通用
[sudo] 實驗室密碼
閱讀包裹清單...完成
建構依賴樹
讀取狀態資訊...完成
注意,選擇“apt”而不是“apt-transport-https”
將安裝以下附加軟體包:…………………………………………。 - 將 Docker 儲存庫新增至進階打包工具 (APT) 來源。
rootuser@linux-host:~# add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu 仿生穩定”
得到:1 https://download.docker.com/linux/ubuntu 仿生 InRelease [64.4 kB] 得到:2 https://download.docker.com/linux/ubuntu 仿生/穩定 amd64 軟體包 [18.8 kB] 打:3 http://archive.ubuntu.com/ubuntu 仿生 InRelease
得到:4 http://archive.ubuntu.com/ubuntu 仿生安全 InRelease [88.7 kB] 得到:5 http://archive.ubuntu.com/ubuntu 仿生更新 InRelease [88.7 kB] 得到:6 http://archive.ubuntu.com/ubuntu 仿生/主要翻譯-en [516 kB] 得到:7 http://archive.ubuntu.com/ubuntu 仿生安全/主要翻譯-en [329 kB] 得到:8 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [422 kB] 在 1,528 秒內取得 8 kB (185 kB/s)
閱讀包裹清單...完成 - 使用 Docker 包更新資料庫。
rootuser@linux- 主機:~# apt update
打:1 https://download.docker.com/linux/ubuntu 仿生發布中
打:2 http://archive.ubuntu.com/ubuntu 仿生發布中
打:3 http://archive.ubuntu.com/ubuntu 仿生安全 發布中
打:4 http://archive.ubuntu.com/ubuntu bionic-updates 發布中閱讀軟體包清單...完成
建構依賴樹
讀取狀態資訊...完成 - 更新 apt 套件索引,並安裝最新版本的 Docker Engine。
rootuser@linux-host:~# apt install docker-ce 讀取軟體包清單...完成
建構依賴樹
讀取狀態資訊...完成
將安裝以下附加軟體包:containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin libltdl7 libseccomp2
推薦套餐
aufs-tools cgroupfs-mount | aufs-tools cgroupfs-mount | aufs-tools cgroup-lite 推薦軟體包
小豬 slirp4netns
…………………………………………………………。 - 檢查是否安裝成功。
rootuser@linux-host:~# docker 版本
客戶:Docker 引擎 – 社區
版本:20.10.7年
API版本:1.41年
去版本:go1.13.15
git 提交:f0df350
建成:2 年 11 月 56 日星期三 40:2021:XNUMX
作業系統/架構:Linux/AMD64
情境: 默認
實驗性的 :真的
伺服器:Docker 引擎 – 社區
引擎
版本:20.10.7年
API版本:1.41(最低版本1.12)
去版本:go1.13.15
git 提交:b0f5bc3
建成:2 年 11 月 54 日星期三 48:2021:XNUMX
作業系統/架構:Linux/AMD64
實驗性的: 錯誤的
容器d
版本: 1.4.6
Git提交: d71fcd7d8303cbf684402823e425e9dd2e99285d
朗克
版本:1.0.0-rc95
Git提交: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
docker初始化
版本: 0.19.0
Git提交:de40ad0
- 更新現有的軟體包清單並下載必要的工具。
提示:使用這些指令安裝Python環境和套件所需的元件
- apt-add-儲存庫宇宙
- apt-get 更新
- apt-get 安裝 python-pip
- python -m pip 安裝 grpcio
- python -m pip 安裝 grpcio-tools
下載並安裝 Junos cRPD 軟體
現在您已經在 Linux 主機上安裝了 Docker 並確認 Docker 引擎正在運行,讓我們下載
Junos cRPD 軟體來自瞻博網路軟體下載頁面。
筆記:若要在沒有許可證金鑰的情況下下載、安裝並開始使用 Junos cRPD,請參閱立即開始免費試用。
筆記:您可以向客戶服務中心開啟管理案例以獲得下載軟體的權限。
- 導覽至 Juniper Networks Junos cRPD 支援頁面: https://support.juniper.net/support/downloads/? p=crpd 並點擊最新版本。
- 輸入您的使用者 ID 和密碼並接受瞻博網路最終使用者授權協議。您將被引導至軟體映像下載頁面。
- 直接將鏡像下載到您的主機上。按照螢幕上的指示複製並貼上產生的字串。
rootuser@linux-host:~# wget -O junos-routing-crpd-docker-21.2R1.10.tgz https://cdn.juniper.net/software/
crpd/21.2R1.10/junos-routing-crpd-docker-21.2R1.10.tgz?
SM_USER=user1&__gda__=1626246704_4cd5cfea47ebec7c1226d07e671d0186
正在解析 cdn.juniper.net (cdn.juniper.net)…23.203.176.210
正在連線到 cdn.juniper.net (cdn.juniper.net)|23.203.176.210|:443…已連線。
HTTP 請求已傳送,正在等待回應... 200 OK
長度:127066581(121M)[應用程式/八位元組流] 保存到:“junos-routing-crpd-docker-21.2R1.10.tgz”
朱諾斯路由-crpd-docker-21.2R1.10.tgz 100%
[=================================================== === ======================================>] 121.18M 4.08MB/
34秒後
2021-07-14 07:02:44 (3.57 MB/s) – âjunos-routing-crpd-docker-21.2R1.10.tgzâ 已保存 [127066581/127066581] - 將 Junos cRPD 軟體映像載入到 Docker。
rootuser@linux-host:~# docker load -i junos-routing-crpd-docker-21.2R1.10.tgz
6effd95c47f2:加載層[============================================= === =====>] 65.61MB/65.61MB
……………………………………………………………………………………………………………………………… ..
載入圖片:crpd:21.2R1.10
rootuser@linux-host:~# docker 映像
資料庫 TAG 影像 ID 建立尺寸
crpd 21.2R1.10 f9b634369718 3 週前 374MB - 為配置和 var 日誌建立資料卷。
rootuser@linux-host:~# docker 磁碟區建立 crpd01-config
crpd01-配置
rootuser@linux-host:~# docker 磁碟區建立 crpd01-varlog
crpd01-varlog - 建立 Junos cRPD 實例。在這個前ample,您將其命名為 crpd01。
rootuser@linux-host:~# docker run –rm –detach –name crpd01 -h crpd01 –net=bridge –privileged -v crpd01-
config:/config -v crpd01-varlog:/var/log -it crpd:21.2R1.10
e39177e2a41b5fc2147115092d10e12a27c77976c88387a694faa5cbc5857f1e
或者,您可以在建立 Junos cRPD 實例時為其分配記憶體量。
rootuser@linux-host:~# docker run –rm –detach –name crpd-01 -h crpd-01 –privileged -v crpd01-config:/
config -v crpd01-varlog:/var/log -m 2048MB –記憶體交換=2048MB -it crpd:21.2R1.10
警告:您的核心不支援交換限制功能或未安裝cgroup。記憶體有限,沒有交換。
1125e62c9c639fc6fca87121d8c1a014713495b5e763f4a34972f5a28999b56c
查看 cRPD 資源需求 了解詳情。 - 驗證新建立的容器詳細資訊。
rootuser@linux-host:~# docker ps
容器 ID 映像指令建立狀態
連接埠名稱
e39177e2a41b crpd:21.2R1.10 “/sbin/runit-init.sh” 大約一分鐘前 Up 大約一分鐘 22/tcp, 179/
tcp、830/tcp、3784/tcp、4784/tcp、6784/tcp、7784/tcp、50051/tcp crpd01
rootuser@linux-host:~# docker 統計信息
容器 ID 名稱 CPU % MEM 使用/限制 MEM % 網路 I/O 區塊 I/O PIDS
e39177e2a41b crpd01 0.00% 147.1MiB / 3.853GiB 3.73% 1.24kB / 826B 4.1kB / 35MB 58
容器 ID 名稱 CPU % MEM 使用/限制 MEM % 網路 I/O 區塊 I/O PIDS
e39177e2a41b crpd01 0.00% 147.1MiB / 3.853GiB 3.73% 1.24kB / 826B 4.1kB / 35MB 58
容器 ID 名稱 CPU % MEM 使用/限制 MEM % 網路 I/O 區塊 I/O PIDS
e39177e2a41b crpd01 0.05% 147.1MiB / 3.853GiB 3.73% 1.24kB / 826B 4.1kB / 35MB 58
第 2 步:啟動並運行
造訪 CLI
您可以使用 Junos CLI 指令為路由服務設定 Junos cRPD。以下是存取 Junos CLI 的方法:
- 登入 Junos cRPD 容器。
rootuser@linux-host:~# docker exec -it crpd01 cli - 檢查 Junos 作業系統版本。
rootuser@crpd01> 顯示版本
root@crpd01> 顯示版本
主機名稱:crpd01
模型:cRPD
朱諾斯:21.2R1.10
cRPD 軟體包版本:21.2R1.10 由建構者於 2021-06-21 14:13:43 UTC 構建 - 進入配置模式。
rootuser@crpd01> 配置
進入配置模式 - 為根管理用戶帳戶添加密碼。 輸入明文密碼。
[編輯] rootuser@crpd01# 設定係統 root 認證明文密碼
新密碼
重新輸入新密碼: - 提交配置。
[編輯] rootuser@crpd01# 提交
提交完成 - 使用 CLI 登入 Junos cRPD 實例並繼續自訂設定。
互連 cRPD 實例
現在讓我們了解如何在兩個 Junos cRPD 容器之間建立點對點連結。
在這個前amp在檔案中,我們使用兩個容器 crpd01 和 crpd02,並使用連接到主機上 OpenVswitch (OVS) 橋的 eth1 介面連接它們。我們使用 OVS 橋接器進行 Docker 網絡,因為它支援多主機網路並提供安全通訊。請參考下圖:
- 安裝 OVS 交換器實用程式。
rootuser@linux-host:~# apt-get install openvswitch-switch
sudo] 實驗室密碼:
閱讀包裹清單...完成
建構依賴樹
讀取狀態資訊...完成
將安裝以下附加軟體包:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib openvswitch-common python python-minimal pythonsix
python2.7 python2.7-最小 - 導覽至 usr/bin 目錄路徑並使用 wget 指令下載並安裝 OVS docker。
rootuser@linux-host:~# cd /usr/bin
rootuser@linux-host:~# wget “https://raw.githubusercontent.com/openvswitch/ovs/master/utilities/ovs-docker”
–2021-07-14 07:55:17– https://raw.githubusercontent.com/openvswitch/ovs/master/utilities/ovs-docker
正在解析 raw.githubusercontent.com (raw.githubusercontent.com)…185.199.109.133、185.199.111.133、
185.199.110.133,…
連接到 raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443…已連線。
HTTP 請求已傳送,正在等待回應... 200 OK
長度:8064 (7.9K) [文本/純文本] 保存到:“ovs-docker.1”
ovs-docker.1 100%
[=================================================== === ======================================>] 7.88K –.-KB/
0秒後
2021-07-14 07:55:17 (115 MB/s) – âovs-docker.1â 已保存 [8064/8064] - 更改 OVS 橋上的權限。
rootuser@linux-host:/usr/bin chmod a+rwx ovs-docker - 建立另一個名為 crpd02 的 Junos cRPD 容器。
rootuser@linux-host:~# docker run –rm –detach –name crpd02 -h crpd02 –net=bridge –privileged -v crpd02-
配置:/config -v crpd02-varlog:/var/log -it crpd:21.2R1.10
e18aec5bfcb8567ab09b3db3ed5794271edefe553a4c27a3d124975b116aa02 - 建立一個名為 my-net 的網橋。此步驟在 crpd1 和 crdp01 上建立 eth02 介面。
rootuser@linux-host:~# docker network create –internal my-net
37ddf7fd93a724100df023d23e98a86a4eb4ba2cbf3eda0cd811744936a84116 - 建立 OVS 橋接器並新增具有 eth01 介面的 crpd02 和 crpd1 容器。
rootuser@linux-host:~# ovs-vsctl add-br crpd01-crpd02_1
rootuser@linux-host:~# ovs-docker 新增連接埠 crpd01-crpd02_1 eth1 crpd01
rootuser@linux-host:~# ovs-docker 新增連接埠 crpd01-crpd02_1 eth1 crpd02 - 將 IP 位址新增至 eth1 介面和環回介面。
rootuser@linux-host:~# docker exec -d crpd01 ifconfig eth1 10.1.1.1/24
rootuser@linux-host:~# docker exec -d crpd02 ifconfig eth1 10.1.1.2/24
rootuser@linux-host:~# docker exec -d crpd01 ifconfig lo0 10.255.255.1 網路遮罩 255.255.255.255
rootuser@linux-host:~# docker exec -d crpd02 ifconfig lo0 10.255.255.2 網路遮罩 255.255.255.255 - 登入crpd01容器並驗證介面配置。
rootuser@linux-host:~# docker exec -it crpd01 bash
rootuser@crpd01:/# ifconfig
……
乙太網路1:標誌=4163最大傳輸溫度 1500
inet 10.1.1.1 網路遮罩 255.255.255.0 廣播 10.1.1.255
inet6 fe80::42:acff:fe12:2 prefixlen 64scopeid 0x20
以太 02:42:ac:12:00:02 txqueuelen 0(乙太網路)
RX 封包 24 位元組 2128 (2.1 KB)
RX 錯誤 0 丟棄 0 溢位 0 幀 0
TX 封包 8 位元組 788 (788.0 B)
TX 錯誤 0 丟棄 0 溢位 0 載波 0 衝突 0
…….. - 向 crpd02 容器發送 ping 以確認兩個容器之間的連線。使用crpd1的eth02的IP位址(10.1.1.2)來ping容器。
ping 10.1.1.2 -c 2
PING 10.1.1.2 (10.1.1.2) 56(84) 位元組資料。
來自 64 的 10.1.1.2 個字節:icmp_seq=1 ttl=64 time=0.323 ms
來自 64 的 10.1.1.2 個字節:icmp_seq=2 ttl=64 time=0.042 ms
— 10.1.1.2 ping 統計 —
發送 2 個資料包,接收 2 個資料包,0% 資料包遺失,時間 1018ms
rtt 最小值/平均值/最大值/mdev = 0.042/0.182/0.323/0.141 毫秒
輸出確認兩個容器可以相互通訊。
配置開放最短路徑優先 (OSPF)
現在您有兩個容器 crpd01 和 crpd02,它們已連接並進行通訊。下一步是建立
兩個容器的鄰居鄰接關係。啟用 OSPF 的路由器必須先與其鄰居形成鄰接關係
他們可以與鄰居分享資訊。
- 在 crpd01 容器上設定 OSPF。
[編輯] rootuser@crpd01# 顯示策略選項
政策聲明 adv {
第 1 項 {
從 {
路由過濾器 10.10.10.0/24 精確
}
然後接受
}
}
[編輯] rootuser@crpd01# 顯示協議
ospf {
面積 0.0.0.0 {
接口eth1;
接口lo0.0
}
出口廣告
}
[編輯] rootuser@crpd01# 顯示路由選項
路由器 ID 10.255.255.1;
靜止的 {
路由 10.10.10.0/24 拒絕
} - 提交配置。
[編輯] rootuser@crpd01# 提交
提交完成 - 重複步驟 1 和 2 在 crpd02 容器上設定 OSPF。
rootuser@crpd02# 顯示策略選項
政策聲明 adv {
第 1 項 {
從 {
路由過濾器 10.20.20.0/24 精確;
}
然後接受;
}
}
[編輯] rootuser@crpd02# 顯示路由選項
路由器 ID 10.255.255.2
靜止的 {
路由 10.20.20.0/24 拒絕
}
[編輯] rootuser@crpd02# 顯示協定 ospf
面積 0.0.0.0 {
接口eth1;
接口lo0.0
}
出口廣告; - 使用 show 指令驗證具有直接鄰接關係的 OSPF 鄰居。
rootuser@crpd01> 顯示 ospf 鄰居
地址 介面 狀態 ID Pri Dead
10.1.1.2 eth1 完整 10.255.255.2 128 38
rootuser@crpd01> 顯示 ospf 路由
拓撲預設路由表:
前綴路徑 路由 NH 公制 NextHop Nexthop
類型 類型 類型 介面位址/LSP
10.255.255.2 AS 內部 BR IP 1 eth1 10.1.1.2
10.1.1.0/24 內網IP 1 eth1
10.20.20.0/24 Ext2 網路 IP 0 eth1 10.1.1.2
10.255.255.1/32 內網IP 0 lo0.0
10.255.255.2/32 內網IP 1 eth1 10.1.1.2
輸出顯示容器本身的環回位址以及與其直接相鄰的任何容器的環回位址。輸出確認 Junos cRPD 已建立 OSPF 鄰居關係並已了解其位址和介面。
View Junos cRPD 核心 Files
當一個核心 file 生成後,您可以在 /var/crash 資料夾中找到輸出。生成的核心 file儲存在託管 Docker 容器的系統上。
- 切換到崩潰的目錄 files 被儲存。
rootuser@linux-host:~# cd /var/crash - 列出崩潰情況 files.
rootuser@linux-host:/var/crash# ls -l
總計 32
-rw-r—– 1 root root 29304 14月15日14:0 _usr_bin_unattended-upgrade.XNUMX.crash - 確定核心位置 files.
rootuser@linux-host:/var/crash# sysctl kernel.core_pattern
kernel.core_pattern = |/bin/bash -c “$@” — eval /bin/gzip > /var/crash/%h.%e.core.%t-%p-%u.gz
第三步:繼續
恭喜!您現在已經完成了 Junos cRPD 的初始設定!
接下來是什麼?
現在您已經配置了 Junos cRPD 容器並在兩個容器之間建立了通信,接下來您可能需要配置以下一些內容。
如果你想 | 然後 |
下載、啟動和管理您的軟體許可證,以解鎖 Junos cRPD 的附加功能 | 看 cRPD Flex 軟體許可證 和 管理 cRPD 許可證 |
查找有關安裝和配置 Junos cRPD 的更多深入信息 | 看 第一天:使用 cRPD 的雲端原生路由 |
查看有關 Junos cRPD 與 Docker Desktop 的部落格文章。 | 看 Docker 桌面上的瞻博網路 cRPD 20.4 |
設定路由和網路協定 | 看 路由和網路協定 |
了解瞻博網路雲端原生路由解決方案 | 觀看影片 雲端原生路由結束view |
一般資訊
以下是一些優秀的資源,可協助您將 Junos cRPD 知識提升到新的水平
如果你想 | 然後 |
尋找 Junos cRPD 的深入產品文檔 | 看 cRPD 文件 |
瀏覽適用於 Junos OS 的所有文檔 | 訪問 Junos 操作系統文檔 |
隨時了解新功能、變更功能和已知功能 請參閱 Junos OS 發行說明和已解決的問題 | 查看 Junos OS 發行說明 |
- Juniper Networks、Juniper Networks 標誌、Juniper 和 Junos 是 Juniper Networks, Inc. 在
- 美國和其他國家。所有其他商標、服務標記、註冊標記或註冊服務標記均為其各自所有者的財產。瞻博網路對本文檔中的任何不準確之處不承擔任何責任。
- Juniper Networks 保留更改、修改、轉讓或以其他方式修訂本出版物的權利,恕不另行通知。
- 版權所有 © 2023 瞻博網路公司。修訂版 01,2021 年 XNUMX 月。
文件/資源
![]() |
juniper cRPD 容器化路由協定 Daemonac [pdf] 使用者指南 cRPD 容器化路由協定 Daemonac、cRPD、容器化路由協定 Daemonac、路由協定 Daemonac、協定 Daemonac |