On Fri, 2004-10-08 at 10:19, Marc SCHAEFER wrote:
> On Thu, Oct 07, 2004 at 04:58:50PM +0200, Leopoldo Ghielmetti wrote:
> > apparemment le ping ouvre une connexion ICMP avec la machine distante et
> > envoie toutes les requÃtes sur cette connexion. La chose me parait trÃs
> 
> oui et non.
> 
> ping ouvre un socket local. L'adresse du socket est dÃterminÃe au
> dÃpart. Faire des tcpdump -i ppp0 -n 'icmp' pour voir comment sont
> envoyÃs ces paquets (adresse interne?).
> 
> En ce qui concerne le NAT/PAT stateful, mÃme des protocoles non
> connectÃs peuvent Ãtre vus comme partie d'une mÃme session (d'un mÃme
> nexus).
> 
> Si tcpdump te montre que les paquets sortent avec une adresse interne
> p.ex., alors il peut Ãtre utile de modifier le comportement.
> 
>    [EMAIL PROTECTED]:/proc% find . -name '*dyn*' 2>/dev/null
>    ./sys/net/ipv4/ip_dynaddr

Ãa valeur est dÃjà à 1.

> C'est peut-Ãtre celui-lÃ.
> 
> Ou alors c'est
> 
>    ip route flush

il repond:
"ip route flush" requires arguments.

Si je lui donne en argument l'adresse IP qui m'intÃresse, il l'efface de
la table de routage et plus aucun paquet ne sort.

> Mais si tu ne donnes pas un peu de traces rÃseau, on risque d'aller dans
> la mauvaise direction. PrÃcise aussi sur quelle machine est fait le
> ping.

Alors, mon rÃseau est composà d'un rÃseau interne (divisà en
sous-rÃseaux) et d'une DMZ. On à un firewall Hardware (je ne me rappelle
plus le modÃle mais je ne crois pas que ce soit important).
Les adresses internes sont en 10.122.x.x, les adresses de la DMZ sont
192.168.1.x.
Les clients ont des adresses en 10.x.x.x (et parfois en 192.168.x.x)
tandis que le firewall d'un des client est en 172.16.x.x.

Actuellement je suis en train de tester la connexion en appelant mon
modem à la maison, et j'ai configurà ma machine pour rÃpondre aux IP
192.168.0.1 et 10.10.10.10.

Ensuite j'ai demandà à l'administrateur rÃseaux de router les adresses
192.168.3.x vers la machine connectà avec le modem. De faÃon à avoir la
configuration suivante:

+---------------+      +---------+      +---------------+
| mon PC        |      | routeur |      | firewall      |
|               +----->| de mon  +----->| 10.122.18.252 +---> internet
| 10.122.3.45   |      | subnet  |      | 192.168.1.252 |
+---------------+      +---------+      +-------+-------+
                                                | route pour 192.168.3.x
                                                v
                                        +---------------+
                                        | routeur modem |
                                        |               |
                                        | 192.168.1.253 |
                                        +-------+-------+
                                                |
                                              modem
                                                |
                                        +---------------+
                                        | maison        |
                                        | 10.10.10.10   |
                                        | 192.168.0.1   |
                                        +---------------+

Mon PC Ã la maison sera ensuite visible depuis les PC de la boÃte avec
l'adresse 192.168.3.100 (et 192.168.3.140).

J'ai configurà le route de la faÃon suivante:
Kernel IP routing table
Destination     Gateway       Genmask         Flags Metric Ref Use Iface
192.168.3.100   *             255.255.255.255 UH    0      0     0 tap1
192.168.255.254 *             255.255.255.255 UH    1      0     0 tap1
192.168.0.1     *             255.255.255.255 UH    0      0     0 tap1
10.10.10.10     *             255.255.255.255 UH    0      0     0 tap1
192.168.3.140   *             255.255.255.255 UH    0      0     0 tap1
192.168.3.0     *             255.255.255.0   U     0      0     0 *
192.168.0.0     *             255.255.254.0   U     0      0     0 eth0
default         192.168.1.252 0.0.0.0         UG    0      0     0 eth0

(Il y a beaucoup de rÃgle car je suis en train de tester diffÃrentes
solutions, en thÃorie il suffit d'ajouter les deux rÃgles pour la 3.100
et la 3.140 vers le tap1).

iptables contient seulement la dÃfinition du MASQUERADE:
Chain PREROUTING (policy ACCEPT 472 packets, 35881 bytes)
 pkts bytes target     prot opt in     out     source        destination

Chain POSTROUTING (policy ACCEPT 210 packets, 14659 bytes)
 pkts bytes target     prot opt in     out     source        destination
  568 47640 MASQUERADE  all  --  *      ppp+    0.0.0.0/0    0.0.0.0/0

Chain OUTPUT (policy ACCEPT 203 packets, 14095 bytes)
 pkts bytes target     prot opt in     out     source        destination

Le ifconfig me renvoie:
eth0      Link encap:Ethernet  HWaddr 00:50:8B:69:DB:09
          inet addr:192.168.1.253 Bcast:192.168.1.255 Mask:255.255.254.0
          inet6 addr: fe80::250:8bff:fe69:db09/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50633 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24545 errors:0 dropped:0 overruns:0 carrier:0
          collisions:12 txqueuelen:100
          RX bytes:6661648 (6.3 Mb)  TX bytes:2932594 (2.7 Mb)
          Interrupt:16 Base address:0x1000 Memory:fc500000-fc500038

