コンテンツにスキップ

BIG-IP 設定

  • (ルートドメイン 0 の例)

以下のすべてのコマンドは、BIG-IP 上の tmsh で実行します。オブジェクト名および IP アドレスは必要に応じて変更してください。

BIG-IP での一般的な GRE トンネル設定については、 Configuring a GRE Tunnel Using BIG-IP を参照してください。クラウドとの初期ルーテッド設定については、K000147949 を参照してください。

tmsh
[root@bigip:Active]# tmsh
root@(bigip)(cfg-sync Standalone)(Active)(/Common)(tmos)#

GRE エンドポイント

これらは各 BIG-IP ユニット上の IP アドレスで、GRE トンネルエンドポイントとして使用されます。通常は外部 VLAN 上に設定します。各ユニットは独自の非フローティングアウターセルフ IP(traffic-group-local-only)を持ちます。

BIG-IP-A:

tmsh
create net self xc-ddos-v4-self-a \
vlan external \
traffic-group traffic-group-local-only \
allow-service add { icmp:any gre:any } \
address xBIGIP_A_OUTER_V4x/24
create net self xc-ddos-v6-self-a \
vlan external \
traffic-group traffic-group-local-only \
allow-service add { icmp:any gre:any } \
address xBIGIP_A_OUTER_V6x/64

BIG-IP-B:

tmsh
create net self xc-ddos-v4-self-b \
vlan external \
traffic-group traffic-group-local-only \
allow-service add { icmp:any gre:any } \
address xBIGIP_B_OUTER_V4x/24
create net self xc-ddos-v6-self-b \
vlan external \
traffic-group traffic-group-local-only \
allow-service add { icmp:any gre:any } \
address xBIGIP_B_OUTER_V6x/64

各トンネルは、BIG-IP ユニットからクラウドのスクラビングセンターエンドポイントへと接続されます。HA ペア全体で合計 4 つの論理トンネルとなるよう、各ユニットに 2 つのトンネル(地理的に分散した各スクラビングセンターへ 1 つずつ)を作成します。

トンネル C1-T1 — BIG-IP-A から xCENTER_1x へ:

tmsh
create net tunnels tunnel xc-ddos-c1t1-v4 \
local-address xBIGIP_A_OUTER_V4x \
profile gre \
remote-address xXC_C1_OUTER_V4x
create net tunnels tunnel xc-ddos-c1t1-v6 \
local-address xBIGIP_A_OUTER_V6x \
profile gre \
remote-address xXC_C1_OUTER_V6x

トンネル C2-T1 — BIG-IP-A から xCENTER_2x へ:

tmsh
create net tunnels tunnel xc-ddos-c2t1-v4 \
local-address xBIGIP_A_OUTER_V4x \
profile gre \
remote-address xXC_C2_OUTER_V4x
create net tunnels tunnel xc-ddos-c2t1-v6 \
local-address xBIGIP_A_OUTER_V6x \
profile gre \
remote-address xXC_C2_OUTER_V6x

トンネル C1-T2 — BIG-IP-B から xCENTER_1x へ:

tmsh
create net tunnels tunnel xc-ddos-c1t2-v4 \
local-address xBIGIP_B_OUTER_V4x \
profile gre \
remote-address xXC_C1_OUTER_V4x
create net tunnels tunnel xc-ddos-c1t2-v6 \
local-address xBIGIP_B_OUTER_V6x \
profile gre \
remote-address xXC_C1_OUTER_V6x

トンネル C2-T2 — BIG-IP-B から xCENTER_2x へ:

tmsh
create net tunnels tunnel xc-ddos-c2t2-v4 \
local-address xBIGIP_B_OUTER_V4x \
profile gre \
remote-address xXC_C2_OUTER_V4x
create net tunnels tunnel xc-ddos-c2t2-v6 \
local-address xBIGIP_B_OUTER_V6x \
profile gre \
remote-address xXC_C2_OUTER_V6x

