Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

管理 cRPD

构建拓扑

您可以使用 open-vswitch 设置拓扑并连接到 docker 容器。它控制网桥的创建、接口命名和 IP 寻址。

要构建拓扑结构:

  1. 下载并安装openvswitch-switch实用程序。

    root@ubuntu-vm18:~# apt-get install openvswitch-switch

  2. 导航至以下路径:

    root@ubuntu-vm18:~# cd /usr/bin

  3. 下载包含 wget 的 ovs-docker:

    root@ubuntu-vm18:~# wget "https://raw.githubusercontent.com/openvswitch/ovs/master/utilities/ovs-docker"

  4. 更改模式:

    root@ubuntu-vm18:~# chmod a+rwx ovs-docker

  5. 创建容器 crpd01。

    root@ubuntu-vm18:~# docker run --rm --detach --name crpd01 -h crpd01 --net=bridge --privileged -v crpd01-config:/config -v crpd01-varlog:/var/log -it enterprise-hub.juniper.net/crpd-docker-prod/crpd:19.2R1.8

  6. 创建容器 crpd02。

    root@ubuntu-vm18:~# docker run --rm --detach --name crpd02 -h crpd02 --net=bridge --privileged -v crpd02-config:/config -v crpd02-varlog:/var/log -it enterprise-hub.juniper.net/crpd-docker-prod/crpd:19.2R1.8

网络 Docker 容器

Docker 容器使用用户定义的网桥进行连接。有关 docker 网桥的详细文档,请参阅 使用网桥网络

要创建 docker 网络:

  1. 创建一座桥接我的网络。

    root@ubuntu-vm18:~# docker network create --internal my-net

    --internal 参数可防止网桥连接到主机网络,这在某些情况下是可取的。创建网桥后,就可以将其连接到容器或分离。

  2. 使用网桥连接两个容器。

    root@ubuntu-vm18:~# docker network connect my-net crpd01

    root@ubuntu-vm18:~# docker network connect my-net crpd02

    这将在 crpd01 和 crpd02 上创建具有 172.18.0.0/16 子网的 eth1。

拆除网桥

  1. 移除网桥。
    root@ubuntu-vm18:~# docker network rm my-net
  2. 断开网桥与容器的连接。
    root@ubuntu-vm18:~# docker network disconnect my-net crpd01
    root@ubuntu-vm18:~# docker network disconnect my-net crpd02

创建 OVS 网桥

要创建 OVS 网桥并将 docker 连接到两个容器 crpd01 和 crpd02:

  1. 创建连接 crpd01 和 crpd02 的网桥。

    root@ubuntu-vm18:~# ovs-vsctl add-br crpd01-crpd02_1

  2. 向网桥添加接口。

    root@ubuntu-vm18:~# ovs-docker add-port crpd01-crpd02_1 eth1 crpd01

    root@ubuntu-vm18:~# ovs-docker add-port crpd01-crpd02_1 eth1 crpd02

  3. 配置接口的 IP 地址。

    root@ubuntu-vm18:~# docker exec -d crpd01 ifconfig eth1 10.1.1.1/24

    root@ubuntu-vm18:~# docker exec -d crpd02 ifconfig eth1 10.1.1.2/24

  4. 配置环路接口的 IP 地址。

    root@ubuntu-vm18:~# docker exec -d crpd01 ifconfig lo 10.255.255.1 netmask 255.255.255.255

    root@ubuntu-vm18:~# docker exec -d crpd02 ifconfig lo 10.255.255.2 netmask 255.255.255.255

  5. 登录 crpd01。

    root@ubuntu-vm18:~# docker exec -it crpd01 bash

  6. 验证接口详细信息。

    root@crpd01:/# ifconfig

  7. 验证与 crpd02 的连接

    root@crpd01:/# ping 10.1.1.2 -c 2

