Buat penyeimbang beban multi-homed linux dengan dua koneksi internet dan satu koneksi LAN

11

OKE, ... ini mungkin telah dijawab, sayangnya, saya belum menemukan apa pun yang sepertinya resolusi.

Saya telah melihat halaman-halaman ini dan mereka memiliki beberapa informasi yang berguna, tetapi tidak menyelesaikan resolusi:

  1. Load balancing & NAT-ing beberapa koneksi ISP di Linux
  2. Dua Koneksi Internet dan 1 NIC, Kemungkinan?
  3. Akses split Linux (beberapa koneksi internet dengan penyeimbangan muatan)
  4. firewall linux + load balance, koneksi ISP

Saya akan menggunakan Debian 8, Ubuntu 16.04 Desktop atau Ubuntu 16.04 Server (jujur, kemungkinan besar Debian).

OK, jadi saya akan memasang tiga NIC dua gigabit dan koneksi LAN 100 mbps onboard. Koneksi ISP akan menggunakan kartu LAN gigabit melalui otentikasi PPPoE di kedua NIC (jika ini bahkan mungkin sebaliknya, saya akan puas dengan mode non bridging pada modem DSL). Dan kedua jaringan akan memiliki IP statis yang ditugaskan untuk mereka. Saat ini (yang akan berubah) koneksi utama memiliki kelompok lima. Saya perlu merutekan lalu lintas yang masuk pada salah satu alamat IP tersebut ke server yang tepat di jaringan.

Ini pertanyaan saya:

  1. Bagaimana cara mengatur ini? Apakah saya menggunakan NATing, IP Chans, IP Masquerading, Routing, dll ...?
  2. Bagaimana cara merutekan traffic yang masuk ke sistem dari luar ke alamat IP tertentu di jaringan?

Harap bersikap lembut, ini adalah pertama kalinya saya mencoba sesuatu APA SAJA seperti ini sebelumnya :).

EDIT 1

Lupa menambahkan topologi jaringan:

Tata letak jaringan internal

EDIT 2

Baru menyadari sesuatu ... Untuk melakukan otentikasi PPPoE, saya harus memaksakan otentikasi kredensial pada antarmuka tertentu. Bagaimana ini dilakukan?

Saya memposting pertanyaan itu di sini:

Buat penyeimbang beban multi-homed linux dengan dua koneksi internet dan satu koneksi LAN

PEMBARUAN 1

Masih tidak bisa membuat round robin multihop bekerja. Saya mencoba mengikuti langkah-langkah yang dijelaskan di situs berikut tanpa hasil:

  1. Load balancing & NAT-ing beberapa koneksi ISP di Linux
  2. Linux - Koneksi Internet Ganda / Penyeimbangan Beban
  3. HOWTO: Multirouting dengan Linux

Saya tetap mendapatkan pesan yang menyatakan bahwa file tersebut sudah ada atau perangkat tidak valid. Ini adalah pengaturan / informasi saya

IFCONFIG

eth0      Link encap:Ethernet  HWaddr ec:08:6b:04:8e:ac  
          inet addr:172.16.0.2  Bcast:172.16.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ee08:6bff:fe04:8eac/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9525 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7722 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9306973 (8.8 MiB)  TX bytes:949815 (927.5 KiB)

eth1      Link encap:Ethernet  HWaddr ec:08:6b:04:8c:95  
          inet addr:172.16.1.2  Bcast:172.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ee08:6bff:fe04:8c95/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:558 (558.0 B)  TX bytes:6344 (6.1 KiB)

