Túnel IPIP para balanceamento de carga no Ubuntu

1

Eu tenho uma configuração de HA do ldirectord / heartbeat entre um balanceador de carga do gentoo e servidores reais do gentoo. Devido às limitações do meu host, tenho o balanceamento de carga funcionando via túnel ipip.

Eu tenho as seguintes configurações no servidor real do gentoo:

(anexado ao final de ...) /etc/conf.d/net

iptunnel_tunl0="mode ipip"

config_tunl0=( 
        "xxx.xxx.xxx.xxx netmask 255.255.255.255"
        "yyy.yyy.yyy.yyy netmask 255.255.255.255"
        "zzz.zzz.zzz.zzz netmask 255.255.255.255"
)

Esses xxx / yyy / zzz ips são meus endereços IP compartilhados.

'ip address show' gera isso:

4: tunl0: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN 
    link/ipip 0.0.0.0 brd 0.0.0.0
    inet xxx.xxx.xxx.xxx/32 scope global tunl0
    inet yyy.yyy.yyy.yyy/32 scope global tunl0:1
    inet zzz.zzz.zzz.zzz/32 scope global tunl0:2

Tudo isso funciona bem.

Agora estou tentando configurar o encapsulamento ipip para um servidor real do Ubuntu.

Eu posso fazer a interface aparecer usando:

ip tunnel add tunl0 mode ipip

e, em seguida, adicione endereços IP, anexando-o a / etc / network / interfaces

auto tunl0
  iface tunl0 inet static
  address xxx.xxx.xxx.xxx
  netmask 255.255.255.255

Então meu comando "ip addr show" mostra o mesmo que na máquina gentoo

O problema é que o ip tunnel add .. não persiste durante as reinicializações, então da próxima vez que a rede tentar carregar, nós obteremos isso

# /etc/init.d/networking restart
* Reconfiguring network interfaces...
ssh stop/waiting
ssh start/running, process 2442
ssh stop/waiting
ssh start/running, process 2482
SIOCSIFADDR: No such device
tunl0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
tunl0: ERROR while getting interface flags: No such device
Failed to bring up tunl0.
   ...done.

Como posso fazer a interface de túnel persistir da mesma forma que no Gentoo?

    
por davidsmalley 15.07.2010 / 16:21

2 respostas

2

Existem duas maneiras de lidar com isso. Se tudo que você precisa é o único comando simples, a maneira mais fácil é adicionar linhas para pre-up e pre-down à sua entrada em / etc / network / interfaces:

auto tunl0

iface tunl0 inet static
  pre-up ip tunnel add tunl0 mode ipip
  post-down ip tunnel del tunl0 mode ipip
  address xxx.xxx.xxx.xxx
  netmask 255.255.255.255

Como alternativa, se você quiser fazer algo mais complicado, adicione scripts a /etc/network/if-pre-up.d/ e /etc/network/if-post-down.d/ que são executados antes da inicialização e, após o encerramento, da rede, respectivamente.

    
por 15.07.2010 / 21:51
2

As coisas percorreram um longo caminho em 5 anos. Linhas pertencem a (/ etc / network / interfaces)

Veja man 5 intefaces para mais detalhes.

# Choose your own name for your tunnel interface (example uses 'mytun')
auto mytun
iface mytun inet tunnel
  mode ipip

  # Best I can tell, value of 'netmask' does nothing but is required:
  netmask 255.255.255.255

  # Local address (inside tunnel) (required)
  address 192.168.1.1 

  # dstaddr = remote address (inside tunnel)
  dstaddr 192.168.2.2

  # local = address of tunnel interface
  local x.x.x.x

  # endpoint = destination ip applied to ipip encapsulated packets (required)
  endpoint y.y.y.y

  # You may want to also consider using these two options
  # mtu 1480
  # ttl 63
    
por 28.02.2015 / 06:30