在高可用,多线路及系统维护的特殊情况下,我们通常会通过”ip addr ” 这一命令来添加一个隐形IP在相应的设备上,但是当我们在一个设备上添加多个ip的时候,删除某个IP的时候尤其要注意,下面通过几个实例来说明,如下:

root@localhost ~]# ip addr add 10.1.1.230/24 dev eth0
[root@localhost ~]# ip addr add 10.1.1.231/24 dev eth0
[root@localhost ~]# ip addr show
1: lo: mtu 16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ffinet 172.16.0.230/24 brd 172.16.0.255 scope global eth0inet 10.1.1.230/24 scope global eth0inet 10.1.1.231/24 scope global secondary eth0inet6 fe80::219:b9ff:feef:448b/64 scope linkvalid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc noop qlen 1000link/ether 00:19:b9:ef:44:8d brd ff:ff:ff:ff:ff:ff
4: sit0: mtu 1480 qdisc nooplink/sit 0.0.0.0 brd 0.0.0.0
[root@localhost ~]#

当删除10.1.1.230时,10.1.1.231 同时被删除,如下

[root@localhost ~]# ip addr del 10.1.1.230/24 dev eth0
[root@localhost ~]# ip addr show
1: lo: mtu 16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ffinet 172.16.0.230/24 brd 172.16.0.255 scope global eth0inet6 fe80::219:b9ff:feef:448b/64 scope linkvalid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc noop qlen 1000link/ether 00:19:b9:ef:44:8d brd ff:ff:ff:ff:ff:ff
4: sit0: mtu 1480 qdisc nooplink/sit 0.0.0.0 brd 0.0.0.0
[root@localhost ~]#[root@localhost ~]# ip addr add 10.1.1.230/24 dev eth0
[root@localhost ~]# ip addr add 10.1.1.231/24 dev eth0
[root@localhost ~]# ip addr show
1: lo: mtu 16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ffinet 172.16.0.230/24 brd 172.16.0.255 scope global eth0inet 10.1.1.230/24 scope global eth0inet 10.1.1.231/24 scope global secondary eth0inet6 fe80::219:b9ff:feef:448b/64 scope linkvalid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc noop qlen 1000link/ether 00:19:b9:ef:44:8d brd ff:ff:ff:ff:ff:ff
4: sit0: mtu 1480 qdisc nooplink/sit 0.0.0.0 brd 0.0.0.0

当删除 10.1.1.231时,10.1.1.230 还在

[root@localhost ~]# ip addr del 10.1.1.231/24 dev eth0
[root@localhost ~]# ip addr show
1: lo: mtu 16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ffinet 172.16.0.230/24 brd 172.16.0.255 scope global eth0inet 10.1.1.230/24 scope global eth0inet6 fe80::219:b9ff:feef:448b/64 scope linkvalid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc noop qlen 1000link/ether 00:19:b9:ef:44:8d brd ff:ff:ff:ff:ff:ff
4: sit0: mtu 1480 qdisc nooplink/sit 0.0.0.0 brd 0.0.0.0
[root@localhost ~]#

通过上面我们可以发现,如果删除的时候不小心仔细,可能会酿成悲剧,造成损失。那到底这一现象是怎么产生的呢?

原因是,在linux中只要在一个网卡上配置的ip是同一个网段的,那么它有Primary IP和Secondary address的区分,反之只要不是同一个网段的ip那么都是Primary IP;primary 和secondary 的关系就是一条链上的吊链结构中上面的那条主链中的IP就是Primary IP,Secondary address是主链结点的子链结点中的IP,一 旦主链上一个节点被删除了,那么它的子链也将不复存在,随之被删除.

要解决这疑问,可以通过调整一个参数来实现,当一个primary地址被删除时,如果它有secondary地址的话,那么它的第一个secondary地址(长子)继承被删除的primary地址的位置成为primary地址,这样就显得很合理了,要不然在删除 primary地址的时候,如果有程序用secondary地址,那么要么延迟删除,要么程序崩溃;起做法如下:

通过/proc可以配置一个选项,在当前Primary地址被删除时可以将Secondary地址提升为Primary地址,具体命令为 :

/sbin/sysctl net.ipv4.conf.eth0.promote_secondaries=1

设置重启后仍然生效的方法:

echo "net.ipv4.conf.eth0.promote_secondaries=1" >>/etc/sysctl.conf

请看下列实例,删除了先前的 scope global 10.1.1.230,inet 10.1.1.232/24 scope global 被提升了

[root@localhost ~]# ip addr del 10.1.1.230/24 dev eth0
[root@localhost ~]# ip addr show
1: lo: mtu 16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ffinet 172.16.0.230/24 brd 172.16.0.255 scope global eth0inet 10.1.1.232/24 scope global eth0inet6 fe80::219:b9ff:feef:448b/64 scope linkvalid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc noop qlen 1000link/ether 00:19:b9:ef:44:8d brd ff:ff:ff:ff:ff:ff
4: sit0: mtu 1480 qdisc nooplink/sit 0.0.0.0 brd 0.0.0.0

