Mam następującą konfigurację sieci:
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:e0:1c:73:02:09
inet addr:10.1.4.41 Bcast:10.1.255.255 Mask:255.255.0.0
inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:858600 errors:0 dropped:0 overruns:0 frame:0
TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0
collisions:0 txqueuelen:1000
RX bytes:142871181 (136.2 MiB) TX bytes:717982640 (684.7 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:37952 errors:0 dropped:0 overruns:0 frame:0
TX packets:37952 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3396918 (3.2 MiB) TX bytes:3396918 (3.2 MiB)
Mam serwer DHCP w swojej sieci i mogę uzyskać następującą dzierżawę:
lease {
interface "eth0";
fixed-address 10.1.4.41;
option subnet-mask 255.255.0.0;
option routers 10.1.255.253;
option dhcp-lease-time 120;
option dhcp-message-type 5;
option domain-name-servers 82.160.125.52,213.199.198.248,82.160.1.1;
option dhcp-server-identifier 192.168.22.22;
renew 3 2014/01/01 18:34:41;
rebind 3 2014/01/01 18:35:30;
expire 3 2014/01/01 18:35:45;
}
Mogę pingować 127.0.0.1
, ::1
, 10.1.4.41
:
$ ping 10.1.4.41
PING 10.1.4.41 (10.1.4.41) 56(84) bytes of data.
64 bytes from 10.1.4.41: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 10.1.4.41: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 10.1.4.41: icmp_seq=3 ttl=64 time=0.085 ms
^C
--- 10.1.4.41 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.065/0.075/0.085/0.008 ms
$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.055 ms
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.055/0.059/0.066/0.005 ms
$ ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.037 ms
^C
--- ::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.037/0.046/0.052/0.006 ms
Nie mogę pingować adresu IPv6 fe80::2e0:4cff:fe75:309
:
$ ping6 fe80::2e0:4cff:fe75:309
connect: Invalid argument
Ustawiłem kilka reguł iptables (ipv4):
# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N TCP
-N UDP
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A OUTPUT -m conntrack --ctstate INVALID -j DROP
I działa zgodnie z oczekiwaniami dla ipv4. Ale kiedy sprawdzam ip6tables, widzę, że niektóre pakiety tam idą:
# ip6tables -nvL
Chain INPUT (policy ACCEPT 381 packets, 27624 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 390 packets, 26296 bytes)
pkts bytes target prot opt in out source destination
Postępowałem zgodnie z tym przewodnikiem, a oni mówią, że powinienem skopiować konfigurację iptables (ipv4) i wkleić ją do ip6tables (ipv6). Ale kiedy to robię, żaden pakiet nie może przejść przez regułę RELATED,ESTABLISHED
w tabeli ipv6. Wszystkie zostały usunięte z powodu INPUT łańcucha strategii ( DROP
).
# ip6tables -nvL
Chain INPUT (policy DROP 5 packets, 360 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all eth0 * ::/0 ::/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all lo * ::/0 ::/0
0 0 ACCEPT all tun0 * ::/0 ::/0 ctstate RELATED,ESTABLISHED
0 0 DROP all * * ::/0 ::/0 ctstate INVALID
0 0 UDP udp * * ::/0 ::/0 ctstate NEW
0 0 TCP tcp * * ::/0 ::/0 tcp flags:0x17/0x02 ctstate NEW
0 0 REJECT tcp * * ::/0 ::/0 reject-with tcp-reset
0 0 REJECT udp * * ::/0 ::/0 reject-with icmp6-port-unreachable
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all * * ::/0 ::/0 ctstate INVALID
Chain TCP (1 references)
pkts bytes target prot opt in out source destination
Chain UDP (1 references)
pkts bytes target prot opt in out source destination
Jak widać, nie ma pakietów wyjściowych, więc dlaczego Google i wymiana stosów próbują połączyć się z moim komputerem? I jak to robią, bo nawet ja nie mogę pingować mojego adresu IPv6?
Mówią także, że jeśli mój dostawca usług internetowych nie ma ipv6 (w umowie nie ma wpisu ipv6) powinienem wyłączyć ipv6 i robiłem to wcześniej, używając ipv6.disable=1
. Zadałem podobne pytanie na meta.stackoverflow.com
i otrzymałem odpowiedź, że nie powinienem wyłączać ipv6.
Nie mam pojęcia co robić. Mam pewne problemy z połączeniem, to znaczy czasami nie mogę uzyskać dostępu do stron przy wymianie stosów lub google, mam również problemy z pastebin.com. W każdym przypadku występują te same objawy - po wpisaniu adresu w przeglądarce muszę czasem czekać kilka minut, aby uzyskać dostęp do strony, a po ponownym załadowaniu 2-3 razy mogę go swobodnie przeglądać, przynajmniej dla pewien okres czasu.
icmpv6
regułę, ale ograniczoną do 20 / min, i widzę, że pakiety tam idą.ping6 -I eth0 fe80::2e0:4cff:fe75:309
działa również.