Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在 cSRX 容器防火墙容器上配置流量转发

您可以更改 cSRX 容器防火墙的流量转发模式,以方便在运行 cSRX 容器防火墙时进行安全服务配置。例如,如果内联受保护分段部署 cSRX 容器防火墙容器,则 cSRX 容器防火墙应透明,以避免更改虚拟网络拓扑。在其他部署中,cSRX 容器应该能够指定出口流量的下一跃点地址。为了应对 cSRX 容器防火墙网络部署中的变化,您可以将 cSRX 容器防火墙的流量转发模式配置为在路由模式(仅限静态路由)或安全有线模式下运行。

注意:

cSRX 容器防火墙用作 routing 流量转发模式的默认环境变量。

本节包含以下主题:

配置路由模式

在路由模式下运行 cSRX 容器防火墙容器时,cSRX 容器防火墙使用静态路由来转发目的地为接口 ge-0/0/0 和 ge-0/0/1 的路由的流量。您需要创建一个静态路由并指定下一跃点地址。

启动 cSRX 容器时,需要使用变量CSRX_PORT_NUM指定环境中的端口号,以定义需要在路由模式下添加到容器的接口数量。

例如,要通过 17 个接口在路由模式下启动 cSRX 容器防火墙实例,

root@csrx-ubuntu3:~/csrx# docker run -d --privileged --net=none -e CSRX_PORT_NUM=17 CSRX_SIZE=large -e CSRX_HUGEPAGES=no -e CSRX_PACKET_DRIVER=interrupt -e CSRX_FORWARD_MODE=routing --name=<srx-container-name> <csrx-image-name>

注意:

在CSRX_PORT_NUM环境变量(默认值为 3)中指定的接口必须在实例化 cSRX 容器防火墙后添加到网络中。除非将所有接口添加到网桥或 macvlan 网络中,否则 PFE 不会在 cSRX 容器防火墙上启动,并且 ge-x/y/z 接口将继续关闭。

-e CSRX_FORWARD_MODE=routing 命令中包含 docker run 环境变量,以指示 cSRX 容器防火墙在静态路由转发模式下运行。

