このトピックでは、Google Cloud Platform を使用して NSX Advanced Load Balancer をプロビジョニングおよび構成するプロセスについて説明します。

Google Cloud のネットワーク、サブネット、インスタンス

ネットワーク リソースは、ネットワーク、ファイアウォール、およびネットワークおよびインスタンスのその他の側面の管理に役立ちます。GCP コンソールの左側のメニューで、ネットワーク リソースを検索します。

Virtual Private Cloud (VPC) ネットワークの作成

VPC ネットワークは、単にネットワークとも呼ばれ、データセンター ネットワークのような物理ネットワークの仮想バージョンです。コンピューティング エンジン仮想マシン インスタンス、Kubernetes エンジン クラスタ、およびプロジェクト内のその他のリソースに接続を提供します。

VPC ネットワークを作成するには

  1. Google Cloud Platform のコンソールに移動します。

  2. サブスクライブするプロジェクトに移動します。

  3. [VPC ネットワーク] > [VPC ネットワーク] の順にクリックします。



  4. [VPC ネットワークを作成] をクリックします。

  5. VPC ネットワークの [名前] を入力します。

  6. VPC ネットワークへのネットワークのサブネット名、IP アドレス範囲を入力します。

    注:

    GCP は IPV6 をサポートしていないため、IP4 アドレスのみを入力します。

  7. [作成] をクリックします。作成したネットワークは次に示すとおりです。



GCP でのファイアウォール ルール

GCP ファイアウォール ルールを使用すると、仮想マシン インスタンスとの間のトラフィックを許可または拒否できます。プロトコル ポートは、NSX Advanced Load Balancer が管理通信に使用します。詳細については、「ポートとプロトコル」を参照してください。

ファイアウォール ルールを作成するには、次の手順を実行します。

  1. 左側のペインの [ファイアウォール ルール] の下の [ネットワーキング] の下の [VPC ネットワーク] をクリックします。

  2. [ファイアウォール ルールを作成] をクリックします。



  3. [ファイアウォール ルールを作成] 画面が表示されます。ファイアウォール ルールを作成して、ネットワーク内の TCP、UDP、および ICMP トラフィックを許可し、それぞれのネットワークの外部からの HTTP/HTTPS を許可します。

すべての UDP および TCP トラフィックのファイアウォール ルールの作成

すべての UDP および TCP トラフィックのルールを作成するには、次のようにフィールドを構成し、[作成] をクリックします。



TCP ポート 80 および 443 でのファイアウォール ルールの作成

TCP ポート 80 および 443 でルールを作成するには、次のようにフィールドを構成し、[作成] をクリックします。



ICMP 用のファイアウォール ルールの作成

ICMP のファイアウォール ルールを作成するには、次のようにフィールドを構成し、[作成] をクリックします。



内部 SE 間通信のファイアウォール ルールの作成

内部 SE から SE へのファイアウォール ルールを作成するには、次のようにフィールドを構成し、[作成] をクリックします。



作成されたファイアウォール ルールは、次のように一覧表示されます。



Controller の作成