eth2      Link encap:Ethernet  HWaddr 00:16:76:90:49:b7  
          inet addr:172.16.2.1  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::216:76ff:fe90:49b7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3793 errors:0 dropped:0 overruns:0 frame:0
          TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:283119 (276.4 KiB)  TX bytes:10338 (10.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:1858 (1.8 KiB)  TX bytes:1858 (1.8 KiB)

Konfigurasi INTERFACES

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 172.16.0.2
    netmask 255.255.255.0
    gateway 172.16.0.1
    network 172.16.0.0
    broadcast 172.16.0.255

auto eth1
allow-hotplug eth1
iface eth1 inet static
    address 172.16.1.2
    netmask 255.255.255.0
    gateway 172.16.1.1
    network 172.16.1.0
    broadcast 172.16.1.255

auto eth2
allow-hotplug eth2
iface eth2 inet static
    address 172.16.2.1
    netmask 255.255.255.0
    network 172.16.2.0
    broadcast 172.16.2.255

ETH0

Ini adalah koneksi WAN utama saya.

ETH1

Ini adalah Koneksi WAN sekunder saya.

ETH2

Ini adalah koneksi LAN Internal saya.

Saya bisa mendapatkan perutean untuk bekerja pada satu antarmuka WAN dan terhubung ke LAN internal, namun, saya tidak bisa meniru itu dan tidak tahu mengapa.

John Schultz
sumber
Saya pikir Anda memiliki jawabannya di tautan pertama yang Anda posting. Jika server berada di LAN Anda dan memiliki alamat pribadi, Anda pasti perlu NAT. Pada dasarnya Anda perlu membagi masalah Anda menjadi dua masalah: 1) Lalu Lintas masuk, 2) Lalu Lintas keluar. Lalu ... apakah Anda membutuhkannya hanya untuk load balancing atau juga untuk ketersediaan tinggi? Anda harus memiliki tabel routing yang berbeda untuk penyedia yang berbeda (aturan ip), kemudian tandai paket yang masuk sehingga mereka akan kembali ke penyedia yang sama. Untuk lalu lintas keluar Anda dapat menyeimbangkannya.
Jure1873
OK, ... ya, kalau dipikir-pikir, saya akan perlu untuk dapat mengarahkan lalu lintas yang sesuai (NATing) dan saya pasti harus memiliki dua koneksi masuk memuat seimbang. Jadi secara efektif memiliki kecepatan dua kali lipat daripada kecepatan tunggal. Apakah saya memikirkan hal ini dengan benar?
John Schultz
Apakah Anda memiliki BGP di luar? Jika Anda memiliki tautan internet terpisah, Anda hanya dapat "menggandakan kecepatan" di sisi keluar. Sisi yang masuk hanya akan melacak paket yang masuk dan memastikan mereka keluar pada jalur yang sama ketika mereka datang.
Jure1873
Saya pikir itu yang akan terjadi. Tidak, saya tidak punya BGP di luar lokasi ini :( (Bahkan tidak tahu apa itu).
John Schultz

Jawaban:

4

Dengan bantuan beberapa teman yang membantu saya meneliti hal ini, saya pada akhirnya mampu membuatnya bekerja.

Harus menjalankan skrip ini untuk meneruskan traffic TCP / IP dengan benar:

#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

# Primary Connection - 2085426230
   IF1=eth0
   IP1=172.16.0.2
    P1=172.16.0.1
P1_NET=172.16.0.0

# Secondary Connection - 2085420213
   IF2=eth1
   IP2=172.16.1.2
    P2=172.16.1.1
P2_NET=172.16.1.0

# Local Network
   IF3=eth2
   IP3=172.16.2.2
    P3=172.16.2.1
P3_NET=172.16.2.0

T1=WAN1
T2=WAN2

# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback and WAN traffic
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ${IF1} -j ACCEPT

# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ${IF1} -o ${IF3} -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i ${IF3} -o ${IF1} -j ACCEPT

# Masquerade.
iptables -t nat -A POSTROUTING -o ${IF1} -j MASQUERADE

# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

Kemudian saya menginstal Net-ISP-Balance . Setelah skrip dijalankan dan diinstal, saya pergi ke WhatsMyIP dua kali dan cukup yakin, kedua antarmuka merutekan lalu lintas ketika whatsmyip menunjukkan kedua alamat IP setelah saya menekan tombol refresh.

PENOLAKAN Ini berfungsi untuk tata letak jaringan khusus saya, konfigurasi dan pengaturan. Hasil Anda dapat bervariasi.

John Schultz
sumber
Melakukan tes kecepatan .... Saya memiliki 24% peningkatan lalu lintas muatan dan 90% peningkatan lalu lintas beban.
John Schultz