एक में कई इंटरनेट कनेक्शन मर्ज कैसे करें?


23

मेरे पीसी में कुल 4 एनआईसी, 2 वायर्ड गीगाबिट ईथरनेट नेटवर्क कार्ड और 2 वायरलेस नेटवर्क कार्ड हैं। (मालिकाना ड्राइवरों के साथ एक ब्रॉडकॉम और ओपन सोर्स सॉफ़्टवेयर के साथ रालिंक, जो ब्रॉडकॉम की तुलना में बहुत बेहतर काम करता है।)

मेरा सेलफोन वायरलेस कनेक्शन को मेरे पीसी पर साझा कर सकता है, लेकिन मेरे पास एक वायर्ड इंटरनेट कनेक्शन भी है। इसलिए मेरे पास इंटरनेट तक पहुंचने के लिए कई इंटरनेट कनेक्शन हैं । मैं एक साथ 2 या अधिक कनेक्शनों को कैसे मर्ज कर सकता हूं और उन्हें एक एकीकृत इंटरनेट अनुभव का आनंद लेने के लिए संतुलित कर सकता हूं कि यह उससे जुड़े सभी इंटरनेट कनेक्शनों का योग है।

उदाहरण के लिए, यदि मेरे पास 1024kB / s के इंटरनेट कनेक्शन के साथ एक मॉडेम है और एक अन्य जो 512kB / s और एक छोटा एक है जो 128kB / s प्रदान करता है, लोड संतुलन और सभी कनेक्शनों को जोड़ने के बाद (संबंध या टीमिंग), मैं डाउनलोड कर सकता हूं उदाहरण के लिए एक के रूप में सभी 3 इंटरनेट कनेक्शन का उपयोग कर 1664kB / s की गति।

इस सवाल ने मुझे हमेशा परेशान किया है।


5
पूछो Ubuntu के दायरे से परे लगता है :) यह सुंदर जटिल नेटवर्किंग सामान है। IMO शायद ही कभी इसके लायक होता है, जब तक आप किसी लिंक को नीचे (यहां तक ​​कि अस्थायी रूप से) खोए हुए पैकेटों को खाते में लेते हैं, कुछ लिंक दूसरों की तुलना में धीमे होने के कारण पैकेट को फिर से चालू करते हैं, और ऐसी चीजें। मैं एक "ब्लैक बॉक्स" समाधान के बारे में नहीं जानता जो ऐसा करेगा, एक दिलचस्प परियोजना हो सकती है।
सीज़ियम

9
वैसे सवाल यह है कि क्या यह उबंटू में किया जा सकता है और यदि हां तो कैसे।
लुइस अल्वाराडो

मैंने एक पीसी पोस्ट पर 2 इंटरनेट कनेक्शन में एक उत्तर बनाया । उबंटू में बाउंडिंग के लिए दस्तावेजों को जोड़ना।
लुसियो

@ ल्यूको मैं प्रश्न को डुप्लिकेट के रूप में चिह्नित कर सकता हूं या आप अपना उत्तर यहां स्थानांतरित कर सकते हैं और मैं इसे स्वीकार कर सकता हूं। आपको 13.04 के लिए भी तैयार रहने की आवश्यकता होगी क्योंकि यह नेटवर्क मैनेजर में बॉन्डिंग विकल्प (केवल वायर्ड बॉन्डिंग स्लेव्स) को शामिल करेगा।
लुइस अल्वारादो

जवाबों:


11

मैं Ubuntu 11.04 का उपयोग करते हुए काम में ऐसा कुछ करता हूं। हम Shorewall फ़ायरवॉल कॉन्फ़िगरेशन टूल चलाते हैं, जो अपनी नौकरी में उत्कृष्ट होने के अलावा, कुछ अल्पविकसित एकाधिक ISP रूटिंग टूल प्रदान करता है जो आपकी आवश्यकताओं के अनुरूप हो सकते हैं। आप इसके बारे में कुछ डॉक्स यहां पा सकते हैं: http://www.shorewall.net/MultiISP.html

