Maneira apropriada de definir o endereço IPv6 de saída padrão no Linux em ifcfg-eth0

0

Qual opção de configuração do onboot definirá o endereço IPv6 de saída padrão a ser usado quando uma máquina Linux iniciar uma conexão IPv6 de saída? IPV6ADDR= não funciona para especificar o endereço IPv6 de saída padrão.

Eu tenho uma máquina com vários endereços de alias IPv6 na eth0. Eu especifico ifcfg-eth0 para definir o IPV6ADDR_SECONDARIES= para uma longa lista de endereços IPv6.

O Linux parece escolher aleatoriamente um desses endereços IPv6 para usar como o IPv6 de saída padrão a ser usado. Nenhuma rima ou razão em que usa, e é irritante. Alguns endereços IPv6 são apenas para serviços de entrada e não quero expor esses endereços a outras pessoas ao iniciar conexões de saída.

Eu posso dizer manualmente ao Linux para parar de usar um endereço IPv6 de saída:

ip -6 addr show | grep global
sudo ip addr change 2111:aaaa:bbbb:cccc:1:2:3:4 dev eth0 preferred_lft 0
ip -6 addr show | grep global

Em seguida, ele deixa de usar 2111:aaaa:bbbb:cccc:1:2:3:4 como o IPv6 de saída padrão e começa a usar o próximo na sua lista de acordo com ip -6 addr show | grep global . Esta é uma solução manual até encontrar algum IPV6_OUTBOUND= ou qualquer parâmetro para especificar o endereço IPv6 de saída principal.

Em comparação, o IPv4 parece usar seu IPADDR= como o IP de saída padrão. A versão IPv6 desse parâmetro, IPV6ADDR= , não define o endereço IPv6 de saída padrão - ele geralmente usa um na lista IPV6ADDR_SECONDARIES= .

Estou usando o Centos 6.

    
por Crash Override 28.09.2016 / 23:21

2 respostas

1

Isso está acontecendo porque todos os seus endereços IPv6 são considerados iguais na seleção do endereço de origem . Quando nenhum endereço é preferido em detrimento de outro, o Linux escolhe um aleatoriamente.

Isso é um truque, e um pouco abusa da definição de um endereço IPv6 , mas deve ser feito :

Defina o endereço de saída desejado como o endereço residencial. Isso faz com que o endereço designado ganhe quando as regras de seleção de origem são aplicadas.

ip addr change 2001:db8:c0:ffee::4 home dev enp4s0f0

No momento, isso não pode ser configurado nos scripts de rede da Red Hat; você precisará adicioná-lo em um script local como /sbin/ifup-local .

E note que você provavelmente não pode fazer isso no CentOS 6. Você precisará do CentOS 7.

    
por 29.09.2016 / 01:27
1

A maneira de fazer isso é surpreendentemente na tabela de roteamento. Cada rota pode ter uma opção src que define o endereço de origem padrão para essa rota. Dessa forma, você pode definir um endereço de origem padrão diferente, por exemplo, para uso em seu próprio datacenter e para usar a rota padrão.

No CentOS usando os scripts de rede, você pode armazenar uma rota personalizada em /etc/sysconfig/network-scripts/route6-<interface> . Sua sintaxe é igual a ip route add , com esses três tokens omitidos:

default via 2001:db8:c0:ffee:: src 2001:db8::123 dev enp4s0f0 metric 1
    
por 29.09.2016 / 10:15