슬레이브의 GeoIP 분할 DNS 잘못된 세 번째 보기

슬레이브의 GeoIP 분할 DNS 잘못된 세 번째 보기

이를 통해 TSIG를 사용하여 여러 뷰를 호스팅하도록 Bind를 성공적으로 구성했습니다.가이드. 문제는 믹스에 세 번째 뷰를 추가하면 상황이 이상해진다는 것입니다.

각 서버에는 현재 3개의 보기가 있습니다.

  • 미국
  • 유럽
  • 중국

두 번째로 중국 보기를 추가하면 슬레이브 서버는 중국 보기를 사용해야 하는데 유럽 보기를 사용합니다. 중국 호스트에서 마스터 서버를 쿼리하면 올바른 보기가 사용됩니다. 두 서버 모두에서 키를 확인했으며 내 슬레이브 서버가 유럽 보기와 geoip가 일치하더라도 확인하기 위해 유럽 보기에서 geoip 문을 제거했는데 여전히 작동합니다.

두 서버의 ACL:

acl "USA" {
    key usa-key;
    !key europe-key;
    !key china-key;
    geoip country US;
};

acl "Europe" {
    key europe-key;
    !key usa-key;
    !key china-key;
    geoip country NO;
};

acl "China" {
    key china-key;
    !key usa-key;
    !key europe-key;
    geoip country CN;
};

주인:

view "USA" {
    match-clients { USA; };
    allow-transfer { key usa-key; };
    zone "domain.net." {
        type master;
        also-notify { $slave_server key usa-key; };
        file "/etc/bind/domain.net/na.domain.net.zone";
    };
    zone "3.2.1.in-addr.arpa." {
        type master;
        also-notify { $slave_server key usa-key; };
        file "/etc/bind/domain.net/na.domain.net.rev";
    };
    zone "doma.net." {
        type master;
        also-notify { $slave_server key usa-key; };
        file "/etc/bind/domain.net/na.doma.net.zone";
    };
    zone "9.8.7.in-addr.arpa." {
        type master;
        also-notify { $slave_server key usa-key; };
        file "/etc/bind/domain.net/na.doma.net.rev";
    };
};

view "Europe" {
    match-clients { Europe; };
    allow-transfer { key europe-key; };
    zone "domain.net." {
        type master;
        also-notify { $slave_server key europe-key; };
        file "/etc/bind/domain.net/eu.domain.net.zone";
    };
    zone "3.2.1.in-addr.arpa." {
        type master;
        also-notify { $slave_server key europe-key; };
        file "/etc/bind/domain.net/eu.domain.net.rev";
    };
    zone "doma.net." {
        type master;
        also-notify { $slave_server key europe-key; };
        file "/etc/bind/domain.net/eu.doma.net.zone";
    };
    zone "9.8.7.in-addr.arpa." {
        type master;
        also-notify { $slave_server key europe-key; };
        file "/etc/bind/domain.net/eu.doma.net.rev";
    };
};

view "China" {
    match-clients { China; };
    allow-transfer { key china-key; };
    zone "domain.net." {
        type master;
        also-notify { $slave_server key china-key; };
        file "/etc/bind/domain.net/cn.domain.net.zone";
    };
    zone "3.2.1.in-addr.arpa." {
        type master;
        also-notify { $slave_server key china-key; };
        file "/etc/bind/domain.net/cn.domain.net.rev";
    };
    zone "doma.net." {
        type master;
        also-notify { $slave_server key china-key; };
        file "/etc/bind/domain.net/cn.doma.net.zone";
    };
    zone "9.8.7.in-addr.arpa." {
        type master;
        also-notify { $slave_server key china-key; };
        file "/etc/bind/domain.net/cn.doma.net.rev";
    };
};

노예:

view "USA" {
    match-clients { USA; };
    zone "domain.net." {
        type slave;
        masters { $master_server key usa-key; };
        file "/var/lib/bind/na.domain.net.zone";
    };
    zone "3.2.1.in-addr.arpa." {
        type slave;
        masters { $master_server key usa-key; };
        file "/var/lib/bind/na.domain.net.rev";
    };
    zone "doma.net." {
        type slave;
        masters { $master_server key usa-key; };
        file "/var/lib/bind/na.doma.net.zone";
    };
    zone "9.8.7.in-addr.arpa." {
        type slave;
        masters { $master_server key usa-key; };
        file "/var/lib/bind/na.doma.net.rev";
    };
};

view "Europe" {
    zone "domain.net." {
        type slave;
        masters { $master_server key europe-key; };
        file "/var/lib/bind/eu.domain.net.zone";
    };
    zone "3.2.1.in-addr.arpa." {
        type slave;
        masters { $master_server key europe-key; };
        file "/var/lib/bind/eu.domain.net.rev";
    };
    zone "doma.net." {
        type slave;
        masters { $master_server key europe-key; };
        file "/var/lib/bind/eu.doma.net.zone";
    };
    zone "9.8.7.in-addr.arpa." {
        type slave;
        masters { $master_server key europe-key; };
        file "/var/lib/bind/eu.doma.net.rev";
    };
};

view "China" {
    zone "domain.net." {
        type slave;
        masters { $master_server key china-key; };
        file "/var/lib/bind/ch.domain.net.zone";
    };
    zone "3.2.1.in-addr.arpa." {
        type slave;
        masters { $master_server key china-key; };
        file "/var/lib/bind/ch.domain.net.rev";
    };
    zone "doma.net." {
        type slave;
        masters { $master_server key china-key; };
        file "/var/lib/bind/ch.doma.net.zone";
    };
    zone "9.8.7.in-addr.arpa." {
        type slave;
        masters { $master_server key china-key; };
        file "/var/lib/bind/ch.doma.net.rev";
    };
};

완전히 아이디어가 없습니다. 내가 뭘 잘못하고 있는지 아는 사람이 있다면 답변을 주시면 감사하겠습니다.

답변1

슬레이브 구성에서는 및 보기 match-clients에 지시어가 없습니다 .EuropeChina

뷰가 작동하는 방식에 따라(첫 번째 일치하는 뷰가 사용됨) USA뷰와 일치하지 않는 모든 쿼리(지시어가 있음 match-clients), 다른 모든 쿼리는 다음 뷰(아무거나 일치하는 뷰)로 이동 Europe하고 마지막에는 아무것도 없습니다. 보기( China단지 그 시점에 일치하지 않는 쿼리가 남아 있지 않다는 것만으로 무엇이든 일치하는 보기).

주목할 가치가 있는 것은 아마도 당신이 원할 것입니다.무엇모든 것을 포괄하는 것입니다. 즉, 쿼리가 어떤 국가와도 일치하지 않는 경우에도 여전히 적절한 응답을 원하십니까?

관련 정보