OpenSSH ၏ ဒေသတွင်း ပို့ဆောင်မှုသည် TCP ကို သယ်ဆောင်သည်။ မေးမြန်းသည့်ကိရိယာနှင့် အဝေးရှိ DNS ဝန်ဆောင်မှုက ထိုသယ်ဆောင်မှုကို အသုံးပြုပါက DNS သည်လည်း TCP ကို အသုံးပြုနိုင်သည်။

SSH လက်ခံစက်မှ ရောက်ရှိနိုင်သော DNS ဆာဗာအတွက် loopback တွင်သာ နားထောင်သည့် ပို့ဆောင်မှုကို ဖွင့်ပါ။

ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]

ထို့နောက် ဒေသတွင်းစက်မှ ရှင်းလင်းသော TCP DNS မေးခွန်းကို ပို့ပါ။

dig +tcp @127.0.0.1 -p 1053 app.internal A

DNS ဆာဗာ၊ SSH လက်ခံစက်နှင့် မေးမြန်းသည့်အမည်ကို ရည်ရွယ်သည့်တန်ဖိုးများဖြင့် အစားထိုးပါ။ SSH ဆာဗာဘက်သည် dns.internal:53 သို့ ရောက်ရှိနိုင်ရမည်၊ ပို့ဆောင်မှုမူဝါဒကလည်း ခွင့်ပြုရမည်။

ဒေသတွင်းပေါက်သည် အထူးအခွင့်အရေးပေါက် အတိုင်းအတာအထက်၌ ရှိသည်။ ဒေသတွင်းပေါက် 1053 သို့ မေးမြန်းရာတွင် စနစ်၏ DNS ပေါက် 53 ကို ချိတ်ဆွဲရန် မလိုအပ်ပါ။

၎င်းသည် သာမန် UDP DNS မေးခွန်းများကို အလိုအလျောက် လမ်းကြောင်းပြောင်းပေးသည်မဟုတ်ပါ။ UDP မှ TCP သို့ အကြမ်းထည် ဘိုက်ပိုက်လုံလောက်မှုမရှိပါ၊ အကြောင်းမှာ DNS over TCP သည် အရှည်အကွက်နှင့် စီးကြောင်းဘောင်ကို ထပ်ပေါင်းထည့်သည်။ စနစ် resolver နှင့် ပေါင်းစည်းရန် သင့်လျော်သော DNS ပို့ဆောင်သူ သို့မဟုတ် ရှင်းလင်းစွာ ပံ့ပိုးထားသော TCP ဖွဲ့စည်းမှု လိုအပ်သည်။

နောက်ဆုံးအနေဖြင့် ဤလမ်းကြောင်းမှ လိပ်စာရယူခြင်းသည် နောက်ဆက်တွဲ ဝဘ်ချိတ်ဆက်မှုကို SSH မှတစ်ဆင့် ပို့သည်မဟုတ်ပါ။ DNS ရှာဖွေမှုနှင့် ခရီးဆုံးသို့ သယ်ဆောင်မှုသည် သီးခြားရွေးချယ်မှုများအဖြစ် ကျန်ရှိသည်။

ဆက်စပ်ဆောင်းပါးများ