2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud: VPCにF5 BIG-IP Virtual Editionを導入してみた(2022年10月改訂版)

Last updated at Posted at 2022-10-21

1. はじめに

(以前、IBM Cloud: VPCにF5 BIG-IP Virtual Editionを導入してみたという記事を書いていました。本稿はその改訂版です)
IBM CloudのVPCではVirtual Network Function(VNF)機能として、現在以下の製品・サービスが利用可能である。

なお、これらの3rd Party製品はBYOL(Bring Your Own License)で提供しており、そのサポートは3rd Partyから受ける必要がある。

:warning: 注文画面には以下の警告が出る。
image.png
:warning: 例えばF5 for VPCのcaseを起票しようとすると、以下のようにF5社に問い合わせるようなメッセージが表示される。
image.png

本稿では、BIG-IP Virtual Edition for VPCを導入してみる。F5社によるドキュメントは以下になる。

今回はテスト用途なので、30日のトライアルライセンスをここから申請し、メールに送付されてきたライセンス情報を利用した。

2. 注文方法

カタログからF5を検索すれば、対象のタイルが表示される。
image.png

以下は、画面に沿って値を入力していく。
image.png

F5 BIG-IPの導入には内部的にはIBM Cloud Schematics(実装はTerraform)を使っているので、そのworkspace名を指定する必要がある(特にこだわりがなければデフォルトのままで良い)。
image.png

以下、今回変更した箇所を記した。

  • ライセンス情報は後から入力可能なので、noneのままで良い。
  • TMOSはF5製品のOS(Operating System)であり、adminはブラウザアクセス用の管理IDである。
Parameter 今回の入力例 補足
external_subnet_id 02e7-b50228c7-2431-4854-ad4c-b68f6c7382a7 事前に作成した10.4.0.0/24のsubnet IDを指定。
management_subnet_id 02e7-ff96ff2a-fa27-4d88-b855-98fb85112636 事前に作成した10.0.0.0/24のsubnet IDを指定
region jp-tok 今回は東京リージョンを指定
ssh_key_name key-syasuda (VSIのプロビジョニングなどにも利用する)事前に登録したSSH鍵の名前
tmos_image_name bigip-17 2022年10月現在のデフォルト値のイメージは存在しないためエラーになる。 longest matchingでイメージ名が選択される。以下のnoteも参考に。
:warning: pull requestを送っています。
resource_group Default Optional Deployment valuesとして定義されているが、デフォルト値であるdefaultは不適切。IBM Cloudには標準でDefaultというリソースグループが存在するが、Defaultdefaultは異なるため、defaultのままだと該当するリソースグループが存在しないというエラーになる。適切なリソースグループを選択する必要があるため、むしろこれはRequired Deployment valuesに分類されるべき項目。
:warning: pull requestを送っています。
tmos_admin_password zaq12wsxcde34rfv 後からCLIで設定できるが、すぐに使えるように設定。実環境では適切な値に変更してください。

image.png
image.png

2022年10月20日現在、サブネットは指定できても、IPアドレスを指定してプロビジョニングすることはできないようです。改善を期待したいところです。

2022年10月20日現在、以下のバージョンが利用できることを確認しています。利用可能なマイナーバージョンは頻繁にF5社によって変更されているようですが、docsの更新がありません。tmos_image_nameはlongest matchでイメージを決めているようなので、確実にプロビジョニングをしたい場合は、bigip-17などぐらいで指定しておいた方が安全だと思います。

  • bigip-15-1-6-1-0-0-10
  • bigip-16-1-3-1-0-0-11
  • bigip-17-0-0-1-0-0-4
  • 2022/10/23追記

