Como definir o endereço IP da origem padrão (src) quando você tiver múltiplos IP's em uma interface virtual

6

Como posso dizer à pilha de rede com qual ip a origem (src) deve se comunicar no caso de vários ips em uma interface virtual?

auto eth0 
iface eth0 inet static
            address x.x.x.209
            netmask 255.255.255.0
            network x.x.x.0
            broadcast x.x.x.255
            gateway x.x.x.254

auto eth0:1
iface eth0:1 inet static
            address x.x.x.210
            netmask 255.255.255.0
            network x.x.x.0
            broadcast x.x.x.255
            gateway x.x.x.254

etc.

Parece estar escolhendo o último em / etc / networking / interfaces

~# ip -s route get 173.194.67.113; 
173.194.67.113 via x.x.x.254 dev eth0  src x.x.x.210 
  cache  users 1 used 11 mtu 1500 advmss 1460 hoplimit 64

Mas esse comportamento é imprevisível. Eu tenho cerca de 30 ip's atribuídos por interface, e algumas vezes o ip da origem (scr) muda.

Eu preciso entender como ele escolhe.

Eu tentei definir métrica para padronizar o src, mas não parece suportar interfaces virtuais. NETLINK: Packet too small or truncated!

EDIT: Ubuntu 10,04 64bit

EDIT Seguindo o link do @Cleaner, meu / etc / network / interfaces agora está muito mais limpo. Desculpe por não fornecer mais informações antes, é um ambiente complicado, e tudo que eu realmente queria saber é como o kernel decide o endereço de origem quando você executa uma atualização do apt-get a partir da linha de comando. Toda a carga de coisas banindo, failover etc está funcionando muito bem.

auto eth0
iface eth0 inet static
            address x.x.x.183
            netmask 255.255.255.0
            network x.x.x.0
            broadcast x.x.x.255
            gateway x.x.x.254
up ip addr add x.x.x.209 dev eth0 label eth0:1
up ip addr add x.x.x.210 dev eth0 label eth0:2
up ip addr add x.x.x.211 dev eth0 label eth0:3
up ip addr add x.x.x.212 dev eth0 label eth0:4
up ip addr add x.x.x.213 dev eth0 label eth0:5
up ip addr add x.x.x.214 dev eth0 label eth0:6
up ip addr add x.x.x.215 dev eth0 label eth0:7

IDK se for corrigido. Mas até aí tudo bem. Eu só vou correr       enquanto dorme 5; do ip -s route obtém 173.194.67.113; feito
por algum tempo para ver se eu tenho um ip estável quando se conecta de saída.

Isso está funcionando muito bem! Obrigado a todos que entraram na conversa. Ainda sou curioso a respeito de por que exatamente o meu IP de origem estava mudando, mas eu só gostaria de ter um arquivo de interfaces escrito incorretamente e seguir em frente.

    
por foocorpluser 30.04.2012 / 20:29

1 resposta

2

Na sub-rotina alias, não inclua o gateway. Você também não precisa da linha 'network'.

auto eth0 
iface eth0 inet static
            address x.x.x.209
            netmask 255.255.255.0
            broadcast x.x.x.255
            gateway x.x.x.254

auto eth0:1
iface eth0:1 inet static
            address x.x.x.210
            netmask 255.255.255.0
    
por 30.04.2012 / 22:53

Tags