Portál AbcLinuxu, 30. dubna 2024 11:27


Dotaz: Nejde ping na druhy interface

4.8.2016 15:25 Tom
Nejde ping na druhy interface
Přečteno: 694×
Odpovědět | Admin
Dobry den,

Mam na serveru cent os 7 dve sitove rozhrani a nejak se mi nedari zprovoznit to aby mi vhost u apache naslouchali na obou. Problem nebude asi v apachi ale uz v tom ze se na eth1 ani nepingnu. Jedna IP je verejna a druha lokalni.

Nejde teda ping na eth1 jak z tohoto rozhrani tak na nej. Z venku paket prijde podle tcpdump ale nedojde odpoved na protejsek. Zkousel jsme ip forwarding nebo tadz podle tohoto http://jensd.be/468/linux/two-network-cards-rp_filter

ale porad se nedari. Rozchodil jsem akorat ze sel ping z eth1 smerem ven ale na toto rozhrani se nedostanu..

Dekuji za radu

Ř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

smoofy avatar 4.8.2016 16:39 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus popsat na kterem rozhrani mas verejnou a na kterem neverejnou adresu, kde ti ping funguje a odkud kam. Z tveho popisu asi neni nikdo moc moudrej tak ti tezko muzeme pomoci :(
Jenom absolutní kripl, zapne to, co jiný vypl.
4.8.2016 17:10 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Omlouvam se.

Tak podrobneji na příkladu:

Web server. Ma veřejnou adresu X na eth0. Potrebuji na něj přidat sekundarní adresu Y na dalším interface (ta bude privatni a FW ji bude natovat na jinou veřejnou ale pro tento příklad to není až tak podstatné, prostě chci eth1 s další IP)

Takže v podstatě chci at je server dostupny pod dvěmi IP adresami z ruzných rozsahu. Momentálně jsem klasicky ve vSphere přidal další interface a ten si přidelil IP z DHCP.

Mám tedy na serveru 2 interface a adresy na nich X a Y. Stav je takovy že ping -I eth0 seznam.cz je OK, rovnez se na tuto adresu pingnu odkudkoliv. Problem je s adresou Y na eth1. Ping z tohoto interface nejde a rovnez se na tuto adresu z vnitrni site nepingnu. tcpdump mi ukazuje ze request na server na eth1 prijde ale dale se nic nedeje. Chci dosahnout toho at mam web dostupny pod adresou X a zaroven i pod Y. Podarilo se mi jen to ze mi fungoval ping z eth1 na ntb ale z ntb na server ne.
smoofy avatar 4.8.2016 17:34 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Problem bude podle mne v routovani. Mas jenom jednu branu a pakety, ktere prijdou na rozhrani Y vidis jak prichazeji, ale na tomto rozhrani nemas patricnou branu, abys nasmeroval odpoved. Ping ze stejne site by fungovat mel, ale mimo ni to fungovat nemuze. Jako reseni vidim policy based routing se dvema rozdilnyma routovacima tabulkama pro kazde rozhrani.
Jenom absolutní kripl, zapne to, co jiný vypl.
4.8.2016 17:50 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Jo to me napadlo proto jsem zkousel pridat branu viz odkaz ale nepomohlo. Zkusim jeste ten ping ze stejne LAN jelikoy jsem si uvedomil ze jsem testoval z druheho subnetu na LAN.
4.8.2016 17:44 citanus | skóre: 12 | Cork (Ireland)
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Odpovědět | | Sbalit | Link | Blokovat | Admin
IMHO problem je v tom, ze ty mu posles ping na druhou sitovku a on ti odpovida zpet z prvni. Jestli je to ono tak pohledej multihoming.
$ sudo ip route add 192.168.0.0/24 dev ens192 tab 1
$ sudo ip route add 192.168.1.0/24 dev ens224 tab 2
$ sudo ip route add default via 192.168.0.1 dev ens192 tab 1
$ sudo ip route add default via 192.168.1.1 dev ens224 tab 2

$ sudo ip rule add from 192.168.0.10/32 tab 1 priority 100
$ sudo ip rule add from 192.168.1.10/32 tab 2 priority 200
$ sudo ip route flush cache
pokud to ma byt persistentni tak:
$ cat /etc/sysconfig/network-scripts/route-ens192
192.168.0.0/24 dev ens192 tab 1
default via 192.168.0.1 dev ens192 tab 1

$ cat /etc/sysconfig/network-scripts/route-ens224
192.168.1.0/24 dev ens224 tab 2
default via 192.168.1.1 dev ens224 tab 2


$ cat /etc/sysconfig/network-scripts/rule-ens192
from 192.168.0.10/32 tab 1 priority 100

$ cat /etc/sysconfig/network-scripts/rule-ens224
from 192.168.1.10/32 tab 2 priority 200
smoofy avatar 4.8.2016 17:56 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Tohle by se stalo pokud by mel zapnutej IP forwarding, jinak to ten paket proste zahodi pripadne vubec neposle, protoze nezna na tomto ifacu jeho destinaci.

viz. https://www.centos.org/docs/5/html/Virtual_Server_Administration/s1-lvs-forwarding-VSA.html
Jenom absolutní kripl, zapne to, co jiný vypl.
4.8.2016 18:48 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
tak jsem to nakonfiguroval znovu a stale nic. Nevim jestli nemam neco blbe...

ip route add verejna_IP/26 dev eth0 tab 1 ip route add 192.168.1.0/24 dev eth1tab 2 ip route add default via verejna_IP_GW dev eth0 tab 1 ip route add default via 192.168.1.1 dev eth1tab 2

ip rule add from 192.168.2.4/32 tab 1 priority 100 (jen pro test at tam neco je v te tabulce) ip rule add from 192.168.1.3/32 tab 2 priority 200

ip route flush cache

a ping stale nejde. jedine co se zmenilo je to že už jde ping z eth1 smerem ven ale na eth1 z jine site nepingnu. Jde to pouze ze stejne site nebo jine verejne IP adresy v tom rozsahu co mam.
4.8.2016 18:50 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Vypadlo mi formatovani tak jeste jednou snad dobre.

Tak jsem to nakonfiguroval znovu a stale nic. Nevim jestli nemam neco blbe...

ip route add verejna_IP/26 dev eth0 tab 1 ip route add 192.168.1.0/24 dev eth1 tab 2 ip route add default via verejna_IP_GW dev eth0 tab 1 ip route add default via 192.168.1.1 dev eth1tab 2

ip rule add from 192.168.2.4/32 tab 1 priority 100 (jen pro test at tam neco je v te tabulce) ip rule add from 192.168.1.3/32 tab 2 priority 200 ip route flush cache

a ping stale nejde. jedine co se zmenilo je to že už jde ping z eth1 smerem ven ale na eth1 z jine site nepingnu. Jde to pouze ze stejne site nebo jine verejne IP adresy v tom rozsahu co mam.
4.8.2016 20:28 citanus | skóre: 12 | Cork (Ireland)
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Hod sem tcpdump z obou stroju, ze kterych to zkousis. Pro obe situace, jak ping ven, tak ping z druhe site.
4.8.2016 23:04 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
NTB zachyceno na ntb

22:26:45.673301 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 1, length 64

22:26:46.672854 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 2, length 64

22:26:47.673234 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 3, length 64

22:26:48.672890 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 4, length 64

Server - tcpdump eth1

22:44:59.117351 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84) server.cz > ntb.cz: ICMP echo request, id 18251, seq 1, length 64