配置 OSPF

  1. 配置 crpd01 以设置 OSPF 协议。

    root@ubuntu-vm18:~# set policy-options policy-statement adv term 1 from route-filter 10.10.10.0/24 exact

    root@ubuntu-vm18:~# set policy-options policy-statement adv term 1 then accept

    root@ubuntu-vm18:~# set routing-options router-id 10.255.255.1

    root@ubuntu-vm18:~# set routing-options static route 10.10.10.0/24 reject

    root@ubuntu-vm18:~# set protocols ospf export adv

    root@ubuntu-vm18:~# set protocols ospf area 0.0.0.0 interface eth1

    root@ubuntu-vm18:~# set protocols ospf area 0.0.0.0 interface lo.0

  2. 配置 crpd02 以设置 OSPF 协议。

    root@ubuntu-vm18:~# set policy-options policy-statement adv term 1 from route-filter 10.20.20.0/24 exact

    root@ubuntu-vm18:~# set policy-options policy-statement adv term 1 then accept

    root@ubuntu-vm18:~# set routing-options router-id 10.255.255.2

    root@ubuntu-vm18:~# set routing-options static route 10.20.20.0/24 reject

    root@ubuntu-vm18:~# set protocols ospf export adv

    root@ubuntu-vm18:~# set protocols ospf area 0.0.0.0 interface eth1

    root@ubuntu-vm18:~# set protocols ospf area 0.0.0.0 interface lo.0

  3. 登录 crpd01。
    docker exec -it crpd01 bash
  4. 验证 OSPF 路由详细信息。

    root@crpd01:/# cli

    root@crpd01> show ospf neighbor

    root@crpd01> show ospf route

    root@crpd01> show route

  5. 验证路由。

    root@crpd01> exit

    root@crpd01:/# ip route

    root@crpd01:/# ping 10.255.255.2 -c 2

移除接口和网桥

要移除接口和网桥:

  1. 移除接口:

    root@ubuntu-vm18:~# ovs-docker del-port crpd01-crpd02_1 eth1 R1

  2. 消除网桥:

    root@ubuntu-vm18:~# ovs-vsctl del-br crpd01-crpd02_1

查看正在运行的 cRPD 中的容器进程

要查看容器进程:

docker exec运行命令以查看容器上运行的进程(应用程序、服务和状态)的详细信息。

root@ubuntu-vm18:~# docker exec crpd01 ps aux

访问 cRPD CLI 和 Bash Shell

要使用 CLI 和 bash shell 访问 cRPD:

  1. 运行以 docker exec -it crpd1 cli 启动 Junos CLI。

    root@ubuntu-vm18:~# docker exec -it crpd01 cli

  2. docker exec -it crpd1 bash运行以启动 Junos shell。

    root@ubuntu-vm18:~# docker exec -it crpd01 bash

在 cRPD 容器中暂停和恢复进程

您可以暂停或恢复一个或多个容器中的所有进程。

要暂停并重新启动 cRPD:

  1. docker pause运行命令以暂停 cRPD 容器中的所有进程。

    root@ubuntu-vm18:~# docker pause crpd-container-name

  2. docker unpause运行命令以恢复 cRPD 容器中的所有进程。

    root@ubuntu-vm18:~# docker unpause crpd-container-name

移除 cRPD 实例

要移除 cRPD 实例或映像:

注意:

必须先停止并移除 cRPD 实例,然后才能移除 cRPD 映像。

  1. 运行 docker stop 命令以停止 cRPD。

    root@ubuntu-vm18:~# docker stop crpd-container-name

  2. 运行 docker rm 命令以移除 cRPD。

    root@ubuntu-vm18:~# docker rm crpd-container-name

    注意:

    包括 --force 以强制移除正在运行的 cRPD。

  3. docker rmi运行命令以从 Docker 引擎中移除一个或多个 cRPD 映像。
    注意:

    包括 --force 以强制移除 cRPD 映像。

    root@ubuntu-vm18:~# docker rmi crd-Image-name

查看 Docker 统计信息和日志

要查看统计信息和日志:

  1. 运行docker stats命令以监控资源利用率。
  2. docker logs crpd-container-name运行命令以提取容器日志。

查看活动容器

要查看当前活动容器及其状态:

docker ps运行或docker container ls命令列出活动容器。

root@ubuntu-vm18:~# docker container ls

root@ubuntu-vm18:~# docker ps

停止容器

要停止容器:

您可以使用以下命令停止容器:

root@ubuntu-vm18:~# docker stop crpd-container-name