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 hub.juniper.net/routing/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 hub.juniper.net/routing/crpd:19.2R1.8

网络 Docker 容器

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

要创建 docker 网络:

  1. 创建桥接 my-net。

    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

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

卸下网桥

  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

要使用 cRPD 和CLI shell 访问组:

  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 psdocker container ls 命令列出活动容器。

root@ubuntu-vm18:~# docker container ls

root@ubuntu-vm18:~# docker ps

停止容器

要停止容器:

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

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