web-dev-qa-db-ja.com

Ubuntuでの負荷分散のためのIPIPトンネル

Gentooロードバランサーとgentoo実サーバーの間にldirectord/heartbeatHAセットアップがあります。ホストの制限により、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/zzzipsは私の共有IPアドレスです。

'ip address show'はこれを生成します:

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

これはすべて正常に機能します。

私は今、Ubuntu実サーバーへのipipトンネリングをセットアップしようとしています。

次を使用してインターフェイスを表示できます。

ip tunnel add tunl0 mode ipip

次に、これを/ etc/network/interfacesに追加して、IPアドレスを追加します。

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

次に、「ipaddrshow」コマンドは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で行ったのと同じ方法でトンネルインターフェイスを永続化するにはどうすればよいですか?

1
davidsmalley

これを処理する方法は2つあります。必要なのが1つの単純なコマンドだけである場合、最も簡単な方法は、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/にそれぞれ追加できます。

3

物事は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
2
Marc Tamsky