Chcialbym zaczerpnac zdania fachowcow czy ponizsza operacja jest mozliwa i jesli tak to w jaki sposob.
Mianowicie:
Potrzebny mi jest taki mechanizm, ktory umozliwilby miec podlaczony 1 komputer do 3 niezaleznych zrodel internetu, bo jak domyslam sie “fabrycznie” nie jest to mozliwe (bo nie wiedzialoby z ktorego zrodla korzystac?).
Chodzi o to by miec ciagly dostep do internetu nie wazne od tego co sie dzieje z danym łączem. Oto przyklad:
Laptop podłączony do ponizszych zrodel:
blueconnect modem + siec lokalna (LAN) wifi z routera i/lub internet UPC przez kabel.
Zdarzenie - pada internet z UPC przez kabel
Efekt - laptop łączy sie z internetem przez blueconnect
Zdarzenie - brak zasiegu/blad w polaczeniu przez blueconnect
Efekt - łączy sie przez wifi
UPC wstaje - rozłacza wifi -> laczy sie z UPC
[kolejnosc przypadkowa]
Oczywiscie, gdy zaobserwuje sie, ze dane zrodlo internetu padlo to mozna recznie sie przestawic na inne ale jesli zdarzy sie to w nocy lub gdy nie bedzie mnie w domu nie ma takiej mozliwosci.
Czy mniej wiecej taki schemat jest mozliwy? Jesli tak to jakie sa mozliwosci?
Owszem, jest możliwy… nie wiem czy na Windowsie się da… ale na Linuksie powinno się udać.
Warunk jeden – stale adresy IP na interfejsach WAN, bez tego będzie dużo trudniej…
Hasła klucze dla Google: Load Balancing ; WAN Aggregation ; WAN Failover
Oto przykład, 2xDSL, Linux (wymaga spaczowanych iptables, iproute i łatek na kernel):
#!/bin/sh -x
#
IFI=eth2 #interfejs lokalny
IPI=192.168.1.1 #adres IP interfejsu lokalnego
NWI=192.168.1.0 #adres sieci lokalnej
NMI=24 #maska sieci lokalnej
IFE1=eth0 #interfejs 1 zewnetrzny
IFE2=eth1 #interfejs 2 zewnetrzny
IPE1=80.80.80.82 #adres IP interfejsu 1 zewnetrznego
IPE2=90.90.90.90 #adres IP interfejsu 2 zewnetrznego
NWE1=80.80.80.80 #adres sieci 1 zewnetrznej
NWE2=90.90.90.88 #adres sieci 2 zewnetrznej
NME1=29 #maska sieci 1 zewnetrznej
NME2=29 #maska sieci 2 zewnetrznej
BRD1=80.80.80.87 #adres rozgloszeniowy sieci 1 zewnetrznej
BRD2=90.90.90.95 #adres rozgloszeniowy sieci 2 zewnetrznej
GWE1=80.80.80.81 #brama dla interfejsu 1 zewnetrznego
GWE2=90.90.90.89 #brama dla interfejsu 2 zewnetrznego
#ustawienia interfejsow lokalnego i LAN
ip link set lo up
ip addr flush dev lo
ip addr add 127.0.0.1/8 brd + dev lo
ip link set $IFI up
ip addr flush dev $IFI
ip addr add $IPI/$NMI brd + dev $IFI
#regula z priorytetem 50
ip rule add prio 50 table main
ip route del default table main
#ustawienia interfejsow zewnetrznych
ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1
ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2
#regula z priorytetem 222
ip route del default table 222
ip rule add prio 222 table 222
ip route add default table 222 proto static nexthop via $GWE1 dev $IFE1 nexthop via $GWE2 dev $IFE2
#regula z priorytetem 201
ip rule del from $NWE1/$NME1 table 201
ip rule add prio 201 from $NWE1/$NME1 table 201
ip route add default via $GWE1 dev $IFE1 src $IPE1 proto static table 201
ip route append prohibit default table 201 metric 1 proto static
#regula z priorytetem 202
ip rule del from $NWE2/$NME2 table 202
ip rule add prio 202 from $NWE2/$NME2 table 202
ip route add default via $GWE2 dev $IFE2 src $IPE2 proto static table 202
ip route append prohibit default table 202 metric 1 proto static
#wyczyszczenie pamieci cache rutingu
ip route flush cache