CentOS, ifdown na interface virtual remove endereços IPv6 na interface física

2

No CentOS 6.4, ao usar 'ifdown' em uma interface virtual, os endereços IPv6 configurados na interface física também são removidos. Espero que apenas a interface virtual seja alterada.

Como posso evitar que o 'ifdown' em uma interface virtual afete os endereços IPv6 na interface física?

Executamos servidores CentOS 6.4 com uma placa de rede física e várias interfaces virtuais. Além disso, temos vários endereços IPv6 vinculados à interface física.

Por exemplo, / etc / sysconfig / network-scripts / ifcfg-eth0 é:

DEVICE=eth0
IPV6_DEFAULTGW="AAAA:BBBB:CCCC:D::1"
IPV6INIT="yes"
USERCTL="no"
DNS2="8.8.4.4"
DNS1="8.8.8.8"
IPADDR="xx.x.xxx.201"
PRIMARY="yes"
NETMASK="255.255.255.192"
BOOTPROTO="static"
IPV6ADDR_SECONDARIES="AAAA:BBBB:CCCC:D::202 AAAA:BBBB:CCCC:D::203"
IPV6ADDR="AAAA:BBBB:CCCC:D::201"
ONBOOT="yes"

E a saída do ifconfig:

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr D4:AE:52:B4:AF:8C  
          inet addr:xx.x.xxx.201  Bcast:xx.x.xxx.255  Mask:255.255.255.192
          inet6 addr: AAAA:BBBB:CCCC:D::201/64 Scope:Global
          inet6 addr: AAAA:BBBB:CCCC:D::202/64 Scope:Global
          inet6 addr: AAAA:BBBB:CCCC:D::203/64 Scope:Global
          inet6 addr: fe80::d6ae:52ff:feb4:af8c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:607986 errors:0 dropped:0 overruns:0 frame:0
          TX packets:244764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:99225727 (94.6 MiB)  TX bytes:40528574 (38.6 MiB)
          Interrupt:36 Memory:da000000-da012800

Existem também várias interfaces virtuais, como ifcfg-eth0: 29 são definidas para endereços IPv4 extras:

DEVICE=eth0:29
USERCTL="no"
IPADDR="xx.x.xxx.202"
NETMASK="255.255.255.192"
BOOTPROTO="static"
ONBOOT="yes"

E saída ifconfig:

# ifconfig eth0:29
eth0:29   Link encap:Ethernet  HWaddr D4:AE:52:B4:AF:8C  
          inet addr:xx.x.xxx.202  Bcast:xx.x.xxx.255  Mask:255.255.255.192
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:36 Memory:da000000-da012800 

A configuração funciona bem quando todas as interfaces estão ativas. No entanto, quando eu derrubar uma das interfaces virtuais:

/sbin/ifdown eth0:29

As secções de IPv6 na eth0 são removidas!

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr D4:AE:52:B4:AF:8C  
          inet addr:xx.x.xxx.201  Bcast:xx.x.xxx.255  Mask:255.255.255.192
          inet6 addr: fe80::d6ae:52ff:feb4:af8c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:617867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:249076 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:100506865 (95.8 MiB)  TX bytes:41031979 (39.1 MiB)
          Interrupt:36 Memory:da000000-da012800 

Após algumas investigações, vejo que em / etc / sysconfig / network-scripts / ifdown-ipv6, o nome do dispositivo fornecido (eth0: 29) é encurtado (para eth0) e, no final do script "ipv6_cleanup_device" é chamado o qual remove todos os endereços ipv6 da interface física, ao invés do virtual (que não possui nenhum).

Como posso impedir que 'ifdown eth0: 29' modifique os endereços IPv6 na interface física?

    
por stephen.z 30.04.2013 / 19:37

1 resposta

1

Não use essas interfaces antigas de alias obsoletas. Em vez disso, adicione todos os endereços IP a eth0 .

Edite /etc/sysconfig/network-scripts/ifcfg-eth0 e adicione os endereços:

IPADDR2="xx.x.xxx.202"
NETMASK2="255.255.255.192"
IPADDR3="..."

e assim por diante.

    
por 01.05.2013 / 04:55