
저는 vServer에서 Debian 8을 실행하고 있습니다. Docker를 설치하고 IPv6를 활성화한 후 이상한 점을 발견했습니다. docker가 이것과 관련이 있는지는 모르겠지만, docker를 설치한 후에 이 문제를 발견한 것뿐입니다.
내 기본 경로는 ca. 이후에 만료되도록 구성되어 있습니다. 1800초 나는 실제로 이 시간 초과 후에 사라집니다. 이는 (분명히) IPv6 연결이 느슨한 경우입니다.
root@wopr:~# ip -6 route
xxxx:yyyy:zzz:xxxx::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev br-5c1ce68ea951 proto kernel metric 256
fe80::/64 dev br-61f6bbfdbe87 proto kernel metric 256
[a lot more routed for my docker containers]
default via fe80::1 dev eth0 proto ra metric 1024 expires 1259sec hoplimit 64
라우팅이 1800초 후에 만료되도록 구성한 이유는 무엇입니까? 어디서 구성할 수 있나요?
[2016-05-14 16:08 편집]
기본 경로를 수동으로 추가하면 제대로 작동하는 것 같습니다. 그대로 유지됩니다. 하지만 부팅 후 만료되지 않는 경로가 필요합니다.
[2016-05-14 16:13 편집]
머신은 netcup.de가 호스팅하는 KVM 호스트에서 실행 중입니다. 내 공급자가 권장하는 대로 virtio 드라이버를 사용하고 있습니다.
root@wopr:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
address xxxx:yyyy:zzz:xxxx::1
netmask 64
gateway fe80::1
virt-뭐라고:
root@wopr:~# virt-what
kvm
[2016-05-14 15:34 편집]net.ipv6.conf.default.autoconf
1로 설정된 것을 놓친 것 같습니다. 이제 부팅 시 이를 억제하기 위해 /etc/sysctl.d에 파일을 추가했습니다.
root@wopr:~# cat /etc/sysctl.d/ipv6.conf
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.accept_ra=0
net.ipv6.conf.eth0.autoconf=0
답변1
net.ipv6.conf.default.autoconf가 1로 설정된 것을 놓친 것 같습니다. 부팅 시 이를 억제하기 위해 /etc/sysctl.d에 파일을 추가하면 문제가 해결되었습니다.
root@wopr:~# cat /etc/sysctl.d/ipv6.conf
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.accept_ra=0
net.ipv6.conf.eth0.autoconf=0
이제 부팅 시 만료되지 않는 기본 경로를 얻었습니다. 문제 해결됨. 올바른 방향을 알려주셔서 감사합니다, 샌더님.
답변2
1800초는 라우터 광고의 기본 시간 초과처럼 들립니다.
ipv6 nd ra suppress
내 첫 번째 추측은 인터페이스에 구성된 네트워크에 Cisco 라우터가 있다는 것입니다 . 이 모드에서는 호스트가 RS로 RA를 요청할 때 라우터가 RA를 보내지만 정기적으로 새로 고치지는 않습니다. 호스트는 인터페이스를 불러올 때 RS를 보냅니다. 이는 부팅 후 기본 경로를 얻는 이유를 설명합니다.
그 설정은 이상하고 쓸모없는 Cisco 설정입니다. 라우터는 요청 시 RA를 정기적으로 보내거나(Cisco의 기본값) 전혀 보내지 않아야 합니다( ipv6 nd ra suppress all
). 중간 설정은 ipv6 nd ra suppress
이와 같은 이상한 동작을 유발하므로 사용해서는 안 됩니다.
답변3
실제로 표시된 답변이 잘못되었습니다. 문제는 docker가 인터페이스에서 전달을 활성화하고 이로 인해 Linux 커널이 해당 특정 인터페이스에서 RA를 무시하게 한다는 것입니다. 다음을 참조하세요.https://www.mattb.net.nz/blog/2011/05/12/linux-ignores-ipv6-router-advertisements-when-forwarding-is-enabled/
따라서 이 경우 올바른 해결책은 accept_ra
다음과 같이 설정하는 것입니다 2
.
# cat /etc/sysctl.d/ipv6.conf
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.eth0.accept_ra=2
경로 검색을 완전히 비활성화하는 대신.