web-dev-qa-db-ja.com

2つのインターネット接続と1つのLAN接続を備えたマルチホームLinuxロードバランサーを作成する

わかりました、これはおそらく回答されました。残念ながら、私はそれが解決策であると思われるものを見つけていません。

私はこれらのページを見て、それらにはいくつかの有用な情報がありますが、完全な解決策ではありません:

  1. Linuxでの複数のISP接続の負荷分散とNAT処理
  2. 2つのインターネット接続と1つのNIC、可能ですか?
  3. Linux分割アクセス(複数のインターネット接続と負荷分散)
  4. linuxファイアウォール+負荷分散ISP接続

私はDebian 8、Ubuntu 16.04デスクトップまたはUbuntu 16.04サーバー(正直なところ、おそらくDebian)を使用します。

では、2つのギガビットと3つのNICを搭載し、100 MbpsのオンボードLAN接続をオンボードにします。 ISP接続は、両方のNICでPPPoE認証を介してギガビットLANカードを使用します(これが可能でない場合でも、DSLモデムで非ブリッジモードを使用します)。そして、両方のネットワークが静的IPが割り当てられています。現在(変更されます)プライマリ接続には5つのグループがあります。これらのIPアドレスのいずれかに着信するトラフィックをネットワーク上の適切なサーバーにルーティングする必要があります。

ここに私の質問があります:

  1. どうすれば設定できますか? NATing、IP Chans、IPマスカレード、ルーティングなどを使用していますか?
  2. システムに入ってくるトラフィックを外部からネットワーク上の特定のIPアドレスにルーティングするにはどうすればよいですか?

優しくしてください、これは私が以前にこのような何かを試みたのは初めてです:)。

EDIT 1

ネットワークトポロジを追加するのを忘れました:

Internal Network layout

EDIT 2

何かを実現しただけです... PPPoE認証を行うには、特定のインターフェイスで資格情報の認証を強制する必要があります。これはどのように行われますか?

私はその質問をここに投稿しました:

2つのインターネット接続と1つのLAN接続を備えたマルチホームLinuxロードバランサーを作成します

更新1

それでもマルチホップラウンドロビンを機能させることができません。次のサイトに記載されている手順を実行できなかった:

  1. Linuxでの複数のISP接続の負荷分散とNAT処理
  2. Linux-デュアルインターネット接続/負荷分散
  3. HOWTO:Linuxでのマルチルーティング

ファイルが既に存在するか、デバイスが無効であるというメッセージが表示され続ける。ここに/私の設定/情報があります

[〜#〜] 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)

インターフェイス構成

# 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

これは私のプライマリWAN接続です。

ETH1

これは私のセカンダリですWAN接続。

ETH2

これは私の内部LAN接続です。

ルーティングを1つのWAN=インターフェイスで機能させ、内部LANにリンクさせることができましたが、それを複製することができず、理由がわかりません。

10
John Schultz

これを研究するのを助けている数人の友人の助けを借りて、私は最終的にそれを機能させることができました。

TCP/IPトラフィックを適切に転送するには、このスクリプトを実行する必要がありました。

#!/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

次に Net-ISP-Balance をインストールしました。スクリプトが実行されてインストールされたら、 WhatsMyIP に2回アクセスしました。更新を実行した後、whatsmyipが両方のIPアドレスを示したため、両方のインターフェイスがトラフィックをルーティングしています。

[〜#〜]免責事項[〜#〜]これは、特定のネットワークレイアウト、構成、設定で機能しました。結果は異なる場合があります。

4
John Schultz