XC セットアップガイド - Mesh編

F5ネットワークジャパン テクニカルインフォへようこそ!このページでは、F5のエンジニアが、日々の活動の中で得た成果を日本語で発信いたします。記載の内容について、より詳しい情報を必要とされる方は、担当営業・SE または F5への問い合わせ までご連絡ください。

はじめに

このページでは、これらのオフィシャルなドキュメントの補足となる資料 や 複数の機能を組合せてソリューションを実現する方法をご紹介いたします。 F5のオフィシャルなドキュメントはこちらにございます。

Network CE Site

Network

Networkを構成する要素。​

要素 概要
Interface SiteのInside(LAN)、Outside(Internet)のIPアドレス、DHCPサーバ、DNSの指定等。
Virtual Network Global Network(オーバーレイネットワーク)。Site-to-Site接続等で使用。
Network Connector SiteのInside Local NetworkとGlobal Network等を接続。SNATやForward Proxyの有無を設定。
Fleet 上記要素をSiteへ定義するパラメータの集合体。Fleetのラベルを発行しSiteへ付ける。
BGP SiteのInside/Outsideアンダーレイで接続するBGP Peer
Static Routing SiteのInside/OutsideアンダーレイでStatic Routingで接続
Site Mesh Group Site間でフルメッシュまたはハブアンドスポークでIPSec接続すること。Volterra REを経由しない通信。
_images/image-01-01.png

オブジェクトの関係図

Site Interface

CE Siteのインタフェース設定 – Inside Interface ※Outside Interfaceの基本設定はSite構築時に作成済。

_images/image-01-02.png _images/image-01-03.png

CE Siteのインタフェース設定 – Outside Interface OutsideインタフェースでBGP Peerを張る場合に設定

_images/image-01-04.png

Virtual Network

Site間でLAN-to-LAN通信をしたり、Siteからインターネットへアクセスするためのオーバーレイネットワーク。

_images/image-01-05.png

Network Connector

Site間でLAN-to-LAN接続するために、SiteのInsideとVirtual Networkをコネクト。

_images/image-01-06.png

SiteのInsideとインターネット接続。

_images/image-01-07.png

Fleet

作成したInterfaceとNetwork Connector(Virtual Network指定済み)をSiteへ設定。

_images/image-01-08.png _images/image-01-09.png

作成したFleetをSiteへ定義(Siteへ設定が反映される)

_images/image-01-10.png

ローカルクライアントのNode冗長

ローカルクライアントからのアクセスはデフォルトGWの冗長で切り替わる

_images/image-01-11.png

Routing BGP​

_images/image-01-12.png _images/image-01-13.png

BGPによるRoute冗長

Siteがクラスター構成の場合、同じルートを各Nodeから配信し、ルート冗長が取れる。

_images/image-01-04.png

Static Route

Virtual Networkで定義。

_images/image-01-15.png

Site Mesh Group

ユーザデータのみSite-to-Siteで直接通信。コントロールプレーンはVolterra REを使用。

_images/image-01-16.png
条件
・ Spokeは複数Hubと接続できる。
・ Hub Siteは別グループのSpokeになれるが、同一グループのHub兼Spokeになれない。
・ IPSec-VPNのみ有効、SSL-VPNはサポートしない。
・ Path MTU Discoveryはサポートしない。
Spokeがトンネル構築のInitiator、HubがResponderの役割を担う。
トンネルで使うIPアドレスがプライベートIPの場合、Responder側でUDP4500(NATトラバース)をポートマッピングする。

Site Mesh Group用のラベルを作成。

_images/image-01-17.png

HubとSpoke用のSiteを各々Virtual Siteでグルーピング。

_images/image-01-18.png

IPSec VPNのトンネルIPアドレスとラベルを定義。

_images/image-01-19.png

Site Mesh Group作成

_images/image-01-20.png

ステータス確認

_images/image-01-21.png

Network CSP Site

Virtual Network​

CSP SiteではCEのようにFleetを適用しないため各CSP Siteのページから追加。​ Global Networksの定義によりLAN-to-LAN接続を実現。​

_images/image-02-01.png

Static Route​

_images/image-02-02.png

Site Mesh Group​

基本的な設定はCEと同じ(前章を参照)。​

_images/image-02-03.png

Network Firewall CE Site

Virtual Network​

Network Firewallは3つのタイプをサポート。

タイプ レベル 概要
Network Policy L3-4 送信元・宛先を定義しIngress/Egressでルールを作成。セッションベースのため戻りのルールは不要。
Fast ACL L3-4 CEまたはREに配置したVIP(LB)宛の通信を抑制。DDOS対策。TCP Flag等のL4 Policer。
Forward Proxy Policy L7 送信元のIP Prefixと宛先のTLS Domain、HTTP URL、IP Prefix、BGP ASNを制限。
_images/image-03-01.png

