[英]How to get ipv4 address of an interface using libnl3 (netlink version 3) on linux?
[英]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個IP屬於不同的子網,則不會出現問題。 也就是說,如果我先刪除,則只有第一個刪除。
知道這是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.