Presmerování webu při poruše připojení

Martin Farnik

Presmerování webu při poruše připojení
« kdy: 14. 01. 2011, 12:09:14 »
Dobry den,

Mám server, který provádí překlad adres (NAT) pro lokalní síť a zajišťuje připojení
počítačů v lokální síťi na internet.
Hledám možnost jak by se dalo v případě nedostupnosti internetu u poskytovatele, zobrazit uživatelům na lokální síťi ve webovem prohlížeči na každý jejich dotaz stránka, že problém není na jejich počítači ale u poskytovatele internetu a stránka bude fungovat až poskytovatel zprovozní internet.

Na serveru mi běží apache. Tzn. v případě poruchy internetu u poskytovatele bych potřeboval přesměrovat všechny dotazy na ten lokalní server.

Děkuji za každý nápad.
S pozdravem
Martin
« Poslední změna: 14. 01. 2011, 18:10:23 od Petr Krčmář »


Re: Presmetovani na lokalni web v pripade poruchy poskytovatele internetu
« Odpověď #1 kdy: 14. 01. 2011, 12:34:03 »
Tohle je prasárna, protože je potřeba manipulovat buď DNS (aby např. na dotaz seznam.cz vrátil IP lokálního serveru) nebo manipulovat IP (aby při pokusu o spojení např. na 77.75.76.3 port 80 spojil ve skutečnosti s lokálním serverem).

Jednoduše bych na lokálním serveru udělal nějakou stránku, kde se bude zobrazovat, zda spojení s ISP funguje nebo ne – tam si budou moci uživatelé zkontrolovat, čí je vina, že „nejde internet“. Uživatelům poslat odkaz, ať si ho přidají do záložek. Jediné, co je potřeba, je, aby fungoval DNS překlad – aby pro vstup na tuto stránku nebylo potřeba funkční spojení ven na Internet (což by bylo jaksi na nic, protože tam lidi polezou, hlavně když toto spojení fungovat nebude). Tzn. mít DNS server v lokální síti, který bude schopný obsloužit danou doménu – případně, ať si uživatelé přidají do záložek odkaz s IP adresou.

David Strejc

Re: Presmetovani na lokalni web v pripade poruchy poskytovatele internetu
« Odpověď #2 kdy: 14. 01. 2011, 12:38:13 »
Franta bere nejaky drogy. Na toho kasli ;o)))

Rekl bych, ze to bude modrej rozsoupavak nebo zelenej horak.

V mem milovanem FBSD se mrdlarna, kterou potrebujes, jmenuje ifstated. Panu ifstated reknes, ze kdyz se nedopinga na gateway, tak ...... to uz si dopises. Jestli nedopises, tak mas smoulu ;o))) Ale myslenka je, ze kdyz se nedopingam na gateway, tak traffic na portu 80 smeruju na nejakyho hosta ...

Za dvacet litru ti to napisu.

Sten

Re: Presmetovani na lokalni web v pripade poruchy poskytovatele internetu
« Odpověď #3 kdy: 14. 01. 2011, 13:30:23 »
Spusťte tam transparentní proxy, třeba Squid, nasměrujte na ní veškerý HTTP provoz a máte to.

David Strejc

Re: Presmetovani na lokalni web v pripade poruchy poskytovatele internetu
« Odpověď #4 kdy: 14. 01. 2011, 15:21:49 »
Ale Olihen stene budes muset nakonfigurovat tak, aby "neco" delala jen v pripade, ze se "kdeco" nepodari.

Cili - ifstated.


Sten

Re: Presmetovani na lokalni web v pripade poruchy poskytovatele internetu
« Odpověď #5 kdy: 14. 01. 2011, 15:39:46 »
Ale Olihen stene budes muset nakonfigurovat tak, aby "neco" delala jen v pripade, ze se "kdeco" nepodari.

Cili - ifstated.

Transparentní proxy právě funguje tak, že pokud je připojení aktivní, tak posílá požadavky na cílový server a dělá, že tam vůbec není (klient o ní neví), a pokud není, tak pošle chybovou zprávu. Navíc tak lze implementovat takové věci jako cachování, transparentní kompresi nebo směrování na lokální mirror (třeba apt-cacher-ng), čímž se snižuje zátěž připojení, aniž by klienti něco poznali.

Re: Presmetovani na lokalni web v pripade poruchy poskytovatele internetu
« Odpověď #6 kdy: 14. 01. 2011, 15:49:26 »
Ad David: V případě Squidu si stačí poupravit chybové hlášky v /usr/share/squid/errors/.

Ale když použiješ přesměrování na úrovni IP stejně budeš mít problém s DNS: vypadne spojení s ISP → klientům přestanou fungovat překlady doménových jmen → uživatel zadá do prohlížeče třeba root.cz → zobrazí se mu chybová hláška jeho prohlížeče (ne tvoje ze serveru), že nemohl přeložit doménové jméno – on se tedy ani nepokusí o spojení s 91.213.160.118 (2001:67c:68::18), takže ani nebudeš mít příležitost tyto IP adresy podvrhnout a přesměrovat na vlastní server. Je tedy potřeba doplnit i lokální DNS server, který bude překládat i při výpadku ISP. Na tom lokálním DNS můžeš mít cache, takže přeložíš i při výpadku a následně můžeš podvrhnout IP adresy. Otázka je, co dělat s dotazy na doménová jména, která nejsou v mezipaměti DNS serveru – ty budeš asi muset překládat rovnou na IP adresu lokálního serveru, takže jsme zase u toho podvrhávání DNS záznamů a to přesměrování IP adres/portů není potřeba řešit. Jenže tím vracením chybných DNS odpovědí (na všechno odpovědět IP lokálního serveru) zase děláš bordel na klientech – tam může být taky cache, nemusí se dotazovat pokaždé znova, takže když dojde k obnově spojení s ISP, ještě to nějakou dobu uživatelům „nebude fungovat“ protože budou ze setrvačnosti chodit ještě na IP lokálního serveru (i když spojení ven už funguje).

Nemluvě o tom, že Internet a síťování není jen web… ale to už je za hranicí chápání některých lidí. Trvám na tom, že tohle je prasárna a vytváření bordelu v Síti – ve většině případů člověk udělá nejlépe, když se tomu vyhne a nebude dělat víc škody než užitku.
« Poslední změna: 14. 01. 2011, 15:51:25 od Franta Kučera »

vandrovnik

Re: Presmerování webu při poruše připojení
« Odpověď #7 kdy: 05. 02. 2011, 13:39:19 »
Ale kdyby použil squida nikoliv v transparentním režimu, ale tak, že by ho uživatelé měli nastaveného v prohlížeči jako proxy, nemusel by s DNS dělat nic, ne? Klient předá té proxy adresu v textové podobě a o spojení s cílovým serverem se sám nepokouší.