מקרים מעשיים אלה הם מדריך הדרכה כדי להבין טוב יותר כיצד עבודה ברשת, אבטחה וטכנולוגיות זמינות גבוהה.
ראשית, נסה את התרגיל הבא:
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
ספקות והערות ב פקיד רשימת תפוצה!
תשובה
איזון עומסים הוא מכשיר רשת אחראי על זרימת התנועה בין הלקוח לבין backends או שרתים אמיתיים, כך צעדים 4 יילקחו על מנת להבטיח את הזרמים, מנות לכל מנה של חיבור בשכבה 4:
1. החבילה מהלקוח נשלחת מהלקוח לאיזון העומס
2. החבילה נשלחת מתוך איזון עומסים לשרת אמיתי אחד נבחר או backend
3. המנה עונה מהשרת למאזן העומס
4. החבילה נשלחת בחזרה אל הלקוח כתגובה
זאבנט שכבה 4 (פרופילי LSLB - L4xNAT) מטפלת בכל החבילות הללו באמצעות Netfilter המשנה דרך iptables ואת מערכת ניתוב הרשת.
מסיבה זו, בעת קביעת תצורה של DTA מצב החווה ולבצע את פקודות iptables אנו יכולים למצוא כללים שנוצר בטבלאות מִגהָצָה ו נת של netfilter. מידע נוסף אודות 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
אל האני קונטראק שולחן מנהל את כתובת היעד היעד ב DTA מצב, מנות החזרה מנוהלת על ידי נתיבים כמו איזון עומס יהיה שער ברירת המחדל של backends.
במקרה של NAT, או SNAT כידוע, הטרקטור מנהל לא רק את תרגום כתובות היעד אלא גם את תרגום כתובת המקור. במקרה זה, ההבדל היחיד עם DTA היא שהחבילה שנענתה אינה מנוהלת על ידי מערכת הניתוב אלא על ידי טבלת המחברים. כדי שנוכל למצוא רק שני כללים חדשים ב- POSTROUTING שרשרת של שולחן nat כדי לבצע את מסקר עם כתובת ה- 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
ספקות נוספים? שאל את רשימת תפוצה!