22:45:00.116854 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84) server.cz > ntb.cz: ICMP echo request, id 18251, seq 2, length 64

22:45:01.115918 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84) server.cz > ntb.cz: ICMP echo request, id 18251, seq 3, length 64

eth0

23:01:27.406249 IP (tos 0x0, ttl 64, id 24797, offset 0, flags [none], proto ICMP (1), length 84) server.cz > ntb.cz: ICMP echo reply, id 12108, seq 1, length 64

23:01:28.383024 IP (tos 0x0, ttl 64, id 24798, offset 0, flags [none], proto ICMP (1), length 84) server.cz > ntb.cz: ICMP echo reply, id 12108, seq 2, length 64

23:01:29.383111 IP (tos 0x0, ttl 64, id 24799, offset 0, flags [none], proto ICMP (1), length 84)

Konfigurace:

ip route add verejna_IP/26 dev eth0 tab 1

ip route add 192.168.1.0/24 dev eth1 tab 2

ip route add default via verejna_IP_GW dev eth0 tab 1

ip route add default via 192.168.1.1 dev eth1tab 2

ip rule add from 192.168.2.4/32 tab 1 priority 100 (jen pro test at tam neco je v te tabulce)

ip rule add from 192.168.2.3/32 tab 2 priority 200

ip route flush cache

