Linux单网卡多IP环境下的一个问题讨论

开源中国首席鉴定大湿 发布于 2013/12/12 10:09
阅读 558
收藏 0

首先来说明一下环境:
机器4张网卡:em1\em2\em3\em4
绑定聚合为:bond0
配置IP:
bond0:13   192.168.212.1
bond0:50   192.168.212.254
bond0:51   192.168.212.253

然后是操作步骤:(通过ifup、ifdown命令控制,IP写在配置文件中,如:ifcfg-bond0:13)
1、顺序启动3张网卡:13、50、51
2、停止网卡bond0:13

结果:
13、50、51上面的IP全部消失

结果分析:
由于3IP属于同一子网
并且是同一张网卡上面的IP(路由表设备只会绑定在物理、逻辑设备上,bond0:13只是别名,不属于逻辑、物理设备)
启动13后,路由表将192.168.212.0的子网规则绑定在了bond0设备
之后再启动50、51,都不会新增、修改192.168.212.0的规则
这样就导致,停止13之后,路由表规则被删除,导致50和51上面的IP也被删除
所以只要是最先启动的别名网卡被停止,就会引起其他同子网的IP被删除

讨论:
有什么办法在这种环境下,不会让其他IP被删除

PS:
请不要回答类似:为什么不用一个IP?他们不都是同一个子网的吗?
因为这系统就是这么设计的,不在本问题的讨论范围

加载中
0
月影又无痕
月影又无痕

ifdown, ifup 这些命令均是用于停止物理网卡的,所以上面的ip全部失效。

你的目的是为了停用某个ip,而不是为了停用某个接口,可使用以下命令绑定、删除ip

ip addr add 192.168.0.2/24 dev bond0

ip addr del 192.168.0.2/24 dev bond0

开源中国首席鉴定大湿
开源中国首席鉴定大湿
这是一个解决办法,但是没法用到我们系统上面。 我们系统必须要做到持久化,所以没法通过命令去配置他。 如果通过命令配置也做持久化,那么持久化的操作会很复杂。 现在只能避免这种用法了
返回顶部
顶部