NSX Advanced Load Balancer Controller インスタンスを作成するには、次の手順を実行します。

  1. Google Cloud Platform コンソールに移動し、[Compute Engine] > [VM インスタンス] の順にクリックします。

  2. [インスタンスの作成] をクリックします。

  3. インスタンスの [名前] を入力し、[リージョン] および [ゾーン] を入力します。

  4. [4 vCPU][マシン タイプ][n1-standard-4] として選択し、[15 GB] のメモリを選択します。

    注:

    サイジングは、スケーリング要件によって異なります。

  5. 別の配布を選択してディスクのサイズを変更するには、[変更] をクリックします。

    注:

    NSX Advanced Load Balancer では、CentOS と Ubuntu のみがサポートされます。詳細については、「システム要件」を参照してください。

  6. CentOS 7 イメージを選択し、必要に応じて起動ディスク サイズ(40 GB 以上)を選択します。詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「サービス エンジンのサイズ」を参照してください。

  7. [選択] をクリックします。

  8. [ID および API アクセス] をクリックします。

    注:

    または、サービス アカウント認証メカニズムも使用できます。権限は、API セルを介して認証されたエンティティによる生成時に継承されます。Controller インスタンスは読み取り/書き込みスコープで生成する必要があり、SE は読み取り専用の範囲で生成されます。詳細については、「さまざまなコントローラおよびサービス エンジンの展開のためのロールと権限」を参照してください。

  9. 必要な [サービス アカウント] を選択します。

  10. [アクセス スコープ] として [各 API にアクセス権を設定] を選択します。

  11. コンピューティング エンジンの [読み取り書き込み] 権限を選択します。

  12. [HTTP トラフィックを許可する][HTTPS トラフィックを許可する] をクリックし、外部接続を許可します。

  13. [セキュリティ] タブをクリックします。

  14. SSH の開始に使用するマシンからパブリック キーをコピーし、テキスト ボックスに貼り付けます。

  15. NSX Advanced Load Balancer Controller は、ネットワークの作成時に指定されたネットワーク範囲の外部 IP アドレスと内部 IP アドレスを使用して作成されます。

    注:

    外部 IP アドレスが割り当てられていない場合、Google Cloud Platform は作成されたインスタンスへのシリアル コンソール アクセスを許可しません。シリアル コンソール へのアクセスは、NSX Advanced Load Balancer のインストールまたは操作には必要ありませんが、トラブルシューティングに役立つ場合があります。

  16. [作成] ボタンをクリックします。

サーバ インスタンスの作成

サーバ インスタンスは、VS が作成される特定のポートでトラフィックを受け入れるサーバを実行している必要があります。

サーバ インスタンスを作成するには、次の手順を実行します。

  1. GCP コンソールで、[Compute Engine に移動] をクリックします。

  2. [VM インスタンス] ページで [インスタンスを作成] をクリックします。

  3. インスタンスの [名前] と、サーバを作成する [ゾーン] を入力します。

  4. [4 vCPU][マシン タイプ][n1-standard-4] として選択し、[15 GB] のメモリを選択します。

    注:

    サイジングは、スケーリング要件によって異なります。

  5. 別の配布を選択してディスクのサイズを変更するには、[変更] をクリックします。

    注:

    NSX Advanced Load Balancer では、CentOS と Ubuntu のみがサポートされます。詳細については、「システム要件」を参照してください。

  6. [ID および API アクセス] で、[各 API にアクセス権を設定] をクリックします。

  7. [Compute Engine][読み取り専用] 権限を選択します。

    注:

    または、サービス アカウント認証メカニズムも使用できます。権限は、API セルを介して認証されたエンティティによる生成時に継承されます。Controller インスタンスは読み取り/書き込みスコープで生成する必要があり、SE は読み取り専用の範囲で生成されます。詳細については、「さまざまなコントローラおよびサービス エンジンの展開のためのロールと権限」を参照してください。

  8. [ファイアウォール] の下の [HTTP トラフィックの許可] をクリックし、外部接続を許可します。

  9. [ネットワーキング] > [ネットワーク インターフェイス] をクリックします。

  10. ネットワークとサブネットワークの詳細を入力します。

  11. [IP 転送][オン] に設定します。

  12. SSH の開始に使用するマシンからパブリック キーをコピーします。

  13. [セキュリティ] タブをクリックし、[SSH 認証鍵][項目を追加] をクリックします。

  14. テキスト ボックスにキーを貼り付けます。

  15. [作成] をクリックします。

同様に、必要な仕様でクライアント インスタンスを作成します。

SE 仮想マシン インスタンスの作成