हालांकि यह नीचे आता है, क्या आप एक कनेक्शन के लिए कई आईएसपी का उपयोग नहीं कर सकते हैं ... चीजें इतनी सरल नहीं हैं। आप जो सबसे अच्छा कर सकते हैं वह अलग-अलग प्रदाताओं के बीच समान रूप से नए कनेक्शन को निर्देशित करने का प्रयास करता है।

यह एक जटिल समस्या है। आप शायद हर समस्या को डीबग करने से पहले दीवार के खिलाफ अपना सिर पीटते हैं (मैंने निश्चित रूप से किया था)। इसलिए, जैसा कि अन्य पोस्टरों ने सुझाव दिया है, आप ध्यान से विचार कर सकते हैं कि आपकी इच्छा कितनी मजबूत है।


अच्छा लिंक। बहुत अच्छा ट्यूटोरियल।
लुइस अल्वाराडो


8

आप इसे उस पैकेज का उपयोग करके कर सकते हैं ifenslaveजो गुलाम नेटवर्क इंटरफेस को एक बॉन्डिंग डिवाइस में संलग्न और अलग करता है।

  1. इंस्टॉल करें:

    sudo apt-get install ifenslave
    
  2. लोड संबंध कर्नेल मॉड्यूल

    sudo modprobe bondingle
    
  3. अपने इंटरफेस को कॉन्फ़िगर करें:

    sudo vi /etc/network/interfaces
    

    उदाहरण के लिए विन्यास, eth0 और eth1 को अपने बॉन्डिंग इंटरफ़ेस के दास के रूप में संयोजित करने के लिए:

    #eth0 is manually configured, and slave to the "bond0" bonded NIC
    auto eth0
    iface eth0 inet manual
    bond-master bond0
    
    #eth1 ditto, thus creating a 2-link bond.
    auto eth1
    iface eth1 inet manual
    bond-master bond0
    
    # bond0 is the bonded NIC and can be used like any other normal NIC.
    # bond0 is configured using static network information.
    auto bond0
    iface bond0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    # bond0 uses standard IEEE 802.3ad LACP bonding protocol 
    bond-mode 802.3ad
    bond-miimon 100
    bond-lacp-rate 1
    bond-slaves none
    
  4. नेटवर्क पुनरारंभ करें:

    sudo restart networking
    
  5. बंधे हुए इंटरफ़ेस को ऊपर / नीचे लाना:

    ifup bond0
    ifdown bond0
    

    हमारे द्वारा उपयोग किए जाने वाले उदाहरण के रूप में कई संबंध मोड हैं:

    bond-mode active-backup
    

    सक्रिय-बैकअप बॉन्डिंग मोड का विवरण :

    सक्रिय-बैकअप नीति: बॉन्ड में केवल एक दास सक्रिय है। एक अलग दास सक्रिय हो जाता है यदि, और केवल यदि, सक्रिय दास विफल रहता है। स्विच को भ्रमित करने से बचने के लिए बॉन्ड का मैक पता केवल एक पोर्ट (नेटवर्क एडेप्टर) पर बाहरी रूप से दिखाई देता है। यह मोड गलती सहिष्णुता प्रदान करता है। प्राथमिक विकल्प इस मोड के व्यवहार को प्रभावित करता है।

    उबुंटू समुदाय के स्रोत और अधिक जानकारी विकि की मदद करते हैं

बॉन्डिंग का अर्थ है, एकल लिंक के लिए कई नेटवर्क इंटरफेस (एनआईसी) का संयोजन, जो कि उच्च उपलब्धता, लोड-संतुलन, अधिकतम थ्रूपुट, या इनमें से एक संयोजन प्रदान करता है। स्रोत


+1 क्योंकि मेरे प्रश्न का एक कारण है। अभी भी वर्चुअल नेटवर्क मास्टर कनेक्शन बनाने के लिए एक तरह से इंतजार करेगा जो सभी दास (वास्तविक) कनेक्शनों का योग है। बॉन्डिंग जैसा कुछ जो नवीनतम कर्नेल संस्करण में आता है।
लुइस अल्वाराडो