オブジェクトの関係​

Network Policy

_images/image-03-02.png
_images/image-03-03.png

​ .. figure:: images/image-03-04.png

width:1080

Network Policy – Label制御

Network Interfaceにアサインしたラベルを用いアクセス制御できる。

_images/image-03-05.png

​ Network Policyでラベルを選択

_images/image-03-06.png

Fast ACL

Fast ACLを作成。​

_images/image-03-07.png

Policerを作成しProtocl PolicerまたはFast ACLへ定義。

_images/image-03-08.png

Protocl Policerを作成しFast ACLへ定義。

_images/image-03-09.png

Forward Proxy Policy

Network ConnectorでForward ProxyとSNATを有効にする。

_images/image-03-10.png

Forward Proxy Policyを作成。

_images/image-03-11.png
_images/image-03-12.png

最後のAll PermitのPolicyを作成。事前に作成したNetwork FirewallにPolicyを割り当て。

_images/image-03-13.png

Load Balancing

Origin Pool​

Load BalancingするエンドポイントをOrigin Server、その集合体をOrigin Poolと呼ぶ。

_images/image-04-01.png

​ Origin Serverの種類

種類 説明
IP Address パブリック/プライベートのIPアドレス
DNS Name パブリック/プライベートのFQDN
Service Name K8sまたはConsulのサービス名

サービスのポート番号を指定 ロードバランスアルゴリズムを指定

Load Balancing Control

Origin Poolは単一または複数Site内のサービス、各Siteの単一または複数サービスを指定できる。
Load Balancerは単一または複数のOrigin Poolを指定できる。
_images/image-04-02.png

Load Balancer Algorithm(LB)

アルゴリズム 概要
Round Robin 順番にエンドポイントを選択
Least Active Request 有効なリクエスト数が少ないエンドポイント
Random ランダムにエンドポイントを選択
Source IP Stickiness 送信元IPで宛先エンドポイントを維持
Cookie Based Stickiness Cookieを挿入し宛先エンドポイントを維持
Ring Hash Policy Consistent Hashing実装でEndpointの増減時に既存分散通信への影響を少なくする

Load Balancer Algorithm(OP)

アルゴリズム 概要
Round Robin 順番にエンドポイントを選択
Least Active Request 有効なリクエスト数が少ないエンドポイント
Random ランダムにエンドポイントを選択
Ring Hash Policy Consistent Hashing実装でEndpointの増減時に既存分散通信への影響を少なくする
Load Balancer Override LBのアルゴリズムに委任する。SourceIPやCookieでPersistenceする場合はこれを選択。

LB配置とVIP公開 – HTTP/HTTPS

LBは各SiteやVolterra REなどへ自由に配置。
クライアントがアクセスするLBの仮想IPをVIPと呼ぶ。VIPはインターネット、またはイントラネットに公開される。
分散先のOrigin Poolを選択。ロードバランスアルゴリズムを指定
VIP 説明
Advertise on Internet VolterraのグローバルIPでインターネットへ公開。RE経由の通信。
Advertise on Internet(Specified VIP) 追加されたVolterraのグローバルIPでインターネットへ公開。RE経由の通信。
Advertise Custom ユーザのグローバルIPでインターネット、プライベートIPでイントラへ公開。
_images/image-04-03.png

VIPの名前解決 – HTTP/HTTPS

​ VIPに対するDomainの指定。

VIP 項目 説明
Advertise on Internet
    • HTTP
    • HTTPS
    • Volterraが仮のDomainを発行するので、DNSプロバイダのCNAMEレコードに登録。
    • Sub DomainをVolterraへ委任する。DNSプロバイダのNSレコードに登録。
Advertise Custom
(HTTP/HTTPS共通)
    • インターネット
    • イントラネット
    • DNSプロバイダのAレコードに登録。
    • Volterraの内部DNSが自動でAレコードを登録
_images/image-04-04.png

Namespace

​ Load BalancerはNamespace毎に作るため、まずはNamespaceを作成。

_images/image-04-05.png

Origin Pool

​ 同一Site内の複数サービス、複数Siteのサービスを負荷分散対象としてグルーピング

_images/image-04-06.png
_images/image-04-07.png
_images/image-04-08.png

エンドポイントのヘルスチェック

_images/image-04-09.png

HTTPS LB – イントラネット

​ | イントラに公開するサービスのDomainを定義。 | TLS用の証明書と秘密鍵の登録。

_images/image-04-10.png
_images/image-04-11.png

TLS用の証明書、秘密鍵の登録

_images/image-04-12.png

Origin Poolの選択とVIP(LB)の配置。

_images/image-04-13.png