SE 仮想マシン インスタンスを作成するには、次の手順を実行します。

  1. GCP コンソールで、[Compute Engine に移動] をクリックします。

  2. [VM インスタンス] ページで [インスタンスを作成] をクリックします。

  3. インスタンスの [名前] と、サーバを作成する [ゾーン] を入力します。

  4. [3.75 GB] メモリを持つ [マシン タイプ] として [1 vCPU] を選択します。

  5. [Ubuntu 16.04 LTS] または [Debian GNU/Linux 9 (stretch)] のいずれかを [OS イメージ] として持つ起動ディスクを選択します。詳細については、「システム要件」を参照してください。

  6. [ID および API アクセス] で、[各 API にアクセス権を設定] をクリックします。

  7. [Compute Engine][読み取り書き込み] 権限を選択します。

  8. [ファイアウォール][HTTP トラフィックを許可する][HTTPS トラフィックを許可する] をクリックし、外部接続を許可します。

  9. [ネットワーキング] > [ネットワーク インターフェイス] をクリックします。

  10. ネットワークとサブネットワークの詳細を入力します。

  11. [IP アドレス 転送][オン] に設定します。

  12. SSH の開始に使用するマシンからパブリック キーをコピーします。

  13. [セキュリティ] タブをクリックし、[SSH 認証鍵][項目を追加] をクリックします。

  14. 次に示すテキスト ボックスにキーを貼り付けます。

  15. [作成] をクリックします。

インスタンスの準備

yum-cron をオンにします。

注:

前提条件として、インスタンスは CentOS 7.5 に配置する必要があります。

  1. Docker リポジトリを構成するには、/etc/yum.repos.d/ の下に dockerer.repo ファイルを作成します。

       [localhost@avi-controller ~]$ sudo vim docker.repo 
       [docker-main]
        name=Docker Repository
        baseurl=https://yum.dockerproject.org/repo/main/centos/7/
        enabled=1
        gpgcheck=1
        gpgkey=https://yum.dockerproject.org/gpg 
  2. インスタンスが CentOS 7.5 で実行されていることを確認します。

     [localhost@avi-controller ~]$ cat /etc/centos-release
     CentOS Linux release 7.5.1611 (Core)  
  3. 5 つのインスタンスすべてに Docker をインストールして起動します。

     sudo yum update -y
      sudo yum install -y epel-release
      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      sudo yum install -y docker-ce
      sudo systemctl enable docker
      sudo systemctl start docker
      (Lock release )
      head -n1 /etc/centos-release | awk '
      {print $4}
      ' > /etc/yum/vars/releasever
    
  4. CentOS/RHEL の現在のリリースを維持するには、Linux システムを特定の OS バージョンにロックします。詳細については、『VMware NSX Advanced Load Balancer 管理ガイド』の「Linux システムの特定の OS バージョンへのロック」トピックを参照してください。

ストレージ ドライバの詳細については、Docker storage driversを参照してください。

次に示すように、devicemapper はループバックで構成されています。これは概念実証に適しており、本番環境には適していません。本番環境で推奨されるストレージ ドライバとして、overlay2 を使用することをお勧めします。次はその例です。

root@cnu-bm6 ~]# docker info
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 1
Server Version: 17.12.1-ce
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-693.21.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.51GiB
Name: cnu-bm6
ID: V2GA:L7IT:NW6S:FSDD:JLO2:OIGX:USQQ:UGXQ:BUA3:MYU3:O6JB:FQYX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: abcd
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
[root@cnu-bm6 ~]#

インスタンスが Ubuntu 用に生成される場合は、次に説明するように sshguard を構成する必要があります。sshguard が許可元ファイルを取得できるのは、-w オプション引数の先頭が「.」(ドット)または「/」(スラッシュ)の場合です。以下は、/etc/list のサンプル許可ファイルです。

# comment line (a '#' as very first character)
# a single IPv4 and IPv6 address
1.2.3.4
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
#   address blocks in CIDR notation
127.0.0.0/8
10.11.128.0/17
192.168.0.0/24
2002:836b:4179::836b:0000/126
#   hostnames
rome-fw.enterprise.com
hosts.test.com

