杜松徽标

juniper cRPD 容器化路由协议 Daemonac

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

  1. 在 Linux 主机上打开终端。
  2. 通过运行以下命令更新现有的软件包列表并下载必要的工具
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
  3. 通过执行以下命令将 Docker 存储库添加到高级打包工具 (APT) 源
    sudo apt update
  4. 使用以下命令更新 apt 包索引并安装最新版本的 Docker Engine
    sudo apt install docker-ce
  5. 要验证安装是否成功,请运行命令
    docker version

下载并安装 Junos cRPD 软件
安装并运行 Docker 后,您可以按照以下步骤继续下载并安装 Junos cRPD 软件

  1. 访问瞻博网络软件下载页面。
  2. 下载 Junos cRPD 软件包。
  3. 根据提供的安装说明安装下载的软件包。

常见问题 (FAQ)

  • 问:我可以在没有许可证密钥的情况下使用 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

  1. 验证您的主机是否满足这些系统要求。
    • Linux 操作系统支持 – Ubuntu 18.04
    • Linux 内核 – 4.15
    • Docker 引擎– 18.09.1或更高版本
    • CPU– 2个CPU核心
    • 记忆 - 4GB
    • 磁盘空间 - 10GB
    • 主机处理器类型 – x86_64 多核 CPU
    • 网络接口 – 以太网
      root 用户@linux 主机:~# 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 模块。
      发行人编号: 乌班图
      描述:Ubuntu 18.04.1 LTS
      发布:18.04
      代号:仿生
  2.  下载 Docker 软件。
    •  更新现有的软件包列表并下载必要的工具。
      root用户@linux主机:~# apt 安装 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 bionic 正式发布 [64.4 kB] 得到:2 https://download.docker.com/linux/ubuntu 仿生/稳定 amd64 软件包 [18.8 kB] :3 http://archive.ubuntu.com/ubuntu 仿生发布
      得到:4 http://archive.ubuntu.com/ubuntu bionic-security 正在发布 [88.7 kB] 得到:5 http://archive.ubuntu.com/ubuntu bionic-updates 发布中 [88.7 kB] 得到:6 http://archive.ubuntu.com/ubuntu 仿生/主要翻译-en [516 kB] 得到:7 http://archive.ubuntu.com/ubuntu bionic-security/main 翻译-en [329 kB] 得到:8 http://archive.ubuntu.com/ubuntu 仿生更新/主要翻译-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
      Go 版本:go1.13.15
      git 提交:f0df350
      建造:2 年 11 月 56 日星期三 40:2021:XNUMX
      操作系统/架构:Linux/AMD64
      语境: 默认
      实验 :真的
      服务器:Docker 引擎 – 社区
      引擎
      版本
      :20.10.7
      API 版本:1.41(最低版本1.12)
      Go 版本:go1.13.15
      git 提交:b0f5bc3
      建造:2 年 11 月 54 日星期三 48:2021:XNUMX
      操作系统/架构:Linux/AMD64
      实验: 错误的
      容器
      版本: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,请参阅立即开始免费试用。
