BIG-IP 設定
BIG-IP
Section titled “BIG-IP”- (ルートドメイン 0 の例)
以下のすべてのコマンドは、BIG-IP 上の tmsh で実行します。オブジェクト名および IP アドレスは必要に応じて変更してください。
BIG-IP での一般的な GRE トンネル設定については、 Configuring a GRE Tunnel Using BIG-IP を参照してください。クラウドとの初期ルーテッド設定については、K000147949 を参照してください。
[root@bigip:Active]# tmshroot@(bigip)(cfg-sync Standalone)(Active)(/Common)(tmos)#アウターセルフ IP
Section titled “アウターセルフ IP”GRE エンドポイント
これらは各 BIG-IP ユニット上の IP アドレスで、GRE トンネルエンドポイントとして使用されます。通常は外部 VLAN 上に設定します。各ユニットは独自の非フローティングアウターセルフ IP(traffic-group-local-only)を持ちます。
BIG-IP-A:
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/64BIG-IP-B:
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/64GRE トンネル
Section titled “GRE トンネル”各トンネルは、BIG-IP ユニットからクラウドのスクラビングセンターエンドポイントへと接続されます。HA ペア全体で合計 4 つの論理トンネルとなるよう、各ユニットに 2 つのトンネル(地理的に分散した各スクラビングセンターへ 1 つずつ)を作成します。
トンネル C1-T1 — BIG-IP-A から xCENTER_1x へ:
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 へ:
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 へ:
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 へ:
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 など)は任意です。独自の命名規則を使用してください。
トンネル MTU の設定
Section titled “トンネル MTU の設定”GRE カプセル化にはオーバーヘッドが発生します(IPv4 アウターで 24 バイト、IPv6 アウターで 44 バイト)。明示的な MTU を設定しない場合、1500 バイト付近のパケットは断片化またはドロップされます。カプセル化オーバーヘッドを考慮してトンネル MTU を設定してください。
modify net tunnels tunnel xc-ddos-c1t1-v4 mtu 1476modify net tunnels tunnel xc-ddos-c1t1-v6 mtu 1456modify net tunnels tunnel xc-ddos-c1t2-v4 mtu 1476modify net tunnels tunnel xc-ddos-c1t2-v6 mtu 1456modify net tunnels tunnel xc-ddos-c2t1-v4 mtu 1476modify net tunnels tunnel xc-ddos-c2t1-v6 mtu 1456modify net tunnels tunnel xc-ddos-c2t2-v4 mtu 1476modify net tunnels tunnel xc-ddos-c2t2-v6 mtu 1456GRE アンチスプーフィング(上流 ACL)
Section titled “GRE アンチスプーフィング(上流 ACL)”GRE(IP プロトコル 47)は認証を提供しません。アウター IP ペアを知っていれば、誰でもトンネルにトラフィックを注入できます。上流のルーターまたはファイアウォールに ACL を適用して、受信 GRE を期待されるクラウドスクラビングセンターのソース IP のみに制限してください。
! 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-service に tcp:179(BGP)を含める必要があります。インナーセルフ IP に icmp:any を追加することで、トンネル経由の PMTUD および到達性テストが可能になります。
トンネル C1-T1 — BIG-IP-A から xCENTER_1x へ:
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 へ:
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 へ:
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 へ:
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 を使用します。
-
RD 0 用の imish を起動します。
bash tmsh run /util imish -r 0 -
特権モードおよびコンフィグモードに移行します。
imish localhost.localdomain[0]> enablelocalhost.localdomain[0]# configure terminal -
BGP 設定の例:
BIG-IP-A(router-id xBIGIP_A_OUTER_V4x、ネイバー C1-T1 + C2-T1):
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 32ip prefix-list route-to-cloud-ipv4 permit xPROTECTED_PREFIX_V4x
ipv6 prefix-list deny-all6 deny ::/0 le 128ipv6 prefix-list route-to-cloud-ipv6 permit xPROTECTED_PREFIX_V6x
ip route xPROTECTED_NET_V4x xPROTECTED_MASK_V4x null0 201ipv6 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 igpBIG-IP-B(router-id xBIGIP_B_OUTER_V4x、ネイバー C1-T2 + C2-T2):
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 32ip prefix-list route-to-cloud-ipv4 permit xPROTECTED_PREFIX_V4x
ipv6 prefix-list deny-all6 deny ::/0 le 128ipv6 prefix-list route-to-cloud-ipv6 permit xPROTECTED_PREFIX_V6x
ip route xPROTECTED_NET_V4x xPROTECTED_MASK_V4x null0 201ipv6 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 kernel—null0スタティックルートをルートマップ経由で BGP に注入します。代替として明示的なnetworkステートメント(例:network xPROTECTED_PREFIX_V4x)を使用する方法もあります。この方法は他のカーネルルートに関係なく正確なプレフィックスのみがアドバタイズされるためより精確です。どちらの方法も機能しますが、柔軟性のためにredistribute kernelと厳密なルートマップの組み合わせをここでは示しています。
管理距離が高い(201)null0 スタティックルートにより、プレフィックスがカーネルルーティングテーブルに存在することが保証され、非攻撃時の通常のルーティングに影響を与えることなく BGP 経由でクラウドに再配布できます。保護対象プレフィックスが既にルーティングテーブルに別のソースからより低い管理距離で存在する場合、null0 ルートはアクティブにならず、再配布が失敗する可能性があります。設定後は show ip route で確認してください。