Ping z eth0 i eth1 na serveru na tu 192.168.2.3 jde ale opacne ne. FW na serveru je vypnuty. To pravidlo pro tab 1 priority 100 ani nepotrebuju, chci at jde proste na eth0 vsechno krome toho co ma jit na eth1 ale to ted neni ten problem. Jeste mam na eth0 nejake virtualni IP ale to by taky nemel byt problem.
5.8.2016 08:35 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Podle toho proste prichazi request na eth1 a reply odchazi z eth0 porad.
5.8.2016 10:23 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
A ted na to koukam jeste a odchazi to z eth0 ten icmp reply a jako source IP to ma adresu eth1. jde to na interface FW kde se routuje jiny subnet a FW to blokne jako address spoofing.
smoofy avatar 5.8.2016 10:44 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
V obojim pripade jak u requestu tak odpovedi je to server -> notebook takze to ocividne nekoresponduje spolu. Predpokladam ze192.168.2.3 je notebook a 192.168.1.156 je server.

Nejprve si over, kam ti to presne routuje na serveru prikazem:
ip route get 192.168.2.3
Mel bys dostat vypisrout pro danou destinaci.

K cemu je "ip route add verejna_IP/26 dev eth0 tab 1"???
ip rule add from 192.168.2.4/32 tab 1 priority 100 (jen pro test at tam neco je v te tabulce) - tohle je nesmysl.
Rulu tam musis mit pro kazde zdrojove IP na tom serveru takze pro IP na eth0 a IP na eth1 a melo by vypadat takhle:
ip rule add from "ip na eth0" lookup tab1
ip rule add from "ip na eth1" lookup tab2

Tim rikas systemu, ze kdyz neco poleze z ip na eth0 nekam, ma se pouzit tabulka 1. To stejne nakonfigurujes pro druhou IP na tom serveru a pak overis zase tim ip route get 192.168.2.3
Jenom absolutní kripl, zapne to, co jiný vypl.
smoofy avatar 5.8.2016 11:19 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
ve tvem pripade vlastne staci jedina extra tabulka pro eth1 treba a zbytek bude padat do dafultni routy. Zkousel sem to na virtualce a v pohode mi to funguje. Jen ten prikaz ip route get defaultne vyhodi jen jednu tu routu a nepodarilo se mi zatim najit cestu jak je vypsat vsechny.
Jenom absolutní kripl, zapne to, co jiný vypl.
5.8.2016 12:13 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Super, skvele. Vzpadato ze to funguje. Problem byl v tom ze tam musi byt

ip rule add from "ip na eth0" lookup tab1

a ja tam furt cpal IP odkud chci pingnout.
smoofy avatar 5.8.2016 12:19 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Tak gratuluju. Jestli ti to facha tak oznac diskuzi za vyresenou a jedeme dale :)
Jenom absolutní kripl, zapne to, co jiný vypl.
8.8.2016 09:02 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Tak jeden problém přetrvává. Přidal jsem druhy DNS zaznam na forpsi a ping z venku jde pres obe IP jak pres eth0 tak eth1 kde se ta privatni NATuje na druhou verejnou IP na FW. Ale HTTP nejede. Na server přijdou requsty ale nic neodchazi ani z jednoho rozhraní. DNS jsem proste pridal xx.cz IP1 a xx.cz IP2.