テスト ファイルを参照する sshguard のスニペットを次に示します。

 sshguard -w /etc/test

サーバ インスタンスでサーバをテストします。

インスタンスをテストするには、次の例に示すように、仮想サービスがプール サーバとして使用されるように構成されたポートで待機する Web サーバを起動します。

sudo docker run -d -p 80:80 avinetworks/server

NSX Advanced Load Balancer の構成(方法 1)

  1. 作成したインスタンスに NSX Advanced Load Balancer Controller をインストールし、実行します。手順については、「Linux サーバ クラウドへの NSX Advanced Load Balancer のインストール」を参照してください。

  2. NSX Advanced Load Balancer で、[インフラストラクチャ] > [ダッシュボード] の順に移動します。

  3. 次に示すように、SE の状態が緑色であることを確認します。



    NSX Advanced Load Balancer 22.1.3 以降では、次の画面が表示されます。



  4. Controller インスタンスに ssh で入り、Controller に exec を実行してシェルを起動します。次のコマンドを入力して、使用するコンテナ ID を一覧表示します。

    sudo docker ps
    sudo docker exec -it [container_id] bash 
    shell
  5. VIP 割り当て用の IP アドレス プールを持つネットワークを作成します。NSX Advanced Load Balancer で、[インフラストラクチャ] > [ネットワーク] > [作成] の順に移動します。

  6. [テンプレート] > [プロファイル] > [IP アドレス管理/DNS プロファイル] の順に移動し、次に示すように IP アドレス管理を作成します。



    NSX Advanced Load Balancer 22.1.3 以降では、次の画面が表示されます。

  7. [インフラストラクチャ] > [クラウド] の順に移動します。

  8. [デフォルト] クラウドを編集し、[クラウド インフラストラクチャ タイプ][Linux] として選択します。

  9. [次へ] をクリックします。

  10. [Linux サーバ構成] 画面で、[IP アドレス管理プロファイル] として [GCP] を選択します。



  11. NSX Advanced Load Balancer 22.1.3 以降では、次の画面が表示されます。



  12. [IP アドレス管理/DNS] タブに移動します。

  13. [IP アドレス管理プロファイル] フィールドの [GCP IP アドレス管理プロファイル] を選択します。

  14. [保存] をクリックします。

GCP の詳細については、「GCP の IP アドレス管理の構成」を参照してください。

SE のクラウドへの追加

次に示すように、ネットワーク プロファイルを作成し、IP アドレス管理に接続します。







SE をクラウドに追加するには、[インフラストラクチャ] > [クラウド] の順に移動し、次のように LSC クラウドを構成します。



NSX Advanced Load Balancer 22.1.3 以降では、次のユーザー インターフェイスを使用できます。



詳細については、Adding Avi Service Engines to a Linux Server Cloudを参照してください。

Controller とサービス エンジンのインストールと構成(方法 2)

