একাধিক ইন্টারনেট সংযোগগুলি কীভাবে একত্রী করা যায়?


23

আমার পিসিতে মোট ৪ টি এনআইসি, ২ টি তারযুক্ত গিগাবিট ইথারনেট নেটওয়ার্ক কার্ড এবং ২ টি ওয়্যারলেস নেটওয়ার্ক কার্ড রয়েছে। (মালিকানাধীন ড্রাইভারদের সাথে একটি ব্রডকম এবং ওপেন সোর্স সফ্টওয়্যার সহ রালিংক, যা ব্রডকমের চেয়ে আরও ভাল কাজ করে))

আমার সেলফোনটি এটির সংযোগটি আমার পিসির সাথে ওয়্যারলেস শেয়ার করতে পারে তবে আমার সাথে তারযুক্ত ইন্টারনেট সংযোগও রয়েছে। তাই ইন্টারনেট অ্যাক্সেস করার জন্য আমার একাধিক ইন্টারনেট সংযোগ রয়েছে । আমি কীভাবে 2 বা আরও সংযোগগুলি একসাথে একীভূত করতে পারি এবং একত্রীভূত ইন্টারনেটের অভিজ্ঞতা উপভোগ করতে তাদের ভারসাম্য রাখতে পারি যে এটি এর সাথে সংযুক্ত সমস্ত ইন্টারনেট সংযোগের যোগফল।

উদাহরণস্বরূপ, যদি আমার কাছে 1024 কেবি / এস এর ইন্টারনেট সংযোগ এবং একটি আরও একটি 512 কেবি / এস এবং একটি ছোট যা 128 কেবি / গুলি অফার করে থাকে, লোড ব্যালেন্সিং এবং সমস্ত সংযোগ (বন্ডিং বা দলবদ্ধকরণ) পরে মার্জ করার পরে, আমি এখানে ডাউনলোড করতে পারতাম উদাহরণস্বরূপ 3 টি ইন্টারনেট সংযোগ ব্যবহার করে একটি গতি 1664kB / s।

এই প্রশ্নটি আমাকে সর্বদা আগ্রহী করে তুলেছে।


5
জিজ্ঞাসা উবুন্টু এর সুযোগের বাইরে মনে হচ্ছে :) এটি বেশ জটিল নেটওয়ার্কিং স্টাফ। আইএমও এটি খুব কমই মূল্যবান, কোনও লিঙ্ক ডাউন হওয়ার কারণে (এমনকি সাময়িকভাবে) প্যাকেটগুলি হারিয়ে যাওয়ার সময়, কিছু লিঙ্ক অন্যের চেয়ে ধীর হওয়ার কারণে প্যাকেটগুলি পুনরায় অর্ডার করে এবং এ জাতীয় জিনিসগুলি। আমি জানি না এমন একটি "ব্ল্যাক বক্স" সমাধান যা এটি করবে, এটি একটি আকর্ষণীয় প্রকল্প হতে পারে।
সিজিয়াম

9
ঠিক আছে প্রশ্নটি যদি উবুন্টুতে এটি করা যায় এবং হ্যাঁ কীভাবে হয় about
লুইস আলভারাডো

আমি একজন নির্মিত উত্তর মধ্যে একটি একক পিসিতে 2 ইন্টারনেট কানেকশন পোস্ট। উবুন্টুতে বাউন্ডিংয়ের জন্য দস্তাবেজগুলি সংযুক্ত করে।
লুসিও

@ লুসিও আমি প্রশ্নটিকে সদৃশ হিসাবে চিহ্নিত করতে পারি বা আপনি আপনার উত্তরটি এখানে সরিয়ে নিতে পারেন এবং আমি এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করতে পারি। 13.04 প্রকাশিত হওয়ার জন্য আপনাকে প্রস্তুত থাকতে হবে যেহেতু এটি নেটওয়ার্ক ম্যানেজারে বন্ডিং বিকল্পগুলি অন্তর্ভুক্ত করবে (এখনই কেবল তারযুক্ত বন্ধন ক্রীতদাস)।
লুইস আলভারাডো

উত্তর:


11

