カプセル化転送を使用したネットワーク・セグメント間のトラフィックの転送

カプセル化転送は、バックエンド・サーバーが同じネットワーク・セグメントにない場合、または、仮想化テクノロジーを使用しており、他の方法では転送できないパケットを転送する必要がある場合に使用します。

このタスクについて

標準的な構成で、 Load Balancer はパケット P を受信し、それをパケット P' として転送します。この場合には、 存続時間 (TTL) の減分のみが行われます。 カプセル化を使用可能にすると、Load Balancer はパケット P を受信し、それをパケット E(P') として 転送します。この場合には、カプセル化されたパケット E に P' が含まれています。外部パケット E には 固有の IP ヘッダーがあります。この IP ヘッダーによって、Load Balancer は、 ルーターに渡って、また他の方法ではパケットを転送できないタイプの仮想化テクノロジー全体に渡って パケットを転送することができます。

カプセル化転送の特性は、次のとおりです。
  • MAC 転送と同様に実装されます。
    • サーバーからクライアントへのパケットは、Load Balancer を経由しません。
    • ループバック・デバイスをバックエンド・サーバーのクラスター・アドレスに別名割り当てします。
  • バックエンド・サーバーでのみ、IPIP または GRE トンネルを構成する必要があります。
  • トンネルの構成時に経路を追加する必要はありません。
Load Balancer は相手先の終端ではトンネルとなります。
カプセル化転送

さらに、この機能により、同じホスト上の Solaris ゾーンや AIX ワークロード・パーティション にパケットを転送できます。これは、Load Balancer が、既存のスタック構成を完全に迂回せずに、 使用できるためです。

手順

  1. Load Balancer マシンで、カプセル化を使用可能に設定してサーバーを追加します。 パケットの転送にこのサーバーが選択されると、パケットがカプセル化されます。 以下のように、dscontrol server コマンドを使用します。
    dscontrol server set encap_source_IP encapforward [yes/no] encaptype [ipip/gre] encapcond [auto/always]
    例えば、プロンプトで次のように入力できます。
    dscontrol server set 1.2.3.4@80@1.2.3.5 encapforward yes encaptype ipip encapcond always
  2. ネットワーク・トラフィック用に、バックエンド・サーバーで IPIP または GRE トンネルを構成します。 例えば、次のように入力できます。
    • [AIX]
      ifconfig gre0 tunnel 9.184.119.242  9.184.118.200 # The IP address of the server and Load Balancer
      ifconfig gre0  inet 9.184.114.25      # Some IP address on this subnet
      ### loopback...
      ifconfig lo0 alias 9.184.114.24 netmask 255.255.255.255
    • [Linux] GRE トンネルをセットアップするには、 以下のコマンドを使用します。
      sysctl -w net.ipv4.conf.all.arp_ignore=3 net.ipv4.conf.all.arp_announce=2
      
      
      # for gre
      modprobe ipgre
      ip link set gre0 up
      ip addr add <cluster_ip> scope host dev gre0
      sysctl -w net.ipv4.conf.all.rp_filter=0sysctl -w net.ipv4.conf.gre0.rp_filter=0
      IPIP トンネルをセットアップするには、 以下のコマンドを使用します。
      sysctl -w net.ipv4.conf.all.arp_ignore=3 net.ipv4.conf.all.arp_announce=2
      
      modprobe ipip
      ip link set tunl0 up
      ip addr add <cluster_ip> scope host dev tunl0
      sysctl -w net.ipv4.conf.all.rp_filter=0sysctl -w net.ipv4.conf.tunl0.rp_filter=0
    • [Solaris]
      /sbin/ifconfig ip.tun0 plumb 9.184.114.25 netmask 255.255.255.255 up  #  Some free IP address on this subnet
      /sbin/ifconfig ip.tun0 9.184.114.25  9.184.114.222 up   #  Some free IP address on this subnet
      /sbin/ifconfig ip.tun0 up /sbin/ifconfig ip.tun0 tsrc 9.184.112.183 tdst 9.184.118.203  # The IP address of this machine and that of the server.
      ### loopback...
      ifconfig lo0:1 plumb 9.184.114.24 netmask 255.0.0.0 up
      Avoid trouble Avoid trouble: カプセル化転送が正しく機能するようにするためには、バックエンド・サーバーに対するリバース・パス・フィルターを使用不可にする必要がある場合があります。Linux システムの場合、以下のコマンドを使用して、リバース・パス・フィルターを使用不可にします。
      sysctl -w net.ipv4.conf.all.rp_filter=0
      gotcha
    • [Windows] Windows オペレーティング・システムでは、トンネリングはサポートされていません。
Task topic    

Terms and conditions for information centers | Feedback

Last updated: May 28, 2013 08:30 AM EDT
File name: tprf_encapsulation.html