2
-1 - लेन में काम करता है संबंध के रूप में यह परत 2 पर काम कर रहा है। सवाल दो स्वतंत्र वैन लोड संतुलन के बारे में है ।
gertvdijk

@gertvdijk मैं सहमत नहीं हूं कि यह पता लगाने के लिए मेरे अपडेट जवाब की जांच करें कि बॉन्डिंग भी बैलेंसिंग लोड करती है।
pl1nk

1
@ pl1nk यह L2 2 एक ही L2 नेटवर्क में दो NIC के लिए लोड संतुलन है। यह मल्टी-आईएसपी लोड बैलेंसिंग के समान नहीं है!
gertvdijk

3
@ pl1nk मेरी अंतिम टिप्पणी। प्रश्न स्पष्ट रूप से कई स्वतंत्र ब्रॉडबैंड कनेक्शनों से संबंधित है। हालांकि वे एक आईएसपी हो सकते हैं, यह परत 2 पर इसे संभालने के लिए विकलांगता को नहीं बदलता है।
gertvdijk

6

यह थोड़ा पुराना सवाल है, लेकिन अगर आप अभी भी जानना चाहते हैं ..

2 विशिष्ट परिदृश्य हैं, उत्तर में से एक में gertvdijk और pl1nk क्या बहस कर रहे थे:

आपके पास 2 सार्वजनिक आईपी (2 अलग-अलग आईएसपी) के साथ एक कंप्यूटर है और आप किसी अन्य होस्ट से कनेक्ट करते हैं (उदाहरण के लिए डेटासेंटर में एक सर्वर जिसमें वसा पाइप है जो आपके कंप्यूटर के दोनों आईएसपी कनेक्शनों के कुल बैंडविड्थ से बड़ा है)। तो आप अपने 2 कनेक्शन के माध्यम से मेजबान को एक संबंध स्थापित करते हैं और फिर मेजबान (सर्वर) अपने स्वयं के इंटरनेट कनेक्शन के माध्यम से आपके ट्रैफ़िक की सेवा करता है। इस परिदृश्य में, आप एकल कनेक्शन के लिए दोनों दिशाओं में लगभग 100% संयुक्त बैंडविड्थ प्राप्त कर सकते हैं।

यह बॉन्डिंग / टीमिंग / लिंग एकत्रीकरण का एक विशेष मामला है जहां कई लेयर 2 (एक ही नेटवर्क) इंटरफेस एक साथ जुड़ जाते हैं। कंप्यूटर से होस्ट तक प्रत्येक आईएसपी इंटरफ़ेस पर वीपीएन लेयर 2 (टैप) कनेक्शन स्थापित करके और उन्हें एक साथ जोड़कर (राउंड-रॉबिन मोड) एकल इंटरफ़ेस करने के लिए इसे प्राप्त किया जा सकता है। इस परिदृश्य में सीमित कारक मेजबान के प्रत्येक आईएसपी कनेक्शन पर देरी (पिंग) कितने अलग हैं। वे जितने अधिक समान और स्थिर हैं, उतना ही बेहतर है। हम इसे अपने किसी एक इंस्टालेशन में इस्तेमाल करते हैं, यह अच्छी तरह से काम करता है। यदि आप इस विवरण को जानना चाहते हैं कि इसे कैसे लागू किया जाए तो मुझे बताएं।