আমি উবুন্টু ১১.০৪ ব্যবহার করে কাজের মতো এমন কিছু করি। আমরা শোরওয়াল ফায়ারওয়াল কনফিগারেশন সরঞ্জামটি পরিচালনা করি যা এটির কাজের ক্ষেত্রে দুর্দান্ত হওয়ার পাশাপাশি কিছু প্রাথমিক একাধিক আইএসপি রাউটিং সরঞ্জাম সরবরাহ করে যা আপনার প্রয়োজনের সাথে খাপ খায়। আপনি এটি সম্পর্কে এখানে কিছু নথি খুঁজে পেতে পারেন: http://www.shorewall.net/ মাল্টিআইএসপি html

যদিও এটি নেমে আসে, আপনি কি একক সংযোগের জন্য একাধিক আইএসপি ব্যবহার করতে পারবেন না ... জিনিসগুলি এত সহজ নয়। আপনি যেটি করতে পারেন তা হ'ল বিভিন্ন সরবরাহকারীদের মধ্যে সমানভাবে নতুন সংযোগের দিকে পরিচালিত করার চেষ্টা করা।

এটি একটি জটিল সমস্যা। আপনি প্রতিটি সমস্যার ডিবাগিংয়ের আগে সম্ভবত আপনার মাথাটি প্রাচীরের বিরুদ্ধে মারবে (আমি অবশ্যই করেছি)। সুতরাং, অন্যান্য পোস্টারগুলির পরামর্শ অনুসারে, আপনার আকাঙ্ক্ষাটি কতটা দৃ carefully় তা যত্ন সহকারে বিবেচনা করা আপনি বুদ্ধিমান হতে পারেন।


ভাল লিঙ্ক। খুব সুন্দর টিউটোরিয়াল।
লুইস আলভারাডো

এটি আরও দেখতে দিন: debuntu.org/2006/02/23/…
পোস্টডেলমাগা

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 এ কাজ করার সাথে সাথে ল্যানগুলিতে কাজ করে two প্রশ্নটি দুটি স্বতন্ত্র WAN গুলি ভারসাম্য বজায় রাখার বিষয়ে ।
gertvdijk

@gertvdijk বন্ধন এছাড়াও ভারসাম্য লোড করে না তা জানতে আমার আপডেটের উত্তর চেক করতে আমি রাজি নই।
pl1nk

1
@ pl1nk এটি একই এল 2 নেটওয়ার্কে দুটি এনআইসির জন্য লেয়ার 2 লোড ব্যালেন্সিং। এটি মাল্টি-আইএসপি লোড ব্যালেন্সিংয়ের মতো নয়!
জার্মটভিডিজক

3
@ pl1nk আমার চূড়ান্ত মন্তব্য। প্রশ্নটি একাধিক স্বতন্ত্র ব্রডব্যান্ড সংযোগ সম্পর্কিত, পরিষ্কারভাবে। যদিও তারা একটি আইএসপি হতে পারে, এটি স্তর 2 এ এটি পরিচালনা করতে অক্ষমতা পরিবর্তন করে না
Gertvdijk

6

এটি কিছুটা পুরানো প্রশ্ন, তবে আপনি যদি এখনও জানতে চান ..

2 টি সাধারণ পরিস্থিতি রয়েছে, জের্টভিডিজক এবং প্ল 1 এনক উত্তরের একটিতে কী বিতর্ক করছে:

আপনার কাছে দুটি সার্বজনীন আইপি (২ টি পৃথক আইএসপি) সহ একটি কম্পিউটার রয়েছে এবং আপনি অন্য হোস্টের সাথে সংযুক্ত হন (উদাহরণস্বরূপ আপনার কম্পিউটারের উভয় আইএসপি সংযোগের ব্যান্ডউইদথের চেয়ে বড় ফ্যাট পাইপযুক্ত একটি ডেটাসেন্টারে একটি সার্ভার)। সুতরাং আপনি আপনার 2 টি সংযোগের মাধ্যমে হোস্টের সাথে একটি বন্ধন সংযোগ স্থাপন করেন এবং তারপরে হোস্ট (সার্ভার) তার নিজস্ব ইন্টারনেট সংযোগের মাধ্যমে আপনার ট্র্যাফিকটিকে পরিবেশন করে। এই দৃশ্যে, আপনি একক সংযোগের জন্য উভয় দিকেই সম্মিলিত ব্যান্ডউইথের প্রায় 100% পেতে পারেন।