将 cSRX 容器防火墙容器配置为在静态路由模式下运行:

  1. 在路由转发模式下启动 cSRX 容器防火墙容器:

    root@csrx-ubuntu3:~/csrx# docker run -d --privileged --network=mgt_bridge -e CSRX_FORWARD_MODE="routing" --name=<csrx-container-name> <csrx-image-name>

  2. 登录 cSRX 容器防火墙实例并启动配置模式。
  3. 配置接口。

    从 19.2R1.8 开始,每台 cSRX 容器防火墙可配置多达 15 个面间收入:eth1、eth2 等,直到 eth15。启动 cSRX 容器防火墙时,可以预定义接口数量。通常,在旋转 cSRX 容器防火墙(-network=mgt_bridge)时,docker 会根据网络设置分配 cSRX 容器防火墙上的管理 IP。如果未指定此变量,docker 将分配默认 docker 网络桥接的 IP。

    cSRX 容器防火墙使用 eth0 进行带外管理,以接受管理会话和流量,cSRX 容器防火墙使用 eth1 和 eth2 作为两个收入端口来处理带内数据流量(ge-0/0/0 和 ge-0/0/1 接口)。

    对于此示例,假设 docker 默认或自定义网络管理桥接为 172.31.21.0/24,docker 会从此网络分配一个 IP 地址。如果您的 cSRX 容器防火墙是系统上的第一个容器,则分配的 cSRX 容器防火墙将采用 172.31.21.2,cSRX 容器防火墙管理平面的默认网关为 172.31.21.1。

    表 1:接口的 IP 地址分配
    接口 IP 地址

    管理接口 eth0 (fxp0)

    172.31.21.1

    cSRX 容器防火墙管理平面的默认网关

    172.31.21.2

    Eth1 (ge-0/0/0)

    172.19.0.2/24

    Eth2 (ge-0/0/1)

    172.20.0.2/24

    外部服务器

    10.10.10.0

    root@csrx# show | display set

    root@csrx# set interfaces ge-0/0/0 unit 0 family inet address 172.19.0.2/24

    root@csrx# set interfaces ge-0/0/1 unit 0 family inet address 172.20.0.2/24

  4. 配置静态路由。
    配置静态路由并指定下一跃点地址。

    root@csrx# set routing-options static route 0.0.0.0/0 next-hop 172.19.0.2/24

  5. 查看转发表以验证静态路由。

    root@csrx> show route forwarding-table

  6. 为管理接口指定路由。静态路由只能配置以接口 ge-0/0/0 和 ge-0/0/1 为目的地的路由。必须使用 Linux route shell 命令添加以管理接口 (eth0) 为目的地的路由。

    root@csrx% route add -net 10.10.10.0/24 gw 172.31.21.1

    root@csrx% route -n

  7. 如果网络环境需要,您可以使用命令为 cSRX 容器防火墙set routing-options rib inet6.0 static route配置 IPv6 静态路由。

    [edit routing-options]

    root@csrx# set routing-options rib inet6.0 static route 3000::0/64 next-hop 1000::10/128

    [edit interfaces]

    root@csrx# commit

    root@csrx# show routing-options rib inet6.0

    static {

    route 3000::0/64 next-hop 1000::10/128;

    }

  8. 在路由模式下,Linux 内核通过创建的 TAP 0 和 TAP 1 接口提供控制平面 ARP/NDP 学习/响应,以通过 srxpfe 托管 eth1 和 eth2 的流量。您可以使用 Linux arp shell 命令查看 ARP 条目。
    注意:

    虽然在 cSRX 容器容器内创建了多个接口,但 srxpfe 中只有两个接口(ge-0/0/0 和 ge-0/0/1)可见。

    root@csrx% arp -a

    默认 ARP/NDP 条目超时设置为 1200 秒。启动 cSRX 容器防火墙容器时,可以通过修改 ARP_TIMEOUT 环境变量或 NDP_TIMEOUT 环境变量来调整此值。例如:

    root@csrx-ubuntu3:~/csrx# docker run -d --privileged --network=mgt_bridge -e CSRX_FORWARD_MODE="routing" -e CSRX_ARP_TIMEOUT=<seconds> -e CSRX_NDP_TIMEOUT=<seconds> --name=<csrx-container-name> <csrx-image-name>

    最大 ARP 条目编号由 Linux 主机内核控制。如果存在大量邻接方,则可能需要调整 Linux 主机上的 ARP 或 NDP 条目限制。Linux 主机上的 sysctl 命令中有一些选项,用于调整 ARP 或 NDP 条目限制。

    例如,要将最大 ARP 条目调整为 4096:

    # sysctl -w net.ipv4.neigh.default.gc_thresh1=1024

    # sysctl -w net.ipv4.neigh.default.gc_thresh2=2048

    # sysctl -w net.ipv4.neigh.default.gc_thresh3=4096

    例如,要将最大 NDP 条目调整为 4096:

    # sysctl -w net.ipv6.neigh.default.gc_thresh1=1024

    # sysctl -w net.ipv6.neigh.default.gc_thresh1=2048

    # sysctl -w net.ipv6.neigh.default.gc_thresh1=4096

配置安全有线模式

在安全有线模式下工作时,到达特定接口(ge-0/0/0 或 ge-0/0/1)上的所有流量都将通过该接口保持不变。这种称为 安全线路的接口映射允许在网络流量路径上部署 cSRX 容器防火墙,无需更改路由表或重新配置相邻设备。在接口对 ge-0/0/0 和 ge-0/0/0/1 之间设置交叉连接,以将互连和互操作性功能 (IIF) 作为输入键,将流量从一个端口引导至另一端口。

-e CSRX_FORWARD_MODE=wire 命令中 docker run 包括环境变量,以指示 cSRX 容器防火墙在安全线路转发模式下运行。

注意:

在安全有线模式下启动 cSRX 容器防火墙容器时,cSRX 容器防火墙实例会自动在 srxpfe 过程中创建一个名为 csrx_sw 的默认安全线路,并将 ge-0/0/0 和 ge-0/0/1 接口对添加到安全线中。

使用以下命令在安全有线模式下启动 cSRX 容器防火墙实例:

root@csrx-ubuntu3:~/csrx# docker run -d --privileged --network=mgt_bridge -e CSRX_FORWARD_MODE="wire" --name=<csrx-container-name> <csrx-image-name>