TMSH で BIG-IP の基本的な設定を行う
BIG-IP v10.0.0 から新たに "TMSH" という、Cisco ライクなシェルがサポートされました。F5 の資料によると「TMSH には以下のような特徴がある」と、まとめられていました。
- ツリー構造
- Action / Object モデル
- 明示的な create と modify 操作
- コンテキスト・センシティブなヘルプ
- CLI historical Stats
- bigpipe 互換性
- 基本的な transaction のサポート
"Cisco ライク" と言う通り、TAB キーや "?" によるコマンド補完が効きます。また、"新規作成時は create"、"変更時は modify"、"削除は delete" と、コマンドが明確に定義されており、後発である分、Cisco など他社の CLI をよく研究してデザインしてあるように思っています(少なくても、私には非常に使い勝手が良いです)。今回は TMSH の概要と、基本的な操作・設定例を記載します。
検証構成¶
今回は BIG-IP 10.1.0 を使い、構成は以下の通りです。
ツリー構造¶
TMSH は「ツリー構造」をとっており、具体的には下記のツリー構造になっています。
- Modules(モジュール)
- Components(コンポーネント)
- Commands(コマンド)
- Configuration items(コンフィギュレーション・アイテム)
- Commands(コマンド)
- Components(コンポーネント)
ツリーは "/"(ルート)から派生し、次は "Modules"(モジュール)、その下は "Components"(コンポーネント)がぶら下がっています。
以下の例では「net モジュール」の「vlan コンポーネント」で「show コマンド」を「VLAN_External コンフィギュレーション・アイテム」に対して実行しています。
1 2 |
|
下記も同じ意味になります。
1 |
|
TMSH を起動する¶
TMSH を起動するには、二通りの方法があります。
- ログイン後、bash から "tmsh" コマンドで起動する
- System → Users → User List から、該当ユーザの "Terminal Access" を "tmsh" へ変更する(※ ただし、Ask F5 や「TMOS Management Guide for BIG-IP Systems(Version 10.1)」にも記載を見つけられないのですが、デフォルトの "admin" ユーザは GUI から Terminal Access を TMSH に変更しても、実際にログインすると bash になっていました)
以下は bash から "tmsh" コマンドを実行した例です。
1 2 |
|
管理アドレスを割り当てる(Management IP を設定する)¶
sys モジュールの management-ip コンポーネントが該当します。以下では管理アドレスとして 192.168.99.31 を割り当てている設定例です。
1 |
|
場合によっては管理用のルーティング(sys モジュールの management-route コンポーネント)も設定しておきます。
VLAN インターフェイスを作成する¶
net モジュールの vlan コンポーネントが該当します。今回は 1.1 側のインターフェイスを「VLAN_External」に、1.2 側のインターフェイスを「VLAN_Inetrnal」に割り当てます。
1 2 |
|
VLAN に IP アドレスを割り当てる(Self IP を設定する)¶
net モジュールの self コンポーネントが該当します。VLAN の割り当てを行う際、許可するサービス(allow-service)も指定しておきます。今回は "VLAN_External"、"VLAN_Internal" ともに ICMP のみを許可します。
1 2 |
|
ノード(Node)を設定する¶
ltm モジュールの node コンポーネントが該当します。今回は 192.168.2.101 〜 103 の 3 ノードを登録し、ICMP によるモニター(死活監視)を設定します。
1 2 3 |
|
プール(Pool)を新規作成し、メンバー(Member)を設定する¶
ltm モジュールの pool コンポーネントが該当します。プール自体を作成(create)した後、変更処理(modify)としてメンバー(members)を追加(add)しています。今回は 192.168.2.101 〜 103 の TCP/80(つまり、"http")を設定します。
1 2 3 4 |
|
モニター(Monitor)を設定する¶
プール自体のモニター方法として、今回は http を指定します。
1 |
|
負荷分散方式(Load-Balancing-Mode)を設定する¶
デフォルトの負荷分散方式は "Round-Robin" です。これを "Least-Connections (Member)" に変更してみます。
1 |
|
プールの作成・負荷分散方式設定・メンバー設定・モニター設定を一度に実施する¶
プール関連の設定を一度に実施する場合は、以下のようになります。
1 |
|
バーチャルサーバ(Virtual Server)を設定する¶
ltm モジュールの virtual コンポーネントが該当します。まず、バーチャルサーバそのものを設定します。
1 |
|
次にアドレスを設定します。今回は "192.168.1.77/32" を設定します。
1 |
|
続いてプロトコル / プロファイル関連を設定します。今回は IP プロトコルとして TCP を指定し、プロファイルは "http" と "tcp" を指定します。
1 2 |
|
仕上げにデフォルトプールを指定します。今回は先ほど作成した "POOL_192.168.1.77_http" を設定します。
1 |
|
バーチャルサーバを一行で設定する¶
ここまでのバーチャルサーバ設定をワンライナーで書くと、このようになります。
1 |
|