Privacy Extension
( net.ipv6.conf.eth0.use_tempaddr=2
in /etc/sysctl.conf
) 을 활성화 하면 IPv6
고정된 기간 동안 새 IP 주소가 제공됩니다. 요청 시 새 IPv6를 얻을 수 있는 방법이 있습니까? 즉, 필요할 때 새 IPv6을 새로 고치시겠습니까?
답변1
"활성" 임시 주소에는 속성이 있습니다.일시적인그리고동적하지만더 이상 사용되지 않음. 더 이상 사용되지 않을 예정인 경우(예:Preferred_lft값이 0으로 떨어지면) 커널이 인터페이스에 새 임시 주소를 추가합니다.
인터페이스의 현재 임시 주소는 여기에 표시된 결과의 일부입니다.
ip -6 address show temporary dynamic
그러나 여전히 유효하지만 더 이상 사용되지 않는 이전 주소의 일부는 아닙니다.
ip -6 address show temporary deprecated
preferred_lft
새 임시 주소 생성을 트리거하려면 해당 속성을 0에 가깝게 낮추기만 하면 됩니다 . 시행착오를 통해 preferred_lft
3 미만으로 설정하면 작동하지 않습니다. 생성을 트리거하기 전에 카운트다운이 0에 도달하면 더 이상 작동하지 않습니다(그러나 preferred_lft
나중에 트리거를 얻기 위해 >= 3으로 다시 설정할 수 있음). 이 특이성에 대해 어떤 손잡이가 있는지 모르겠습니다. 5초는 안전한 값으로 보입니다. 즉, 새 주소가 약 2~3초 후에 표시된다는 의미입니다.
인터페이스에서 현재 발견된 값이 2001:db8::1/64라고 가정해 보겠습니다.eth0:
ip address change 2001:db8::1/64 dev eth0 preferred_lft 5
이를 조작하면 제거됩니다.동적이는 자연스럽게 발생하지 않았으며 나중에 예상보다 빨리 추가 임시 주소 생성을 유발할 수 있습니다.
의 ip
JSON 출력과jq
일부 스크립팅 가능성이 가능합니다. 모든 후보 임시 주소를 한 번에 변경하기 위해 쉘에 파이프할 준비가 된 명령을 출력하기 위해 가져온 것은 다음과 같습니다. 일반적으로 둘 이상의 임시 주소를 얻으려면 멀티홈 시스템이 필요하지만 이를 조작하면 여러 주소가 생성될 수 있습니다. 나중에도). 이는일시적인그리고동적주소가 아닙니다더 이상 사용되지 않음후보로 간주하려면 다음을 수행하십시오.
ip -6 -p -j address show temporary dynamic | jq -j '.[] |
. as $i |
.addr_info[] as $a |
if $a.local == null // $a.deprecated == true then
empty
else
"ip -6 address change ",
$a.local, "/", $a.prefixlen,
" dev ", $i.ifname,
" preferred_lft 5\n"
end'
그러면 다시 출력됩니다.
ip -6 address change 2001:db8::1/64 dev eth0 preferred_lft 5
valid_lft
현재 더 이상 사용되지 않는 주소가 완전히 더 빨리 사라지도록 축소하는 것도 고려할 수 있습니다 .