콘텐츠로 이동

BIG-IP 구성

  • (Route Domain 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 유닛에서 GRE 터널 엔드포인트로 사용되는 IP로, 일반적으로 외부 VLAN에 위치합니다. 각 유닛은 자체적인 비부동(non-floating) 외부 셀프 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(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

클라우드와 BGP 세션을 형성할 GRE 터널 내부의 내부 IP 주소를 할당합니다. allow-service에는 피어링 세션 수립을 위해 tcp: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

Route Domain 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 kernel — route-map을 통해 null0 정적 경로를 BGP에 주입합니다. 대안으로 명시적인 network 구문(예: network xPROTECTED_PREFIX_V4x)을 사용할 수 있으며, 다른 커널 경로에 관계없이 정확한 프리픽스만 광고되므로 더 정밀합니다. 두 방법 모두 작동하며, 유연성을 위해 엄격한 route-map을 사용한 redistribute kernel이 여기에 표시됩니다.

높은 관리 거리(201)를 가진 null0 정적 경로는 프리픽스가 커널 라우팅 테이블에 존재하도록 보장하여, 비공격 조건에서 정상 라우팅에 영향을 주지 않고 BGP를 통해 클라우드로 재배포될 수 있도록 합니다. 보호된 프리픽스가 더 낮은 관리 거리를 가진 다른 소스로부터 이미 라우팅 테이블에 존재하는 경우, null0 경로는 활성화되지 않아 재배포가 실패할 수 있습니다 — 구성 후 show ip route로 확인하십시오.