फिर एक अन्य परिदृश्य एक मध्यवर्ती मेजबान के बिना होगा, यानी आपके आईएसपी से सीधा संबंध दुनिया भर के विभिन्न वेबसर्वर्स से है। इस मामले में सबसे अच्छा आप प्राप्त कर सकते हैं कि समान रूप से इंटरफेस के बीच आउटगोइंग कनेक्शन वितरित करना है - यानी एक टीसीपी सत्र पूरी तरह से एक आईएसपी के माध्यम से जाता है, एक दूसरे सत्र के माध्यम से और इसी तरह। ऐसा इसलिए है क्योंकि जब आप एक टीसीपी कनेक्शन स्थापित करते हैं, तो इसमें प्रत्येक पैकेट के लिए मूल और आईपी पते होते हैं और जब कोई सर्वर किसी अन्य आईपी से एक पैकेट प्राप्त करता है जिसके लिए एक टीसीपी हैंडशेक नहीं किया गया था, तो वह पैकेट को गलत मानता है और उसे छोड़ देता है। जैसा कि प्रत्येक आईएसपी कनेक्शन का अपना सार्वजनिक आईपी होता है, उसी टीसीपी सत्र के लिए आप एक पैकेट को एक आईपी से दूसरे कनेक्शन के माध्यम से और दूसरे आईपी के साथ दूसरे कनेक्शन के माध्यम से नहीं भेज सकते हैं।

आप किसी एकल कंप्यूटर के लिए पहले परिदृश्य के साथ उच्च एग्रीगेट बैंडविड्थ उपयोग के रूप में प्राप्त नहीं करेंगे, लेकिन एक छोटे से कार्यालय के लिए यह एक अच्छा समाधान हो सकता है। आप इसे थोड़ा विस्तार देने के लिए क्या कर सकते हैं यह विशिष्ट प्रोटोकॉल के लिए कस्टम समाधान को लागू करना है। उदाहरण के लिए, आप http डाउनलोड के लिए गेटवे (जो एक ही कंप्यूटर हो सकता है) पर किसी प्रकार का एक प्रॉक्सी हो सकता है और विभिन्न ISP इंटरफेस के माध्यम से अलग-अलग टीसीपी सत्रों की स्थापना करने वाली एक विशाल फ़ाइल के विभिन्न हिस्सों के लिए पूछ सकता है। इस मामले में परिणामी डाउनलोड दर संयुक्त बैंडविड्थ के 100% के पास होगी। यह गेटवे को उतारने जैसा है, ReGet, GetRight और इसी तरह के डाउनलोडर क्या करते हैं। Google 'HTTP 206 आंशिक सामग्री'। मुझे इस परिदृश्य के लिए कोई भी आउट-ऑफ़-द-बॉक्स ओपन-सोर्स समाधान नहीं पता है, लेकिन ऐसे हार्डवेयर उपकरण हैं जो वास्तव में ऐसा करते हैं: google '


वाह! आपके उत्तर का पहला भाग वही है जिसकी मुझे तलाश है। मेरे पास उबंटू के साथ क्लाउड में एक सर्वर है और बहुत तेज़ कनेक्शन है। और केवल इंटरनेट कनेक्शन जो मेरे पास हो सकता है, वह सीमित 3G के साथ 300kbps है। क्या आप अपने उत्तर के पहले भाग को प्राप्त करने के लिए अधिक जानकारी दे सकते हैं, ताकि मैं अपने कनेक्शन की गति में सुधार करने के लिए कई 3 जी डोंगल और योजनाएं खरीद सकूं?
Huafu

2
echo "bonding" >> /etc/modules echo -e "alias bond* bonding\noptions bonding max_bonds=10 mode=2 xmit_hash_policy=layer3+4 arp_interval=100 arp_ip_target=10.0.0.1" > /etc/modprobe.d/bonding.conf
अनातोली

1
और इस बॉन्ड के सभी टैप आइफेल्स को ग़ुलाम बना लें: echo "+tapX " >> /sys/class/net/bond0/bonding/slaves इसके साथ इसकी स्थिति की जाँच करें: cat /proc/net/bonding/bond0 इस स्तर पर सभी इंटरनेट ट्रैफ़िक को डेटाैकेंटर में बॉन्ड0 से सर्वर तक प्रवाहित करना चाहिए। वहां आपको रूटिंग सेट करना चाहिए: echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 माना जाता है कि इंटरनेट iface)
अनातोली