適切なtmos_imageが選択されなかった場合は以下のようなエラーになる。

 2022/10/20 03:01:40 Terraform apply | Error: External Program Execution Failed
 2022/10/20 03:01:40 Terraform apply | 
 2022/10/20 03:01:40 Terraform apply |   on image.tf line 14, in data "external" "tmos_public_image":
 2022/10/20 03:01:40 Terraform apply |   14:   program = ["python3", "${path.module}/bigip_image_selector.py"]
 2022/10/20 03:01:40 Terraform apply | 
 2022/10/20 03:01:40 Terraform apply | The data source received an unexpected error while attempting to execute the
 2022/10/20 03:01:40 Terraform apply | program.
 2022/10/20 03:01:40 Terraform apply | 
 2022/10/20 03:01:40 Terraform apply | Program: /usr/bin/python3
 2022/10/20 03:01:40 Terraform apply | Error Message: No image in the public image catalog matched version bigip-18
 2022/10/20 03:01:40 Terraform apply | State: exit status 1
 2022/10/20 03:01:40 Terraform apply | 
 2022/10/20 03:01:40 [1m[31mTerraform APPLY error: Terraform APPLY errorexit status 1[39m[0m
 2022/10/20 03:01:40 [1m[31mCould not execute job: Error : Terraform APPLY errorexit status 1[39m[0m

このbigip_image_selector.pyという名前から、おそらくこのスクリプトが使われていると想像される。よって、以下を実行することで現時点で有効なスクリプトを確認することができそうである。

$ curl -s https://f5-adc-jp-tok.s3.jp-tok.cloud-object-storage.appdomain.cloud/f5-image-catalog.json | jq -r '."jp-tok"[].image_name'
bigip-14-1-4-5-0-0-7-all-1slot-013122001-jp-tok
bigip-14-1-4-5-0-0-7-ltm-1slot-013122001-jp-tok
bigip-14-1-4-6-0-0-8-all-1slot-jp-tok
bigip-14-1-4-6-0-0-8-ltm-1slot-jp-tok
bigip-14-1-5-1-0-0-6-all-1slot-jp-tok
bigip-14-1-5-1-0-0-6-ltm-1slot-jp-tok
bigip-14-1-5-2-0-0-3-all-1slot-jp-tok
bigip-14-1-5-2-0-0-3-ltm-1slot-jp-tok
bigip-15-1-5-0-0-10-all-1slot-013122001-jp-tok
bigip-15-1-5-0-0-10-ltm-1slot-013122001-jp-tok
bigip-15-1-5-1-0-0-14-all-1slot-jp-tok
bigip-15-1-5-1-0-0-14-ltm-1slot-jp-tok
bigip-15-1-6-1-0-0-10-all-1slot-jp-tok
bigip-15-1-6-1-0-0-10-ltm-1slot-jp-tok
bigip-15-1-7-0-0-6-all-1slot-jp-tok
bigip-15-1-7-0-0-6-ltm-1slot-jp-tok
bigip-16-1-2-1-0-0-10-all-1slot-012722001-jp-tok
bigip-16-1-2-1-0-0-10-all-1slot-013122001-jp-tok
bigip-16-1-2-1-0-0-10-ltm-1slot-012722001-jp-tok
bigip-16-1-2-1-0-0-10-ltm-1slot-013122001-jp-tok
bigip-16-1-2-2-0-0-28-all-1slot-jp-tok
bigip-16-1-2-2-0-0-28-ltm-1slot-jp-tok
bigip-16-1-3-1-0-0-11-all-1slot-jp-tok
bigip-16-1-3-1-0-0-11-ltm-1slot-jp-tok
bigip-16-1-3-2-0-0-4-all-1slot-jp-tok
bigip-16-1-3-2-0-0-4-ltm-1slot-jp-tok
bigip-17-0-0-1-0-0-4-all-1slot-jp-tok
bigip-17-0-0-1-0-0-4-ltm-1slot-jp-tok
$ curl -s https://f5-adc-jp-osa.s3.jp-osa.cloud-object-storage.appdomain.cloud/f5-image-catalog.json | jq -r '."jp-osa"[].image_name'
bigip-14-1-4-5-0-0-7-all-1slot-013122001-jp-osa
bigip-14-1-4-5-0-0-7-ltm-1slot-013122001-jp-osa
bigip-14-1-4-6-0-0-8-all-1slot-jp-osa
bigip-14-1-4-6-0-0-8-ltm-1slot-jp-osa
bigip-14-1-5-1-0-0-6-all-1slot-jp-osa
bigip-14-1-5-1-0-0-6-ltm-1slot-jp-osa
bigip-14-1-5-2-0-0-3-all-1slot-jp-osa
bigip-14-1-5-2-0-0-3-ltm-1slot-jp-osa
bigip-15-1-5-0-0-10-all-1slot-013122001-jp-osa
bigip-15-1-5-0-0-10-ltm-1slot-013122001-jp-osa
bigip-15-1-5-1-0-0-14-all-1slot-jp-osa
bigip-15-1-5-1-0-0-14-ltm-1slot-jp-osa
bigip-15-1-6-1-0-0-10-all-1slot-jp-osa
bigip-15-1-6-1-0-0-10-ltm-1slot-jp-osa
bigip-15-1-7-0-0-6-all-1slot-jp-osa
bigip-15-1-7-0-0-6-ltm-1slot-jp-osa
bigip-16-1-2-1-0-0-10-all-1slot-012722001-jp-osa
bigip-16-1-2-1-0-0-10-all-1slot-013122001-jp-osa
bigip-16-1-2-1-0-0-10-ltm-1slot-012722001-jp-osa
bigip-16-1-2-1-0-0-10-ltm-1slot-013122001-jp-osa
bigip-16-1-2-2-0-0-28-all-1slot-jp-osa
bigip-16-1-2-2-0-0-28-ltm-1slot-jp-osa
bigip-16-1-3-1-0-0-11-all-1slot-jp-osa
bigip-16-1-3-1-0-0-11-ltm-1slot-jp-osa
bigip-16-1-3-2-0-0-4-all-1slot-jp-osa
bigip-16-1-3-2-0-0-4-ltm-1slot-jp-osa
bigip-17-0-0-1-0-0-4-all-1slot-jp-osa
bigip-17-0-0-1-0-0-4-ltm-1slot-jp-osa

3. プロビジョニングの実行

Installを押下すると、IBM Cloud Schematicsのworkspace上で淡々とプロビジョニングが実施される。5分程度で完了する。
image.png

なお、プロビジョニングに失敗した際は、再度注文画面に戻る必要はなく、失敗したworkspaceのSettingにて、パラメーター値を編集・上書きし、再度Apply planを押下すれば即時に再実行できる。
image.png

4. プロビジョニング後の状態

image.png
image.png

気をつけなければいけないのは、defaultのsecurity groupではなく、新たにsecurity groupが生成されており、しかもそのsecurity groupは全ての通信を許可するような構成になっていることである。Floating IPが割り当てられていないため、このままの状態でインターネットに晒されるわけではないが、実際に利用する際にはInboundだけでも早々に通信元を制限するように構成変更することが望ましい。
image.png

5. Web Consoleへのログイン確認とライセンス登録

  • SSH port forwarding(ssh -L 9443:10.0.0.27:443 踏み台サーバーのIPアドレス)をして、端末上からhttps://localhost:9443/にアクセスしてF5のコンソールにアクセスする。UserIDはadmin、Passwordはtmos_admin_passwordで設定した値を利用。 image.png
  • ログイン後の状態。Activateを押下 image.png
  • ライセンス情報を入力。インターネットに繋がっていないので、Activation MethodはManualを選択。Nextを押下。image.png
  • Click here to access F5 Licensing Serverを押下。image.png
  • 先程の画面で表示されたDossierをコピー&ペーストし、Next image.png
  • 内容を確認し、Next image.png
  • ライセンスキーを入手した。image.png
  • 前項で得られたライセンスキーをStep 3の項目にコピー&ペーストして、Nextimage.png
  • 以下のように再ログインが求められる。image.png
  • 再度ログインする image.png
  • ライセンス登録が完了した。 image.png

6. CLIによるログイン確認・設定確認

適当な踏み台サーバー経由でログインする。

バージョン情報の確認
[root@new-syasuda-tok1-vpc1 ~]# ssh root@10.0.0.27
The authenticity of host '10.0.0.27 (10.0.0.27)' can't be established.
ECDSA key fingerprint is SHA256:rqEgAHxbaB9jGmZiJlRWwF4agwgnIHVD5yS8aLRpBac.
ECDSA key fingerprint is MD5:9a:43:95:06:42:ab:af:3f:89:10:bf:81:ba:c0:ac:ab.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.27' (ECDSA) to the list of known hosts.

[root@f5-ve-01:Active:Standalone] config # tmsh
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# show sys version

Sys::Version
Main Package
  Product     BIG-IP
  Version     17.0.0.1
  Build       0.0.4
  Edition     Point Release 1
  Date        Fri Jul 15 01:45:12 PDT 2022
IPアドレス情報
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# show sys ip-address

--------------------------------------------------------
Sys::IP Address
Entry           Component             Object-ID
--------------------------------------------------------
default         net route             net_1_1_default_gw
8.8.8.8:domain  net dns-resolver      f5-aws-dns
8.8.8.8:domain  net dns-resolver      f5-aws-dns
8.8.8.8:domain  net dns-resolver      f5-aws-dns
10.0.0.1        sys management-route  default
10.0.0.27       cm device             f5-ve-01.local
10.4.0.12       cm device             f5-ve-01.local
10.4.0.12       cm device             f5-ve-01.local
10.4.0.12       cm device             f5-ve-01.local
161.26.0.7      sys dns               n/a
161.26.0.8      sys dns               n/a
ルーティング情報
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# show net route

----------------------------------------------------------------------------------
Net::Routes
Name                Destination         Type       NextHop               Origin
----------------------------------------------------------------------------------
net_1_1_default_gw  default             gw         10.4.0.1              static
127.20.0.0/16       127.20.0.0/16       interface  tmm_bp                connected
10.4.0.0/24         10.4.0.0/24         interface  /Common/net_1_1       connected
127.1.1.0/24        127.1.1.0/24        interface  tmm                   connected
ff02:fff::/64       ff02:fff::/64       interface  tmm_bp                connected
fe80::%vlan4095/64  fe80::%vlan4095/64  interface  tmm_bp                connected
fe80::/64           fe80::/64           interface  /Common/socks-tunnel  connected
fe80::/64           fe80::/64           interface  /Common/http-tunnel   connected
fe80::%vlan4095/64  fe80::%vlan4095/64  interface  /Common/tmm_bp        connected
ff02:fff::/64       ff02:fff::/64       interface  /Common/tmm_bp        connected
ff02:ffd::/64       ff02:ffd::/64       interface  /Common/net_1_1       connected
fe80::%vlan4093/64  fe80::%vlan4093/64  interface  /Common/net_1_1       connected
ff02::/64           ff02::/64           interface  tmm                   connected
fe80::/64           fe80::/64           interface  tmm                   connected
DNS情報
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# list sys dns name-servers
sys dns {
    name-servers { 161.26.0.7 161.26.0.8 }
}
NTPの設定確認と変更
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# list sys ntp
sys ntp {
    servers { 0.pool.ntp.org 1.pool.ntp.org }
    timezone UTC
}
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# modify sys ntp servers replace-all-with {time.adn.networklayer.com}
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# list sys ntp
sys ntp {
    servers { time.adn.networklayer.com }
    timezone UTC
}
root@(f5-ve-01)(cfg-sync Standalone)(Active)(/Common)(tmos)# quit
[root@f5-ve-01:Active:Standalone] config # ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*161.26.0.6      172.25.65.16     2 u   46   64  377    1.489   15.842   4.620
[root@f5-ve-01:Active:Standalone] config # ntpq -c rv
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd 4.2.6p5@1.2349-o Fri Jul 15 08:24:45 UTC 2022 (1)",
processor="x86_64", system="Linux/3.10.0-862.14.4.el7.ve.x86_64",
leap=00, stratum=3, precision=-25, rootdelay=2.862, rootdisp=48.498,
refid=161.26.0.6,
reftime=e6fd958a.c7fc5c21  Fri, Oct 21 2022 22:02:50.781,
clock=e6fd9690.6fa86c2a  Fri, Oct 21 2022 22:07:12.436, peer=42461, tc=6,
mintc=3, offset=15.842, frequency=19.383, sys_jitter=0.000,
clk_jitter=11.469, clk_wander=0.369
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?