トンネル名(xc-ddos-c1t1-v4 など)は任意です。独自の命名規則を使用してください。

GRE カプセル化にはオーバーヘッドが発生します(IPv4 アウターで 24 バイト、IPv6 アウターで 44 バイト)。明示的な MTU を設定しない場合、1500 バイト付近のパケットは断片化またはドロップされます。カプセル化オーバーヘッドを考慮してトンネル MTU を設定してください。

tmsh
modify net tunnels tunnel xc-ddos-c1t1-v4 mtu 1476
modify net tunnels tunnel xc-ddos-c1t1-v6 mtu 1456
modify net tunnels tunnel xc-ddos-c1t2-v4 mtu 1476
modify net tunnels tunnel xc-ddos-c1t2-v6 mtu 1456
modify net tunnels tunnel xc-ddos-c2t1-v4 mtu 1476
modify net tunnels tunnel xc-ddos-c2t1-v6 mtu 1456
modify net tunnels tunnel xc-ddos-c2t2-v4 mtu 1476
modify net tunnels tunnel xc-ddos-c2t2-v6 mtu 1456

GRE アンチスプーフィング(上流 ACL)

Section titled “GRE アンチスプーフィング(上流 ACL)”

GRE(IP プロトコル 47)は認証を提供しません。アウター IP ペアを知っていれば、誰でもトンネルにトラフィックを注入できます。上流のルーターまたはファイアウォールに ACL を適用して、受信 GRE を期待されるクラウドスクラビングセンターのソース IP のみに制限してください。

Cisco IOS
! Example upstream router ACL (Cisco IOS style)
ip access-list extended ALLOW-XC-GRE
permit gre host xXC_C1_OUTER_V4x host xBIGIP_A_OUTER_V4x
permit gre host xXC_C2_OUTER_V4x host xBIGIP_A_OUTER_V4x
permit gre host xXC_C1_OUTER_V4x host xBIGIP_B_OUTER_V4x
permit gre host xXC_C2_OUTER_V4x host xBIGIP_B_OUTER_V4x
deny gre any host xBIGIP_A_OUTER_V4x log
deny gre any host xBIGIP_B_OUTER_V4x log

インナーセルフ IP(BGP ピアリング)

Section titled “インナーセルフ IP(BGP ピアリング)”

GRE トンネル内部にインナー IP アドレスを割り当て、クラウドとの BGP セッションを確立します。ピアリングセッションを確立するためには、allow-servicetcp:179(BGP)を含める必要があります。インナーセルフ IP に icmp:any を追加することで、トンネル経由の PMTUD および到達性テストが可能になります。

トンネル C1-T1 — BIG-IP-A から xCENTER_1x へ:

tmsh
create net self xc-ddos-c1t1-inner-v4 \
vlan xc-ddos-c1t1-v4 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C1_T1_INNER_V4x/30
create net self xc-ddos-c1t1-inner-v6 \
vlan xc-ddos-c1t1-v6 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C1_T1_INNER_V6x/64

トンネル C2-T1 — BIG-IP-A から xCENTER_2x へ:

tmsh
create net self xc-ddos-c2t1-inner-v4 \
vlan xc-ddos-c2t1-v4 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C2_T1_INNER_V4x/30
create net self xc-ddos-c2t1-inner-v6 \
vlan xc-ddos-c2t1-v6 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C2_T1_INNER_V6x/64

トンネル C1-T2 — BIG-IP-B から xCENTER_1x へ:

tmsh
create net self xc-ddos-c1t2-inner-v4 \
vlan xc-ddos-c1t2-v4 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C1_T2_INNER_V4x/30
create net self xc-ddos-c1t2-inner-v6 \
vlan xc-ddos-c1t2-v6 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C1_T2_INNER_V6x/64

トンネル C2-T2 — BIG-IP-B から xCENTER_2x へ:

