Portál AbcLinuxu, 7. května 2025 14:44

Dotaz: Dvě připojení k netu s 2x veřejnou IP

Petr Maleček avatar 28.9.2013 00:53 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Dvě připojení k netu s 2x veřejnou IP
Přečteno: 787×
Odpovědět | Admin
Ahoj pánové (a dámy),

vím, že se to tady řešilo už nekolikrát, ale bohužel co jsem početl a vyzjistil, tak nestačí k mému problému. Máme teď doma dva poskytovatele připojení.

Jeden (označme ho CS) je nový - rychlejší, toho chci jako hlavního. Druhý (označme ho jako PF) je původní - sice pomalejší, ale stabilní.

U prvního (CS) máme následující IP:
inet addr:172.16.26.62  Bcast:172.16.26.255  Mask:255.255.255.0  GW: 172.16.26.1
Tomuto připojení jsem nastavil metriku na 1.

U druhého (PF) máme IP:
inet addr:10.109.13.146  Bcast:10.109.13.255  Mask:255.255.255.128  GW 10.109.13.129
Tato IP je jen SNATovaná veřejná UP 81.201.***.** a metriku jsem nastavil na 5.

Můj problém je v tom, že když se pokouším přistupovat na server z venčí (na druhé připojení), tak se na něj nedostanu. Když přistupuji na to první, tak na to se dostanu.

Dokonce když pingám z jednotlivých zařízení, tak to druhé prostě nefunguje. Stačí ale odebrat defaultní routu prvního a začne fungovat druhé.

Viz:

root@test:~# ping -I eth1 www.seznam.cz
PING www.seznam.cz (77.75.72.3) from 10.109.13.146 eth1: 56(84) bytes of data.
^C
--- www.seznam.cz ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

root@test:~# ping -I eth2 www.seznam.cz
PING www.seznam.cz (77.75.72.3) from 172.16.26.62 eth2: 56(84) bytes of data.
64 bytes from www.seznam.cz (77.75.72.3): icmp_req=1 ttl=246 time=8.51 ms

Routy jsou takovéto:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.26.1     0.0.0.0         UG    1      0        0 eth2
default         10.109.13.129   0.0.0.0         UG    5      0        0 eth1
10.109.13.128   *               255.255.255.128 U     0      0        0 eth1
172.16.26.0     *               255.255.255.0   U     0      0        0 eth2
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
Co dělám špatně? Díky za odpověď.
LinMuck, WinFuck :-P

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.9.2013 01:05 Sten
Rozbalit Rozbalit vše Re: Dvě připojení k netu s 2x veřejnou IP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Špatně je to, že spojení, které používají IP adresu druhé cesty, odcházejí první, protože tak je nastavené směrování, a poskytovatel CS takové pakety blokuje, jak by to ostatně měl dělat každý dobrý ISP. Je potřeba spojení značkovat, vytvořit dvě směrovací tabulky a nastavit směrovací pravidla podle značek.
Petr Maleček avatar 28.9.2013 01:12 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Dvě připojení k netu s 2x veřejnou IP
Díky za odpověď, to jsem přesně měl, ale zapomněl jsem se o tom zmínit. Sypu si popel na hlavu. Nakonec byla chyba jen v jednom slovíčku (ip route místo ip rule) :-( Už vše funguje.
LinMuck, WinFuck :-P
Petr Maleček avatar 28.9.2013 01:11 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Dvě připojení k netu s 2x veřejnou IP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak už jsem přišel na to, v čem je problém. Jelikož jsem se snažil udělat dvě routovací tabulky a tak nějak vše správně nastavit, tak jsem použil toto:

 # vytvoreni routovacich tabulek (CS, PF) a rout
    $ip route add 172.16.26.0 dev eth2 src 172.16.26.62 table T1
    $ip route add default via 172.16.26.1 table T1
    $ip route add 10.109.13.128 dev eth1 src 10.109.13.146 table T2
    $ip route add default via 10.109.13.129 table T2

    # nastaveni rout
    $ip route add 172.16.26.0 dev eth2 src 172.16.26.62
    $ip route add 10.109.13.128 dev eth1 src 10.109.13.146

    # nasteveni defaultni routy
    $ip route add default via 172.16.26.1

    # nasteveni smerovacich rout (aby slo dovnitr a ven to, jakym interfacem to prislo)
    $ip rule add from 172.16.26.62 table T1
    $ip rule add from 10.109.13.146 table T2

    # prirazeni konexi do tabulek
    $ip route add 192.168.1.0 dev eth0 table T1
    $ip route add 10.109.13.128 dev eth1 table T1
    $ip route add 127.0.0.0/8 dev lo table T1
    $ip route add 192.168.1.0 dev eth0 table T2
    $ip route add 172.16.26.0 dev eth2 table T2
    $ip route add 127.0.0.0/8 dev lo table T2

    # nastaveni nexthopu (v pripade vypadku GW)
    $ip route add default scope global nexthop via 172.16.26.1 dev eth2 weight 1 nexthop via 10.109.13.129 dev eth1 weight 2
Ovšem místo "rule" jsem psal stále "route" (už je moc hodin, nějak jsem to přehlédl). Teď vše funguje perfektně :-) Tak třeba to někomu pomůže!
LinMuck, WinFuck :-P
28.9.2013 17:27 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Dvě připojení k netu s 2x veřejnou IP
Neodpustím si poznámku: používáte-li směrovací pravidla a více tabulek, proč v dotazu ukazujete výstup příkazu route, ze kterého v takovém případě není vidět téměř nic?
Petr Maleček avatar 29.9.2013 12:02 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Dvě připojení k netu s 2x veřejnou IP
Je v něm vidět třeba to, že u obou připojení je nastavna defaultní gw, jakou mají metriku a podobně. Místo této poznámky jste mohl napsat, že třeba místo route byste očekával ip route, nebo tak něco. Takže děkuji.
LinMuck, WinFuck :-P
30.9.2013 06:13 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Dvě připojení k netu s 2x veřejnou IP
Je v něm vidět třeba to, že u obou připojení je nastavna defaultní gw, jakou mají metriku a podobně

Je z něj vidět jen obsah tabulky main, žádné další tabulky a žádná pravidla. Takže jakmile další tabulky a pravidla používáte, není z něj vidět skoro nic a nelze na základě něj vůbec odhadovat, jak se pakety routují.

Místo této poznámky jste mohl napsat, že třeba místo route byste očekával ip route

Samotný výstup "ip route show" je sice přehlednější, ale pořád ukazuje jen tabulku main. Takže by to chtělo "ip rule show" a buď obsah všech relevantních tabulek nebo rovnou "ip route show table all" (který je ale dost nepřehledný).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.