Προσπαθώ να κάνω ένα script που θα μου κόβει η θα μου ενεργοποιεί μια δικτυακή σύνδεση ανάλωγα με το αν το internet παίζει η όχι. Ο στόχος μου είναι να κάνω αυτόματα switch της κίνησης σε 4g modem ΜΟΝΟ όταν το dsl είναι Kaput.
To script θα τρέχει σε desktop pc άρα δεν ξέρω ένα καλόν τρόπο να γνωρίζω αν το DSL είναι πάνω η κάτω μέσω ping.
Το να ξέρω αν το ethernet είναι down το ξέρω μέσω αυτής της function αλλά και μέσω αυτού του oneliner:
if [[ ! $(ip a s enp3s0 | grep state | awk '{print $9}') == UP ]];then echo "It's not working";fi
Όμως θέλω να ορίσω το default routing σε ένα συγκεκριμένο interace. Όταν έχω συνδεδεμένο και το ethernet αλλά και το 4g modem έχω αυτό το routing table:
default via 192.168.2.1 dev enp3s0 proto dhcp metric 100
default via 192.168.0.1 dev enx00a0c6000000 proto dhcp metric 101
169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.20.0.0/24 dev br-2c396117bfa7 proto kernel scope link src 172.20.0.1
192.168.0.0/24 dev enx00a0c6000000 proto kernel scope link src 192.168.0.179 metric 101
192.168.2.0/24 dev enp3s0 proto kernel scope link src 192.168.2.5 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
Αυτό που θέλω να κάνω είναι αν το enp3s0
έχει traffic προς το internet τότε να αξιοποιώ αυτό ειδάλλως να αξιοποιώ το enx00a0c6000000
. Και οι 2 διαχειρίζονται από τον network manager.
Από ότι καταλαβαίνω όλο το traffic balancάρετε μέσω των enp3s0
και enx00a0c6000000
πράγμα που δεν θελω αλλά θέλω η το enp3s0
ή το enx00a0c6000000
να είναι το interface που θα έχει πάρε-δώσε με το internet και όχι τα 2.
Ιδανικά θέλω να βγάζω το enx00a0c6000000
offline αλλά όχι και το enp3s0
.
Άρα υπάρχει τρόπος να ορίζω ένα και μοναδικό interface που θα μου κάνει traffic την κίνηση και να αποκλείω τα άλλα;
Δηλαδή θέλω:
- αν το
enp3s0
είναι up ΚΑΙ έχει κίνηση στο internet να κατεβαίνει τοenx00a0c6000000
και να μην πέρνα κίνηση απ’ αυτό. - Αν στο
enp3s0
δεν μπορεί να μεταφέρει πακέτα sto internet (επειδή η VDSL έχει θέματα) να σηκώνει τοenx00a0c6000000
και περνάει όλο το εξερχόμενο traffic από τοenx00a0c6000000
interface μέχρις ότου επανέλθει τοenp3s0
.
Αυτό το θέλω γιατί η VDSL πέφτει αχαλίνωτα με απότερο σκοπό να είμαι offline εν μέσω εργασία (ιδίως σε google meet ups) και να πρέπει με το χέρι να συνδέω το 4g usb stick. Αν το έχω μόνιμα συνδεδεμένο φοβάμαι μην μου τρώει άνευ αιτίας MB.
H 4g είναι η failover σύνδεσή μου και την θέλω μόνο όταν το VDSL είναι down