7.9.3. TLS를 사용하여 DNS 전달 구성
업스트림 확인자에 대한 쿼리를 보호하도록 TLS를 사용하여 DNS 전달을 구성합니다.
고도로 규제된 환경에서 작업하는 경우 추가 DNS 트래픽 및 데이터 개인 정보를 보장할 수 있도록 요청을 업스트림 해석기로 전달할 때 DNS 트래픽을 보호할 수 있는 기능이 필요할 수 있습니다.
CoreDNS 캐시가 10초 동안 전달된 연결을 확인합니다. CoreDNS는 요청이 발행되지 않은 경우 해당 10초 동안 TCP 연결을 열린 상태로 유지합니다.
대규모 클러스터에서는 노드당 연결을 시작할 수 있으므로 DNS 서버에서 많은 새 연결을 유지할 수 있음을 알고 있는지 확인합니다. 성능 문제를 방지하기 위해 DNS 계층 구조를 적절하게 설정합니다.
프로세스
이름이
default인 DNS Operator 오브젝트를 수정합니다.$ oc edit dns.operator/default클러스터 관리자는 전달된 DNS 쿼리에 대해 TLS(전송 계층 보안)를 구성할 수 있습니다.
TLS를 사용하여 DNS 전달 구성
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: servers: - name: example_server zones: - example.com forwardPlugin: transportConfig: transport: TLS tls: caBundle: name: mycacert serverName: dnstls.example.com policy: Random upstreams: - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: transportConfig: transport: TLS tls: caBundle: name: mycacert serverName: dnstls.example.com upstreams: - type: Network address: 1.2.3.4 port: 53다음과 같습니다.
spec.servers.name-
rfc6335서비스 이름 구문을 준수해야 합니다. spec.servers.zones-
rfc1123하위 도메인 구문을 준수해야 합니다. 클러스터 도메인인cluster.local은영역에유효하지 않습니다. spec.servers.forwardPlugin.transportConfig.transport-
TLS 전달을 구성할 때
TLS로 설정해야 합니다. spec.servers.forwardPlugin.transportConfig.tls.serverName- 업스트림 TLS 인증서의 유효성을 검사하는 데 사용되는 SNI(서버 이름 표시) 서버 이름으로 설정해야 합니다.
spec.servers.forwardPlugin.policy-
업스트림 선택 정책을 지정합니다. 기본값은
Random; 유효한 값은RoundRobin및Sequential입니다. spec.servers.forwardPlugin.upstreams-
업스트림 리졸버를 제공해야 합니다.
forwardPlugin당 최대 15개의 항목을 제공해야 합니다. spec.upstreamResolvers.upstreams-
기본 도메인의 기본 정책을 덮어쓰는 선택적 필드를 지정합니다. TLS가 활성화된 경우에만
네트워크유형을 사용하고 IP 주소를 제공합니다. 생략하면 쿼리는/etc/resolv.conf를 사용합니다. spec.upstreamResolvers.upstreams.address- 유효한 IPv4 또는 IPv6 주소여야 합니다.
spec.upstreamResolvers.upstreams.port포트 번호를 제공하기 위해 선택적 필드를 지정합니다. 유효한 값은
1에서65535사이입니다. 생략 시 기본값은 853입니다.참고서버가 정의되지 않았거나 유효하지 않은 경우 구성 맵에는 기본 서버만 포함됩니다.
검증
구성 맵을 표시합니다.
$ oc get configmap/dns-default -n openshift-dns -o yamlTLS 전달을 기반으로 하는 샘플 DNS ConfigMap 예
apiVersion: v1 data: Corefile: | example.com:5353 { forward . 1.1.1.1 2.2.2.2:5353 } bar.com:5353 example.com:5353 { forward . 3.3.3.3 4.4.4.4:5454 } .:5353 { errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . /etc/resolv.conf 1.2.3.4:53 { policy Random } cache 30 reload } kind: ConfigMap metadata: labels: dns.operator.openshift.io/owning-dns: default name: dns-default namespace: openshift-dns-
data.Corefile키에는 DNS 서버의 Corefile 구성이 포함되어 있습니다.forwardPlugin을 변경하면 CoreDNS 데몬 세트의 롤링 업데이트가 트리거됩니다.
-