소스 서브넷에 따라 서로 다른 DNS 항목을 어떻게 확인할 수 있습니까?

소스 서브넷에 따라 서로 다른 DNS 항목을 어떻게 확인할 수 있습니까?

여러 사이트에 새로운 내부 웹 사이트가 있고 사용된 소스 서브넷에 따라 사이트별 하위 도메인에 대한 fqdn을 확인하려고 합니다. 현재 바인드 DNS가 설정되는 방식은 fqdn 확인이 사이트 a의 마스터이고 사이트 b와 c의 슬레이브(모두 꼭두각시를 통해)이므로 사이트 b와 c에 다른 답변을 사용하여 별도의 레코드 파일을 설정할 수 없습니다.

예를 들어, 사이트 a 172.10.0.0/16의 IP가 server.domain.com을 server.a.domain.com으로 확인하고 사이트 b 172.11.0.0/16의 IP가 server.domain.com을 서버로 확인하려고 합니다. b.domain.com 등

Bind RPZ를 살펴봤지만 이는 서브넷에 대한 특정 해결 옵션을 제공하지 않는 것 같습니다. 잘못 읽지 않는 한 전체 서브넷을 삭제하거나 차단하는 기능만 제공됩니다. 해결을 위해 올바른 영역으로 전달하는 대신 cname을 리디렉션하도록 할 수 있지만 이는 일반적으로 내가 사용하려는 클라이언트 IP 트리거를 사용하지 않는 모든 서버에 적용되며 CNAME을 업데이트하는 것이 좋습니다. domain.com 영역에 있습니다.

name.d.conf.options에 추가됨

response-policy { zone "rpz"; };

rpz 영역 파일

zone "rpz" {
  type master;
  file "/etc/named/zones/rpz/db.rpz.conf";
  allow-query { none; };
};

DB파일

@       IN    SOA  nstest.domain.com. domain.com.  (
                      2   ; serial
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum

@        IN    NS    nstest.domain.com. ; destination IP rewrite

16.0.0.16.172.rpz-ip CNAME server.domain.com.
server.domain.com     CNAME   server.a.domain.com.

이러한 설정을 사용하면 소스 IP에 관계없이 이 ns를 통해 server.domain.com에 대한 모든 요청이 server.a.domain.com으로 확인됩니다.

아니면 RPZ를 잘못된 방법으로 사용하려고 합니다. 연구에서 바인드 뷰도 본 적이 있지만 각 사이트에 대해 전체 영역 파일을 다시 만들어야 하는 것 같습니다. 단일 CNAME 레코드를 수정하고 싶습니다. .

도움을 주시면 감사하겠습니다.

답변1

  • 위치 B 전용 서버

이 경우 RPZ를 쉽게 사용할 수 있습니다. 솔루션은 비표준 포트(53 TCP/UDP 이외)에서 이 DNS 서버를 실행하고 방화벽 수준에서 포트 리디렉션을 설정하여 요청이 특정 네트워크에서 오면 이 포트로 리디렉션되도록 할 수도 있습니다. 다른 모든 요청은 표준 포트의 DNS 서버에 의해 처리됩니다("글로벌" RPZ가 문제이므로 다른 트래픽에도 DNS 서버가 필요하다고 가정합니다).

  • 위치 B뿐만 아니라 "공유" DNS 서버

뷰는 아마도 당신에게 가장 적합한 방향일 것입니다. 명시적으로 CNAME이 필요하지 않지만 A 레코드일 수도 있는 경우 보기에서 "특정 하위 도메인"만 쉽게 정의하고 나머지는 "정상적인" 확인/다른 DNS 서버로 전달을 유지할 수 있습니다.

도메인이 있다고 가정해 보겠습니다.example.com위치 A의 DNS 서버에 있습니다.server.example.com일반적으로 192.0.2.10에 대한 A 레코드로 확인됩니다. 또 다른 기록도 있다another.example.com값이 192.0.2.20인 A로 해석됩니다.

그런 다음 일부 로컬 클라이언트를 해결하는 로컬(위치 B) 바인드 서버가 있습니다. 도메인을 생성할 수 있는 특정 클라이언트(위치 B의 로컬 IP)에 대한 로컬 보기를 생성할 수 있습니다.server.example.com.

@       IN    SOA  dns.example.com. admin.example.com.  (
                      2   ; serial
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum

@        IN    NS    dns.example.com ; destination IP rewrite

@        IN    A     192.0.2.30

클라이언트가 server.example.com에 대한 요청을 보내면 로컬에서 로컬 "마스터" 영역으로 확인됩니다. 클라이언트가 다른 것을 요청하면(server.example.com에 대한 하위 도메인 제외) 다른 구성에 따라 정기적으로 확인 또는 전달을 수행합니다.

따라서 위치 A의 결과는 다음과 같습니다.

server.example.com => 192.0.2.10
another.example.com => 192.0.2.20

B 위치에서는 다음과 같습니다.

server.example.com => 192.0.2.30
another.example.com => 192.0.2.20

이렇게 하면 명시적인 하위 도메인 목록만 무시할 수 있습니다. 단점은 추가 영역이므로 최소한 SOA와 NS 레코드가 있어야 하므로 이 경우 CNAME을 사용할 수 없다는 것입니다.

관련 정보