または、Controller サービス ファイルがすでに作成されている場合は、setup.json ファイルを使用して Controller を新たに起動し、GCP IP アドレス管理プロファイルと VIP 割り当て用のネットワークを使用して Linux サーバ クラウドを構成します。

  • 次に示す setup.json ファイルをホストの /opt/avi/controller/data にコピーします(/opt/avi/controller/data は、サービス ファイル内の Controller に使用されるボリュームと想定)。

  • 必要に応じて、SSH キー、ユーザー名、ネットワーク サブネット、およびネットワーク/IP アドレス管理名を変更します

    {
       "CloudConnectorUser": [
           {
               "name": "rangar",
               "tenant_ref": "admin",
               "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9ZZWDLSl/PJHWA8QuDlfDHJuFh6k55qxRxO28fSRvAEbWCXXgXdnH8vSVVDE
    Mo0brgqrp+vful2m7hNm0TPv8REbT2luVeWo+G0R1hxzdALzI8VmMBxX2VduKZ5Zrh3C9GKxaUYb4R2hzLaYKUBQnFa2B0YWiAfC3ow71fwwgb7cVhxExTyhhF01gY
    9Tcb3w9uugv3vXNzyxDssHXtwY60WcVUIK1L+8SqXu/r6YUG8j4IsaYkXJHBE6CHPwDg4uwRG35IkfhsIg0KtKRwpzHbhOx0qRjG9ZaVc0SnfMIHmdAFwXpDpi/AKV
    NAmjkix2GIPIi1OISnEngSjnugVb7\n",
               "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAvWWVgy0pfzyR1gPELg5XwxybhYepOeasUcTtvH0kbwBG1gl1\
    n4F3Zx/L0lVQxDKNG64Kq6fr37pdpu4TZtEz7/ERG09pblXlqPhtEdYcc3QC8yPFZ\njAcV9lXbimeWa4dwvRisWlGG+Edocy2mClAUJxWtgdGFogHwt6MO9X8MIG+
    3FYcR\nMU8oYRdNYGPU3G98PbroL971zc8sQ7LB17cGOtFnFVCCtS/vEql7v6+mFBvI+CLG\nmJFyRwROghz8A4OLsERt+SJH4bCINCrSkcKcx24TsdKkYxvWWlXNE
    p3zCB5nQBcF\n6Q6YvwClTQJo5IsdhiDyItTiEpxJ4Eo57oFW+wIDAQABAoIBAFu7XeUA9L5ZmdDs\nVhJwg/VOX80W3dHbdc7M8NCAVCsnGSgFwQAAtMBxXiENfAx
    A8NKUoS9ejMMUtvNJ\n7x+ywcF3WE63ze/htKGMF2ZNIJ+yAb3Zl6OIswxynTi131cJbINJ9gBwyExsWZyf\nmXIZQwmDKFxeHLlQ80QeR9qDxF3Ypyz7vdEtQMtpI
    3JQJMbUX6dmQm0UtOKi5tL8\nzkskZJHnaqwJlem92Zon7S8PIflsPevsAmDrTPbmxIL6Z3KlJkoLzTcWefA6E19N\nw4JmylQokAWiqQ1il+qrcITIZGhsZre081N
    wjHkzzA8kdb4EUO0nhy7rzbmS67TN\n08Fe0RECgYEA98WaJR5k/r8VBlKEQTErye29cJmkr0w5ZPX+bwko+ejj2S2vqpJc\nuR0YO3q5zY5a4A/33X/vke+r1bNPr
    p9QSnBscFvA/AEXGAiAeuCsuB+pw8C3N5C5\ncTzKNFx1c2KXbejRkhvL9gz5tJZpdHIqzbGQmwEiNFqnYy6BPbhTm8UCgYEAw6+2\n5WvAGH9Ub+ZfySoeNNaxXfI
    DvXA2+G/CBg99KYuXzWWmeVx9652lc4Gv+mxhFiJd\nilMfWljlb+f1G5sJnZ3VMKSf/FF¬¬6Mo8MsnAkvjnVWBoezo2sVzu+9g3qGRXNTtRM\nSH1N/eWPeJGwD+Vyk
    D3r8K+iag7cMhrLpGPWk78CgYARatumJlfVLJuOwTg42PsK\nC+NYSgSwqfwS49QJ/CvcPYne135U0EsiXDA65iqvj4VF4Pl8oaS2rpF2yU8dqGdd\nhD+rOlf7nxv
    /fYGCoc6idt9ZOm/mwQ64LhzMx38eKF0axdYNnlSdLFZVYolxPSFT\nKltO+ipsYb8IktlU/GMsPQKBgQCeirlqzM64yki11Hcce3Q3qQ3QqGihTc4roBgZ\nYuksB
    L37mnSy9N3MTFAk8hiKks5h6XvRuyC2yTkyXkL2l7jFq39zRp2cBsMzPTSz\nSSpruF2CYL8+6AeOMYi4v3M/2asaR+R6ApNytk90Bs0XQ/V6qcCDozi6Jsn+Cjmd\
    nOYo67wKBgAcUFRHUX4VwCUZAAIxyTM+efpf5z8dKHh/iJA6rtqcTi4vHddEJinT6\ntOiqXjciZEKqZ08GtImIPtuhIBO0m10fCfcjrGxGz2+N9o8fyNvFWU83kG9
    IXSq8\nU1YOIYvXwWFQLWIUvyOgnyT4bW0OLa8OrJEq1/DaH8gpvvFi8qRK\n-----END RSA PRIVATE KEY-----\n"
           }
       ],
       "IpamDnsProviderProfile": [                                                                                      [39/5306]
           {
               "name": "gcp",
               "type": "IPAMDNS_TYPE_GCP",
               "tenant_ref": "admin",
               "gcp_profile": {
                   "usable_network_refs": [
                       "/api/network/?name=net1"
                   ]
               }
           }
       ],
       "Network": [
           {
               "name": "net1",
               "tenant_ref": "admin",
               "cloud_ref": "admin:Default-Cloud",
               "configured_subnets": [
                   {
                       "prefix": {
                           "ip_addr": {
                               "type": "V4",
                               "addr": "10.9.0.0"
                           },
                           "mask": 24
                       },
                       "static_ranges": [
                           {
                               "begin": {
                                   "type": "V4",
                                   "addr": "10.9.0.2"
                               },
                               "end": {
                                   "type": "V4",
                                   "addr": "10.9.0.254"
                               }
                           }
                       ]
                   }
               ]
           }
       ],
       "SeProperties": [
           {
               "se_runtime_properties": {
                   "global_mtu": 1400,
                   "se_handle_interface_routes": true
               }
           }
       ],
       "Cloud": [
           {
               "name": "Default-Cloud",
               "tenant_ref": "admin",
               "vtype": "CLOUD_LINUXSERVER",
               "ipam_provider_ref": "admin:gcp",
               "linuxserver_configuration": {
                   "ssh_attr": {
                       "ssh_user": "rangar",
                       "host_os": "COREOS"
                   },
                   "se_sys_disk_path": "/”
               }
           }
       ]
    }
  • Controller で最初のセットアップを実行し、ユーザー名/パスワードを指定します。

  • デフォルト クラウドの IP アドレス管理プロバイダとして GCP IP アドレス管理を選択し、作成された 2 つのサービス エンジン インスタンスの IP アドレスを使用して Linux サーバ クラウドを構成します。

