PC saya memiliki total 4 NIC, 2 kartu jaringan Gigabit Ethernet berkabel dan juga 2 kartu jaringan nirkabel. (Satu Broadcom dengan driver berpemilik dan Ralink dengan perangkat lunak sumber terbuka, yang bekerja jauh lebih baik daripada Broadcom.)
Ponsel saya dapat berbagi koneksi secara nirkabel ke PC saya, tetapi saya juga memiliki koneksi Internet kabel. Jadi saya punya beberapa koneksi Internet untuk mengakses Internet. Bagaimana saya bisa menggabungkan 2 koneksi atau lebih bersama-sama dan menyeimbangkannya untuk menikmati satu pengalaman Internet terpadu yang merupakan jumlah dari semua koneksi Internet yang terhubung dengannya.
Sebagai contoh jika saya memiliki modem dengan koneksi Internet 1024kB / s dan satu lagi yang menawarkan 512kB / s dan satu kecil yang menawarkan 128kB / s, setelah load balancing dan menggabungkan semua koneksi (Bonding atau Teaming), saya dapat mengunduh di kecepatan 1664 kB / s menggunakan semua 3 koneksi Internet sebagai contoh.
Pertanyaan ini selalu membuat saya penasaran.
sumber
Jawaban:
Saya melakukan sesuatu seperti itu di tempat kerja menggunakan Ubuntu 11.04. Kami menjalankan alat konfigurasi firewall Shorewall, yang selain unggul dalam tugasnya, menyediakan beberapa alat perutean ISP yang belum sempurna yang mungkin sesuai dengan kebutuhan Anda. Anda dapat menemukan beberapa dokumen tentang hal ini di sini: http://www.shorewall.net/MultiISP.html
Apa yang akhirnya terjadi adalah, Anda tidak dapat menggunakan beberapa ISP untuk satu koneksi ... semuanya tidak sesederhana itu. Yang terbaik yang dapat Anda lakukan adalah mencoba mengarahkan koneksi baru secara merata antara penyedia yang berbeda.
Ini adalah masalah yang kompleks. Anda mungkin akan berakhir mengalahkan kepala Anda ke dinding (saya pasti melakukannya) sebelum Anda selesai men-debug setiap masalah. Jadi, seperti yang disarankan poster lain, Anda mungkin bijaksana untuk mempertimbangkan seberapa kuat keinginan Anda.
sumber
Anda bisa melakukannya dengan menggunakan paket
ifenslave
yang melampirkan dan melepaskan antarmuka jaringan budak ke perangkat bonding.Memasang:
Memuat modul kernel bonding
Konfigurasikan antarmuka Anda:
Contoh config, untuk menggabungkan eth0 dan eth1 sebagai slave ke antarmuka ikatan Anda:
Mulai Ulang Jaringan:
Membawa antarmuka terikat atas / bawah:
Ada beberapa mode ikatan sebagai contoh yang kami gunakan:
Deskripsi mode ikatan cadangan aktif :
Kebijakan cadangan aktif: Hanya satu budak di ikatan yang aktif. Seorang budak yang berbeda menjadi aktif jika, dan hanya jika, budak yang aktif gagal. Alamat MAC ikatan terlihat secara eksternal hanya pada satu port (adaptor jaringan) untuk menghindari membingungkan sakelar. Mode ini memberikan toleransi kesalahan. Opsi utama memengaruhi perilaku mode ini.
Sumber dan info lebih lanjut di komunitas wiki bantuan Ubuntu .
sumber
Ini pertanyaan yang agak lama, tetapi jika Anda masih ingin tahu ..
Ada 2 skenario tipikal, apa argumen gertvdijk dan pl1nk dalam salah satu jawaban:
Anda memiliki komputer dengan 2 IP publik (2 ISP berbeda) dan Anda terhubung ke host lain (misalnya server di pusat data dengan pipa gemuk yang lebih besar dari bandwidth agregat kedua koneksi ISP komputer Anda). Jadi, Anda membuat koneksi ikatan ke host melalui 2 koneksi Anda dan kemudian host (server) melayani lalu lintas Anda melalui koneksi internet sendiri. Dalam skenario ini, Anda bisa mendapatkan hampir 100% dari bandwidth gabungan di kedua arah untuk satu koneksi.
Ini adalah kasus khusus dari bonding / teaming / ling aggregation di mana banyak antarmuka lapisan 2 (jaringan yang sama) bergabung bersama. Ini dapat dicapai dengan membuat koneksi VPN layer 2 (ketuk) pada setiap antarmuka ISP dari komputer ke host dan menyatukannya (mode round-robin) untuk memiliki satu antarmuka. Faktor pembatas dalam skenario ini adalah betapa berbedanya penundaan (ping) pada setiap koneksi ISP ke host. Semakin mirip dan stabil, semakin baik. Kami menggunakannya di salah satu instalasi kami, itu berfungsi dengan baik. Jika Anda ingin mengetahui detail tentang cara mengimplementasikannya, beri tahu saya.
Kemudian skenario lain akan tanpa host perantara, yaitu koneksi langsung dari antarmuka ISP Anda ke berbagai webserver di seluruh dunia. Dalam hal ini yang terbaik yang bisa Anda dapatkan adalah mendistribusikan secara merata koneksi keluar antar antarmuka - yaitu satu sesi TCP sepenuhnya melalui satu ISP, sesi kedua melalui yang lain dan seterusnya. Itu karena ketika Anda membuat koneksi TCP, itu memiliki alamat IP asal dan tujuan untuk setiap paket dan ketika server menerima paket dari IP lain yang jabat tangan TCP tidak dilakukan, itu menganggap paket sebagai salah dan menjatuhkannya. Karena setiap koneksi ISP memiliki IP publiknya sendiri, untuk sesi TCP yang sama Anda tidak dapat mengirim satu paket melalui satu koneksi dari satu IP dan lainnya melalui koneksi lain dengan IP lainnya.
Anda tidak akan mencapai pemanfaatan bandwidth agregat tinggi untuk satu komputer seperti halnya dengan skenario pertama, tetapi untuk kantor kecil itu bisa menjadi solusi yang baik. Apa yang dapat Anda lakukan untuk memperluas sedikit adalah menerapkan solusi khusus untuk protokol tertentu. Misalnya, Anda dapat memiliki semacam proxy di gateway (yang bisa merupakan komputer yang sama) untuk unduhan http dan meminta bagian berbeda dari file besar yang membuat sesi TCP berbeda melalui antarmuka ISP yang berbeda. Dalam hal ini, laju unduhan yang dihasilkan akan mendekati 100% dari bandwidth gabungan. Ini seperti membongkar muatan ke gateway seperti yang dilakukan ReGet, GetRight, dan pengunduh serupa. Google 'HTTP 206 Konten Parsial'. Saya tidak tahu solusi open-source out-of-the-box untuk skenario ini, tetapi ada peralatan perangkat keras yang melakukan ini: google '
sumber
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
echo "+tapX " >> /sys/class/net/bond0/bonding/slaves
Periksa statusnya dengan:cat /proc/net/bonding/bond0
Pada tahap ini semua lalu lintas internet harus mengalir melalui bond0 ke server di pusat data. Di sana Anda harus mengatur perutean:echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(eth0 seharusnya menjadi iface internet)mode=2 xmit_hash_policy=layer3+4
tentukanmode=0
(lihat tautan @ kernel.org), tetapi periksa dulu seberapa mirip tautan tersebut melalui 3G. Jika waktu ping mereka berbeda lebih dari 2-3ms atau jitter lebih dari 1ms, Anda akan memiliki banyak paket reordering yang secara efektif mengurangi kecepatan tautan gabungan. Anda harus memeriksa statistik tautan teragregasi dengannetstat -s
(mencari transmisi ulang) daniperf -s
/iperf -c <server_ip> -d
. Pertama, periksa kinerja masing-masing tautan, maka kita dapat melanjutkan dengan solusiSaya menghadapi masalah yang sama .. dan saya sangat tertarik dengan pendekatan untuk solusi sesuai dengan skenario pertama oleh mr. GTH dan Anatoli, saya sangat meminta Anda untuk meletakkan konfigurasi dasar dan skrip, jika mungkin, untuk menguji konfigurasi yang dijelaskan dalam skenario pertama ..
sekarang saya mengkonfigurasi koneksi vpn melalui penyedia ISP yang berbeda, menggunakan antarmuka tun / tap gabungan (ini tidak mengikat, yang dijelaskan dalam jawaban # 8) dengan utilitas ini:
Net-ISP-Balance oleh Lincoln D. Stein
Load-balance koneksi internet Anda di dua atau lebih ISP untuk meningkatkan bandwidth dan keandalan
Beranda proyek: https://lstein.github.io/Net-ISP-Balance/
Paket ini memungkinkan Anda untuk menyeimbangkan koneksi Internet rumah atau bisnis kecil di dua atau lebih ISP. Anda dapat menggunakannya dengan satu host yang terpasang pada dua ISP, atau pada mesin router / firewall untuk memuat keseimbangan seluruh LAN Anda. Lalu lintas jaringan seimbang di kedua koneksi ISP untuk meningkatkan kapasitas unggah dan unduh, dan jika satu ISP gagal, ISP lain akan mengambil alih secara otomatis.
Bandwidth didistribusikan pada tingkat per koneksi. Ini berarti bahwa Anda tidak akan melihat bandwidth teragregasi pada unduhan tertentu atau tolok ukur kecepatan, tetapi Anda akan melihat manfaatnya ketika beberapa transfer data terjadi secara bersamaan, misalnya, ketika beberapa individu di rumah tangga Anda memutar film. Selain itu, protokol transfer file multi-koneksi seperti BitTorrent, akan melihat manfaat dari load balancing.
ini adalah utilitas berbasis Perl untuk mengelola perutean dan iptables di Linux yang sempurna untuk tujuan kita, pada kenyataannya, pertama-tama membuat tabel perutean untuk semua penyedia, dan kemudian mendistribusikan semua lalu lintas LAN secara merata di antara penyedia, untuk memahami cara kerja utilitas, disarankan untuk mempertimbangkan contoh kecil (konfigurasi tes) untuk 3 isp + 1 lan
sumber