[fli4l] ICMP

Christoph Schulz fli4l at kristov.de
Do Mai 3 10:55:42 CEST 2012


Hallo!

Am 03.05.2012 10:02, schrieb Oma Voss:
> Hallo Christoph,
> habe bei HE folgendes gefunden:
>
> *Two important notes:
> 1. Your IPv4 endpoint address must be reachable via ICMP (Internet
> Control Message Protocol).

OK, damit ist ICMPv4 gemeint. Ich nehme an, dass HE hier Echo-Pakete 
meint. Stell mal dafür zum Testen die erlaubte Paketgröße höher. 
Momentan gibt es dafür (noch) keine Konfigurationsoption, deswegen 
müsstest du direkt den Quelltext editieren. Du findest ihn in 
etc/rc.d/rc360.fwrules.new in den Zeilen 123-125 (zumindest in der 
aktuellen SVN-Version):

  add_chain in-icmp
  add_rule filter in-icmp "prot:icmp:8 length:0-100 $limit ACCEPT" 
PF_INPUT_ACCEPT_DEF
  add_rule filter in-icmp "state:RELATED ACCEPT" PF_INPUT_ACCEPT_DEF

Ändere in der zweiten Zeile "0-100" z.B. auf "0-1500" und schau mal, ob 
der Tunnel dann stabiler läuft.

> 2. If you are using a NAT (Network Address Translation) appliance,
> please make sure it allows and forwards protocol 41.

Das passiert bereits automatisch. Ansonsten würde der Tunnel überhaupt 
nie funktionieren. Siehe etc/rc.d/fwrules.pre150.ipv6:

pf_in_ipv6_default () {
     if [ -f $ipv6_pops_file ]
     then
         cat $ipv6_pops_file | while read POP
         do
             add_rule filter INPUT "prot:41 $POP ACCEPT" "IPv6 protocol"
         done
     fi
}

case $PF_INPUT_ACCEPT_DEF in
     yes)
     pf_in_add_default pf_in_ipv6_default
     ;;
esac


Voraussetzung ist also PF_INPUT_ACCEPT_DEF='yes'. Ist das bei dir der Fall?

 > [...]
> Nun habe ich in die he.sh den entsprechenden Abschnitt eingefügt, den
> Router rebootet,jetzt geht erstmal kein IPv6-Tunnel zu HE.

Hmmm, seltsam.

>
> In die base.txt habe ich mal versuchsweise eingefügt:
> PF_INPUT_3='prot:41 216.66.xx.xx ACCEPT'
> PF_INPUT_4='prot:1 216.66.xx.xx ACCEPT'
> PF_INPUT_5='prot:58 216.66.xx.xx ACCEPT'
>
> aber auch damit kein Erfolg. Bei HE (siehe Zitat oben) steht:
> allows and forwards protocol 41

Eine explizite Forward-Regel für Protokoll 41 ist _nicht_ nötig. 
Proto-41-Pakete werden im Kernel als IPv6-Pakete erkannt und 
entsprechend über die ip6tables weiter verarbeitet. Ein direktes 
Proto-41-Forwarding würde nur dafür sorgen, dass der Router überhaupt 
nichts mit den Paketen anstellt, sondern direkt irgendwohin weiterleitet 
(z.B. an einen anderen Router). Dies wird aber so vom IPv6-Paket nicht 
unterstützt, sprich wenn man die Firewall von fli4l so konfigurierte, 
dann wäre die IPv6-Konfiguration des fli4l "kaputt".

>
> Ich bin mir nicht sicher, aber ACCEPT ist doch gleichbedeutend mit
> allows, was meinen die von HE mit forwards?

Dass der Router die IPv6-Pakete nicht "verschluckt", sondern ordentlich 
behandelt (und z.B. ins LAN weiterleitet, falls das Ziel ein Rechner im 
LAN ist).


Viele Grüße,

Christoph


Mehr Informationen über die Mailingliste Fli4L