[EOS노드원] AWS 네트워크 로드밸런서 DDoS 벤치마크

안녕하세요. EOS BP 후보 EOS 노드원의 Lead Engineer 로빈슨입니다.


  • EOS42 의 Charles H (Telegram ID: ankh2054) 의 글 [DDOS mitigation for EOS Block producers : EOS BP를 위한 DDOS 방어 ]을 보고 홍콩의 EOS BP 후보 HK EOS의 Jae Chung(Telegram ID: jaechung)과 함께 EOS 42의 글에서는 다루지 않았던 AWS NLB (Network Load Balance)에 대한 테스트를 진행하였습니다.

  • 이 글은 AWS NLB가 TCP 연결만을 허용하는 점을 이용하여 트래픽 분산이 아닌 필터로써 유효하지 않은 연결을 걸러내어 DDoS를 막는 방법에 대한 내용을 다룹니다.

  • 이와 다른 구성으로 테스트를 진행한 Jae Chung의 테스트 결과도 공유해주길 기대합니다.

[테스트 환경 구성]


  • Full node(m5.large)와 VPC 내에서 연결된 Producer Node (t2.large) 1개

  • 9876 및 하나의 랜덤 포트

  • LB와 직접연결 Full node (m5.large) 1개

  • JungleTestnet 의 BP peer 로서 연결됨

NLB.001.png

  • DDoS 공격은 9876 포트와 하나의 랜덤포트에 대해 SSDP 공격 방식으로 진행하였습니다.

[AWS NLB DDoS 테스트 결과]


  • 결과적으로 AWS NLB는 BotNet에서 들어오는 DDoS공격을 효과적으로 소화해냈습니다.

  • AWS NLB는 어떻게 유효하지 않은 UDP 패킷을 견뎌낼 수 있었을까요? (코멘트 바랍니다)

result.jpg

  • 아래는 테스트 기간동안 EC2 Instance의 상태 변화에 대한 기록입니다.

  • 테스트는 UTC 기준 5월 10일 17시 20분 즈음부터 약 1시간 가량 진행되었습니다.

  • 특이한 점은 테스트를 시작할때즈음 부터 테스트가 종료된 이후 약 2시간 동안 평소와 다른 낮은 CPU 사용률을 보인 것입니다. 이 지표로만 보았을때 nodeos의 프로세스가 죽어버렸거나 제대로 작동하지 않았을 것으로 추측하였으나, 로그를 보았을 때 정상적으로 블록이 동기화 되었음을 알 수 있었습니다.

  • 로드밸런서에 과도한 트래픽이 발생할 경우 이와 연결된 인스턴스의 가용성을 보장하기 위해 VM 의 컴퓨팅 자원에 대한 우선순위가 올라가는 것이 아닌가 추측을 합니다만, 이 부분에 대해 아시는 분은 코멘트 주시면 감사드리겠습니다.

CPUUtilization.jpg

fullnodelog.jpg

  • 테스트 기간을 전후하여 Network In/Out 차트에 LB를 통화여 들어온 트래픽으로 보이는 스파이크가 발생하였지만 인스턴스에서 소화할 수 있는 수준이었습니다.

NetworkIn.jpg

NetworkOut.jpg

NetworkPacketIn.jpg

NetworkPacketOut.jpg

  • 테스트 기간을 포함하여 모든 기간 동안 인스턴스는 정상적으로 작동이 되었습니다.

HealthyHost.jpg

  • LB로 들어오는 TCP 연결 숫자를 나타내는 차트입니다.TCP를 통한 공격을 진행했는지 여부는 확인할 필요가 있으나, 테스트 기간동안 스파이크가 발생한 것으로 보아 TCP에 대한 공격도 진행한 것으로 판단이됩니다.

NewFlowCount.jpg

  • LB에서 대부분의 공격이 걸러지고 대상 인스턴스까지 도달하지 않았음을 볼 수 있습니다.

ActiveFlowCount.jpg

  • 소비된 LB의 용량을 확인했을때 DDoS 공격으로 인해 LB Unit의 사용량이 늘어난 것을 볼 수 있습니다.

  • ConsumedLBCapacityUnit(LCU) 는 LB의 과금 단위로 서울 기준 1LCU = 0.008 USD로 매우 저렴합니다.

LCU

  • fullnode와 가상 서설망으로 연결된 producer node 가 정상적으로 블록을 생산한 것을 확인하였습니다.

producernodelog.jpg

[DDoS 방어 테스트 결론]


  • Charles H의 벤치마킹 결과에서 Google Network Load Balancer가 효과적으로 DDoS 공격을 막아 낸 것과 같이 이번 테스트에서 시간당 0.008불도 되지 않는 저렴한 비용으로 AWS의 Network Load Balance 또한 효과적으로 공격을 막아내었습니다.

  • 이로써 BP p2p network의 연결에 있어서도 AWS NLB를 거쳐가는 구성을 고려해볼 수 있습니다.

[예정 테스트]


  • 다음 테스트로는 LB가 노드의 응답 속도에 어느정도 영향을 주는지, 그리고 베어메탈 환경에서 AWS NLB을 사용시 성능을 보장하는지 테스트를 진행 할 예정입니다.

스크린샷 2018-05-03 11.31.14.png

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now