"Гадаадад нэг, дотоодод тусдаа мэдээлэл өгдөг DNS тогтолцоо"-г split-horizon DNS, split-brain DNS, DNS view гэх мэтчилэн олон янзаар нэрлэх болжээ. Хэдийгээр бүгд угтаа нэг утгыг агуулж байгаа хэдий ч цаад үүсэлийг нь аваад үзвэл хоорондоо нилээд ялгаатай ойлголтууд юм.
Split-horizon гэдэг нь router болон сүлжээний төхөөрөмжийн хувьд хэрэглэгддэг бөгөөд сервер DMZ(demiliterized zone)-д байрлахыг хэлнэ.
DNS View гэж split-brain DNS-г implement хийхэд зориулсан BIND 9-н View функцыг хэлж байгаа хэрэг юм.
Split-brain DNS гэж энд түрүүнээс хойш яригдаад байгаа үндсэн ойлголтыг нэрлэж байна.
Split-brain DNS-г дараах байдлаар зохион байгуулж болно.
1. Гадаад, дотоод DNS мэдээллүүд тусдаа баазуудад, тусдаа DNS серверүүд дээр байрлах
Гол санаа нь гадаадад нэг, дотоодод нэг DNS сервер(эсвэл бүлэг серверүүд) ажиллана гэсэн үг. Гадаад сервер дээр зөвхөн гадаадад зориулсан мэдээлэл, дотоод сервер дээр дотоодод зориулсан мэдээлэл байх ёстой. Дотоод серверүүд гадаад мэдээлэлд хүрч чаддаг байхын тулд гадаад мэдээллийн хуулбарыг дотоод сервер дээр байрлуулах хэрэгтэй болно. Хоёр талд байгаа ижил мэдээллийг яаж consistent байлгах вэ гэдэг дээр жинхэнэ админы шийдэл гарч ирэх байх. Энэ мэдээллийг гараар 2 дахин оруулах уу? Динамик болгохын тулд гаднах нь дотнохынхоо slave болох уу? эсвэл эсрэгээрээ байх уу? гэх мэтчилэн олон шийдэл гарч ирнэ.
Дээр нь дотоод серверүүд бусад домэйны хувьд name resolution яаж хийх вэ? гэсэн асуудал гарч ирэх болно. Гол шийдэл нь дотоод DNS хариулж чадахгүй асуулгуудаа гадаад DNS-рүү forward хийнэ. Дотоодод ганц сервер байгаад zone file-уудаа агуулаад, caching бас хийхүү? эсвэл caching-only DNS сервер тусад нь ажиллуулах уу? гэдгийг тухайн системээс хамаарч админ шийдэх болвуу. Серверийнхээ ачаалал, найдвартай ажиллагааг бодолцвол гадаадад primary ба secondary, дотоодод primary ба secondary, дээр нь caching-only DNS cервер гэсэн хувилбараар нийтдээ 5 DNS сервер ажиллуулж болох юм.
Ямар ямар хувилбарууд байж болох талаар дэлгэрэнгүйг энэ нийтлэлийн төгсгөлд байгаа "Холбоосууд" хэсэгт байгаа баримтуудаас олж уншина уу.
BIND болон Sendmail ашиглан mail gateway хэрхэн тохируулах талаар "Холбоосууд" хэсгийн 3 дахь баримтаас уншаарай.
2. Гадаад, дотоод DNS мэдээллүүд тусдаа баазуудад, нэг DNS Cервер дээр байрлах
Үүнийг BIND9-н VIEW функцийн тусламжтай хийж болно. Тэгэхээр нэг DNS сервер гаднаас ч, дотроос ч DNS асуулгыг хүлээн авдаг байхын тулд 2 сүлжээний картаар гадаад, дотоод сүлжээнд шууд холбогдсон байх, эсвэл NAT-р гадагшаа гардаг байх ёстой болно. Эхнийх буюу нэг машин шууд гадаад, дотоодод зэрэг гарна гэдэг нь аюулгүй байдлын хувьд тун муу шийдэл юм. Тиймээс ихэнх тохиолдолд NAT хийгдсэн байдаг.
За тэгэхээр ямар ч байсан гаднаас ч, дотроос ч DNS асуулга хүлээж авдаг боллоо. Одоо BIND9-г тохируулах хэрэгтэй. Доорх жишээн дээр нэг гадаад slave сервертэй, split-brain DNS тогтолцооны гол сервер дээрх тохиргоог харуулав:
acl internal { 192.168.2.0/24; 192.168.0.0/24;};
acl secondary { xx.xx.xx.xx;};
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
recursion no;
notify no;
};
view internal {
match-clients { internal; };
recursion yes;
zone "test.mn" IN {
type master;
file "test.internal";
allow-update { localhost; };
};
"168.192.in-addr.arpa" IN {
type master;
file "named.internal";
allow-update { localhost; };
};
};
view external {
match-clients { any; };
recursion no;
zone "test.mn" IN {
type master;
file "test.external";
allow-update { localhost; };
allow-transfer { secondary; };
notify yes;
};
};
3. Гадаад, дотоод DNS мэдээллүүд нэг баазад, нэг DNS Cервер дээр байлах
Нэг мэдээллийг хоёр янзаар харуулахын тулд, бичлэг бүр дээр "tag" буюу тэмдэг тавьж ялгана гэнэ. Дотоод гэж тэмдэглэсэн бол дотоодод харуулж, гадаад гэж тэмдэглэсэн бол гадаадад харуулах юм байх. BIND мэдээж одоогоор ингэж чадахгүй байгаа. Харин Daniel J.Bernstein-ы djbdns тусламжтай үүнийг хийх боломжтой. Дэлгэрэнгүйг дор байгаа "Холбоосууд" хэсгийн 2 дахь баримтаас уншаарай.
Холбоосууд:
1. Microsoft DNS Technical Articles - Split-Brain DNS Server Configuration for ISPs
2. Jonathan de Boyne Pollard's homepage - Providing "split horizon" DNS service
3. Hal Pomeranz's homepage - DNS and Sendmail(PDF file)
4. BIND 9 - Administrator Reference Manual