仮想サービスの作成とトラフィックの確認

仮想サービスを作成するには、次の手順を実行します。

  1. プールを作成します。たとえば、次に示すように GCP-Perf-Test-VS-Pool です。



  2. NSX Advanced Load Balancer 22.1.3 以降では、次のユーザー インターフェイスを使用できます。



  3. サーバ インスタンスの IP アドレスをプール サーバとして追加します。

  4. GCP-Perf-Test-VS という内部仮想サービスを作成します。VIP は、VIP/IP アドレス管理サブネット 10.y.y.y./24 から自動的に割り当てられます。

  5. VIP は、VIP/IP アドレス管理サブネット 10.y.y.y./24 から自動的に割り当てられます。

注:

IP サブネット 10.x.x.x は、参照目的でのみ言及されています。配置サブネットは、Controller とサービス エンジンによって使用される VPC のメジャー サブネットに設定する必要があります。



NSX Advanced Load Balancer 22.1.3 以降では、次のユーザー インターフェイスを使用できます。


作成された仮想サービスは次のとおりです。



フローティング IP の割り当て

NSX Advanced Load Balancerでは、フローティング IP アドレス(フロントエンドが GCP から割り当てられたパブリック IP アドレス、バックエンドがサービス エンジンとなるロード バランサ)を仮想サービスに割り当てることができます。

フローティング IP アドレスは、NSX Advanced Load Balancer ユーザー インターフェイスを使用して割り当てることができます。フローティング IP アドレスを割り当てるには、[外部クライアント アクセス用のフローティング IP アドレスの割り当て] をクリックして有効にします。

