Pingowanie przez dwa różne łącza

Serwery i sieci oparte na Slackware, wszelkiego rodzaju usługi, troubleshooting.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Pingowanie przez dwa różne łącza

Post autor: aksnet » 2013-04-26, 14:21

Witam

Mam serwer do którego są wpięte 2 różne łącza. Pierwsze łącze jest na eth0, drugie na eth1
(oba ładnie pracują, serwer udostępnia internet po lan, zrobione jest rutowanie na 2 łącza).
Aby sprawdzić obciążenie każdego łącza puszczam z serwera do internetu pingi i rysuje
w mrtg wykresik (obciążone łącze = duże pingi).

ping przez łącze 1 działa ladnie np.:

Kod: Zaznacz cały

ping -I eth0 onet.pl 
ping przez drugie łącze nie idzie np.:

Kod: Zaznacz cały

ping -I eth1 onet.pl 
Rozumiem , że problem tkwi w rutowaniu na serwerze.

ip route daje trasę domyślną przez eth0:

Kod: Zaznacz cały

default via 46.170.xx.xx  dev eth0
i dlatego ping przez eth0 idzie.

Jak zmienić rotowanie aby oba pingowania działały , a więc:

Kod: Zaznacz cały

ping -I eth0 onet.pl
ping -I eth1 onet.pl
Pozdrawiam
Aksnet
Ostatnio zmieniony 2013-05-13, 16:00 przez aksnet, łącznie zmieniany 2 razy.

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: webster » 2013-04-26, 14:33

Jak dla mnie musiałbyś wybrać inną domenę do pingowania dla drugiego interfejsu, utworzenie dodatkowej tablicy routingu, później tylko mark pakietu i puszczenie przez dodaną tablicę.
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Re: Pingowanie przez dwa różne łącza

Post autor: aksnet » 2013-04-26, 16:11

Nie ma znaczenia co pinguje, ważne przez który interfejs idzie pakiet.

Podasz jakiś przykład rutowania?

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: webster » 2013-04-26, 17:04

Przykładowo dla sieci 192.168.0.0/24
Dest do onet.pl

Kod: Zaznacz cały

ip route add table 100 via IP_BRAMY
iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d onet.pl -j MARK --set-mark 3525404
ip rule add fwmark 3525404 table 100
Jeśli mówisz, że interfejs wychodzący bez różnicy, to Kombinuj...
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Re: Pingowanie przez dwa różne łącza

Post autor: aksnet » 2013-04-26, 18:20

Nie wiem czy dobrze zrozumieliśmy się.
Nie pinguję z LAN, ale bezpośrednio z serwera do którego są wpięte łącza.

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: webster » 2013-04-26, 18:26

A "łącze bezpośrednie", ma jakąś bramę domyślną (od providera)? Czy Pracujesz w 0.0.0.0/0 ? :)) :p lol
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Awatar użytkownika
dienet
Moderator
Posty: 2106
Rejestracja: 2007-07-24, 18:58
Lokalizacja: Racibórz/Rybnik
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: dienet » 2013-04-26, 18:44

No ale jak ping idzie tylko jednym zew. łączem, to nie pisz, że masz load balancing zrobiony, bo nie masz drugiego łącza działającego, żeby to działało ;) Chyba, że się mylę.
Pozdr0
dienet
[img]http://i164.photobucket.com/albums/u19/slawek15/kotekeo0lq3.jpg[/img]

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Re: Pingowanie przez dwa różne łącza

Post autor: aksnet » 2013-04-26, 19:47

Mylisz się, oba łącza działają i nie jest to load balancing.
Jedno łącze jest rutowane na podsieć 10.0.1.0/24 a drugie na 10.0.2.0/24


Rutowanie w tej chwili wygląda tak (2 tablice):

Kod: Zaznacz cały

#------------- ŁĄCZE 0 ---------- tabela 10
xx.xx.xx.208/29 dev eth1  scope link  src xx.xx.xx.210 
yy.yy.yy.176/29 dev eth0  scope link  src yy.yy.yy.178 
10.0.0.0/20 dev br0  scope link 
127.0.0.0/8 dev lo  scope link 
default via yy.yy.yy.177 dev eth0 

#-------------- ŁĄCZE 1 --------- tabela 20
xx.xx.xx.208/29 dev eth1  scope link  src xx.xx.xx.210 
yy.yy.yy.176/29 dev eth0  scope link  src yy.yy.yy.178 
10.0.0.0/20 dev br0  scope link 
127.0.0.0/8 dev lo  scope link 
default via xx.xx.xx.209 dev eth1 
default:

Kod: Zaznacz cały

#------------- TABELA DEFAULT --------------
ip route add default via yy.yy.yy.177 dev eth0
rule:

Kod: Zaznacz cały

# -------------  rule --------------------
ip rule del priority 10 2> /dev/null
ip rule add from 10.0.1.0/24 table 10 priority 10
ip rule del priority 20 2> /dev/null
ip rule add from 10.0.2.0/24 table 20 priority 20

Kod: Zaznacz cały

#--- ip rule show --
0:	from all lookup local 
10:	from 10.0.1.0/24 lookup 10 
20:	from 10.0.2.0/24 lookup 20 
32766:	from all lookup main 
32767:	from all lookup default
zastanawiam się dlaczego nie działa mi coś takiego:

Kod: Zaznacz cały

ip rule add from xx.xx.xx.208/29 table 20 priority 21
reguła się dodaje, ale pakiety zachowują sie jakby nie wpadały do tabeli 20
(czyli nie odzie ping z serwra przez tę tabelę)

Awatar użytkownika
bojleros
Użytkownik
Posty: 785
Rejestracja: 2005-08-29, 11:12
Lokalizacja: z widokem na familoki :)
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: bojleros » 2013-05-09, 20:24

Może spróbuj postępować według takiego algorytmu:

1. Rozwiąż onet.pl na adres ip.
2. Dodaj trasę do uzyskanego ip poprzez eth0 (z odpowiednią metryką).
3. Wykonaj ping po ip i zapisz wynik eth0.
4. Skasuj trasę poprzez eth0 a na jej miejsce dodaj trasę jak w pkt2. poprzez eth1.
5. Wykonaj ping po ip i zapisz wynik eth1.
6. Skasuj trasę dodaną w pkt4.
7. W razie konieczności wprowadź zmiany.
8. jmp 1.

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: webster » 2013-05-10, 10:03

ja bym napisał trochę inaczej:

W cronie 10 sec

Kod: Zaznacz cały

pierwsza_brama=ip
druga_brama=ip
Sprawdzam co jest aktualnie moja domyslna brama
ping do onet.pl 3 przesyłki
                 Jesli wynik operacji bez błędnie -> koniec
                 Jesli wynik op. blad -> 
                                                Jesli Aktualna brama to pierwsza_bramal to Zmiana default gateway na druga_brame. LUB odwrotnie. 
                                                Zmiana SNAT
Koniec
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

Awatar użytkownika
aksnet
Użytkownik
Posty: 70
Rejestracja: 2008-03-02, 19:09
Lokalizacja: z 10.0.1.1

Re: Pingowanie przez dwa różne łącza

Post autor: aksnet » 2013-05-13, 15:49

Udało mi się rozwiązać problem poprzez zmianę iproute2 na nowszą wersję
(zmieniłem system Slackware 12.2 na 14.0)i wykorzystanie oif
(w mojej starej wersji nie działała opcja oif (interfejs wyjściowy)

dodałem takie polecenia:

Kod: Zaznacz cały

ip rule add oif eth0 table 10 priority 11
ip rule add oif eth1 table 20 priority 21
rule wygląda tak:

ip rule show

Kod: Zaznacz cały

0:	from all lookup local 
10:	from 10.0.1.0/24 lookup 10 
11:	from all oif eth0 lookup 10 
20:	from 10.0.2.0/24 lookup 20 
21:	from all oif eth1 lookup 20 
32766:	from all lookup main 
32767:	from all lookup default 
ping poszedł zgodnie z założeniem przez wybrany interfejs:

ping -I eth0 194.204.159.1

Kod: Zaznacz cały

PING 194.204.159.1 (194.204.159.1) from yyy.yyy.yyy.178 eth0: 56(84) bytes of data.
64 bytes from 194.204.159.1: icmp_req=1 ttl=249 time=23.9 ms
64 bytes from 194.204.159.1: icmp_req=2 ttl=249 time=23.3 ms
ping -I eth1 194.204.159.1

Kod: Zaznacz cały

PING 194.204.159.1 (194.204.159.1) from xxx.xxx.xxx.210 eth1: 56(84) bytes of data.
64 bytes from 194.204.159.1: icmp_req=1 ttl=249 time=24.5 ms
64 bytes from 194.204.159.1: icmp_req=2 ttl=249 time=24.5 ms
Pozdrawiam wszystkich.
Aksnet

Awatar użytkownika
webster
Użytkownik
Posty: 1266
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Pingowanie przez dwa różne łącza

Post autor: webster » 2013-05-14, 11:30

o fuck, a ja Tobie odpisywałem posty z iinego tematu. a tu o głupi ping chodziło...
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook

ODPOWIEDZ