Network Observability چیست؟ امنیت شبکه و حفظ و نگهداری عملکرد آن بهطور اساسی به نظارت بر رویدادهای شبکه بستگی دارد که توسط شبکه مجازی باز Open Virtual Network یا OVNراهاندازی میشوند. از قبیل policy های شبکه، policy های شبکه مدیریت و فایروال های خروجی.
میتوان با استفاده از عامل eBPF Network Observability که در هسته لینوکس اجرا میشود و این قابلیت را دارد تا فعالیتهای مختلف شبکه را باکم تریم میزان عملکردی overhead ردیابی کند، دستیابی به این هدف میتواند این امکان را بدهد تا اطلاعات دقیقی درباره ترافیک شبکه و Eventها در Real-Time مشاهده و ضبط شود.
Network Observability چیست و اجزای اصلی برای مشاهدهپذیری شبکه با eBPF کدامند
1-مانیتور کردن Eventهای شبکه eBPF ناظر بر kprobe eBPF hook
مانیتورینگ و نظارت و بر رویدادهای شبکه با استفاده از eBPF kernel probes یا kprobes شالوده و دید عمیقی را در مورد عملکرد network stack ارائه میکند. عامل NetObserv eBPF از entry point استفاده میکند تا بهطور مؤثر ابر داده بسته شبکه را ضبط کند و تخلفات از Policy را با حداقل هزینه سربار شناسایی کند. Hook پیادهسازی شده در عامل NetObserv eBPF میتواند چندین Event را در یک جریان شبکه ثبت کند و فهرستی از Eventهای شبکه را ایجاد کند که در آن جریان اعمال میشود، با محدودیت حداکثر چهار Event در هر جریان.
2- مشاهدهپذیری کتابخانه ovn-kubernetes
عامل eBPF رویدادها یا Eventهای شبکه را بهصورت طیف گستردهای از byteها ضبط میکند که چندان کاربرپسند نیست. این کتابخانه قابلیتی برای تبدیل این event ها به رشتههای قابلخواندن توسط انسان فراهم میکند و آنها را بهراحتی برای کاربران قابلدرک میکند.
استفاده از نمونهها برای مشاهدهپذیری شبکه با eBPF
در زیر موارد استفاده خاص برای مشاهدهپذیری شبکه با eBPF آورده شده است.
بیشتر بخوانید: منظور از مشاهدهپذیری و امنیت کوبرنتیز یا Kubernetes چیست – قسمت اول
نظارت بر policyهای شبکه
وقتی Policyهای شبکه OVN را اعمال میشوند مانند Kubernetes Networkpolicy، عامل eBPF میتواند ترافیک مجاز و/یا مسدود شده را کنترل کند و تشخیص دهد که آیا بستهها بر اساس Policy های شبکه مجاز هستند یا مسدود شدهاند.
نمونهای از این Policyهای شبکه به شرح زیر است:
شکل بالا جریان ترافیک در پلاگین کنسول NetObserv را نشان میدهد. ستون رویدادهای شبکه ترافیک مجاز یا رد شده توسط قوانین Policy شبکه را نشان میدهد.
شکل بالا تصویربرداری از صفحه جریانهای ترافیک در پلاگین کنسول NetObserv با ستون رویدادهای شبکه که ترافیک مجاز یا رد شده توسط قوانین Policy شبکه را نشان میدهد.
نظارت بر Policyهای شبکه مدیریت
AdminNetworkPolicy یک Policy امنیتی سطح بالا است که برای کنترل بیشتر مدیران Cluster بر ترافیک شبکه در محیطهای Kubernetes طراحیشده است. عامل eBPF میتواند ترافیک مجاز/مسدود شده را کنترل کند و تشخیص دهد که آیا بستهها بر اساس Policy های شبکه مدیریت مجاز هستند یا مسدود شدهاند.
نمونهای از AdminNetworkPolicy و egress NetworkPolicy برای نمایش موارد استفاده آنها در چند رویداد:
شکل بالا جریان ترافیک را در پلاگین کنسول NetObserv نشان میدهد، با یک ستون رویدادهای شبکه که تفویض اختیار توسط Policy های Admin را نشان میدهد که منجر به مجاز یا رد شدن ترافیک میشود.
شکل بالا تصویربرداری از صفحه جریانهای ترافیک در پلاگین کنسول NetObserv، با ستون رویدادهای شبکه که تفویض اختیار توسط Policyهای Admin را نشان میدهد که منجر به مجاز یا رد ترافیک میشود.
نظارت بر ترافیک فایروال خروجی
برای نظارت بر فایروال خروجی ، عامل eBPF میتواند ترافیک خروجی را ردیابی کند و ببیند آیا به قوانین فایروال خروجی پایبند است یا خیر، اتصالات خروجی غیرمجاز را شناسایی میکند و ترافیک خروجی را که قوانین فایروال خروجی را نقض میکند نیز پرچمداری و مشخص میکند.
در مثال زیر، سه رویداد وجود دارد، یکی برای NetworkPolicy، دیگری برای AdminNetworkPolicy و سومی برای EgressFirewall:
شکل بالا جریان ترافیک را در پلاگین کنسول NetObserv نشان میدهد. ستون رویدادهای شبکه ترافیک مجاز یا رد شده توسط قوانین فایروال خروجی را نشان میدهد.
شکل پایین تصویربرداری از صفحه جریانهای ترافیک در پلاگین کنسول NetObserv، با ستون رویدادهای شبکه که ترافیک مجاز یا رد شده توسط قوانین فایروال خروجی را نشان میدهد.
منظور از ادغام با Network Observability stack چیست
موارد زیر در Network Observability stack ادغامشده است:
عامل eBPF: عامل eBPF یک Kprobe Hook جدید را از طریق یک گزینه پیکربندی مدیریت میکند. همچنین در کتابخانه مشاهدهپذیری OVN ثبت میشود و به رویدادهای تولیدشده توسط eBPF اجازه میدهد تا به رشتههای معنیداری تبدیل شوند.
فضای عامل کاربری: فضای عامل کاربری ، تجمع رویدادهای شبکه را مدیریت میکند.
Flowlogs pipeline: جریانهای تولیدشده از طریق gRPC به جریان کارpipeline، جایی که محتوای جریان با Kubernetes Big Data یکی میشود، منتقل میشود.
پلاگین ذخیرهسازی و کنسول oki: جریانها غنیشده سپس به ذخیرهسازی Loki فرستاده میشوند و برای مصرف توسط پلاگین کنسول NetObserv در دسترس قرار میگیرند. رویدادهای جدید در کنسول نمایش داده میشوند.
قابلیت فیلترینگ جدید: یک فیلتر جدید برای فیلتر کردن جریانها بر اساس غنیسازی رویدادهای شبکه معرفیشده است.
در دسترس بودن: ویژگی نظارت بر رویدادهای شبکه در پیشنمایش برنامهنویسی برای Red Hat OpenShift Container Platform 4.17 z-stream و NetObserv موجود است.
تکیهبر فناوری eBPF برای مشاهدهپذیری شبکه، بهویژه در محیطهایی که توسط policyهای شبکه OVN و فایروالهای خروجی اداره میشوند، بینش عمیقیرا در مورد ترافیک شبکه ارائه میدهد.