Туннель IPIP для балансировки нагрузки в Ubuntu

У меня есть настройка HA ldirectord / heartbeat между балансировщиком нагрузки gentoo и реальными серверами gentoo. Из-за ограничений моего хоста у меня балансировка нагрузки работает через туннель ipip.

У меня есть следующие настройки на реальном сервере Gentoo:

(добавляется в конец...) /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"
)

Эти xxx/yyy/zzz ips - это мои общие ip-адреса.

"IP-адрес шоу" дает это:

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

Это все отлично работает.

Я сейчас пытаюсь настроить ipip туннелирование на настоящий сервер Ubuntu.

Я могу заставить интерфейс появляться, используя:

ip tunnel add tunl0 mode ipip

а затем добавьте к нему IP-адреса, добавив его в / etc / network / interfaces

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

Тогда моя команда "ip addr show" показывает то же самое, что и на машине gentoo

Проблема в том, что ip tunnel add.. не сохраняется при перезагрузках, поэтому при следующей загрузке сети мы получим это

# /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.

Как сделать так, чтобы туннельный интерфейс сохранялся так же, как в Gentoo?

2 ответа

Решение

Есть два способа справиться с этим. Если все, что вам нужно, это одна простая команда, самый простой способ - это добавить строки для pre-up а также pre-down к вашей записи в /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

Кроме того, если вы хотите сделать что-то более сложное, вы можете добавить сценарии в /etc/network/if-pre-up.d/ а также /etc/network/if-post-down.d/ которые запускаются до запуска и после выключения сети соответственно.

Вещи прошли долгий путь за 5 лет. Строки принадлежат ( /etc/network/interfaces)

Увидеть man 5 intefaces Больше подробностей.

# 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
Другие вопросы по тегам