tap1      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00
          inet addr:192.168.255.126 Bcast:0.0.0.0 Mask:255.255.255.255
          inet6 addr: fe80::fcfd:ff:fe00:0/10 Scope:Link
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:469 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:46440 (45.3 Kb)
          Interrupt:5

Si depuis ma machine 10.122.3.45 je ping 192.168.3.100 la connexion
monte et j'obtiens la configuration suivante:

route:
Kernel IP routing table
Destination   Gateway       Genmask         Flags Metric Ref Use Iface
192.168.3.100 *             255.255.255.255 UH    0      0     0 ppp0
192.168.0.1   *             255.255.255.255 UH    0      0     0 ppp0
192.168.0.1   *             255.255.255.255 UH    0      0     0 ppp0
10.10.10.10   *             255.255.255.255 UH    0      0     0 ppp0
192.168.3.140 *             255.255.255.255 UH    0      0     0 ppp0
192.168.3.0   *             255.255.255.0   U     0      0     0 *
192.168.0.0   *             255.255.254.0   U     0      0     0 eth0
default       192.168.1.252 0.0.0.0         UG    0      0     0 eth0

(les deux rÃgles 192.168.0.1 sont dus au fait que diald route
automatiquement vers 192.168.0.1 (qui est l'adresse avec laquelle mon PC
à la maison s'annonce) et que mon script de routage l'ajoute une
deuxiÃme fois car 192.168.3.140 est NATtà vers 192.168.0.1. Mais ceci ne
dÃrange pas le routage).

iptables:
Chain PREROUTING (policy ACCEPT 476 packets, 36193 bytes)
target prot opt in out source    destination
DNAT   all  --  *  *   0.0.0.0/0 192.168.3.100 to:10.10.10.10
DNAT   all  --  *  *   0.0.0.0/0 192.168.3.140 to:192.168.0.1

Chain POSTROUTING (policy ACCEPT 213 packets, 14866 bytes)
target     prot opt in out  source    destination
MASQUERADE  all  --  * ppp+ 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 205 packets, 14218 bytes)
target     prot opt in out source    destination
DNAT       all  --  *  *   0.0.0.0/0 192.168.3.100 to:10.10.10.10
DNAT       all  --  *  *   0.0.0.0/0 192.168.3.140 to:192.168.0.1

ifconfig:
ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.0.250 P-t-P:192.168.0.1 Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:2 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:72 (72.0 b)  TX bytes:4614 (4.5 Kb)

le tcpdump -i ppp0 sur le "routeur modem" donne:
11:41:12.320788 10.122.3.45 > 192.168.3.100: icmp: echo request (DF)
...

le tcpdump -i ppp0 sur le pc à la maison donne:
11:41:12.477763 10.122.3.45 > 192.168.3.100: icmp: echo request (DF)
...

Ensuite je lance un nouveau ping 192.168.3.100 et j'obtiens une rÃponse.
le tcpdump -i ppp0 sur le "routeur modem" donne:
11:42:50.507091 192.168.0.250 > 10.10.10.10: icmp: echo request (DF)
11:42:50.812689 10.10.10.10 > 192.168.0.250: icmp: echo reply
...

le tcpdump -i ppp0 sur le pc à la maison donne:
11:42:50.658851 192.168.0.250 > 10.10.10.10: icmp: echo request (DF)
11:42:50.658879 10.10.10.10 > 192.168.0.250: icmp: echo reply
...

Ce qui est parfaitement ok. La mÃme chose si je ping sur 192.168.3.140
(la se sera 192.168.0.1 qui va rÃpondre).

Si j'arrÃte le ping, aprÃs un timeout la connexion est arrÃtÃe et la
configuration reviens à son point de dÃpart, prÃte pour une nouvelle
requÃte de connexion.

J'espÃre que tu as toutes les informations nÃcessaires.

Si tu veux des logs supplÃmentaires dis-le moi.

Pour le moment je ne vois pas de solution, il semble que la mise en
place du NAT ne reroute pas les paquets du ping en cours (comme tu dis,
ils sont vu comme appartenant au mÃme stream). Mais je ne sais pas
comment interrompre ce stream pour qu'il se reconnecte.

Si je fais:
iptables -t filter -A FORWARD -d 192.168.3.100  -j REJECT

J'obtiens du ping:
From 192.168.1.253 icmp_seq=58 Destination Port Unreachable

et si ensuite je reÃtablis la connexion:
iptables -t filter -D FORWARD -d 192.168.3.100  -j REJECT

Le ping reviens à l'Ãtat d'avant et le tcpdump me confirme que les
paquets ne sont pas NATtÃs.

Je ne sais pas comment forcer le reroutage des connexions.

ciao, Leo

> _______________________________________________
> gull mailing list
> [EMAIL PROTECTED]
> http://lists.alphanet.ch/mailman/listinfo/gull
> 
> 

Attachment: signature.asc
Description: This is a digitally signed message part

Répondre à