এটি বন্ধন / দলবদ্ধকরণ / লিং একীকরণের একটি বিশেষ ক্ষেত্রে যেখানে একাধিক স্তর 2 (একই নেটওয়ার্ক) ইন্টারফেস একসাথে যুক্ত হয়। এটি কম্পিউটার থেকে হোস্টের প্রতিটি আইএসপি ইন্টারফেসে ভিপিএন স্তর 2 (ট্যাপ) সংযোগ স্থাপন করে এবং একটি একক ইন্টারফেসের জন্য তাদেরকে একসাথে (রাউন্ড-রবিন মোড) বন্ডিংয়ের মাধ্যমে অর্জন করা যেতে পারে। এই দৃশ্যের সীমাবদ্ধ ফ্যাক্টরটি হ'ল প্রতিটি আইএসপি সংযোগে বিলম্ব (পিং) কতটা আলাদা। তারা যতই অনুরূপ এবং স্থিতিশীল, তত ভাল। আমরা আমাদের যে কোনও একটি প্রতিষ্ঠানে এটি ব্যবহার করি, এটি ভাল কাজ করে। আপনি কীভাবে এটি বাস্তবায়ন করবেন সে সম্পর্কে বিশদ জানতে চাইলে কেবল আমাকে জানান।

তারপরে আর একটি দৃশ্য অন্তর্বর্তী হোস্ট ছাড়াই হবে, অর্থাৎ আপনার আইএসপি ইন্টারফেস থেকে সরাসরি বিশ্বের বিভিন্ন ওয়েবসার্ভারের সাথে সরাসরি সংযোগ। এক্ষেত্রে সেরাটি আপনি পেতে পারেন ইন্টারফেসগুলির মধ্যে সমানভাবে বহির্গামী সংযোগগুলি বিতরণ করা - অর্থাত্ একটি টিসিপি সেশন পুরোপুরি একটি আইএসপি, একটি দ্বিতীয় সেশন এবং অন্য মাধ্যমে হয়ে যায়। এটি তাই কারণ আপনি যখন কোনও টিসিপি সংযোগ স্থাপন করেন, তখন প্রতিটি প্যাকেটের জন্য এর উত্স এবং গন্তব্য আইপি ঠিকানা থাকে এবং যখন কোনও সার্ভারের অন্য আইপি থেকে কোনও প্যাকেট আসে যার জন্য কোনও টিসিপি হ্যান্ডশেক করা হয়নি, এটি প্যাকেটটিকে ভ্রান্ত হিসাবে বিবেচনা করে ফেলে দেয়। প্রতিটি আইএসপি সংযোগের নিজস্ব পাবলিক আইপি রয়েছে, একই টিসিপি সেশনের জন্য আপনি একটি আইপি থেকে একটি সংযোগের মাধ্যমে একটি এবং অন্য আইপি-র সাথে অন্য সংযোগের মাধ্যমে একটি প্যাকেট পাঠাতে পারবেন না।

আপনি প্রথম দৃশ্যের মতো কোনও কম্পিউটারের জন্য উচ্চ সমষ্টিগত ব্যান্ডউইথ ব্যবহার হিসাবে অর্জন করতে পারবেন না, তবে একটি ছোট অফিসের জন্য এটি একটি ভাল সমাধান হতে পারে। আপনি এটি কিছুটা প্রসারিত করতে যা করতে পারেন তা হ'ল নির্দিষ্ট প্রোটোকলের জন্য কাস্টম সমাধানগুলি প্রয়োগ করা। উদাহরণস্বরূপ, HTTP ডাউনলোডের জন্য আপনার গেটওয়েতে (যা একই কম্পিউটার হতে পারে) কিছু প্রক্সি রাখতে পারেন এবং বিভিন্ন আইএসপি ইন্টারফেসের মাধ্যমে বিভিন্ন টিসিপি সেশন স্থাপনকারী একটি বিশাল ফাইলের বিভিন্ন অংশের জন্য জিজ্ঞাসা করতে পারেন। এই ক্ষেত্রে ফলাফল ডাউনলোডের হার সম্মিলিত ব্যান্ডউইথের 100% এর কাছাকাছি হবে। এটি রিগেট, গেটরাইট এবং অনুরূপ ডাউনলোডাররা যা করে গেটওয়েতে অফলোড করার মতো। গুগল 'এইচটিটিপি 206 আংশিক সামগ্রী'। আমি এই দৃশ্যের বাইরে থাকা কোনও ওপেন-সোর্স সমাধান জানি না, তবে এমন হার্ডওয়্যার অ্যাপ্লায়েন্স রয়েছে যা হুবহু এটি করে: গুগল


