کوئری DNS روی TCP از طریق فوروارد محلی SSH
یک پورت TCP محلی بدون نیاز به دسترسی ویژه را به سرور DNS راه دور فوروارد کنید و صریحاً DNS over TCP را با dig درخواست کنید.
فوروارد محلی OpenSSH ترافیک TCP را منتقل میکند. DNS هم میتواند از TCP استفاده کند، به شرطی که ابزار کوئری و سرویس DNS راه دور از این انتقال استفاده کنند.
برای سرور DNS قابل دسترسی از میزبان SSH، فورواردی باز کنید که فقط روی 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 سیستم به یک forwarder مناسب DNS یا پیکربندی TCP با پشتیبانی صریح نیاز دارد.
در پایان، دریافت یک نشانی از این مسیر باعث نمیشود اتصال وب بعدی از SSH عبور کند. جستجوی DNS و انتقال تا مقصد دو انتخاب جداگانه باقی میمانند.