व्यावहारिक मामला I: परत 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 प्रोफाइल) इन सभी पैकेट का उपयोग करके संभालती है नेटफिल्टर उप के माध्यम से iptables और नेटवर्क रूटिंग सिस्टम।

इस कारण से, जब कॉन्फ़िगर करना ए DNAT मोड खेत और iptables कमांड निष्पादित करें हम तालिकाओं में उत्पन्न नियमों को पा सकते हैं वध करना और नेट नेटफिल्टर का। आगे की जानकारी यहां नेटफिल्टर टेबल .

में 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 की श्रृंखला नेट टेबल हम पैकेट के गंतव्य पते का उपयोग एक बैकएंड या किसी अन्य के लिए गंतव्य पते को बदलने के लिए करते हैं। इस उदाहरण के लिए, आईपी पते 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         

RSI conntrack तालिका गंतव्य पता अनुवाद और में प्रबंधित करता है DNAT मोड, रिटर्न पैकेट को मार्गों द्वारा प्रबंधित किया जाता है क्योंकि लोड बैलेंसर बैकएंड का डिफ़ॉल्ट गेटवे होगा।

की दशा में NATया, SNAT जैसा कि यह आमतौर पर जाना जाता है, कन्करेट न केवल गंतव्य पते का अनुवाद करता है, बल्कि स्रोत पते का अनुवाद भी करता है। इस मामले में, केवल अंतर के साथ DNAT इसका मतलब यह है कि यह पैकेट पैकेट है जो राउटिंग सिस्टम द्वारा प्रबंधित नहीं किया जाता है, लेकिन कंवर्टर टेबल द्वारा। तो हम सिर्फ 2 नए नियमों में पा सकते हैं POSTROUTING प्रदर्शन करने के लिए नेट टेबल की श्रृंखला मुखौटा धारण कर लिया खेत के वर्चुअल आईपी पते के साथ।

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

आगे की शंका? से पूछो मेलिंग सूची!

पर साझा करें:

GNU फ्री डॉक्यूमेंटेशन लाइसेंस की शर्तों के तहत प्रलेखन।

क्या यह लेख सहायक था?

संबंधित आलेख