Yönlendirici olarak Linux: Her biri kendi modeme sahip 3 İnternet sağlayıcım var.
Ağ geçidi adresi 192.168.1.1 olan sağlayıcı1 , eth1
yönlendirici eth1 /192.168.1.2'ye bağlandı
Sağlayıcı2 , ağ geçidi adresi 192.168.2.1
Linux yönlendirici eth2 /192.168.2.2'ye bağlı
Sağlayıcı3 , ağ geçidi adresi 192.168.3.1
Linux yönlendirici eth3 /192.168.3.2'ye bağlı
________
+------------+ /
| | |
+----------------------+ 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 ağındaki istemcileri kaynak IP ile farklı ağ geçitlerine yönlendirmek istiyorum.
İstemci ağına arabirim , tüm istemciler için varsayılan ağ geçidi olan eth0 /10.0.0.1'dir.
Örneğin:
10.0.0.11,
Provider1 @ eth1'e yönlendirilmelidir. 10.0.0.12, Provider2 @ eth2'ye yönlendirilmelidir
... vb.
Ben kullanımına gerek ip route
ve iptables
SNAT için, ama tam olarak nasıl çözemedim.
İşte şimdiye kadar sahip olduğum senaryo.
ipv4 iletimi etkinleştirildi.
#!/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