笔记:您可以向客户服务中心打开管理案例以获得下载软件的权限。

  1. 导航至 Juniper Networks Junos cRPD 支持页面: https://support.juniper.net/support/downloads/? p=crpd 并单击最新版本。
  2. 输入您的用户 ID 和密码并接受瞻博网络最终用户许可协议。您将被引导至软件映像下载页面。
  3. 直接将镜像下载到您的主机上。按照屏幕上的说明复制并粘贴生成的字符串。
    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]
  4. 将 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
  5. 为配置和 var 日志创建数据卷。
    rootuser@linux-host:~# docker 卷创建 crpd01-config
    crpd01-配置
    rootuser@linux-host:~# docker 卷创建 crpd01-varlog
    crpd01-varlog
  6. 创建 Junos cRPD 实例。在这个前ample,您将其命名为 crpd01。
    rootuser@linux-host:~# docker run –rm –detach –name crpd01 -h crpd01 –net=bridge –privileged -v crpd01-
    配置:/配置-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 资源需求 了解详情。
  7. 验证新创建的容器详细信息。
    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 的方法:

  1. 登录到 Junos cRPD 容器。
    rootuser@linux-host:~# docker exec -it crpd01 cli
  2. 检查 Junos 操作系统版本。
    rootuser@crpd01> 显示版本
    root@crpd01> 显示版本
    主机名:crpd01
    模型:cRPD
    朱诺斯:21.2R1.10
    cRPD 软件包版本:21.2R1.10 由构建者于 2021-06-21 14:13:43 UTC 构建
  3. 进入配置模式。
    rootuser@crpd01> 配置
    进入配置模式
  4. 为根管理用户帐户添加密码。 输入明文密码。
    [编辑] rootuser@crpd01# 设置系统 root 认证明文密码
    新密码
    重新输入新密码:
  5. 提交配置。
    [编辑] rootuser@crpd01# 提交
    提交完成
  6. 使用 CLI 登录到 Junos cRPD 实例并继续自定义配置。

互连 cRPD 实例
现在让我们了解如何在两个 Junos cRPD 容器之间构建点对点链接。

在此例中amp在文件中,我们使用两个容器 crpd01 和 crpd02,并使用连接到主机上 OpenVswitch (OVS) 桥的 eth1 接口连接它们。我们使用 OVS 桥接器进行 Docker 网络,因为它支持多主机网络并提供安全通信。请参考下图:

juniper-cRPD-容器化-路由-协议-Daemonac-iage-01

  1. 安装 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-最小
  2. 导航到 usr/bin 目录路径并使用 wget 命令下载并安装 OVS docker。
    rootuser@linux-host:~# cd /usr/bin
    rootuser@linux-host:~# wgethttps://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]
  3. 更改 OVS 桥上的权限。
    rootuser@linux-host:/usr/bin chmod a+rwx ovs-docker
  4. 创建另一个名为 crpd02 的 Junos cRPD 容器。
    rootuser@linux-host:~# docker run –rm –detach –name crpd02 -h crpd02 –net=bridge –privileged -v crpd02-
    配置:/配置-v crpd02-varlog:/var/log-it crpd:21.2R1.10
    e18aec5bfcb8567ab09b3db3ed5794271edefe553a4c27a3d124975b116aa02
  5. 创建一个名为 my-net 的网桥。此步骤在 crpd1 和 crdp01 上创建 eth02 接口。
    rootuser@linux-host:~# docker network create –internal my-net
    37ddf7fd93a724100df023d23e98a86a4eb4ba2cbf3eda0cd811744936a84116
  6. 创建 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
  7. 将 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
  8. 登录crpd01容器并验证接口配置。
    rootuser@linux-host:~# docker exec -it crpd01 bash
    rootuser@crpd01:/# ifconfig
    …..
    eth1:flags=4163 mtu 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
    ……..
  9. 向 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 时间 = 0.323 ms
    来自 64 的 10.1.1.2 个字节:icmp_seq = 2 ttl = 64 时间 = 0.042 ms
    — 10.1.1.2 ping 统计 —
    已发送 2 个数据包,已接收 2 个数据包,0% 数据包丢失,耗时 1018 毫秒
    rtt 最小值/平均值/最大值/mdev = 0.042/0.182/0.323/0.141 毫秒
    输出确认两个容器可以相互通信。

配置开放最短路径优先 (OSPF)
现在您有两个容器 crpd01 和 crpd02,它们已连接并进行通信。下一步是建立
两个容器的邻居邻接关系。启用 OSPF 的路由器必须先与其邻居形成邻接关系
他们可以与邻居共享信息。

  1. 在 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 拒绝
    }
  2. 提交配置。
    [编辑] rootuser@crpd01# 提交
    提交完成
  3. 重复步骤 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
    }
    出口广告;
  4. 使用 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 容器的系统上。

  1. 切换到崩溃的目录 file被存储。
    rootuser@linux-host:~# cd /var/crash
  2. 列出崩溃情况 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
  3. 确定核心位置 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

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *