该命令的确切行为是什么:ip地址更改?


12

我一直在摆弄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 add,因为如果一个地址不存在,ip将添加一个,就好像ip addr add使用了一样。

那是正确的吗,也就是说,任何人都可以解释ip addr change它的确切含义以及与它有何不同ip addr add吗?

Answers:


6

当您不确定某件事情是什么并且文档没有说什么时,您就到达了源代码,即1588行

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

那么,它做什么呢?返回运行带有参数和的第1379行中定义ipaddr_modify()函数的结果。RTM_NEWADDRNLM_F_REPLACE

从我可以确定的玩法来看,我猜想总是可以使用ip addr change代替ip addr add,因为如果一个地址不存在,ip将添加一个,就好像ip addr add使用了一样。

那是正确的吗,也就是说,任何人都可以解释ip addr change它的确切含义以及与它有何不同ip addr add吗?

否,add将创建或执行给定的参数(如果有的话),而change将查找并替换参数。

顺便说一句,这replace似乎是两者之间的折衷addchange因为它使用了各种参数。


这些标志的作用是什么?因为在命令行上它们并没有真正显示。尤其是changeadd尚不存在要更改的地址那样的作品。我认为我不必深入研究内核源代码(因为最终传递这些标志)是为了找出网络管理最流行的命令行工具之一。这不是90年代... :-)但还是谢谢你!
Bananguin 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.