您的当前位置:首页正文

从cilium角度理解L3、L4、L7层网络策略的区别

2024-05-31 来源:V品旅游网
从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: CiliumNetworkPolicymetadata:

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: CiliumNetworkPolicymetadata:

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: CiliumNetworkPolicymetadata:

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\"

因篇幅问题不能全部显示,请点此查看更多更全内容

Top