IPv6 연결 문제가 있습니다. 그것만. 약 10분마다 시간 초과됩니다(주소 업데이트로 인해).
이 문제는 제가 1년 정도 동안 다른 PC(유선 및 무선)에서 시도한 모든 Debian 기반 Linux 버전(x86 및 x64)에서 발생합니다.
저는 현재 커널 3.13.0-37-generic x86_64(이전 3.2.0-60) 및 NetworkManager 0.9.8.8과 함께 Linux Mint 17.1을 사용하고 있습니다. 다운로드를 즉시 다시 시작하려고 하면 "호스트에 대한 경로 없음"이라는 메시지가 나타나는 경우가 있습니다. 내 IPv6 주소가 일시적으로 사라진 것 같거든요.
이와 같이:http://pastebin.com/4Xida2qu
듀얼 스택 IPv4 - IPv6(PPPoE)을 실행 중이며 Netgear DGND3700v2 라우터(펌웨어 버전 V1.1.00.22_1.00.22)가 구성된 방식은 다음과 같습니다.https://i.stack.imgur.com/VWkcV.png
관련 네트워크 프로필은 다음과 같이 설정됩니다.소홀히 하다IPv6이지만 어쨌든 글로벌 IPv6 주소를 얻습니다. 자동으로 변경해도 별 차이가 없습니다. 혼란스럽긴 하지만 커널이 제 역할을 하고 있는 것 같아요.
방화벽 규칙 또는 방화벽 규칙 부족은 아무런 차이를 만들지 않지만 기본적으로 다음과 같습니다.
iptables -P INPUT DROP
ip6tables -P INPUT DROP
iptables -P FORWARD DROP
ip6tables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -I INPUT -p icmpv6 -j ACCEPT
LAN 대신 DHCP를 사용하여 autoconf를 시도했는데 이제 Windows에서는 시간 초과가 발생하지 않지만 Linux에서는 ipv6 연결이 없습니다(글로벌 주소가 있는 것처럼 보이지만 어쨌든 "네트워크에 연결할 수 없음" 오류가 발생함).
tcpdump -vvni wlan0 icmp6
출력의 관련 부분
목적지에 도달할 수 없습니다:
19:25:05.381081 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 88) {GW's ipv6 - redacted} > {My pc's ipv6 link-local addr - redacted}: [icmp6 sum ok] ICMP6, destination unreachable, beyond scope 2001:760:ffff:b1::34, source address {My pc's ipv6 link-local addr - redacted}
19:25:12.948944 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 88) {GW's ipv6 - redacted} > {My pc's ipv6 link-local addr - redacted}: [icmp6 sum ok] ICMP6, destination unreachable, beyond scope 2001:760:ffff:b1::34, source address {My pc's ipv6 link-local addr - redacted}
19:25:18.446900 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 88) {GW's ipv6 - redacted} > {My pc's ipv6 link-local addr - redacted}: [icmp6 sum ok] ICMP6, destination unreachable, beyond scope 2001:760:ffff:b1::34, source address {My pc's ipv6 link-local addr - redacted}
라우터 컬렉션:
19:25:18.775794 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 16) {Unknown link-local ipv6 addr - redacted} > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 16
source link-address option (1), length 8 (1): {Unknown MAC - redacted}
0x0000: {Unknown MAC - redacted}
라우터 광고:
19:25:18.777825 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 112) {GW's ipv6 - redacted} > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 112
hop limit 64, Flags [other stateful], pref medium, router lifetime 1800s, reachable time 30000s, retrans time 1000s
prefix info option (3), length 32 (4): 2a01:2000:2001:91b1::/64, Flags [onlink, auto], valid time 360s, pref. time 360s
0x0000: 40c0 0000 0168 0000 0168 0000 0000 2a01
0x0010: 2000 2001 91b1 0000 0000 0000 0000
unknown option (24), length 24 (3):
0x0000: 4000 0000 0168 2a01 2000 2001 91b1 0000
0x0010: 0000 0000 0000
rdnss option (25), length 24 (3): lifetime 600s, addr: 2a01:2000:2001:91b1:861b:{Gateway}
0x0000: 8800 0000 0258 2a01 2000 2001 91b1 861b
0x0010: {gateway MAC - redacted}
mtu option (5), length 8 (1): 1492
0x0000: 0000 0000 05d4
source link-address option (1), length 8 (1): {gateway MAC - redacted}
0x0000: {gateway MAC - redacted}
나는 또한 때때로 다음과 같은 메시지를 받습니다. 이것이 중요한지 확실하지 않습니다.
17:09:42.546840 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 1240) {GW's ipv6 - redacted} > {My pc's temp ipv6 addr - redacted}: [icmp6 sum ok] ICMP6, packet too big, mtu 1462
라우터의 radvd.conf(텔넷을 사용하여 발견)
interface group1 {
AdvSendAdvert on;
AdvManagedFlag off;
AdvOtherConfigFlag on;
MaxRtrAdvInterval 600;
MinRtrAdvInterval 198;
AdvSourceLLAddress on;
AdvReachableTime 30000;
AdvRetransTimer 1000;
AdvDefaultLifetime 1800;
AdvCurHopLimit 64;
AdvLinkMTU 1492;
prefix 2a01:2000:2001:cd96::/64 {
AdvPreferredLifetime 360;
AdvValidLifetime 360;
AdvOnLink on;
AdvAutonomous on;
};
route 2a01:2000:2001:cd96::/64 {
AdvRouteLifetime 360;
};
RDNSS 2a01:2000:2001:cd96:XXXX:XXXX:XXXX:XXXX {
AdvRDNSSOpen on;
};
};
답변1
IPv6 주소 자동 구성 정보
현재 IPv6 자동 구성은 일반적으로 항상 ICMPv6 패킷 교환을 기반으로 하는 라우터 검색에 의존합니다. 기본 아이디어는 라우터에서 클라이언트로 네트워크에 대한 정보를 얻는 것입니다. 고객이 일단 받으면라우터 광고이 정보를 통해 DHCP가 사용되는지 여부, 특히 다른 구성에만 사용되는지, 주소 구성에도 사용되는지 여부도 알 수 있습니다. NetworkManager를 사용하여 테스트된 특정 구성은 다음과 같습니다.Fedora Wiki에 설명되어 있음.
NetworkManager를 사용하여 IPv6 구성
NetworkManager 0.9.6부터 NetworkManager의 IPv6 지원은 대부분 사용 가능하지만 제한된 커널 자동 구성 기능에 크게 의존합니다. NetworkManager 0.9.10부터 IPv6 구성은 사용자 공간에서 완전히 관리되며 커널 구성 방법이 더 효율적입니다. NetworkManager의 현재 분기는 1.0입니다.
다음 섹션은 유사한 문제를 디버깅하는 데 적합한 NetworkManager를 사용하여 좋은 호스트 테스트 설정을 구성하는 데 도움이 됩니다.
연결 구성
/etc/NetworkManager/system-connections/:
[ipv6]
method=auto
method=ignore
IPv6 연결이 제대로 작동할 것으로 예상되는 경우에는 사용하지 마십시오. 하지만소홀히 하다DNS 같은 것이 필요 없이 제한된 커널 기반 IPv6 구성을 허용하기 위해 선호되는 접근 방식은 NetworkManager가 IPv6 구성을 처리하도록 하는 것입니다. 우리는 실제로 제거하고 싶습니다소홀히 하다미래. NetworkManager는 IPv6 자동 구성 표준의 [알려진 버그][1]를 해결하려고 시도하고 있습니다 method=auto
.
방화벽이 중요한 패킷을 차단하고 있지 않은지 확인하세요.
간단한 테스트를 위해 방화벽을 허용합니다.
ip6tables -P INPUT ACCEPT
ip6tables -F INPUT
ip6tables -P OUTPUT ACCEPT
ip6tables -F OUTPUT
개인정보 보호 확장 프로그램을 사용하고 있지 않은지 확인하세요
과거에는 개인 정보 보호 확장(임시 주소라고도 함)에 문제가 있었습니다. 당신은 기본적으로 켜져 있는 배포판 중 하나인 Linux Mint를 사용하고 있습니다.
참고: 현재 겪고 있는 문제는 다음과 같습니다.아니요개인 정보 보호 확장 때문입니다. 이 섹션을 건너뛰어도 되지만 비슷한 증상이 있는 다른 문제를 디버깅하는 사람을 위해 이 섹션을 유지하고 싶었습니다.
/etc/sysctl.conf:
net.ipv6.conf.default.use_tempaddr = 0
일반적으로 당신은모두삽입됨기본그러나 NetworkManager는 파일을 읽고 다음을 찾고 있습니다.기본구체적으로. 이 설정은 우리가 어떤 연결에도 개인정보 보호 확장을 사용하지 않을 것임을 NetworkManager에 확신시키기에 충분해야 합니다. NetworkManager는 이제 연결별 개인 정보 보호 구성을 무시해야 합니다. 그런 다음 NetworkManager를 다시 시작하면 됩니다.
라우터 요청 및 광고 타이밍
업데이트된 질문을 통해 Networkmanager가 라우터 요청을 발행하면 라우터가 즉시 라우터 광고에 응답한다는 것을 알 수 있습니다. 이는 필요한 정보를 받았기 때문에 호스트 관점에서 볼 때 좋은 동작입니다. 문제는 이것이 항상 일어나는지 여부입니다.
또한 라우터는 주소 시간 초과가 발생하는 것보다 더 자주 라우터 광고를 주기적으로 보내야 합니다. 시간 초과가 가까워지면 라우터에서 정보를 놓친 경우를 대비해 호스트는 라우터 요청을 보내야 할 것입니다. NetworkManager 버전의 경우 이는 커널의 책임입니다.
또 다른 업데이트에서,라우터가 라우터 광고를 필요한 만큼 자주 보내지 않는 것 같습니다.. 일부 정보는 다음과 같은 짧은 기간 동안 유효합니다.360초그러나 라우터 광고의 최대 빈도는 다음과 같습니다.600초. 올바른 구성은 다음과 같습니다.360초그들 중 일부가 길을 잃을 경우를 대비한 시간 범위.
반면에,수명이 곧 만료되면 호스트는 아마도 라우터 요청을 통해 정보를 요청해야 할 것입니다.. tcpdump를 사용하면 요청과 광고를 모니터링하여 커널이 마지막 광고 후 약 6분 이내에 요청을 하는지 확인할 수 있습니다. 그렇지 않은 경우 마지막으로 광고한 이후 연결이 6분만 지속된다는 증상이 나타날 수 있습니다. 즉, 연결이 설정된 후 6분 이상이 지났음을 의미합니다.
권장 라우터 구성
표준에서는 몇 가지 값을 권장하는 것 같지만 상식을 사용하는 것이 좋습니다. 매우 나쁜 링크(Wi-Fi 및 기타)에서는 많은 패킷이 손실될 수 있습니다. 따라서 기본적으로 모든 수명을 최대 라우터 광고 간격의 최소 배수로 유지합니다.
당신의최대 RtrAdv 간격예600초이는 10분 이내에 업데이트된 정보를 받을 수 있다는 점에서 매우 좋습니다. 유일한 목적은최소 RtrAdv 간격시간을 약간 무작위로 지정하여 보관하거나 사용할 수 있습니다.300초예를 들어. 모든 수명은 최대 간격의 5배로 변경될 수 있습니다.3600초이는 모든 정보가 1시간 동안 유효하지만 대략 10분마다 업데이트된다는 의미입니다.
최종 메모
기계의 타이밍을 수정하려면 공급업체에 문의해야 할 수도 있습니다. 구성이 가능한지 모르겠습니다. 그러나 파일을 직접 변경하면 구성을 커밋할 때 라우터가 파일을 다시 작성하므로 도움이 되지 않을 수 있습니다.
라우터 요청 전송에 대한 의견이 필요하면 커널 네트워크 개발자에게 문의할 수도 있습니다. 모든 커뮤니케이션에 저를 포함시켜 주시기 바랍니다.