IP 주소 변경 명령의 정확한 동작은 무엇입니까?

IP 주소 변경 명령의 정확한 동작은 무엇입니까?

저는 IPv6 및 주소 수명주기를 가지고 놀았습니다. valid_lft이 속성을 올바르게 사용하면 v6 주소가 자동으로 사라지는 것으로 나타났습니다 . 주소의 수명주기를 연장하기 위해

ip addr change 1:2:3:4::1/112 dev eth0 valid_lft 86000

ip addr change내가 액세스할 수 있는 매뉴얼 페이지(Debian, Ubuntu 및온라인) 그리고 거기에도 없어공식 문서. 나는기사2009년에 ipv6-ops 메일링 리스트로 전송된 이메일에 대한 참조입니다.

내가 판단할 수 있는 바에 따르면, 주소가 존재하지 않으면 사용되는 경우 주소가 추가되므로 항상 ip addr change대신 사용할 수 있을 것 같습니다 .ip addr addipip addr add

이것이 맞습니까? 즉, ip addr change그것이 정확히 무엇인지, 그리고 와 어떻게 다른지 설명할 수 있는 사람이 있습니까 ip addr add?

답변1

어떤 작업이 수행되는지 확실하지 않고 문서에 나와 있지 않은 경우 소스를 찾을 수 있습니다.1588라인:

if (matches(*argv, "change") == 0 ||
    strcmp(*argv, "chg") == 0)
    return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);

그렇다면 그것은 무엇을 하는가? ipaddr_modify()함수 실행 결과 반환라인 1379 정의매개변수 RTM_NEWADDRNLM_F_REPLACE.

내가 판단할 수 있는 바에 따르면, 주소가 존재하지 않으면 사용되는 경우 주소가 추가되므로 항상 ip addr change대신 사용할 수 있을 것 같습니다 .ip addr addipip addr add

이것이 맞습니까? 즉, ip addr change그것이 정확히 무엇인지, 그리고 와 어떻게 다른지 설명할 수 있는 사람이 있습니까 ip addr add?

아니요, add주어진 인수가 생성되거나 실행되며(주어진 경우) change인수를 찾아 교체합니다.

그런데 매개변수 혼합을 사용하기 때문에 와 매개변수 사이의 절충안 replace인 것 같습니다 .addchange

관련 정보