BIG-IP 구성
BIG-IP
섹션 제목: “BIG-IP”- (Route Domain 0 예시)
아래의 모든 명령어는 BIG-IP의 tmsh에서 실행됩니다. 객체 이름과 IP는 필요에 따라 조정하십시오.
BIG-IP에서의 일반적인 GRE 터널 구성에 대해서는 Configuring a GRE Tunnel Using BIG-IP를 참조하십시오. 클라우드를 통한 초기 라우팅 구성 설정은 K000147949를 참조하십시오.
tmsh
섹션 제목: “tmsh”[root@bigip:Active]# tmshroot@(bigip)(cfg-sync Standalone)(Active)(/Common)(tmos)#외부 셀프 IP
섹션 제목: “외부 셀프 IP”GRE 엔드포인트
각 BIG-IP 유닛에서 GRE 터널 엔드포인트로 사용되는 IP로,
일반적으로 외부 VLAN에 위치합니다. 각 유닛은 자체적인
비부동(non-floating) 외부 셀프 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 터널
섹션 제목: “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 설정
섹션 제목: “터널 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)
섹션 제목: “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 피어링)
섹션 제목: “내부 셀프 IP (BGP 피어링)”클라우드와 BGP 세션을 형성할 GRE 터널 내부의 내부 IP 주소를
할당합니다. 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/64BGP
섹션 제목: “BGP”Route Domain 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— route-map을 통해null0정적 경로를 BGP에 주입합니다. 대안으로 명시적인network구문(예:network xPROTECTED_PREFIX_V4x)을 사용할 수 있으며, 다른 커널 경로에 관계없이 정확한 프리픽스만 광고되므로 더 정밀합니다. 두 방법 모두 작동하며, 유연성을 위해 엄격한 route-map을 사용한redistribute kernel이 여기에 표시됩니다.
높은 관리 거리(201)를 가진 null0 정적 경로는 프리픽스가 커널
라우팅 테이블에 존재하도록 보장하여, 비공격 조건에서 정상 라우팅에
영향을 주지 않고 BGP를 통해 클라우드로 재배포될 수 있도록 합니다.
보호된 프리픽스가 더 낮은 관리 거리를 가진 다른 소스로부터 이미
라우팅 테이블에 존재하는 경우, null0 경로는 활성화되지 않아 재배포가
실패할 수 있습니다 — 구성 후 show ip route로 확인하십시오.