وقتی یک کاربر در شبکه سازمان یک درخواست اینترنتی ارسال میکند، در ظاهر اتفاق سادهای رخ میدهد: درخواست از سیستم کاربر خارج میشود، از Firewall عبور میکند و به مقصد میرسد.
اما در پشت این فرآیند ساده، یک Packet باید مجموعهای از تصمیمهای شبکهای و امنیتی را پشت سر بگذارد.
به طور کلی، FortiGate باید ارتباط را شناسایی کند، Firewall Policy مناسب را پیدا کند، مسیر رسیدن به مقصد را مشخص کند، در صورت نیاز NAT انجام دهد و بر اساس Security Featureهای فعال، Traffic را بررسی کند.
در برخی سناریوها نیز بخشی از پردازش میتواند توسط Hardware Acceleration انجام شود.
اما این مسیر چگونه طی میشود؟
اولین قدم: Packet وارد FortiGate میشود!
فرض کنیم یک Client در شبکه داخلی با IP زیر قصد دارد به یک مقصد در اینترنت متصل شود:
192.168.10.25
مسیر کلی Traffic به این شکل است:
Client → FortiGate → Internet
و Packet از Interface داخلی وارد FortiGate میشود.
یکی از نخستین مواردی که دستگاه باید مشخص کند، وضعیت Session است.
آیا این Packet متعلق به یک Session موجود است یا یک Session جدید در حال شکلگیری است؟
اطلاعاتی مانند Source IP، Destination IP، Protocol و Portها در شناسایی و مدیریت Session نقش دارند.
این موضوع اهمیت زیادی دارد، چون نحوه پردازش اولین Packet یک Session میتواند با Packetهای بعدی همان Session متفاوت باشد.
در Firewall Policy، آیا Traffic اجازه عبور دارد؟
پس از شناسایی Session، FortiGate باید مشخص کند Traffic با کدام Firewall Policy مطابقت دارد.
در یک سناریوی معمول، مواردی مانند Incoming Interface، Outgoing Interface، Source، Destination، Service و Schedule میتوانند در انتخاب Policy مؤثر باشند.
در برخی سناریوها نیز User و Identity در این تصمیم نقش دارند.
اگر Traffic با یک Policy مجاز Match نشود، Forward شدن آن ادامه پیدا نمیکند.
اما اگر Policy اجازه عبور بدهد، هنوز چند تصمیم دیگر باقی مانده است.
Security Profileهای متصل به Policy میتوانند مشخص کنند Traffic چه نوع بررسیهایی را پشت سر بگذارد.
باید بدانیم Routing و پکت از کجا خارج شود؟
حالا FortiGate باید مسیر رسیدن به مقصد را مشخص کند.
فرض کنیم Destination یک IP در اینترنت است.
Routing Table میتواند تعیین کند که Packet باید از Gateway مربوط به ISP و از Interface مربوط به WAN خارج شود.
در شبکههای پیچیدهتر، Static Route، Dynamic Routing یا Policy Route نیز میتوانند در این تصمیم نقش داشته باشند.
بنابراین FortiGate علاوه بر وظایف امنیتی، بخشی از فرآیند Routing و Traffic Forwarding را نیز مدیریت میکند.
چگونه NAT، تغییر آدرس در مسیر میدهد؟
حالا Client داخل شبکه سازمان از یک Private IP استفاده میکند:
192.168.10.25
برای برقراری ارتباط با اینترنت، FortiGate میتواند Source NAT را اعمال کند.
برای مثال:
192.168.10.25:51542
به:
Public-IP:43120
تبدیل میشود.
و FortiGate اطلاعات این Translation را در ارتباط با Session نگهداری میکند تا Traffic برگشتی بتواند به Client اصلی بازگردد.
به همین دلیل NAT را نمیتوان کاملاً جدا از Session در نظر گرفت و هر دو بخشی از مدیریت همان ارتباط هستند.
وقتی Firewall باید داخل Traffic را ببیند.
تا اینجا FortiGate درباره Session، Policy، Routing و NAT تصمیم گرفته است.
اما یک NGFW فقط نمیپرسد:
Where is the Traffic going؟
بلکه میتواند سؤال مهمتری را هم مطرح کند:
What is inside the Traffic؟
در اینجا Security Inspection وارد مسیر میشود.
بسته به Configuration، قابلیتهایی مانند IPS، Antivirus، Application Control و SSL Inspection میتوانند روی Traffic اعمال شوند.
برای مثال، اینکه یک ارتباط از TCP/443 استفاده میکند، بهتنهایی مشخص نمیکند چه Applicationی در حال استفاده از آن ارتباط است یا آیا Traffic حاوی نشانهای از یک Threat است.
در نتیجه، تصمیم امنیتی میتواند فراتر از Source IP، Destination IP و Port باشد و Context بیشتری مانند User، Device، Application و Threat را در نظر بگیرد.
Flow Based یا Proxy Based؟
نحوه Inspection نیز میتواند مسیر پردازش Traffic را تغییر دهد.
در Flow Based Inspection، Traffic در قالب جریان داده بررسی میشود و Security Engineها میتوانند بدون ایجاد یک Proxy کامل، Traffic را برای شناسایی Patternها و Threatها بررسی کنند.
در Proxy Based Inspection، FortiGate میتواند Traffic یا Content را دریافت و پردازش کند و پس از انجام بررسیهای لازم، ادامه ارتباط را مدیریت کند.
تفاوت این دو رویکرد میتواند روی منابع پردازشی موردنیاز و امکان Hardware Offloading نیز تأثیر داشته باشد.
چه کسی Packet را پردازش میکند؟
یکی از بخشهای مهم معماری FortiGate، استفاده از Hardware Acceleration است.
در بسیاری از مدلهای FortiGate، پردازندههای تخصصی مانند Network Processor یا NP میتوانند بخشی از Traffic Processing را از Main CPU جدا کنند.
در مدلهای مجهز به NP7، برخی عملیات مربوط به IPv4، IPv6، NAT و در شرایط مشخص IPsec میتوانند از Hardware Acceleration استفاده کنند.
اما یک نکته مهم وجود دارد:
Every Session Is Not Necessarily Offloaded.
یعنی وجود NP7 به این معنی نیست که تمام Traffic همیشه وارد Hardware Fast Path میشود.
نوع Traffic، Security Featureهای فعال، Inspection Mode و شرایط Session میتوانند روی امکان Offload شدن Traffic تأثیر بگذارند.
به همین دلیل، Maximum Firewall Throughput بهتنهایی معیار کاملی برای پیشبینی Performance واقعی یک FortiGate نیست.
یک FortiGate، چند مسیر پردازشی!
یکی از مفاهیم مهم در معماری FortiGate، Parallel Path Processing است.
ترافیکهای مختلف، بسته به Policy و Featureهای فعال، میتوانند مسیرهای پردازشی متفاوتی را طی کنند.
یک Session ممکن است عمدتاً در مسیر Network Processing و Hardware Acceleration پردازش شود، در حالی که Session دیگری به Security Inspection بیشتری نیاز داشته باشد و بخش بیشتری از پردازش آن روی CPU انجام شود.
بنابراین نمیتوان برای تمام Packetها یک مسیر ثابت در نظر گرفت.
مسیر واقعی به عواملی مانند نوع Traffic، Security Profileها، Inspection Mode، NAT، VPN و Hardware Platform وابسته است.
چرا Packet Flow در Sizing اهمیت دارد؟
شناخت Packet Flow در Troubleshooting و Sizing نیز اهمیت دارد.
هنگام انتخاب Firewall، علاوه بر حجم Traffic باید مواردی مانند Concurrent Sessions، Session Creation Rate، Security Featureهای فعال، SSL Inspection، VPN Traffic و امکان Hardware Offloading را نیز در نظر گرفت.
دو سازمان با حجم Traffic مشابه، در صورت استفاده از Security Featureهای متفاوت، ممکن است نیاز پردازشی یکسانی نداشته باشند.
بنابراین انتخاب FortiGate صرفاً بر اساس یک عدد از Datasheet، تصویر کاملی از Performance مورد انتظار ارائه نمیدهد.
در نهایت Packet چه مسیری را طی میکند؟
اگر بخواهیم کل فرآیند را در سادهترین شکل خلاصه کنیم:
Ingress → Session → Firewall Policy → Routing → NAT → Security Inspection → Hardware Acceleration, if applicable → Egress
البته مسیر واقعی میتواند بر اساس مدل FortiGate، نسخه FortiOS، نوع Traffic و Featureهای فعال متفاوت باشد.
شناخت این مسیر به Network و Security Engineers کمک میکند تا Performance، Troubleshooting و Sizing را با دید دقیقتری بررسی کنند.