注:

[自動割り当て] はデフォルトで有効になっています。[自動割り当て] をクリックして無効にし、フローティング IP アドレスを入力して、フローティング IP アドレスを手動で割り当てます。

次に示すように、CLI を使用してフローティング IP アドレスを割り当てることもできます。

++Truncated Output++
+------------------------------------+-----------------------------------------------------+
[admin]: virtualservice> vip index 1
[admin]: virtualservice:vip> auto_allocate_floating_ip
Overwriting the previously entered value for auto_allocate_floating_ip
[admin]: virtualservice:vip> save
[admin]: virtualservice> save
++ Truncated Output++




ICMP トラフィックのテスト

VIP IP アドレスに ICMP トラフィックを送信します。この場合は 10.10.0.1 であり、プログラムされていることを確認します。

[localhost@avi-test-server ~]$ ping 10.10.0.1
[root@admin]# curl -I 10.10.0.1
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 3800
Connection: keep-alive
Server: nginx/1.12.2
Date: Mon, 18 Mar 2019 06:55:12 GMT
Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT
ETag: "5a9e5ebd-e74"
Accept-Ranges: bytes

次の表記で示すように、VIP/32 のルートが、IP アドレス 10.8.2.3 のサービス エンジン 1 として nextHop を使用して GCP でプログラミングされていることを確認します。





仮想サービスとプールを構成するための API

次に示す setup.json ファイルをホストの /opt/avi/controller/data にコピーします(/opt/avi/controller/data は、サービス ファイル内の Controller に使用されるボリュームと想定)。

{
    "name": "vs1",
    "pool_ref": "pool_ref",
    "services": [
        {
            "port": 80
        }
    ],
    "vip": [
        {
 
            “auto_allocate_ip” = true,
            “auto_allocate_floating_ip” = true
            "ipam_network_subnet": {
                "network_ref": "network_ref",
                "subnet": {
                    "ip_addr": {
                        "addr": "6.2.0.0",--> IPAM subnet.
                        "type": "V4"
                    },
                    "mask": 16
                }
            },
            "subnet": {
                "ip_addr": {
                    "addr": "10.146.11.0", --> placement subnet, subnet having reachability to client facing VIP
                    "type": "V4"
                },
                "mask": 24
            }
        }
   

トラブルシューティング

よくある問題は、サービス エンジンが Controller に接続できないか、Ubuntu への接続が頻繁に失われることです。

根本原因

  • この原因として、sshguard が挙げられます。sshguard の詳細については、sshguardを参照してください。

  • sshguard はアドレスをサポートします。許可されたアドレスは、攻撃を発生させたように見えてもブロックされません。これは、LAN ユーザーが偶発的にブロックされるのを防ぐのに役立ちます。

  • 許可するために長いリストが必要な場合は、プレーン テキスト ファイル(1 行に 1 つのアドレス/ホスト名/ブロック)にラップできます。

軽減

  • sshguard で使用される許可されたファイルで、コントローラの IP アドレス(クラスタ化されている場合は 3 つすべて)を構成します。

sshguard が許可されたファイルを取得できるのは、-w オプション引数の先頭が「.」(ドット)または「/」(スラッシュ)の場合です。次に、許可されたファイルの例 (/etc/test) を示します。コメント行は先頭の文字に「#」が付いて示されます。

       #   a single IPv4 and IPv6 address
       1.2.3.4
       2001:0db8:85a3:08d3:1319:8a2e:0370:7344
       #   address blocks in CIDR notation
       127.0.0.0/8
       10.11.128.0/17
       192.168.0.0/24
       2002:836b:4179::836b:0000/126
       #   hostnames
       rome-fw.enterprise.com
       hosts.test.com

sshguard は、次のように /etc/test ファイルから許可リストを作成するように指示を受けます。

    sshguard -w /etc/test