Sunday, April 01, 2007

split-brain DNS, split-horizon DNS, DNS view

"Гадаадад нэг, дотоодод тусдаа мэдээлэл өгдөг DNS тогтолцоо"-г split-horizon DNS, split-brain DNS, DNS view гэх мэтчилэн олон янзаар нэрлэх болжээ. Хэдийгээр бүгд угтаа нэг утгыг агуулж байгаа хэдий ч цаад үүсэлийг нь аваад үзвэл хоорондоо нилээд ялгаатай ойлголтууд юм.

Split-horizon гэдэг нь router болон сүлжээний төхөөрөмжийн хувьд хэрэглэгддэг бөгөөд сервер DMZ(
demiliterized zone)-д байрлахыг хэлнэ.

DNS View гэж split-brain DNS-г implement хийхэд зориулсан
BIND 9View функцыг хэлж байгаа хэрэг юм.

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

9 comments:

Almas said...

Sain baina uu, enend hariulaad uguuch please...

http://www.mnbsd.org/forum/viewtopic.php?showtopic=2233&fromblock=yes

Баярлалаа.

amaraa said...

Bi Freebsd-g High Audibility Clustered bolgox geed ymar neg ym budaa idex geed ch oldoxgui bn. Ta freebsd + HA xiij baivuu?

baynaa said...

HA гэхээр High Availibility гэж ойлгогдоод байна л даа. Өөрөө бол High Audibility-г сонирхоод байгаан байна тээ. Cluster-тай ажиллаж байгаагүй болохоор сайн хэлж мэдэхгүй байна, Ubuntu дээр HA суулгаад handover хийх хэмжээнд л туршиж үзэж байсан. Хувиасаа зөвлөхөд хэрэв production-д хэрэглэх гэж байгаа бол FreeBSD-д дэмжигддэг багцыг Ports-с суулгасан нь дээр байхаа. Ингэж л зөвлөх байна даа.

amaraa said...

Manai server-uud deer freebsd amd64 version-uud ajildag zarimdaa ymar ch ym boloogui bxad. Tuhailbal freebsd restart xiigeed 10-20s-n daraa tag gatsdag. Tegeed 5-10s -n daraa zvgeer bolchno. Zarimdaa runtime-nhaa ved gatschna. Freebsd i386 ni bvr ajlax chgui. Tegexeer ni bi Master DNS-ee unagaaxgui bxiin tuld. Redundant gej yridag daa neg ni unaxaar nuguu uruugee shiljeed ajilchdag tiim ym xiix geed l uzej bgaan. freebsd deer heartbeat-g ajluulj bolox uu?.

amaraa said...

Buruu bichsend uuchlaarai odoo l anzaarch bn Freebsd-g High Audibility Mozilla firefox-n zuv bichdeg ymiig ashiglachixsan chini ugiig shal uur utgatai bolgochij.

amaraa said...

Buruu bichsend uuchlaarai odoo l anzaarch bn Freebsd-g High Audibility Mozilla firefox-n zuv bichdeg ymiig ashiglachixsan chini ugiig shal uur utgatai bolgochij.

baynaa said...

Коментийг чинь дэндүү орой олж үзлээ. Одоо бодвол асуудал аль хэдийнэ шийдэгдээ байлгүй дээ.
Production сервер чинь restart хийхдээ асуудалтай байна гэдэг маш ноцтой асуудал, нэг л өдөр бүр байхгүй болж мэднэ. Юуны түрүүнд хэрэгтэй файлуудаа backup хийгээд, энэ машинаа нэмэж оролдолгүйгээр шинэ машин дээр бүх зүйлээ суулгаж тохируулах хэрэгтэй.

DNS failover-н тухайд бол BIND-г primary, secondary гээд 2 сервер дээр тохируулаад өгчихсөн байхад аяндаа эхнийх нь унавал хоёрдахьруугаа failover хийнэ шүү дээ. Чи өөрөө шинэ юм инженерчлэх гэж цагаа барах шаардлага байхгүй хэрэг л дээ.

Веб серверийн хувьд түрүүн хэлсэн Ubuntu дээр Apache гэж санаж байна, HA хийж туршиж үзсэн юм байна. Ямар ч систем бай heartbeat дээр тулгуурлаж нөгөөгөө амьд байгааг мэддэг, тэгэхээр мэдээж FreeBSD дээр heartbeat ажиллаж л таарч байна даа.

Anonymous said...

Helo ! Forex - Работа на дому на компьютере чашка кофе получают удовлетворение от работы получать доход , пройти регистрацию forex [url=http://foxfox.ifxworld.com/]forex[/url]

Anonymous said...

[url=http://sexrolikov.net.ua/tags/mobstar/]mobstar[/url] Смотри и дрочи : [url=http://sexrolikov.net.ua/tags/Sweets/]Sweets[/url] , все это смотреть