Mesma máscara de rede ou / 32 para IP secundário no Linux

3

Parece haver (pelo menos) duas maneiras de adicionar um endereço IP secundário a uma interface no Linux. Por secundário, quero dizer que ele aceitará o tráfego para o endereço IP, e as respostas às conexões feitas com esse IP o usarão como fonte, mas qualquer tráfego que a caixa originar (por exemplo, uma conexão TCP de saída) não usará o secundário. endereço.

Ambas as formas começam com a adição do endereço principal, por exemplo, ip addr add 172.16.8.10/24 dev lan . Então eu posso adicionar o endereço secundário com uma máscara de rede de /24 (correspondente ao primário) ou /32 .

Se eu adicioná-lo com um /24 , ele será sinalizado como secundário, por isso não será usado como a origem dos pacotes de saída, mas isso deixará o risco dos dois endereços serem adicionados na ordem errada por engano. Se eu adicioná-lo com /32 , a ordem errada não pode acontecer, mas ele não é sinalizado como secundário, e eu não tenho certeza quais podem ser os efeitos ruins disso.

Então, estou pensando, qual abordagem é menos provável de quebrar? (Se é importante, o serviço principal nesta máquina é o MySQL, mas também roda o NFSv3. Estou adicionando uma segunda máquina como uma espera morna e espero alternar entre elas alterando qual delas possui o IP secundário.)

    
por derobert 03.01.2011 / 18:20

1 resposta

1

If I add it with a /24, it gets flagged secondary, so will not be used as the source of outgoing packets, but that leaves a risk of the two addresses being added in the wrong order by mistake. If I add it with /32, wrong order can't happen, but it doesn't get flagged as secondary, and I'm not sure what the bad effects of that may be.

Não tenho certeza do que você quer dizer aqui. Suas interfaces de rede são configuradas de maneira determinística quando o sistema é inicializado. Ao configurar corretamente sua rede, você pode decidir qual endereço é atribuído primeiro e qual é atribuído como endereço secundário.

Se você estiver em um sistema RedHat-ish, o arquivo de configuração de rede principal ifcfg-eth0 (por exemplo) será tratado antes de qualquer interface de alias, como ifcfg-eth0:0 . Eu tenho menos certeza do comportamento em sistemas Debian-ish, mas parece que o arquivo /etc/network/interfaces pode ser tratado sequencialmente, então coloque suas definições de alias após o endereço primário e você deve estar tudo pronto.

So, I'm wondering, which approach is least likely to break?

Se os dois endereços estiverem na mesma rede, não sei se algum deles será mais ou menos provável de ser quebrado. Por que vale a pena, geralmente configuro endereços secundários com uma máscara de rede / 32, já que o endereço principal já fornece a rota de rede necessária.

    
por 03.01.2011 / 19:40