Router

Valerio Pachera sirio81@gmail.com
Gio 25 Ago 2005 14:14:54 CEST


x marco:
non credo (spero) sia necessario configurare un server dns per far
funzionare un gateway.
Dovrei riuscire ad appoggiarmi ai dns del mio provider.

x marchino: ecco l' output di iptable-save
[root@desalitor sirio81]# iptables-save
# Generated by iptables-save v1.3.1 on Thu Aug 25 14:11:47 2005
*nat
:PREROUTING ACCEPT [101:18001]
:POSTROUTING ACCEPT [278:22032]
:OUTPUT ACCEPT [536:29322]
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE
COMMIT
# Completed on Thu Aug 25 14:11:47 2005

IL GATEWAY FUNZIONA MA NON RIESCO A NAVIGARE.
LEGGETE IL FILE ALLEGATO DOVE RIPORTO TUTTI GLI ESPERIMENTI FATTI ED
ILLUMINATEMI.
CIAO!
-------------- parte successiva --------------
ATTENZIONE, NELLA PRIMA PARTE IL GATEWAY NON E' IMPOSTATO

pingo www.google.com dal gateway (che non è ancora gateway)

[sirio81@desalitor sirio81]$ ping www.google.com
PING www.l.google.com (66.102.9.99) 56(84) bytes of data.
64 bytes from 66.102.9.99: icmp_seq=1 ttl=243 time=279 ms
64 bytes from 66.102.9.99: icmp_seq=2 ttl=243 time=249 ms
64 bytes from 66.102.9.99: icmp_seq=3 ttl=243 time=249 ms

tcpdump -i ppp0

20595 4/5/5 CNAME www.l.google.com.[|domain]
13:22:58.413171 IP d81-211-176-208.cust.tele2.it > 66.102.9.147: icmp 64: echo request seq 1
13:22:58.413715 IP d81-211-176-208.cust.tele2.it.32823 > 10.0.0.1.domain:  47918+ PTR? 147.9.102.66.in-addr.arpa. (43)
13:22:58.682823 IP 66.102.9.147 > d81-211-176-208.cust.tele2.it: icmp 64: echo reply seq 1
13:22:58.683040 IP d81-211-176-208.cust.tele2.it.32824 > 10.0.0.1.domain:  58643+ PTR? 147.9.102.66.in-addr.arpa. (43)
13:23:03.413097 IP d81-211-176-208.cust.tele2.it.32825 > dns1.swip.net.domain:  47918+ PTR? 147.9.102.66.in-addr.arpa. (43)
13:23:03.632015 IP dns1.swip.net.domain > d81-211-176-208.cust.tele2.it.32825:  47918 NXDomain 0/1/0 (103)
13:23:03.683057 IP d81-211-176-208.cust.tele2.it.32825 > dns1.swip.net.domain:  58643+ PTR? 147.9.102.66.in-addr.arpa. (43)
13:23:03.891980 IP dns1.swip.net.domain > d81-211-176-208.cust.tele2.it.32825:  58643 NXDomain 0/1/0 (103)
13:23:03.892165 IP d81-211-176-208.cust.tele2.it > 66.102.9.147: icmp 64: echo request seq 2
13:23:04.141937 IP 66.102.9.147 > d81-211-176-208.cust.tele2.it: icmp 64: echo reply seq 2
13:23:04.142193 IP d81-211-176-208.cust.tele2.it.32825 > 10.0.0.1.domain:  18091+ PTR? 147.9.102.66.in-addr.arpa. (43)

Ora pingo www.google.com col client con i dns impostati ma sempre col gateway inattivo
tcpdump -i eth0 

13:25:42.158796 IP 192.168.0.66.1057 > dns1.swip.net.domain:  3278+ A? www.google.com. (32)
13:25:43.157660 IP 192.168.0.66.1057 > dns2.swip.net.domain:  3278+ A? www.google.com. (32)
13:25:44.157666 IP 192.168.0.66.1057 > dns1.swip.net.domain:  3278+ A? www.google.com. (32)
13:25:46.157689 IP 192.168.0.66.1057 > dns1.swip.net.domain:  3278+ A? www.google.com. (32)
13:25:46.157731 IP 192.168.0.66.1057 > dns2.swip.net.domain:  3278+ A? www.google.com. (32)
13:25:50.157737 IP 192.168.0.66.1057 > dns1.swip.net.domain:  3278+ A? www.google.com. (32)
13:25:50.157778 IP 192.168.0.66.1057 > dns2.swip.net.domain:  3278+ A? www.google.com. (32)
la richiesta arriva ma non torna indierto nulla giustamente.

Ora provo a pingare sempre www.google.com dal client senza i dns impostati.
TCPDUMP non restituisce niente, neanche su ppp0.

ORA PINGO l' IP di google dal client senza aver impostati i dns.
In questo caso i dns non dovrebbero c' entrare niente.
ping 66.102.9.99
sul client vedo "richiesta scaduta"
su tcpdump -i eth0
13:35:56.398559 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 1280
13:36:01.633645 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 1536
13:36:07.133676 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 1792
13:36:12.633740 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 2048
la richeista arriva al gateway inattivo ma non torna indietro nulla.

ORA ATTIVO IL GATEWAY
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADING

pingo col client l' indirizzo IP di google.
tcpdump -i eth0
13:41:18.082211 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 2304
13:41:18.335638 IP 66.102.9.99 > 192.168.0.66: icmp 40: echo reply seq 2304
13:41:19.074855 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 2560
13:41:19.325472 IP 66.102.9.99 > 192.168.0.66: icmp 40: echo reply seq 2560
13:41:20.074866 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 2816
13:41:20.325319 IP 66.102.9.99 > 192.168.0.66: icmp 40: echo reply seq 2816
13:41:21.074878 IP 192.168.0.66 > 66.102.9.99: icmp 40: echo request seq 3072
13:41:21.325168 IP 66.102.9.99 > 192.168.0.66: icmp 40: echo reply seq 3072
si vede che il client fa la richiesta (echo request) e che google gli manda la risposta (replay)-
Quello che mi stupisce è che NON si vede il mascheramento.
Su LinuxPratico, dopo 192.168.0.66 > 66.102.9.99 ci dovrebbe essere un mascheramento
mio_ip_pubblico > 66.102.9.99
poi dovrei ricevere una risposta verso l' ip pubblico
66.102.9.99 > mio_ip_pubblico
ed infine redirigere la risposta al client della lan
mio_ip_pubblico > 192.168.0.66

Ora provo a pingare www.google.con dal client con i dns impostati:

tcpdump -i eth0

13:52:25.069896 IP 192.168.0.66.1057 > dns1.swip.net.domain:  1736+ A? www.google.com. (32)
13:52:25.324239 IP dns1.swip.net.domain > 192.168.0.66.1057:  1736 4/5/5 CNAME www.l.google.com.,[|domain]
13:52:25.331714 IP 192.168.0.66 > 66.102.9.104: icmp 40: echo request seq 4352
13:52:25.594195 IP 66.102.9.104 > 192.168.0.66: icmp 40: echo reply seq 4352
13:52:26.332772 IP 192.168.0.66 > 66.102.9.104: icmp 40: echo request seq 4608
13:52:26.574034 IP 66.102.9.104 > 192.168.0.66: icmp 40: echo reply seq 4608
13:52:27.332802 IP 192.168.0.66 > 66.102.9.104: icmp 40: echo request seq 4864
13:52:27.573881 IP 66.102.9.104 > 192.168.0.66: icmp 40: echo reply seq 4864
13:52:28.332798 IP 192.168.0.66 > 66.102.9.104: icmp 40: echo request seq 5120
13:52:28.583729 IP 66.102.9.104 > 192.168.0.66: icmp 40: echo reply seq 5120
STESSA STORIA.
Google ha cambiato IP nel frattempo.
Il client riceve risposta apparentemente in maniera diretta.
Ora provo a connettrmi col browser a www.google.com

13:52:25.069896 IP 192.168.0.66.1057 > dns1.swip.net.domain:  1736+ A? www.google.com. (32)
13:57:55.571365 IP 192.168.0.66.1069 > 192.168.0.27.http: S 3598635372:3598635372(0) win 65535 <mss 1460,nop,nop,sackOK>
13:57:55.571415 IP 192.168.0.27.http > 192.168.0.66.1069: R 0:0(0) ack 3598635373 win 0
13:57:55.946031 IP 192.168.0.66.1069 > 192.168.0.27.http: S 3598635372:3598635372(0) win 65535 <mss 1460,nop,nop,sackOK>
13:57:55.946077 IP 192.168.0.27.http > 192.168.0.66.1069: R 0:0(0) ack 1 win 0
13:57:56.492910 IP 192.168.0.66.1069 > 192.168.0.27.http: S 3598635372:3598635372(0) win 65535 <mss 1460,nop,nop,sackOK>
13:57:56.492954 IP 192.168.0.27.http > 192.168.0.66.1069: R 0:0(0) ack 1 win 0
NON VA !!!!
NON RISCHIEDE L' IP DI GOOGLE MA QUELLO DEL GATEWAY.
E' come se i dns gli avessero detto che google è sul gateway !

Ora provo a collegarmi col browser scrivendo l' IP di google e non l' indirizzo.
e ancora
13:56:20.062956 IP 192.168.0.66.1067 > 192.168.0.27.http: S 1503069995:1503069995(0) win 65535 <mss 1460,nop,nop,sackOK>
13:56:20.063006 IP 192.168.0.27.http > 192.168.0.66.1067: R 0:0(0) ack 1503069996 win 0
13:56:20.460521 IP 192.168.0.66.1067 > 192.168.0.27.http: S 1503069995:1503069995(0) win 65535 <mss 1460,nop,nop,sackOK>
13:56:20.460567 IP 192.168.0.27.http > 192.168.0.66.1067: R 0:0(0) ack 1 win 0
13:56:21.007405 IP 192.168.0.66.1067 > 192.168.0.27.http: S 1503069995:1503069995(0) win 65535 <mss 1460,nop,nop,sackOK>
13:56:21.007449 IP 192.168.0.27.http > 192.168.0.66.1067: R 0:0(0) ack 1 win 0

Secondo me è il client/browser che sbaglia ad inviare le richieste.
Col ping funziona quindi il gateway funziona.
Cosa devo fare per riuscire a navigar col simpaticone di windows ?


Maggiori informazioni sulla lista linuxludus