কি দারুন! আপনার উত্তরের প্রথম অংশটি হ'ল আমি যা খুঁজছি। আমার উবুন্টুর সাথে মেঘে একটি সার্ভার রয়েছে এবং খুব দ্রুত সংযোগ রয়েছে। এবং আমার এখানে থাকা কেবলমাত্র ইন্টারনেট সংযোগটি সীমাবদ্ধ 3 জি সহ 300 কেবিপিএস। আপনার উত্তরের প্রথম অংশটি অর্জন করার জন্য আপনি কীভাবে আরও তথ্য দিতে পারেন, যাতে আমি অনেক সংযোগের 3G ডাঙ্গল কিনতে পারি এবং আমার সংযোগের গতি উন্নত করার পরিকল্পনা করতে পারি?
হুয়াফু

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 (এথ 0 ইন্টারনেট আইফেস হওয়ার কথা)
আনাতোলি

1
এই বন্ড কনফিগারেশন (মোড = 2 এক্সমিট_হ্যাশ_পলিসি = লেয়ার 3 + 4) প্রতিটি নতুন সংযোগ হ্যাশের উপর ভিত্তি করে বিভিন্ন অন্তর্নিহিত ভিপিএন আইফেসের মাধ্যমে যেতে হবে (সংযোগের সাথে জড়িত আইপি এবং পোর্টগুলি থেকে গণনা করা) মোড আইফেস নম্বর। আরও তথ্য: কার্নেল.আর / ডক / ডকুমেন্টেশন / নেটওয়ার্কিং / বোন্ডিং.টেক্সট । এটি আসলে আমার উত্তর থেকে দ্বিতীয় সমাধানের মতো, এটি কারণ আপনার সঠিকভাবে কাজ করার জন্য রাউন্ড-রবিন বন্ধনের জন্য অন্তর্নিহিত সংযোগগুলির খুব অনুরূপ (খুব কম জিটার এবং একই ব্যান্ডউইথ) প্রয়োজন (অন্যথায় আপনি প্রচুর প্যাকেট পুনরায় অর্ডারিং পেয়েছেন) এবং আপনি বলেছেন আপনার সংযোগগুলি 3 জি।
আনাতলি

1
@ হুয়াফু, প্রথম সমাধানের জন্য আপনাকে কেবল mode=2 xmit_hash_policy=layer3+4y নির্দিষ্ট করে পরিবর্তনের জন্য বন্ধন বিকল্পগুলি পরিবর্তন করতে হবে mode=0(লিঙ্কটি @ কার্নেল.অর্গ দেখুন), তবে প্রথমে 3 জি এর মাধ্যমে লিঙ্কগুলি কতটা মিল তা পরীক্ষা করে দেখুন। যদি তাদের পিংয়ের সময়গুলি 2-3 মিমি বা জিটারের চেয়ে বেশি হয় তবে 1 মিমের চেয়ে বেশি পরিমাণে আপনার প্যাকেট পুনঃক্রম হতে পারে একত্রিত লিঙ্কটির গতি কার্যকরভাবে কার্যকর করতে। আপনাকে netstat -s(পুনঃপ্রেরণের সন্ধান করুন) এবং iperf -s/ এর সাথে একত্রিত লিঙ্ক পরিসংখ্যানগুলি পরীক্ষা করতে হবে iperf -c <server_ip> -d। 1 ম প্রতিটি লিঙ্কের কর্মক্ষমতা পরীক্ষা করে দেখুন, তারপরে আমরা একটি সমাধান দিয়ে চালিয়ে যেতে পারি
আনাতলি

0

আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি ... এবং আমি মিঃ দ্বারা প্রথম দৃশ্যাবলী অনুসারে সমাধানের পদ্ধতির প্রতি খুব আগ্রহী ছিলাম। জিটিএইচ এবং আনাতোলি, আমি আপনাকে প্রথম দৃশ্যে বর্ণিত কনফিগারেশনটি পরীক্ষা করতে, যদি সম্ভব হয় তবে প্রাথমিক কনফিগারেশন এবং স্ক্রিপ্টগুলি প্রস্তুত করতে বলি ..

এই ইউটিলিটি সহ আমি এখন পৃথক আইএসপি সরবরাহকারীর মাধ্যমে ভিপিএন সংযোগগুলি কনফিগার করেছি, সম্মিলিত সুর / ট্যাপ ইন্টারফেস (এটি বন্ধন নয়, উত্তর # 8 এ কী ব্যাখ্যা করা হয়েছে) এই ইউটিলিটি সহ:

লিংকন ডি স্টেইনের নেট-আইএসপি-ব্যালেন্স

উন্নত ব্যান্ডউইথ এবং নির্ভরযোগ্যতার জন্য আপনার ইন্টারনেট সংযোগটি দুই বা ততোধিক আইএসপি জুড়ে লোড-ব্যালেন্স করুন

প্রকল্প হোম: https://lstein.github.io/Net-ISP- ব্যালেন্স /

এই প্যাকেজটি আপনাকে দুটি বা ততোধিক আইএসপি জুড়ে কোনও বাড়ি বা ছোট ব্যবসায় ইন্টারনেট সংযোগ লোড-ব্যালেন্স করতে দেয়। আপনি এটি দুটি আইএসপিতে সংযুক্ত একক হোস্টের সাথে বা আপনার সম্পূর্ণ ল্যানের ভারসাম্য লোড করতে একটি রাউটার / ফায়ারওয়াল মেশিনে ব্যবহার করতে পারেন। আপলোড এবং ডাউনলোডের ক্ষমতা বাড়ানোর জন্য নেটওয়ার্ক ট্র্যাফিক উভয় আইএসপি সংযোগ জুড়েই ভারসাম্যযুক্ত এবং যদি একটি আইএসপি ব্যর্থ হয় তবে অন্য আইএসপি (গুলি) স্বয়ংক্রিয়ভাবে গ্রহণ করবে।

ব্যান্ডউইথ প্রতি সংযোগ স্তরে বিতরণ করা হয়। এর অর্থ হ'ল আপনি কোনও নির্দিষ্ট ডাউনলোড বা গতির বেঞ্চমার্কে একীভূত ব্যান্ডউইদথটি দেখতে পাবেন না, তবে একাধিক ডেটা স্থানান্তর এক সাথে ঘটতে থাকলে আপনি সুবিধাগুলি দেখতে পাবেন, উদাহরণস্বরূপ, যখন আপনার পরিবারের বেশ কয়েকটি ব্যক্তি চলচ্চিত্র প্রবাহিত করছেন। এছাড়াও, বিটটোরেন্টের মতো মাল্টি-কানেকশন ফাইল ট্রান্সফার প্রোটোকল লোড ব্যালেন্সিংয়ের সুবিধা দেখতে পাবে।

এটি লিনাক্সে আমাদের উদ্দেশ্যে নিখুঁতভাবে রাউটিং এবং আইপটিবল পরিচালনা করার জন্য পার্ল ভিত্তিক ইউটিলিটি, বাস্তবে প্রথমে সমস্ত সরবরাহকারীদের জন্য একটি রাউটিং টেবিল তৈরি করে এবং তারপরে ইউটিলিটি কীভাবে কাজ করে তা বুঝতে, সমস্ত ল্যান ট্র্যাফিক সরবরাহকারীদের মধ্যে সমানভাবে বিতরণ করে, বিবেচনা করার পরামর্শ দেয় 3 আইএসপি + 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 ##

দয়া করে এই উত্তরটি মুছে ফেলার বিষয়ে বিবেচনা করুন এবং পরিবর্তে সম্পর্কিত উত্তরের আরও ব্যাখ্যা করার জন্য একটি মন্তব্য যুক্ত করুন। এটি কোনও উত্তর নয়। ধন্যবাদ.
রাফা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.