HTTPS LB – インターネット

​ | インターネットへVIPを公開する手法は2つ。 | ① Volterra REで公開 | ② Siteで公開

_images/image-04-14.png

HTTPS LB – インターネット(RE経由)

​ インターネットへ公開するサービスの仮Domainを定義。TLSの証明書と鍵はVolterraが自動生成。

_images/image-04-15.png
_images/image-04-16.png

Origin PoolとVIPを設定。

_images/image-04-17.png

設定したDomainをDelegation。

_images/image-04-18.png
_images/image-04-19.png

HTTPS LB – インターネット(Site直)

​ インターネットへ公開するサービスの仮Domainを定義。TLSの証明書と鍵はVolterraが自動生成。

_images/image-04-20.png
_images/image-04-21.png

TLS用の証明書、秘密鍵の登録

_images/image-04-22.png

Origin Poolの選択とVIP(LB)の配置。

_images/image-04-23.png

LBに複数FQDN指定

​ 一つのロードバランサに複数FQDNを指定できる。

_images/image-04-24.png

HTTPS Origin Server

​ Origin ServerがHTTPSサービスの場合TLS処理する。

_images/image-04-25.png

ロードバランシング – Active/Standby

​ | Active/Standbyの手法は2つ。 | ① Origin Pool間でActive/Standby | ② Origin Server間でActive/Standby

_images/image-04-26.png

Origin Pool間

_images/image-04-27.png
Origin Server間
Origin ServerにActive/Standbyのラベルを定義。
_images/image-04-28.png

Origin PoolでActiveとStandbyのEndpointを追加

_images/image-04-29.png

Origin PoolでActive/Standby用のSubset LBを有効。

_images/image-04-30.png

Load BalancersでActive/Standby用のRouteを設定

_images/image-04-31.png
_images/image-04-32.png

AnycastIP広報によるSite冗長

​ 各Siteで同じVIPを設定し外部へAnycastとして広報すると、クライアントは一番近いSiteへアクセス。Site障害時は別のSiteへアクセス。

_images/image-04-33.png

BGPによるVIP冗長

​ SiteがBGPを使うとLB VIPを自動で伝搬。

_images/image-04-34.png

ローカルクライアントのNode冗長

​ | ローカルクライアントからのアクセスはVIPではなくDNSで冗長される。

$ nslookup vk8s.tokyo.com
Name: vk8s.tokyo.com
Address: 10.1.0.2
障害発生時
$ nslookup vk8s.tokyo.com
Name: vk8s.tokyo.com
Address: 10.1.0.3
_images/image-04-35.png

TCP LoadBalancing

​ 設定手順は基本的にHTTP LBと同じ。Origin Poolを事前に定義。

_images/image-04-36.png

UDP LoadBalancing

​ Orign ServerとなるEndpointを定義。

_images/image-04-37.png

複数のEndpointをClusterとして定義。

_images/image-04-38.png

ClusterへのRouteを定義。

_images/image-04-39.png
_images/image-04-40.png

UDP LBを作成。

_images/image-04-41.png
_images/image-04-42.png

Service Policy

HTTP LBのVIPに対するL7アクセス制御

送信元の指定

送信元 説明
IPv4 Prefix 指定のネットワークアドレスからのアクセス
BGP ASN 特定のAS番号からのアクセス
Country List 特定の国を指定(実態はグローバルIPアドレス)
Rate Limiting
HTTP LB VIPに対するレートリミット。
送信元の識別子:IP Prefix、ASN、HTTP Cookie、HTTP Header Name等。
レートリミットの対象:特定のHTTPメソッド、Domain、パス、ヘッダー等。
Client Blocking 特定の送信元のIP PrefixまたはASNをブロック。

宛先・リクエストの指定

宛先   説明
Server Domain Matcher ドメイン名を指定。完全一致または正規表現。
Request HTTP Method メソッドとHTTPパス。Get, Put, Post等。
  HTTP Query Parameters クエリ文字列。?query=udp等。
  HTTP Headers ヘッダ。User-Agent: Mozilla/4.0等。
  Cookie Matcher Session-id=12345等
  Body Matcher Request Body String。
_images/image-06-01.png

Service PolicyでRuleを定義

_images/image-06-02.png

Service PolicyでRuleを定義(Custom Rule List)

_images/image-06-03.png

Service PolicyをActiveにする

_images/image-06-04.png

HTTP LoadBalancer

Service PolicyをHTTP LBで指定。

_images/image-06-05.png

Service Policy イベント検知

_images/image-06-06.png

API security and Anomaly detection

App Type定義

_images/image-07-01.png

App TypeをLBに設定

_images/image-07-02.png
_images/image-07-03.png

サービス間のAPI連携、スキーマ構造を学習し可視化

