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: