簡體   English   中英

使用netlink API從linux接口刪除ipv4地址屬於同一子網

[英]deleting ipv4 address belongs to the same subnet from linux interface using netlink API

我正在使用netlink API rtnl_addr_delete刪除Linux接口上配置的ipv4地址。 屬於同一子網的兩個IP被配置到一個接口。

當我刪除第一個配置的IP時,兩個IP都將被刪除,這是意外的。 但是反之亦然,當我刪除第二個配置的IP時,第一個不會被刪除,這是正常的。

假設如果2個I​​P屬於不同的子網,則不會出現問題。 也就是說,如果我先刪除,則只有第一個刪除。

知道這是rtnl_addr_delete行為方式,還是可以通過任何解決方法解決此問題?

當您從一個子網中刪除第一個添加的IP地址(“主”地址)時,將刪除所有子網。 在某些發行版中,這是默認的內核行為。 要更改此設置,必須在使用的接口上設置sysctl:

$ sysctl -a | grep promote_secondaries

假設您要在eth0上更改它:

$ sudo sysctl -w net.ipv4.conf.eth0.promote_secondaries=1

使用promote_secondaries不會刪除子網的其余部分,而是將其中一個地址提升為新的主要子網。

文件: https//www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM