[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Relais de broadcast, iptables



> Un cas assez tordu, mais intéressant.

Ca, je n'ai pas dit le contraire, et mis à part la possibilté de relayer
du broadcast UDP, les applications sont limitées. Mais je voudrais
comprendre.

> Et ça devrait logiquement marcher
> puisque la décision de routage est prise après le changement d'adresse
> de destination.

Ben oui

> Et je ne me rappelle pas avoir jamais entendu parler d'un traitement
> spécial des broadcast, fussent-ils locaux.
> 
> J'aurais donc plutôt tendance à penser qu'une autre règle s'applique
> avant celle-ci. Regarde les compteurs pour voir si elle est vraiment
> prise en compte.
> Si c'est le cas, un tcpdump sur chaque interface permettra peut-être d'y
> voir plus clair.

Bof, regardes les résultats ils sont intéressants mais guère éclairants:

tcpdump: en entrée icmp request, pas de reply. en sortie, pas de icmp.

iptables:
DNAT       icmp --  anywhere             255.255.255.255   
to:80.11.65.250
DNAT       tcp  --  anywhere             anywhere           tcp dpt:6112
to:192.168.1.250:6112
DNAT       udp  --  anywhere             anywhere           udp dpt:6112
to:192.168.1.250:6112
DNAT       tcp  --  anywhere             anywhere           tcp dpt:6000
to:192.168.1.253:6000
DNAT       udp  --  anywhere             anywhere           udp dpt:6000
to:192.168.1.253:6000
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Les compteurs montrent que la règle relative aux icmp est prise en compte
mais que dans ce cas, la règle sur le masquerading n'est pas prise en
compte. Je ne comprends pas pourquoi mais de toute façon rien ne sort sur
les deux interfaces donc le paquet est bloqué.

> 
> PS : je suppose qu'un simple ping <IP de la machine> passe sans
> problème ?

Oui, de plus quand je supprime la règle, la passerelle elle même me
répond. Le ponpon (qui me fait un peu plaisir quand même) est que si je
fais comme règle
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       icmp --  anywhere             cerbere.rebelles  
to:80.11.65.250
DNAT       tcp  --  anywhere             anywhere           tcp dpt:6112
to:192.168.1.250:6112
DNAT       udp  --  anywhere             anywhere           udp dpt:6112
to:192.168.1.250:6112
DNAT       tcp  --  anywhere             anywhere           tcp dpt:6000
to:192.168.1.253:6000
DNAT       udp  --  anywhere             anywhere           udp dpt:6000
to:192.168.1.253:6000
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

(cerbere.rebelles est le nom de la passerelle), alors un ping sur la
passerelle est bien routé correctement vers la machine extérieure qui
répond par un reply qui est bien "retransmis" par le masquerading. Bref,
dans ce cas ça roule...

Si tu as des idées, ce que je ne comprends pas, c'est que la règle étant
appliqué, le paquet cesse d'être un broadcast... à moins qu'il y ait une
histoire de drapeaux??

Merci de t'intéresser au pbm.

FB



Reply to: