تغییر مسیر ترافیک DNS در کانتینرهای Docker با استفاده از Tc-BPF

پذیرش eBPF (Extended Berkeley Packet Filter) برنامه های کاربردی با کارایی بالا، ردیابی، امنیت و فیلتر کردن بسته ها را در هسته لینوکس متحول کرده است. به طور خاص، TC-BPF، یک نوع برنامه eBPF متصل به لایه کنترل ترافیک (TC)، به عنوان یک ابزار قدرتمند برای دستکاری بسته ها در هر دو حالت ورودی و خروجی ظاهر شده است. این وبلاگ به کاربرد عملی TC-BPF برای تغییر مسیر پرس و جوهای DNS در محیط Docker می پردازد.

عملکرد پیچیده شبکه داکر شامل فضاهای نام شبکه، جفت‌های veth و یک رابط پل است که همگی به جداسازی کانتینرها کمک می‌کنند. Docker از سرور DNS خود استفاده می کند و درک اینکه چگونه پرس و جوهای DNS را از طریق iptables رهگیری می کند برای استراتژی تغییر مسیر ما بسیار مهم است.

برنامه TC-BPF که به هر دو رابط loopback و eth0 متصل است، نقشی اساسی در این فرآیند تغییر مسیر ایفا می کند. ما استفاده از bpf_redirect_neigh عملکرد کمکی برای تغییر مسیر خروجی کارآمد، اطمینان از آدرس‌های MAC صحیح برای مسیر جدید. این وبلاگ یک راهنمای گام به گام، از جمله راه اندازی محیط، نوشتن برنامه های TC-BPF، و استقرار آنها با استفاده از tc ابزار

برنامه های TC-BPF بسته های DNS را بازرسی می کنند و آنها را بر اساس پروتکل و مقصد هدایت می کنند. بسته‌های UDP برای راه‌اندازی حل‌کننده DNS Docker…

Source link