This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.2. 记录网络策略事件
作为集群管理员,您可以为集群配置网络策略审计日志记录,并为一个或多个命名空间启用日志记录。
网络策略的审计日志记录仅适用于 OVN-Kubernetes 集群网络供应商。
12.2.1. 网络策略审计日志记录 复制链接链接已复制到粘贴板!
OVN-Kubernetes 集群网络供应商使用 Open Virtual Network(OVN)ACL 管理网络策略。审计日志记录会公开允许和拒绝 ACL 事件。
您可以为网络策略审计日志(如 syslog 服务器或 UNIX 域套接字)配置目的地。无论任何其他配置如何,审计日志始终保存到集群中的每个 OVN-Kubernetes pod 上的 /var/log/ovn/acl-audit-log
。
网络策略审计日志记录通过 k8s.ovn.org/acl-logging
键注解命名空间来启用每个命名空间,如下例所示:
命名空间注解示例
日志记录格式与 RFC5424 中定义的 syslog 兼容。syslog 工具可配置,默认为 local0
。日志条目示例可能类似如下:
ACL 拒绝日志条目示例
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
下表描述了命名空间注解值:
注解 | 值 |
---|---|
|
您必须至少指定
|
12.2.2. 网络策略审计配置 复制链接链接已复制到粘贴板!
审计日志记录的配置作为 OVN-Kubernetes 集群网络配置的一部分指定。以下 YAML 演示了网络策略审计日志记录功能的默认值。
审计日志记录配置
下表描述了网络策略审计日志记录的配置字段。
字段 | 类型 | 描述 |
---|---|---|
| 整数 |
每个节点每秒生成一次的消息数量上限。默认值为每秒 |
| 整数 |
审计日志的最大大小,以字节为单位。默认值为 |
| 字符串 | 以下附加审计日志目标之一:
|
| 字符串 |
syslog 工具,如 as |
12.2.3. 为集群配置网络策略审计 复制链接链接已复制到粘贴板!
作为集群管理员,您可以自定义集群的网络策略审计日志记录。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
使用具有
cluster-admin
权限的用户登陆到集群。
流程
要自定义网络策略审计日志记录配置,请输入以下命令:
oc edit network.operator.openshift.io/cluster
$ oc edit network.operator.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示您还可以自定义并应用以下 YAML 来配置审计日志记录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要创建带有网络策略的命名空间,请完成以下步骤:
创建命名空间进行验证:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
namespace/verify-audit-logging created
namespace/verify-audit-logging created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用审计日志记录:
oc annotate namespace verify-audit-logging k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "alert" }'
$ oc annotate namespace verify-audit-logging k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "alert" }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace/verify-audit-logging annotated
namespace/verify-audit-logging annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为命名空间创建网络策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为
default
命名空间中的源流量创建 pod:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
verify-audit-logging
命名空间中创建两个 pod:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
pod/client created pod/server created
pod/client created pod/server created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要生成流量并生成网络策略审计日志条目,请完成以下步骤:
在
verify-audit-logging
命名空间中获取名为server
的 pod 的 IP 地址:POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')
$ POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
default
命名空间中名为client
的 pod 中 ping 上一个命令的 IP 地址,并确认所有数据包都已丢弃:oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
verify-audit-logging
命名空间中名为client
的 pod 中 pingPOD_IP
shell 环境变量中保存的 IP 地址,并确认允许所有数据包:oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
显示网络策略审计日志中的最新条目:
for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
$ for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.2.4. 为命名空间启用网络策略审计日志记录 复制链接链接已复制到粘贴板!
作为集群管理员,您可以为命名空间启用网络策略审计日志记录。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
使用具有
cluster-admin
权限的用户登陆到集群。
流程
要为命名空间启用网络策略审计日志记录,请输入以下命令:
oc annotate namespace <namespace> \ k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "notice" }'
$ oc annotate namespace <namespace> \ k8s.ovn.org/acl-logging='{ "deny": "alert", "allow": "notice" }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<namespace>
- 指定命名空间的名称。
提示您还可以应用以下 YAML 来启用审计日志记录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
namespace/verify-audit-logging annotated
namespace/verify-audit-logging annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
显示网络策略审计日志中的最新条目:
for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
$ for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
2021-06-13T19:33:11.590Z|00005|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-logging_deny-all", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:80:02:39,dl_dst=0a:58:0a:80:02:37,nw_src=10.128.2.57,nw_dst=10.128.2.55,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.2.5. 禁用命名空间的网络策略审计日志记录 复制链接链接已复制到粘贴板!
作为集群管理员,您可以为命名空间禁用网络策略审计日志记录。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
使用具有
cluster-admin
权限的用户登陆到集群。
流程
要禁用命名空间的网络策略审计日志记录,请输入以下命令:
oc annotate --overwrite namespace <namespace> k8s.ovn.org/acl-logging={}
$ oc annotate --overwrite namespace <namespace> k8s.ovn.org/acl-logging={}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<namespace>
- 指定命名空间的名称。
提示您还可以应用以下 YAML 来禁用审计日志记录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
namespace/verify-audit-logging annotated
namespace/verify-audit-logging annotated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow