الحالة العملية الأولى: فهم الطبقة 4 NAT وموازنة تحميل DNAT

منشور من طرف Zevenet | 20 سبتمبر 2017

هذه الحالات العملية هي دليل تدريبي لفهم أفضل كيف تعمل تقنيات الشبكات والأمن والتوافر العالي.

أولاً ، جرّب التمرين التالي:

Step 1. Install Zevenet CE from GIT, SF or Docker
            https://www.zevenet.com/community

Step 2. Create L4xNAT farm with 2 backends and NAT or DNAT mode
            https://www.zevenet.com/knowledge-base/

Step 3. Execute in a console of Zevenet CE and try to understand the result of:
            root# iptables -t mangle -n -L
            root# iptables -t nat -n -L

الشكوك والتعليقات في المسؤول القائمة البريدية!

إجابة

موازن الحمل عبارة عن جهاز شبكة مسؤول عن ضمان تدفق حركة المرور بين العميل والخوادم الخلفية أو الخوادم الحقيقية ، لذلك سيتم اتخاذ خطوات 4 بعناية لضمان تدفق ، حزمة لكل حزمة من الاتصال في طبقة 4:

Load_Balancer_l4_packet_flows

1. يتم إرسال الحزمة من العميل من العميل إلى موازن التحميل
2. يتم إرسال الحزمة من موازن التحميل إلى خادم حقيقي واحد أو الخلفية
3. رد الحزمة من الخادم إلى موازن التحميل
4. يتم إرسال الحزمة مرة أخرى إلى العميل كرد

Zevenet طبقة 4 (ملفات تعريف LSLB - L4xNAT) تتعامل مع كل هذه الحزم باستخدام نت فيلتر النظام الفرعي من خلال يبتابليس ونظام توجيه الشبكة.

لهذا السبب ، عند تكوين DTA وضع المزرعة وتنفيذ أوامر iptables يمكننا العثور على القواعد التي تم إنشاؤها في الجداول مفقود و نات من صافي تصفية. مزيد من المعلومات حول جداول Netfilter هنا .

في مجلة PREROUTING سلسلة من مفقود الجدول يظهر القواعد المطابقة:

- جميع الحزم الواردة من جميع المصادر أو العملاء التي تكون الوجهة هي العنوان الافتراضي ومنفذ الخدمة (في المثال سيكون 192.168.101.250: 443)
- ثم قم بتمييز الحزم وفقًا لخوارزمية معينة ، وفي هذه الحالة يكون الوزن بناءً على طريقة الاحتمالية.

root@zevenet:~# iptables -L -t mangle -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
CONNMARK   all  --  0.0.0.0/0            0.0.0.0/0            CONNMARK restore
MARK       tcp  --  0.0.0.0/0            192.168.101.250      statistic mode random probability 1.00000000000 multiport dports 443 /*  FARM_app_1_  */ MARK set 0x20d
MARK       tcp  --  0.0.0.0/0            192.168.101.250      statistic mode random probability 0.50000000000 multiport dports 443 /*  FARM_app_0_  */ MARK set 0x20c
CONNMARK   all  --  0.0.0.0/0            0.0.0.0/0            state NEW CONNMARK save

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

والآن بعد أن يتم وضع علامة على الحزم الواردة ، في PREROUTING سلسلة من نات الجدول الذي نستخدم فيه علامة الحزمة لتغيير عنوان الوجهة من الحزمة إلى خلفية واحدة أو أخرى. على سبيل المثال ، عناوين IP 192.168.1.10 و 192.168.1.11 هي الخوادم الحقيقية.

root@zevenet:~# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20c /*  FARM_app_0_  */ to:192.168.1.10:443
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20d /*  FARM_app_1_  */ to:192.168.1.11:443

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

يوفر conntrack يدير الجدول ترجمة عنوان الوجهة وفي DTA الوضع ، يتم إدارة حزمة الإرجاع من خلال الطرق حيث سيكون موازن التحميل هو البوابة الافتراضية للملفات الخلفية.

في حالة NAT، أو SNAT كما هو معروف ، فإن conntrack لا تدير فقط ترجمة عنوان الوجهة ولكن أيضًا ترجمة عنوان المصدر. في هذه الحالة ، الاختلاف الوحيد مع DTA هي أن الحزمة التي تم الرد عليها لا تتم إدارتها بواسطة نظام التوجيه ولكن بواسطة جدول conntrack. لذا يمكننا إيجاد قاعدتين جديدتين فقط في POSTROUTING سلسلة من الجدول نات من أجل تنفيذ يتنكر مع عنوان IP الظاهري للمزرعة.

root@zevenet:~# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20c /*  FARM_app_0_  */ to:192.168.1.10:443
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20d /*  FARM_app_1_  */ to:192.168.1.11:443

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20c /*  FARM_app_0_  */ to:192.168.101.250
SNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20d /*  FARM_app_1_  */ to:192.168.101.250

مزيد من الشكوك؟ اطلب من القائمة البريدية!

مشاركة مع :

وثائق بموجب شروط رخصة جنو للوثائق الحرة.

هل كان المقال مساعدا؟!

مقالات ذات صلة