Also, bei IPv4 war die Spielregel immer so, dass aller lokaler Traffic immer durch das 'lo0' interface geht - egal welche IP-Adresse verwendet wird, und egal auf welchem Interface diese IP-Adresse gebunden ist.
Das ist auch nachvollziehbar aus der Routing-Tabelle:
Während das netz 192.168.97.0/27 an 'vtnet0' hängt, ist die lokale Adresse selber an 'lo0'.
Im praktischen Einsatz sieht das dann so aus:
Alles geht immer schön durch lo0 (und da kann man es filtern, wenn man zB traffic zwischen non-vimage jails filtern will).
Und jetzt schauen wir uns dasselbe mal mit IPv6 an:
Upsala! Was tut denn das 'vtnet0' da mittendrin??
Das ist aber noch lang noch nicht alles. Das ist ein RELEASE 13.0. Jetzt mal RELEASE 12.2:
Au backe.
Mal soweit zusammengefaßt: das Verhalten ist
* inkonsistent zwischen incoming und outgoing
* inkonsistent zwischen originate und answer Flow
* inkonsistent zwischen Protokollen (ICMP vs. TCP)
* inkonsistent zwischen Releases
Und jetzt hab ich ein Problem damit. Ich bastel ja an diesem Teil hier, und würde das gern auch für IPv6 verwenden.
Aber wie soll ich das coden, wenn das Verhalten für jeden denkbaren Usecase ein anderes ist?
Und wen könnte ich vielleicht fragen wie das letztlich aussehen wird falls es irgendwann fertig ist?
(Die ipfw mailinglist scheint weitgehend leer zu sein.)
Das ist auch nachvollziehbar aus der Routing-Tabelle:
Code:
root@xxxx:~ # ifconfig
vtnet0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
inet 192.168.97.15 netmask 0xffffffe0 broadcast 192.168.97.31
inet6 fd00::1 prefixlen 64
root@xxxx:~ # netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
127.0.0.1 link#2 UH lo0
192.168.97.0/27 link#1 U vtnet0
192.168.97.15 link#1 UHS lo0 <<<<<<
Während das netz 192.168.97.0/27 an 'vtnet0' hängt, ist die lokale Adresse selber an 'lo0'.
Im praktischen Einsatz sieht das dann so aus:
Code:
root@xxxx:~ # ping 192.168.97.15
ipfw: 1 Accept ICMP:8.0 127.0.0.1 192.168.97.15 out via lo0
ipfw: 1 Accept ICMP:8.0 127.0.0.1 192.168.97.15 in via lo0
ipfw: 1 Accept ICMP:0.0 192.168.97.15 127.0.0.1 out via lo0
ipfw: 1 Accept ICMP:0.0 192.168.97.15 127.0.0.1 in via lo0
root@xxxx:~ # telnet 192.168.97.15 7777
ipfw: 1 Accept TCP 192.168.97.15:52401 192.168.97.15:7777 out via lo0
ipfw: 1 Accept TCP 192.168.97.15:52401 192.168.97.15:7777 in via lo0
ipfw: 1 Accept TCP 192.168.97.15:7777 192.168.97.15:52401 out via lo0
ipfw: 1 Accept TCP 192.168.97.15:7777 192.168.97.15:52401 in via lo0
Alles geht immer schön durch lo0 (und da kann man es filtern, wenn man zB traffic zwischen non-vimage jails filtern will).
Und jetzt schauen wir uns dasselbe mal mit IPv6 an:
Code:
root@xxxx:~ # ping fd00::1
ipfw: 1 Accept ICMPv6:128.0 [fd00::1] [fd00::1] out via lo0
ipfw: 1 Accept ICMPv6:128.0 [fd00::1] [fd00::1] in via lo0
ipfw: 1 Accept ICMPv6:129.0 [fd00::1] [fd00::1] out via lo0
ipfw: 1 Accept ICMPv6:129.0 [fd00::1] [fd00::1] in via lo0
root@xxxx:~ # telnet fd00::1 7777
ipfw: 1 Accept TCP [fd00::1]:53821 [fd00::1]:7777 out via lo0
ipfw: 1 Accept TCP [fd00::1]:53821 [fd00::1]:7777 in via vtnet0 <<<<<
ipfw: 1 Accept TCP [fd00::1]:7777 [fd00::1]:53821 out via lo0
ipfw: 1 Accept TCP [fd00::1]:7777 [fd00::1]:53821 in via lo0
Upsala! Was tut denn das 'vtnet0' da mittendrin??
Das ist aber noch lang noch nicht alles. Das ist ein RELEASE 13.0. Jetzt mal RELEASE 12.2:
Code:
root@yyyy:~ # ping6 fd00::1
ipfw: 1 Accept ICMPv6:128.0 [fd00::1] [fd00::1] out via lo0
ipfw: 1 Accept ICMPv6:128.0 [fd00::1] [fd00::1] in via vtnet0
ipfw: 1 Accept ICMPv6:129.0 [fd00::1] [fd00::1] out via lo0
ipfw: 1 Accept ICMPv6:129.0 [fd00::1] [fd00::1] in via vtnet0
root@yyyy:~ # telnet fd00::1 7777
ipfw: 1 Accept TCP [fd00::1]:60375 [fd00::1]:7777 out via lo0
ipfw: 1 Accept TCP [fd00::1]:60375 [fd00::1]:7777 in via vtnet0
ipfw: 1 Accept TCP [fd00::1]:7777 [fd00::1]:60375 out via lo0
ipfw: 1 Accept TCP [fd00::1]:7777 [fd00::1]:60375 in via vtnet0
Au backe.
Mal soweit zusammengefaßt: das Verhalten ist
* inkonsistent zwischen incoming und outgoing
* inkonsistent zwischen originate und answer Flow
* inkonsistent zwischen Protokollen (ICMP vs. TCP)
* inkonsistent zwischen Releases
Und jetzt hab ich ein Problem damit. Ich bastel ja an diesem Teil hier, und würde das gern auch für IPv6 verwenden.
Aber wie soll ich das coden, wenn das Verhalten für jeden denkbaren Usecase ein anderes ist?
Und wen könnte ich vielleicht fragen wie das letztlich aussehen wird falls es irgendwann fertig ist?
(Die ipfw mailinglist scheint weitgehend leer zu sein.)
Zuletzt bearbeitet: