ルーターとしてのLinux:3つのインターネットプロバイダーがあり、それぞれに独自のモデムがあります。
ゲートウェイアドレス192.168.1.1であるProvider1、
Linuxルーターeth1 /192.168.1.2に接続
Provider2、ゲートウェイアドレス192.168.2.1
Linuxルーターeth2 /192.168.2.2に接続
Provider3、ゲートウェイアドレス192.168.3.1
Linuxルーターeth3 /192.168.3.2に接続
________
+------------+ /
| | |
+----------------------+ Provider 1 +--------|
__ |192.168.1.2 |192.168.1.1 | /
___/ \_ +------+-------+ +------------+ |
_/ \__ | eth1 | +------------+ /
/ \ eth0| |192.168.2.2 | | |
|Client network -----+ ROUTER eth2|--------------+ Provider 2 +------| Internet
\10.0.0.0/24 __/ | | |192.168.2.1 | |
\__ __/ | eth3 | +------------+ \
\___/ +------+-------+ +------------+ |
|192.168.3.2 | | \
+----------------------+ Provider 3 +-------|
|192.168.3.1 | |
+------------+ \________
ネットワーク10.0.0.0/24のクライアントをソースIPによって異なるゲートウェイにルーティングしたいと思います。
クライアントネットワークへのインターフェイスは、すべてのクライアントのデフォルトゲートウェイであるeth0 /10.0.0.1です。
例:
10.0.0.11はProvider1 @ eth1
にルーティングする必要があります10.0.0.12はProvider2 @ eth2にルーティングする必要があり
ます...
私が使用する必要があると思うip route
とiptables
SNATのために、私は正確にどのように考え出したていません。
ここに私がこれまでに持っているスクリプトがあります。
ipv4転送が有効になっています。
#!/bin/bash
# flush tables
ip route flush table connection1
ip route flush table connection2
ip route flush table connection3
# add the default gateways for each table
ip route add table connection1 default via 192.168.1.1
ip route add table connection2 default via 192.168.2.1
ip route add table connection3 default via 192.168.3.1
# add some IP addresses for marking
iptables -t mangle -A PREROUTING -s 10.0.0.11 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -s 10.0.0.12 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s 10.0.0.13 -j MARK --set-mark 3
# add the source nat rules for each outgoing interface
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.2
iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 192.168.2.2
iptables -t nat -A POSTROUTING -o eth3 -j SNAT --to-source 192.168.3.2
# link routing tables to connections (?)
ip rule add fwmark 1 table connection1
ip rule add fwmark 2 table connection2
ip rule add fwmark 3 table connection3
#default route for anything not configured above should be eth2