リクエスト、エラーレート、遅延等をモニター

_images/image-07-04.png

リクエスト・レスポンスサイズ、受信遅延値、リクエスト・エラーレートの異常検知

_images/image-07-05.png

DDoS

HTTP LBのVIPへのDDoS攻撃を防御。

手法 説明
Javascript Challenge JavaScriptによる問い合わせを送り、ブラウザかどうかを識別
Captcha Challenge 応答者がボットではなく人であることを確認
Policy Based Challenge MLでユーザの挙動を学習しBlock/Javascript/Captchaチャレンジを適用
Rate Limiting
HTTP LB VIPに対するレートリミット。
送信元の識別子:IP Prefix、ASN、HTTP Cookie、HTTP Header Name等。
レートリミットの対象:特定のHTTPメソッド、Domain、パス、ヘッダー等。
Client Blocking 特定の送信元のIP PrefixまたはASNをブロック。
_images/image-08-01.png

Javascript Challenge

JavaScriptによる問い合わせを送り、ブラウザーかどうかを識別。 ブラウザと識別された場合、レスポンスにCookieを挿入して、次回以降のリクエストでは問い合わせない。

_images/image-08-02.png

Captcha Challenge

指定したイメージを選択させ、クライアントがBotではなく人であることを確認。

_images/image-08-03.png

Policy Based Challenge - ML

ML(機械学習)でMaliciousユーザを脅威3レベルに分類。各レベル毎にアクションを指定。

_images/image-08-04.png

脅威レベル毎のアクションを変更。

_images/image-08-05.png

ユーザ識別子の変更。デフォルトではMaliciousユーザ=クライアントIPアドレス。

_images/image-08-06.png

MLを有効にする。

_images/image-08-07.png

Maliciousユーザ検知 - ML

_images/image-08-08.png

Policy Based Challenge - Static

MLではなく送信元や宛先指定でアクションを決める。

_images/image-08-09.png

Rate Limiting

HTTP LB VIPに対するレートリミット。<br> 送信元の識別子:IP Prefix、ASN、HTTP Cookie、HTTP Header Name等。 レートリミットの対象:特定のHTTPメソッド、Domain、パス、ヘッダー等。

_images/image-08-10.png

送信元の識別子を選択。

_images/image-08-11.png

レートリミットの値と対象を選択。

_images/image-08-12.png

レートリミットの対象を選択。

_images/image-08-13.png

Client Blocking

特定の送信元のIP PrefixまたはASNをブロック。

_images/image-08-14.png

WAF & Bot Protection

WAF

WAF:Webアプリケーションに対するシグネチャベースの攻撃検知。

_images/image-09-01.png

WAF用語

用語 説明
Attack Type 攻撃または攻撃のクラスを識別するルールまたはパターン。複数の攻撃シグネチャを持つ。
Attack Signature 攻撃シーケンスを識別するルールまたはパターン。HTTPリクエストとレスポンスに適用。
Accuracy Level 検知するシグネチャレベルを指定。Lowレベルまで指定すると誤検知が多くなる。
False Positive Suppression 機械学習により誤検知を抑制する機能。
Threat Campaign Detection 新たな脅威に対し即座にシグネチャを提供。
Violation Detection HTTPヘッダーやJSONデータなど標準化された形式から逸脱したものを検知。

Bot Protection & Defense

Bot Protection:BotやWebツール、ブラウザ等の不正な振る舞いを検知。

_images/image-09-02.png

BOTの種類

種類 説明
Good Bot 既知の検索エンジンの振る舞いやシグネチャ
Suspicious Bot
悪意のないツールやBotの動作を示すもの。以下はSuspicious Botに分類される。
Tools - Site crawlers, monitors, spiders, web downloaders.
Bots - Social media agents, Search Bot。
Malicious Bot Botシグネチャ、ブラウザ検証テスト、脆弱性スキャナー等で検知したもの。

Bot Defense:JSまたはSDKによりデータ収集、機械学習でリクエストが悪意のあるBotか判断。

_images/image-09-03.png

App Firewall

WAF、Bot Protection用にApp Firewallを作成。

_images/image-09-04.png
_images/image-09-05.png

App Firewall – WAF Custom

_images/image-09-06.png

App Firewall – Bot Protection

_images/image-09-07.png

HTTP LoadBalancer

App FirewallをHTTP LBで指定。

_images/image-09-08.png

WAF イベント検知

_images/image-09-09.png

Bot Protection イベント検知

_images/image-09-10.png

Bot Defense

Bot DefenseをLBで定義。

_images/image-09-11.png
_images/image-09-12.png
_images/image-09-13.png

Bot Defense イベント検知

_images/image-09-14.png
_images/image-09-15.png