결합 및 IPv6: 액세스 제어

결합 및 IPv6: 액세스 제어

IPv6 주소에 대한 로그에 "네트워크 연결 불가" 메시지가 많이 있습니다. 견본 추출:

   named[1213]: network unreachable resolving 'results.speedtest.net/AAAA/IN': 2606:4700:4700::1111#53
   named[1213]: network unreachable resolving 'results.speedtest.net/A/IN': 2606:4700:4700::1111#53
   named[1213]: network unreachable resolving 'results.speedtest.net/AAAA/IN': 2606:4700:4700::1001#53
   named[1213]: network unreachable resolving 'results.speedtest.net/A/IN': 2606:4700:4700::1001#53
   named[1213]: network unreachable resolving 'getpocket.com/A/IN': 2606:4700:4700::1111#53

표준 솔루션은 결합 구성에서 IPv6 요청을 비활성화하는 것입니다.

IPv6 요청을 LAN의 호스트로 제한하고 싶습니다.

어떻게 되었는지 추측하기 위해 listen-on-v6 { ::1; };이 섹션 options에서는 IPv6를 localhost로 제한하려고 시도했지만 작동하지 않았습니다. 시작할 때 구문 오류가 표시되지 않지만 여전히 오류 메시지가 나타납니다.

답변1

BIND가 루트 DNS 서버 또는 최상위 도메인의 DNS 서버 주소를 요청할 때마다 IPv6 및 IPv4 주소 목록을 얻습니다. 루트 또는 TLD 이름 서버는 IPv6 인터넷 연결이 없을 수도 있다는 사실을 모르거나 신경 쓰지 않습니다. .

최소한 로컬 IPv6 연결이 있으므로 BIND는 IPv6을 사용하려고 시도합니다. 따라서 특정 외부 도메인에 대한 NS 레코드가 연결된 IPv6 주소가 있는 DNS 서버 이름을 지정하고 해당 레코드가 현재 라운드 로빈 순서의 첫 번째 레코드인 경우 BIND는 IPv6를 사용하여 해당 레코드를 실행하려고 시도합니다. client 재귀적 이름 확인 중 하나입니다.

예, 클라이언트가 IPv4를 통해 요청하더라도 마찬가지입니다.

예, 클라이언트가 AAAA가 아닌 A 레코드만 요청하는 경우에도 마찬가지입니다.

하지만 분명히 IPv6가 없기 때문에인터넷연결되어 있는 동안 IPv6를 통해 외부 DNS 서버에 연결하려는 모든 시도는 오류와 함께 실패합니다 network unreachable. 이 시점에서 BIND는 해당 DNS 서버에 대해 나열된 다른 IP 주소를 시도하고 IPv4 주소를 시도하면 제대로 작동합니다.

기억하세요: DNS 프로토콜을 사용하면 IPv6를 통해 IPv4 정보를 요청하는 것을 막을 수 없으며 그 반대의 경우도 마찬가지입니다. BIND가 클라이언트 중 하나를 대신하여 재귀 해결을 수행할 때 적절하다고 판단되는 프로토콜을 사용합니다. 클라이언트가 IPv4를 사용하여 BIND에 연결했을 수 있다는 사실이 자동으로 BIND가 IPv4만 사용하도록 제한해야 한다는 의미는 아닙니다. .

BIND에게 외부 DNS 서버의 IPv6 주소를 사용하지 말라고 지시하는 한 가지 방법은 전체 IPv6 주소 공간(BIND가 이미 권한을 갖고 있는 로컬 도메인 제외)을 다음과 같이 선언하는 것입니다.거짓:

server ::/0 {
        bogus yes;
};

(다른 로컬 IPv6 연결 가능 DNS 서버에 대해 이를 명시적으로 취소해야 하는지 여부는 테스트하지 않았습니다.)

BIND가 IPv6을 통해 다른 DNS 서버에 연결하려는 시도를 완전히 차단하는 또 다른 옵션은 -4해당 옵션으로 BIND를 시작하는 것입니다. 이는 로컬 네트워크가 IPv6을 지원하지만 분명히 IPv6가 없다고 말한 것처럼 귀하의 경우에 적합하지 않은 것 같습니다. 인터넷 연결.

원천:서버 장애에 관한 질문입니다..

BIND의 IPv4 클라이언트가 IPv6 주소를 보지 못하도록 하려면 다음 options섹션에 이 줄을 추가하면 됩니다.

filter-aaaa-on-ipv4 break-dnssec;

그러나 이는 다른 DNS 서버로 나가는 연결에서 IPv6을 사용하는 BIND에는 영향을 미치지 않습니다. BIND가 ./configure --enable-filter-aaaa빌드 타임 옵션으로 컴파일된 경우에만 작동합니다.

원천:https://kb.isc.org/docs/aa-00576

관련 정보