ip addr del 操作ip时的注意事项相关推荐

  1. ip addr 相关操作

    1.添加ip: ip addr add 1.1.1.100/255.255.255.0 dev eth0 2.删除ip: ip addr del 1.1.1.100/255.255.255.0 dev ...

  2. linux ip addr命令,linux – 理解“ip addr change”和“ip addr replace”命令

    (我意识到这是一个古老的问题,但谷歌把我带到了这里,因为我试图找出确切的变化和替换以及它们如何不同). 我相信替换和更改都用于修改现有地址.考虑: ip addr add 192.168.1.10/3 ...

  3. centos7 ip addr不显示ip地址解决参考

    有时候我们新建得虚拟机,执行命令ip addr无法显示ip地址,可以尝试下面得方法解决. 第一步:进入下面目录 cd /etc/sysconfig/network-scripts/ 第二部:修改对应文 ...

  4. Centos7系或中标麒麟ifconfig/ip addr无法显示ip地址的详细解决方法

    1. 先说一下自己的基本情况 我的这个系统是中标麒麟系统,从使用命令上看应该和centos7系列差不多 出现的现象如下所示: 我本机的网络配置文件为ifcfg-ens33(不同的机器可能不同名),修改 ...

  5. 虚拟机ifconfig或ip addr不显示ip地址

    虚拟机ifconfig或ip addr不显示ip地址 报错图片: 一直查不到ip地址,有重新启动很多次 解决方法 (1) 命令查看配置文件: vi /etc/sysconfig/network-scr ...

  6. ip addr add linux,ip addr add 127.0.0.1/8 dev lo brd + 是什么意思?

    broadcast ADDRESS ----协议广播地址,可以简写成brd,此外可以简单的在后面加上"+"表示广播地址由协议地址加主机位全置1组成,"-"则表示 ...

  7. CentOS7中命令 ip addr 不显示IP地址的解决办法之一

    文章目录 问题重现 解决办法 进入目录`etc/sysconfig/network-scripts` 编辑文件`ifcfg-ens33` 重启网络服务 问题重现 当我们使用命令ip addr时,看不到 ...

  8. 虚拟机Centos 7 使用命令 ip addr 不显示IP地址

    ip addr不显示地址 (如果是在虚拟机运行的,首先考虑VMWare NaT Service和VMWare DHCP Service) 记住这个ens33 这个就是一会修改的文件后缀(不同主机的文件 ...

  9. docker 容器中 ip addr 出现 bash: ip: commandnot found

    1.在docker中使用docker exec -it 容器 /bin/bash 进入容器时 [root@linux-local /]# docker exec -it nginx2 /bin/bas ...

最新文章

  1. Microsoft Visual Studio 2012 添加实体数据模型
  2. js返回顶部和始终保持底部
  3. 创建查看修改数据库及数据表
  4. 醍醐灌顶 | 我们谈论的Exactly once到底是什么?
  5. cmd对应linux sleep命令,linux sleep命令参数及用法详解(linux休眠延迟执行命令)
  6. oracle上浮下浮分析函数_Oracle分析函数简析
  7. 易语言html实现报表打印,易语言报表统计功能例程可打印
  8. CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换
  9. Fliqlo:一款精致高逼格的翻页时钟屏保软件
  10. 使用kubeadm安装kuberneters
  11. 行人重识别论文阅读6-低分辨率的行人重识别研究
  12. FPGA驱动mipi 光固化 4K屏
  13. 在Linux7关机命令,linux关机命令 【使用指南】
  14. 执行SQL语句的时候唯一约束字段异常Duplicate entry '33382-1-0' for key xxx
  15. 小程序配置域名访问出现ios可以正常访问但是android无法正常访问的问题排查
  16. 软件行业中的鱼骨图运用
  17. 2019年余姚市小学生程序设计竞赛复赛 字母表
  18. IBM公司沃森系统测评
  19. 魔域mysql_魔域单机版安装教程
  20. 硬盘零磁道损坏的修复方法

热门文章

  1. 金融危机怎么爆发?如何化解危机?《行动的勇气》书籍推荐!
  2. EXCEL 2007 隔行与隔列求和
  3. 观察者模式设计qq邮箱日历提醒 -- qq终端,qq邮箱终端,微信终端提醒
  4. IDEA注释标准(高大上)
  5. 读书笔记 - 《秦殇》
  6. python爬虫系列(2)—— requests和BeautifulSoup
  7. 模糊的照片可以变清晰吗?
  8. Python内存管理及释放
  9. 孔雀开屏时露出了最丑的屁股
  10. 2018全国计算机二级c语言,2018年全国计算机二级C语言