tmsh
create net self xc-ddos-c2t2-inner-v4 \
vlan xc-ddos-c2t2-v4 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C2_T2_INNER_V4x/30
create net self xc-ddos-c2t2-inner-v6 \
vlan xc-ddos-c2t2-v6 \
traffic-group traffic-group-local-only \
allow-service add { tcp:179 icmp:any } \
address xBIGIP_C2_T2_INNER_V6x/64

ルートドメイン 0 の BGP を設定するには imish を使用します。

  1. RD 0 用の imish を起動します。

    bash
    tmsh run /util imish -r 0
  2. 特権モードおよびコンフィグモードに移行します。

    imish
    localhost.localdomain[0]> enable
    localhost.localdomain[0]# configure terminal
  3. BGP 設定の例:

BIG-IP-A(router-id xBIGIP_A_OUTER_V4x、ネイバー C1-T1 + C2-T1):

imish
router bgp xCUSTOMER_ASNx
no synchronization
bgp log-neighbor-changes
no auto-summary
bgp router-id xBIGIP_A_OUTER_V4x
bgp graceful-restart restart-time 120
redistribute kernel route-map route-to-cloud-ipv4
neighbor cloud peer-group
neighbor cloud remote-as xF5_XC_ASNx
neighbor cloud description cloud-peer-group
neighbor cloud password xBGP_PASSWORDx
neighbor cloud timers 10 30
neighbor cloud soft-reconfiguration inbound
neighbor cloud version 4
neighbor cloud capability graceful-restart
neighbor cloud send-community
neighbor cloud ttl-security hops 1
neighbor cloud maximum-prefix 10 warning-only
neighbor cloud prefix-list deny-all in
neighbor cloud prefix-list route-to-cloud-ipv4 out
neighbor xXC_C1_T1_INNER_V4x peer-group cloud
neighbor xXC_C1_T1_INNER_V4x description cloud-c1-t1-v4
neighbor xXC_C2_T1_INNER_V4x peer-group cloud
neighbor xXC_C2_T1_INNER_V4x description cloud-c2-t1-v4
address-family ipv6
redistribute kernel route-map route-to-cloud-ipv6
neighbor cloud activate
neighbor cloud soft-reconfiguration inbound
neighbor cloud capability graceful-restart
neighbor cloud prefix-list deny-all6 in
neighbor cloud prefix-list route-to-cloud-ipv6 out
neighbor xXC_C1_T1_INNER_V6x peer-group cloud
neighbor xXC_C1_T1_INNER_V6x description cloud-c1-t1-v6
neighbor xXC_C2_T1_INNER_V6x peer-group cloud
neighbor xXC_C2_T1_INNER_V6x description cloud-c2-t1-v6
exit-address-family
ip prefix-list deny-all deny 0.0.0.0/0 le 32
ip prefix-list route-to-cloud-ipv4 permit xPROTECTED_PREFIX_V4x
ipv6 prefix-list deny-all6 deny ::/0 le 128
ipv6 prefix-list route-to-cloud-ipv6 permit xPROTECTED_PREFIX_V6x
ip route xPROTECTED_NET_V4x xPROTECTED_MASK_V4x null0 201
ipv6 route xPROTECTED_PREFIX_V6x null0 201
route-map route-to-cloud-ipv4 permit 10
match ip address prefix-list route-to-cloud-ipv4
set origin igp
route-map route-to-cloud-ipv6 permit 10
match ipv6 address prefix-list route-to-cloud-ipv6
set origin igp

BIG-IP-B(router-id xBIGIP_B_OUTER_V4x、ネイバー C1-T2 + C2-T2):

