데비안 / IPv6 : 기본 경로가 1800 초 후에 만료되어 연결이 끊어짐


10

vServer에서 Debian 8을 실행하고 있습니다. 도커를 설치하고 IPv6을 활성화 한 후 이상한 점을 발견했습니다. 도 커가 이것과 관련이 있는지 모르겠습니다. 설치 후이 문제를 발견 한 것입니다.

내 기본 경로는 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 초 후에 rout이 만료되도록 구성된 이유는 무엇입니까? 어디서 구성 할 수 있습니까?

[편집 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

미덕-뭐라고 :

root@wopr:~# virt-what
kvm

[edit 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

도커를 제외하고이 컴퓨터에서 실행중인 다른 응용 프로그램은 많지 않습니다.
— lajuette

답변:


8

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

이제 부팅시 만료되지 않는 기본 경로를 얻습니다. 문제 해결됨. 올바른 방향으로 나를 가리켜 주셔서 감사합니다, 샌더


마침내 나는 해결책을 얻었다!
— schnawel007

4

1800 초는 라우터 알림의 기본 시간 초과처럼 들립니다.

내 첫 번째 추측은 ipv6 nd ra suppress인터페이스에 구성된 네트워크에 Cisco 라우터가 있다는 것입니다 . 이 모드에서 라우터는 호스트가 RS를 요구할 때 RA를 전송하지만 정기적으로 새로 고치지는 않습니다. 호스트는 인터페이스를 표시 할 때 RS를 전송하여 부팅 후 기본 경로를 얻는 이유를 설명합니다.

그 설정은 이상한 쓸모없는 시스코 설정입니다. 라우터는 요청이있을 때 RA를 정기적으로 보내거나 (Cisco의 기본값) 전혀 보내지 않아야합니다 ( ipv6 nd ra suppress all). 반쯤 설정 ipv6 nd ra suppress하면 이와 같은 이상한 동작이 발생하므로 사용해서는 안됩니다.


root @ wopr : ~ # cat / proc / sys / net / ipv6 / conf / eth0 / accept_ra는 0을 산출합니다. eth0이 RA를 무시한다는 의미입니까?
— lajuette

1
예,이 경우 RA를 사용하지 않습니다. accept_ra=0설정 하기 전에 이미 수락했을 수 있습니다 .
— 샌더 스테판

0

실제로 표시된 답변이 잘못되었습니다. 문제는 docker가 인터페이스에서 전달을 가능하게하고 Linux 커널이 해당 특정 인터페이스의 RA를 무시하게 만듭니다. https://www.mattb.net.nz/blog/2011/05/12/linux-ignores 전달할 때 -ipv6-router-advertisements /

따라서이 경우 올바른 해결책은 다음으로 설정 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

경로 탐색을 완전히 비활성화하는 대신.


도커를 실행하는 호스트는 기본 경로를 얻지 못합니다.도 커가 아닌 다른 호스트는 기본 경로를 얻습니다.
— Lenne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.