1
यह बॉन्ड कॉन्फ़िगरेशन (मोड = 2 xmit_hash_policy = layer3 + 4) प्रत्येक नए कनेक्शन को हैश के आधार पर अलग-अलग अंतर्निहित VPN iface (IP से पोर्ट और कनेक्शन में शामिल पोर्ट) की संख्या के आधार पर बना देगा। और जानकारी: kernel.org/doc/Documentation/networking/bonding.txt । यह वास्तव में मेरे जवाब से दूसरे समाधान की तरह है, यह इसलिए है क्योंकि आपको राउंड-रॉबिन बॉन्डिंग के लिए एक बहुत ही समान (बहुत कम घबराना और उसी बैंडविड्थ) अंतर्निहित कनेक्शन की आवश्यकता होती है ताकि सही ढंग से काम किया जा सके (अन्यथा आपको बहुत सारे पैकेट पुन: व्यवस्थित होते हैं) और आप कहते हैं आपके कनेक्शन 3G हैं।
अनातोली

1
@Huafu, पहला समाधान करने के लिए आपको mode=2 xmit_hash_policy=layer3+4y निर्दिष्ट के बजाय संबंध विकल्पों को बदलना होगा mode=0(लिंक @ kernel.org देखें), लेकिन पहले जांचें कि 3 जी के माध्यम से लिंक कैसे समान हैं। यदि उनका पिंग समय 2-3ms से अधिक है या घबराना 1ms से अधिक है तो आपके पास एकत्रित लिंक की गति को प्रभावी ढंग से कम करने के लिए बहुत सारे पैकेट पुन: व्यवस्थित होंगे। आपको netstat -s( लिंक का पता लगाने के लिए) और iperf -s/ के साथ समेकित लिंक आँकड़ों की जाँच करनी होगी iperf -c <server_ip> -d। 1 प्रत्येक लिंक के प्रदर्शन की जांच करें, फिर हम एक समाधान के साथ जारी रख सकते हैं
अनातोली

0

मुझे एक समान समस्या का सामना करना पड़ा .. और मैं mr द्वारा पहले परिदृश्य के अनुसार समाधान के दृष्टिकोण में बहुत रुचि रखता था। जीटीएच और अनातोली, मैं आपको पहले परिदृश्य में वर्णित कॉन्फ़िगरेशन का परीक्षण करने के लिए बुनियादी कॉन्फिग और स्क्रिप्ट को बाहर करने के लिए कहता हूं।

अब मैं विभिन्न आईएसपी प्रदाताओं के माध्यम से वीएनएन कनेक्शनों को कॉन्फ़िगर करता हूं, जो संयुक्त ट्यून / टैप इंटरफेस का उपयोग करता है (यह बंधन नहीं है, जो उत्तर # 8 में समझाया गया है) इस उपयोगिता के साथ:

लिंकन डी। स्टीन द्वारा नेट-आईएसपी-बैलेंस

बेहतर बैंडविड्थ और विश्वसनीयता के लिए अपने इंटरनेट कनेक्शन को दो या अधिक आईएसपी पर लोड-बैलेंस करें

प्रोजेक्ट होम: https://lstein.github.io/Net-ISP-Balance/

यह पैकेज आपको दो या दो से अधिक आईएसपी में एक घर या छोटे व्यवसाय के इंटरनेट कनेक्शन को लोड-बैलेंस करने की अनुमति देता है। आप अपने संपूर्ण LAN को संतुलित करने के लिए दो ISP से जुड़े एक एकल होस्ट या एक राउटर / फ़ायरवॉल मशीन के साथ इसका उपयोग कर सकते हैं। अपलोड और डाउनलोड क्षमता बढ़ाने के लिए आईएसपी कनेक्शन दोनों में नेटवर्क ट्रैफ़िक संतुलित है, और यदि एक आईएसपी विफल हो जाता है, तो दूसरे आईएसपी स्वतः ही संभाल लेंगे।

बैंडविड्थ प्रति कनेक्शन स्तर पर वितरित किया जाता है। इसका मतलब है कि आप किसी विशेष डाउनलोड या स्पीड बेंचमार्क पर एकत्रित बैंडविड्थ को नहीं देखेंगे, लेकिन आपको लाभ तब दिखाई देगा जब एक साथ कई डेटा ट्रांसफर हो रहे हों, उदाहरण के लिए, जब आपके घर के कई व्यक्ति फिल्में स्ट्रीम कर रहे हों। इसके अलावा, बिट-टोरेंट जैसे मल्टी-कनेक्शन फ़ाइल ट्रांसफर प्रोटोकॉल, लोड बैलेंसिंग के लाभों को देखेंगे।

हमारे उद्देश्यों के लिए लिनक्स में रूटिंग और iptables के प्रबंधन के लिए यह एक पर्ल आधारित उपयोगिता है, वास्तव में, पहले सभी प्रदाताओं के लिए एक रूटिंग टेबल बनाता है, और फिर प्रदाताओं के बीच समान रूप से सभी लैन ट्रैफ़िक को वितरित करता है, यह समझने के लिए कि उपयोगिता कैसे काम करती है, विचार करने के लिए सुझाव दें 3 isp + 1 लैन के लिए एक छोटा सा उदाहरण (परीक्षण विन्यास)

 #cat /etc/network/balance.conf
 ##service    device   role     ping-ip           
 CABLE3       enp0s3   isp      10.0.2.2
 CABLE8       enp0s8   isp      10.0.3.2
 CABLE9       enp0s9   isp      10.0.4.2
 LAN          enp0s10  lan                        

 #cat /etc/network/interfaces
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet dhcp

auto enp0s8
allow-hotplug enp0s8
iface enp0s8 inet dhcp

auto enp0s9
allow-hotplug enp0s9
iface enp0s9 inet dhcp

auto enp0s10
allow-hotplug enp0s10
iface enp0s10 inet static
    address 192.168.1.1/24

#Now work Net-ISP-Balance utility:

## Including rules from /etc/network/balance/pre-run/pre-run-script.pl ##
## Finished /etc/network/balance/pre-run/pre-run-script.pl ##
echo 0 > /proc/sys/net/ipv4/ip_forward
ip route flush all
ip rule flush
ip rule add from all lookup main pref 32766
ip rule add from all lookup default pref 32767
ip route flush table  2
ip route flush table  1
ip route flush table  3
ip route add  10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add  10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add  10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add  0.0.0.0/0 dev enp0s10 src 
ip route add default scope global nexthop via 10.0.4.2 dev enp0s9 weight 1 nexthop via 10.0.3.2 dev enp0s8 weight 1 nexthop via 10.0.2.2 dev enp0s3 weight 1
ip route add table 2 default dev enp0s3 via 10.0.2.2
ip route add table 2 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 2 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 2 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 2 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.2.15 table 2
ip rule add fwmark 2 table 2
ip route add table 1 default dev enp0s8 via 10.0.3.2
ip route add table 1 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 1 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 1 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 1 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.3.15 table 1
ip rule add fwmark 1 table 1
ip route add table 3 default dev enp0s9 via 10.0.4.2
ip route add table 3 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 3 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 3 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 3 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.4.15 table 3
ip rule add fwmark 3 table 3
## Including rules from /etc/network/balance/routes/01.local_routes ##
# enter any routing commands you might want to go in
# for example:
# ip route add 192.168.100.1 dev eth0 src 198.162.1.14

## Finished /etc/network/balance/routes/01.local_routes ##
## Including rules from /etc/network/balance/routes/02.local_routes.pl ##
## Finished /etc/network/balance/routes/02.local_routes.pl ##
iptables -F
iptables -t nat    -F
iptables -t mangle -F
iptables -X
iptables -P INPUT    DROP
iptables -P OUTPUT   DROP
iptables -P FORWARD  DROP

iptables -N DROPGEN
iptables -A DROPGEN -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "GENERAL: "
iptables -A DROPGEN -j DROP

iptables -N DROPINVAL
iptables -A DROPINVAL -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "INVALID: "
iptables -A DROPINVAL -j DROP

iptables -N DROPPERM
iptables -A DROPPERM -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "ACCESS-DENIED: "
iptables -A DROPPERM -j DROP

iptables -N DROPSPOOF
iptables -A DROPSPOOF -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "DROP-SPOOF: "
iptables -A DROPSPOOF -j DROP

iptables -N DROPFLOOD
iptables -A DROPFLOOD -m limit --limit 1/minute  -j LOG --log-level 4 --log-prefix "DROP-FLOOD: "
iptables -A DROPFLOOD -j DROP

iptables -N DEBUG
iptables -A DEBUG  -j LOG --log-level 3 --log-prefix "DEBUG: "
iptables -t mangle -N MARK-CABLE3
iptables -t mangle -A MARK-CABLE3 -j MARK     --set-mark 2
iptables -t mangle -A MARK-CABLE3 -j CONNMARK --save-mark
iptables -t mangle -N MARK-CABLE8
iptables -t mangle -A MARK-CABLE8 -j MARK     --set-mark 1
iptables -t mangle -A MARK-CABLE8 -j CONNMARK --save-mark
iptables -t mangle -N MARK-CABLE9
iptables -t mangle -A MARK-CABLE9 -j MARK     --set-mark 3
iptables -t mangle -A MARK-CABLE9 -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 1 -j MARK-CABLE9
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.5 -j MARK-CABLE8
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.333333333333333 -j MARK-CABLE3
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s3 -m conntrack --ctstate NEW -j MARK-CABLE3
iptables -t mangle -A PREROUTING -i enp0s3 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s8 -m conntrack --ctstate NEW -j MARK-CABLE8
iptables -t mangle -A PREROUTING -i enp0s8 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s9 -m conntrack --ctstate NEW -j MARK-CABLE9
iptables -t mangle -A PREROUTING -i enp0s9 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -j DROPPERM
iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT   -p tcp --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROPFLOOD
iptables -A INPUT   -i enp0s10 -s 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT  -o enp0s10 -d 0.0.0.0/0  -j ACCEPT
iptables -A OUTPUT  -o enp0s10 -d 255.255.255.255/32  -j ACCEPT
iptables -A OUTPUT  -p udp -s 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s3 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s3                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s8 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s8                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s9 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s9                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT  -j DROPSPOOF
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s9 -j MASQUERADE
## Including rules from /etc/network/balance/firewall/01.accept ##
## This file contains iptables statements that add additional firewall rules

# allow incoming domain packets -- needed for DNS resolution
iptables -A INPUT   -p udp --source-port domain -j ACCEPT
# allow incoming NTP packets -- needed for net time protocol
iptables -A INPUT   -p udp --source-port ntp -j ACCEPT
## Finished /etc/network/balance/firewall/01.accept ##
## Including rules from /etc/network/balance/firewall/01.accept.pl ##
iptables -A INPUT -p tcp -s 0.0.0.0/0 --syn --dport ssh -j ACCEPT
## Finished /etc/network/balance/firewall/01.accept.pl ##
## Including rules from /etc/network/balance/firewall/02.forward.pl ##
iptables -A FORWARD -p udp --source-port domain -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -p udp --source-port ntp    -d 0.0.0.0/0 -j ACCEPT
## Finished /etc/network/balance/firewall/02.forward.pl ##
echo 1 > /proc/sys/net/ipv4/ip_forward
## Including rules from /etc/network/balance/post-run/post-run-script.pl ##
## Finished /etc/network/balance/post-run/post-run-script.pl ##

कृपया, इस उत्तर को हटाने पर विचार करें और इसके बजाय संबंधित उत्तर के लिए अधिक स्पष्टीकरण का अनुरोध करते हुए एक टिप्पणी जोड़ें। यह कोई उत्तर नहीं है। धन्यवाद।
राफा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.