Netzwerk Konfiguration:
| ISP | Interface | IP-Range | default gateway |
|---|---|---|---|
| uplink1 - ISP1 | eth0 | 192.168.0.0/24 | ja |
| uplink2 - ISP2 | eth1 | 172.16.0.0/24 | nein |
Domain-0 Konfiguration:
| IP-Adresse | Interface |
|---|---|
| 192.168.0.10 | eth0 |
| 172.16.0.10 | eth1 |
V-Server Konfiguration:
| Server | Netzwerk | Bridge | IP-Adresse |
|---|---|---|---|
| vserver1 | eth0 - ISP1 | xenbr0 | 192.168.0.20 |
| vserver2 | eth1 - ISP2 | xenbr1 | 172.16.0.40 |
#!/bin/sh
# eth0
export IF1="eth0";
export IP1="192.168.0.10";
export P1="192.168.0.1";
export P1_NET="192.168.0.0";
# eth1
export IF2="eth1";
export IP2="172.16.0.10";
export P2="172.16.0.1";
export P2_NET="172.16.0.0";
# lo
export IF0="lo";
export P0_NET="127.0.0.0";
# script
ip route delete default;
ip route delete default;
ip route add $P1_NET dev $IF1 src $IP1 table 1;
ip route add default via $P1 table 1;
ip route add $P2_NET dev $IF2 src $IP2 table 2;
ip route add default via $P2 table 2;
ip route add $P1_NET dev $IF1 src $IP1;
ip route add $P2_NET dev $IF2 src $IP2;
ip rule add from $IP1 table 1;
ip rule add from $IP2 table 2;
ip route add $P0_NET dev $IF0 table 1;
ip route add $P2_NET dev $IF2 table 1;
ip route add 127.0.0.0/8 dev lo table 1;
ip route add $P0_NET dev $IF0 table 2;
ip route add $P1_NET dev $IF1 table 2;
ip route add 127.0.0.0/8 dev lo table 2;
/sbin/route add default gw 192.168.0.1;
echo "done.";
exit
chmod 700 /root/gateway_script.sh
>crontab -e
@reboot /root/gateway_script.sh
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
auto eth1
iface eth1 inet static
address 172.16.0.10
netmask 255.255.255.0
network 172.16.0.0
broadcast 172.16.0.255
gateway 172.16.0.1
#!/bin/sh
dir=$(dirname "$0")
"$dir/network-bridge" "$@" vifnum=0 netdev=eth0 bridge=xenbr0
"$dir/network-bridge" "$@" vifnum=1 netdev=eth1 bridge=xenbr1
#!/bin/sh
dir=$(dirname "$0")
"$dir/network-bridge" "$@" netdev=eth0
"$dir/network-bridge" "$@" netdev=eth1
chmod 755 /etc/xen/scripts/my-network-script
...
# eth0 für ISP1
vif = ['ip=192.168.0.x,mac=00:17:de:ad:fa:ce,bridge=xenbr0']
...
...
# eth1 für ISP2
vif = ['ip=172.16.0.x,mac=00:16:de:ad:be:ef,bridge=xenbr1']
...