Netušíte co s tim?
smoofy avatar 8.8.2016 11:05 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Posloucha ti ten apache na obou adresach?
netstat -antlp | grep :80
zkus co ti vrati z venku:
telnet "ip1" 80
telnet "ip2" 80
Jenom absolutní kripl, zapne to, co jiný vypl.
8.8.2016 13:13 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
jo jo mam. Ale zjistil jsem jeste ze kdzy nahodim eth1 UP tak ten apache prestane reagovat na poyadavky z lokalni site aniz bych nejaky vhost nakonfiguroval at nasloucha na eth1. Z venku vhost jede ale jakmile jsem v LAN tak vhosty nejedou. Kdyz ten interface dam DOWN tak zase OK.
smoofy avatar 8.8.2016 13:29 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Tezko rict na co si odpovidal. Na muj dotaz to urcite nebylo, protoze ja se neptal jestli neco mas. Kde ti ten apache posloucha? posli sem vypis tech prikazu. Mam tu default instalaci centos ve virtualce a by default posloucha apache na vsech IP. Je to dany direktivou "Listen" v konfiguraku "httpd.conf".
Jenom absolutní kripl, zapne to, co jiný vypl.
8.8.2016 15:20 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Tak tady:

[root@XX/]# netstat -antlp | grep :80

tcp 0 0 verejna_IP:80 81.171.58.80:36237 SYN_RECV -

tcp 0 0 lokalni:80 FW_X.X.X.X:59643 SYN_RECV -

tcp 0 0 verejna_virtual_IP_eth0:80 81.171.58.80:4470 SYN_RECV -

tcp 0 0 lokalni:80 FW_X.X.X.X:59642 SYN_RECV -

tcp6 0 0 :::80 :::* LISTEN 3561/httpd

tcp6 0 374 lokalni:80 FW_X.X.X.X:59621 FIN_WAIT1 -

tcp6 0 156 lokalni:80 FW_X.X.X.X:59620 FIN_WAIT1 -

Dalsi:

root@kali:~# telnet verejna_IP_1 80

Trying verejna_IP_1...

Connected to verejna_IP_1.

Escape character is '^]'.

root@kali:~# telnet verejna_IP_2 80

Trying verejna_IP_2...

Connected to verejna_IP_2.

Escape character is '^]'.

K tomu bych mel poznamku že z vnitřní síte se na vhosty toho serveru dostanu jen z jineho segmentu než jaky ma ta eth1 prideleny. Kdyz jdu na nejaky vhost ze stehneho segmentu jak je na eth1 tak nenactou.

V httpd.conf mam jen Listen 80 a pak u kazdeho vhostu virtualhost IP:PORT... takže jsem jen zkopíroval potřebny vhost a přepsal primarni verejnou IP na privatni IP eth1 a FW pak tu sekundarni veřejnou mapuje na tu privatni. To by melo byt OK když ten ping chodi v pohode z venku na eth1.
smoofy avatar 8.8.2016 16:04 smoofy | skóre: 9
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
Prave v tom httpd.conf u tech vhostu potrebujes mit nikoliv ip:port ale *:port aby to poslouchalo na vsech ip. Ukaz kdyztak i ten config.
Jenom absolutní kripl, zapne to, co jiný vypl.
8.8.2016 16:22 Tom
Rozbalit Rozbalit vše Re: Nejde ping na druhy interface
V tom to nebude. mam tam Listen 80 takze to naslouvha vsude ale zkusil jsem i Listen *:80 v conf/httpd.conf a i *:80 v conf.d/vhost.conf a vysledek stejny.

Krom toho jsem i testoval ze ten web nactu pres obe IP z lokalni site je to i otestovano tak ze jsem si do etc/hosts dal nejprve napevno jednu ip a pak druhou a pokazde se to pripoji a web nacte jen to nefunguje kdyz jsem na stejnem segmentu jako eth1 to pak nenacte vubec žadny vhost ze serveru nebo z venku nefunguje jen konkretni vhost ktery chci mít na dvou IP ale ostatni vhost už fungujou.

Ale projel jsem to jeste jednou tcpdumpem a prijde na eth1 HTTP GET a dokonce to teda i ovpovi HTTP OK 200 a po3le ypet na FW ktery by to mel natovat dal. To natovani by melo fungovat kdyz projde ping z venku a zpet. Porty jsou povolene. Jen jeste prestal fungovat ping z toho rozhrani ven jsem si vsimnul.

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.