imish
router bgp xCUSTOMER_ASNx
no synchronization
bgp log-neighbor-changes
no auto-summary
bgp router-id xBIGIP_B_OUTER_V4x
bgp graceful-restart restart-time 120
redistribute kernel route-map route-to-cloud-ipv4
neighbor cloud peer-group
neighbor cloud remote-as xF5_XC_ASNx
neighbor cloud description cloud-peer-group
neighbor cloud password xBGP_PASSWORDx
neighbor cloud timers 10 30
neighbor cloud soft-reconfiguration inbound
neighbor cloud version 4
neighbor cloud capability graceful-restart
neighbor cloud send-community
neighbor cloud ttl-security hops 1
neighbor cloud maximum-prefix 10 warning-only
neighbor cloud prefix-list deny-all in
neighbor cloud prefix-list route-to-cloud-ipv4 out
neighbor xXC_C1_T2_INNER_V4x peer-group cloud
neighbor xXC_C1_T2_INNER_V4x description cloud-c1-t2-v4
neighbor xXC_C2_T2_INNER_V4x peer-group cloud
neighbor xXC_C2_T2_INNER_V4x description cloud-c2-t2-v4
address-family ipv6
redistribute kernel route-map route-to-cloud-ipv6
neighbor cloud activate
neighbor cloud soft-reconfiguration inbound
neighbor cloud capability graceful-restart
neighbor cloud prefix-list deny-all6 in
neighbor cloud prefix-list route-to-cloud-ipv6 out
neighbor xXC_C1_T2_INNER_V6x peer-group cloud
neighbor xXC_C1_T2_INNER_V6x description cloud-c1-t2-v6
neighbor xXC_C2_T2_INNER_V6x peer-group cloud
neighbor xXC_C2_T2_INNER_V6x description cloud-c2-t2-v6
exit-address-family
ip prefix-list deny-all deny 0.0.0.0/0 le 32
ip prefix-list route-to-cloud-ipv4 permit xPROTECTED_PREFIX_V4x
ipv6 prefix-list deny-all6 deny ::/0 le 128
ipv6 prefix-list route-to-cloud-ipv6 permit xPROTECTED_PREFIX_V6x
ip route xPROTECTED_NET_V4x xPROTECTED_MASK_V4x null0 201
ipv6 route xPROTECTED_PREFIX_V6x null0 201
route-map route-to-cloud-ipv4 permit 10
match ip address prefix-list route-to-cloud-ipv4
set origin igp
route-map route-to-cloud-ipv6 permit 10
match ipv6 address prefix-list route-to-cloud-ipv6
set origin igp

主要な BGP 設定の説明:

  • timers 10 30 — キープアライブを 10 秒ごとに送信し、ホールドタイムを 30 秒に設定します。デフォルト(60 / 180)は DDoS 緩和フェイルオーバーには遅すぎます。両側で一致させるため、SOC とタイマー値を調整してください。
  • ttl-security hops 1 — GTSM(RFC 5082)を有効にします。BGP セッションは GRE トンネル上のシングルホップであるため、受信 BGP パケットの TTL = 255 を要求することでリモート BGP スプーフィングを防止します。
  • maximum-prefix 10 warning-only — 多層防御のセーフガードです。インバウンドのプレフィックスリストがすべてのルートを拒否していますが、ピアが予期せずプレフィックスを送信した場合に警告を生成します。
  • redistribute kernelnull0 スタティックルートをルートマップ経由で BGP に注入します。代替として明示的な network ステートメント(例: network xPROTECTED_PREFIX_V4x)を使用する方法もあります。この方法は他のカーネルルートに関係なく正確なプレフィックスのみがアドバタイズされるためより精確です。どちらの方法も機能しますが、柔軟性のために redistribute kernel と厳密なルートマップの組み合わせをここでは示しています。

管理距離が高い(201)null0 スタティックルートにより、プレフィックスがカーネルルーティングテーブルに存在することが保証され、非攻撃時の通常のルーティングに影響を与えることなく BGP 経由でクラウドに再配布できます。保護対象プレフィックスが既にルーティングテーブルに別のソースからより低い管理距離で存在する場合、null0 ルートはアクティブにならず、再配布が失敗する可能性があります。設定後は show ip route で確認してください。