두 컴퓨터 간에 마스터->슬레이브 바인딩 설정을 구현하려고 시도했지만 마스터에서 슬레이브 컴퓨터에 알리기 위해 사용되는 BIND IP 주소와 관련된 문제가 있습니다.
내 설정은 다음과 같습니다.
Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10
마스터에는 권한 있는 영역이 있으며 site.com
영역이 변경되면 모든 슬레이브에 알리도록 구성됩니다. 영역이 제대로 작동하고 있습니다. 쿼리에 잘 응답하고dig @10.0.0.2 -t SOA site.com
그래서 마스터에는 다음이 있습니다 named.conf.options
.
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { 10.0.0.2; };
listen-on-v6 { any; };
allow-query { any; };
recursion yes;
allow-recursion { localhost; };
allow-notify { localhost; };
allow-transfer { localhost; 10.0.0.10; };
version none;
notify yes;
also-notify { 10.0.0.10; };
};
슬레이브에서:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { 10.0.0.10; };
listen-on-v6 { any; };
allow-query { any; };
recursion yes;
allow-recursion { localhost; };
allow-notify { localhost; 10.0.0.2; };
allow-transfer { localhost; 10.0.0.2; };
version none;
};
시작하려면 알림이 작동하지 않는 것 같습니다. tcpdump
슬레이브 시스템을 사용하면 다음 메시지가 나타납니다.
02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85)
02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)
보시다시피 마스터는 10.0.0.2
알림을 보낼 때 수신 대기하도록 설정되어 있지만 기본 IP 주소를 사용하여 알림을 보내고 10.0.0.1
있으며 논리적으로 내 슬레이브가 알림을 거부했습니다.
마스터가 알림을 보내지 않는 이유는 무엇입니까 10.0.0.2
? 강제로 적용할 수 있는 구성이 있나요? 기계는 3개의 IP를 소유합니다. 하나는 웹사이트용, 다른 하나는 이메일용, 또 다른 하나는 DNS용입니다... 만들어야 합니다.오직DNS에 사용 10.0.0.2
하지만 listen-on
나가는 트래픽에서는 작동하지 않는 것 같습니다.
이 문제를 어떻게 해결할 수 있나요?
답변1
당신은 옵션을 찾고 있습니다 notify-source
. 로부터바인드 암:
알림 소스
통지 소스는 NOTIFY 메시지를 보내는 데 사용될 로컬 소스 주소와 선택적으로 UDP 포트를 결정합니다. 이 주소는 슬레이브 서버의 마스터 영역 절이나 허용 알림 절에 나타나야 합니다. 이 명령문은 모든 영역에 대한 통지 소스를 설정하지만 구성 파일의 영역 또는 뷰 블록 내에 통지 소스 명령문을 포함하여 영역별 또는 뷰별로 재정의할 수 있습니다.
BIND가 이런 방식으로 동작하는 이유는 대부분의 응용 프로그램에서 매우 일반적입니다. 로컬에서 시작된 트래픽의 소스 IP는 기본적으로 경로와 연결된 인터페이스의 기본 IP로 설정됩니다. Linux 시스템에서는 키워드 ip route show
다음의 값을 입력하고 확인하여 각 경로와 연결된 소스 IP를 볼 수 있습니다 src
.