Hur fixar man ip fallback för ssh-klient?

Permalänk
Medlem

Hur fixar man ip fallback för ssh-klient?

Osäker på om denna tråd ska ligga på Övriga operativsystem (då det gäller Linux) eller kanske på internet och nätverk då det lika mycket gäller nätverk...

Jag har en liten backupserver hos mig, låt oss kalla den hemmaserver.
Jag har en likadan server hos en bekant, låt oss kalla den bortaserver.

hemmaserver har en lokal ip-adress 192.168.1.88 bakom en router.
Ut mot internet har den tilldelats en adress via DynDNS, låt oss kalla denna hemmaserver.mine.nu
bortaserver har en lokal ip-adress 192.168.0.66 bakom en annan router och heter bortaserver.mine.nu ut mot internet.

Man kan definiera servernamn i filen ~/.ssh/config
Man kan också fixa med namn i /etc/hosts
Men hur gör man för att få fallback?

Nu skulle jag vilja lägga in en virtuell maskin på min bärbara dator endast avsedd för att återställa backuper via sshfs. Om jag befinner mig hemma på lokala nätverket då vill jag att hemmaserver ska få min lokala ip-adress eftersom jag inbillar mig filöverföringar går snabbare än via internet. Befinner jag mig borta någonstans utanför lokala nätverket vill jag ansluta via internet, alltså till hemmaserver.mine.nu.

På samma sätt vill jag ansluta till bortaserverns lokala ip 192.168.0.66 om jag befinner mig på platsen där den är belägen och kan ansluta direkt till lokala nätverket men är jag på annan plats så vill jag gå via internet till bortaserver.mine.nu

Ibland tar jag hem bortaservern till mitt egna lokala nätverk och ger den då ip 192.168.1.66 istället för 192.168.0.66, när jag vill konfigurera den lokalt (oftast sker det dock via internet).

Så jag vill alltså ha ett alias som i första hand ansluter till lokalt ip och om det inte funkar så försöker den med internetadressen istället. Min gissning är att jag kanske kan fixa detta i /etc/hosts men man kanske måste pilla i hosts.config också, jag vet inte.

Ni som är mera vana gurus på sådant här kanske vet hur man ska göra?

Sedan har jag tänkt automounta sshfs via fstab så att alla backuper blir åtkomliga för respektive användare i deras hemmamapp så det blir många sshfs-anslutningar till samma server samtidigt men de monteras på olika ställen. Eller det kanske är smartare att göra en enda anslutning och sedan montera med bind och readonly från denna anslutning till respektive hemma-mapp (får testa lite sedan). Det fixar jag nog men var lite osäker på det där med ip-fallbacken... I alla fall är tanken att maskinen bootas på den plats där backuperna ska återställas (som kan vara var som helst) och då får den mest relevanta ip-adressen.

Men man kanske inte behöver bekymra sig om detta, för om man går ut mot sin egen publoika ip-adress på det lokala nätverket kanske man inte drabbas av någon hastighetsförsämring jämfört med att gå direkt mot den lokala? Men jag är ändå intresserad av att veta hur man gör, kan ju hända dyndns eller dns-servern går ner så att man inte kommer åt annat än via lokala adressen.

Sammantfattningsvis:
hemmaserver ska anslutas i följande prioritetsordning
192.168.1.88
hemmaserver.mine.nu

bortaserver enligt:
192.168.0.66
192.168.1.66
bortaserver.mine.nu

EDIT:
Kan det vara så enkelt att man anger lokala ip-adresserna i /etc/hosts och sedan ställer in ordningen i host.conf att först söka i filen /etc/hosts innan den söker på namnserver med bind?

# /etc/host.conf
order hosts,bind
multi on

# /etc/hosts
127.0.0.1 localhost
192.168.0.66 bortaserver.mine.nu bortaserver
192.168.1.66 bortaserver.mine.nu bortaserver
192.168.1.88 hemmaserver.mine.nu hemmaserver

EDIT2:
Verkar som /etc/nsswitch.conf ersätter host.conf eftersom host.conf är en gammal metod?
Nu blir jag förvirrad igen...

EDIT 3:
Linux Changing DNS Search Order

Hmmm, nu ska det nog ordna sig. Hojta om jag missat något i sammanhanget!

EDIT4: Nej det funkar inte så att den försöker använda en annan ip-adress automatiskt om man inte får svar på den första. Det funkar som så att den endast använder den ip som den först hittar när den söker.

Man får väl köra något scipt som testar ansluta med ssh till de lokala adresserna och om det lyckas så modifieras etc/hosts att använda lokal adress och sedan remount av sshfs om nödvändigt. Eller kanske inte mounta i fstab utan vid uppstart köra ssh-test-scriptet innan sshfs mountas.

Permalänk
Medlem

Detta löser man genom split-horizon DNS, beroende på vad du har för NAT-router på de olika platserna så är det olika sätt att ställa in det.

Konfigurera helt enkelt NAT-routerns DNS server att svara 192.168.1.88 på hemmaserver.mine.nu på insidan, det vill säga om frågan kommer från 192.168.1/24 (eller vad du nu kör) skall den svara 192.168.1.88, annars skall den fungera som vanligt och ge det publika IP-nummret för servern.

Då kommer klienten helt enkelt fråga efter hemmaserver.mine.nu, om den är hemma så får den 192.168.1.88 som är korrekt, om den är någon annanstans kommer den fråga efter samma DNS namn och få den publika IP adressen av servern, gör sedan samma för bortaserver.mine.nu på den andra routern.

Visa signatur

"Stallman to Dvorak: Welcome to freedom, your rulebook is in the mail" - Fake Steve Jobs
rfc-1925 - The Twelve Networking Truths

Permalänk
Medlem

Tack!

Har tänkt om lite nu. Kan låta hemmaserver sköta om uppgiften själv på lokala nätverket och så låter jag backupåterställarmaskinen enbart återställa backuper via internet. Men det kan nog vara bra att veta i andra sammanhäng.