zoukankan      html  css  js  c++  java
  • 从cilium角度理解L3、L4、L7层网络策略的区别

    你对L3、L4、L7层网络策略也就是防火墙策略的区别清楚吗?直到我学习cilium时,通过cilium的官方网站给出的使用说明,我终于理解了L3、L4、L7层网络策略的差别。现记录如下:

    L3网络策略

    L3的网络测试是基于IP/CIDR或者DNS域名的,对于cilium所在的云计算领域还可以基于容器的label,service,entity.其中IP/CIDR就是基于IP或者IP段;DNS就是指基于域名;entity可以是“host、remote-node、cluster、init、world、all”等。下面是一个三层策略示例:

    apiVersion: "cilium.io/v2"
    kind: CiliumNetworkPolicy
    metadata:
      name: "cidr-rule"
    spec:
      endpointSelector:
        matchLabels:
          app: myService
      egress:
      - toCIDR:
        - 20.1.1.1/32
      - toCIDRSet:
        - cidr: 10.0.0.0/8
          except:
          - 10.96.0.0/12
    

    L4网络策略

    四层策略可以和三层策略配置使用也可以单独使用,它指定了协议并指定端口,如下所示:

    apiVersion: "cilium.io/v2"
    kind: CiliumNetworkPolicy
    metadata:
      name: "l4-rule"
    spec:
      endpointSelector:
        matchLabels:
          app: myService
      egress:
        - toPorts:
          - ports:
            - port: "80"
              protocol: TCP
    

    L7网络策略

    7层策略规则嵌入到第4层示例规则中,并且可以在ingress和egress方向指定。L7Rules结构是一个base type,包含协议特定字段的枚举值。如下是cilium中的一个L7策略,它针对的是http协议中的get方法并且路径是public的报文:

    kind: CiliumNetworkPolicy
    metadata:
      name: "rule1"
    spec:
      description: "Allow HTTP GET /public from env=prod to app=service"
      endpointSelector:
        matchLabels:
          app: service
      ingress:
      - fromEndpoints:
        - matchLabels:
            env: prod
        toPorts:
        - ports:
          - port: "80"
            protocol: TCP
          rules:
            http:
            - method: "GET"
              path: "/public"
    
  • 相关阅读:
    求二维数组的最大子集和
    电梯调度《二》
    电梯调度问题
    BIEE 通过提示器选择展示列(列名接收表示变量)
    BIEE时间序列函数
    Python学习笔记(三)
    Python学习笔记(二)
    Python学习笔记(一)
    BIE前台常用设置
    BIEE 连接BW query query结构 引用
  • 原文地址:https://www.cnblogs.com/janeysj/p/14548015.html
Copyright © 2011-2022 走看看