CloudFlare WARP는 어째서 빠를까?

(Last Updated On: May 31, 2020)

Anycast CDN 회사 CloudFlare의 CloudFlare WARP가 출시된 지 한참 지났지만 어째선가 WARP만 유난히 다른 웹사이트보다 빠르게 접속되고 다른 VPN에 비해서도 속도 측정 값도 잘 나오는 것 이였다. 물론 CloudFlare는 세계 수 많은 회사와 피어링 되어 지역별 ISP 와 라우팅을 최적화 하고 데이터센터 용이기 때문에 높은 용량의 대역폭, 낮은 지연율을 갖으며 CloudFlare CDN을 이용하는 회사는 Cache된 콘텐츠에 내부적으로 엑세스 할 수 있기 때문에 빠른게 어찌보면 당연한 일이다. 그런데도 CloudFlare와 관련 없는 외국 사이트를 이용할 때도 굉장한 속도의 체감을 느낀다. 이 속도 체감은 지인도 느끼기 때문에 나만 느끼는 것이 아니였다. 나는 여러 회사의 VPS 에 VPN을 구축을 몇 번 인가 해 본 경험이 있지만 아무리 네트워크가 좋아도 그렇게 까지 빠르다고 느낀 경험은 없었다.

speed.hetzner.de 는 독일에 위치한 호스팅 회사의 테스트 서버다.

라우팅이 잘 최적화 됐기 때문에?

분명 CloudFlare는 각 ISP와 회선 계약을 통해 최선, 최고의 라우팅 품질을 자랑한다.

분명 한국에 엑세스 지점이 있고 해외망은 자기들 터널로 넘어가 품질 좋은 트래픽을 제공하는 VPN과 클라우드 회사가 몇 있다. (AWS, NewMedia Express 등) 그런데 그런 걸 써도 클라우드플레어와 웹서핑 속도에 미세한 차이를 느꼈다.

라우팅을 가속하는게 아닐까?

이건 좀 어처구니 없는 이야기인 것 같다. 패킷의 우선 순위를 조절하는 QoS는 들어보았지만 이건 절대적으로 끊기면 안 되는 데이터에 한 하여 시행하는 것이고 각 ISP들이 구분하는 특정 IP나 네트워크에 대한 트래픽 및 그런 전자신호에 해당할 것이다. 예를 들어 올림픽이나 월드컵 중계 트래픽을 가져올 때나 미션 크리티컬 트래픽이기 때문에 특별히 다루겠지만 일반적으로 트래픽 용량이 큰 인터넷 데이터 트래픽을 우선으로 하진 않는다. 당장 국내 가정용 네트워크에서도 5ms 내외로 안정적으로 CF 와 통신되는 마당에 이런게 있을리라고는 나는 믿지 않는다.

CDN 회사니까 트래픽을 캐시

가 가능한 건 CloudFlare CDN을 사용하는 웹사이트 뿐 일 것이다. 사실 클라우드플레어는 CDN 회사라 인증서를 만들 수 있는 권한 까지 갖고 있어서 이상할 일은 없겠다만 그렇게 하진 않을 것 이다. 그리고 HTTP 데이터가 아닌 일반 TCP 트래픽도 지원해야 하기 때문에 그렇게 하기는 힘들 것 같다.

VPN 트래픽에 처리 속도가 빠른 서버 사용?

외국 호스팅 회사중에는 싱글 스레드의 속도를 극도로 끌어올린 Overclocked CPU를 팔기도 한다. 불안정 할 텐데 안정성 보다도 속도가 중요한 서비스에서 하겠지..

이런 서버를 VPN 서버로 처리하면 처리할 수 있는 PPS (Packet Per Second) 가 늘어나지 않을까? 라고 하기에는 이미 임베디드용 ARM CPU로 구축한 VPN서버도 1ms 이내의 패킷처리를 하기 때문에 큰 의미가 없다고 생각한다.

그런데 이상한 점이 발견 되었다

클라우드플레어 WARP에서 과연 내 트래픽의 세션 성립 속도는 얼마나 안정적일까? 이걸 알아보려고 PsPing (Windows 응용프로그램)으로 TCP 연속 커넥션을 테스트 해 보았다.

그런데 이상한 점은 포트 번호를 잘못 입력해도, 아이피를 잘못 입력해도 연결에 성공한다는 점이였다.

CloudFlare WARP VPN tunnel
10.5.88.0/24 는 CloudFlare WARP의 터널을 리눅스에서 다시 NAT으로 사용한 VPN 인터페이스다  (아직은 비공식 사용이다)

 

실제로 열려있지 않는. 연결되지 않는 아이피:포트 조합인데 연결에 성공한 반응을 보인다. 모든 아이피와 포트에 대해 TCP handshake 상태가 되는 것이다. 이후 나는 이것에 대해 계속 의심하기 시작했다.

그런데 이전에 나는 클라우드플레어는 Spectrum 이라는 서비스를 만드는데 자사의 IP는 Anycast 이고 로드 밸런싱 되기 때문에 기본적으로  리눅스의 모든 IP:PORT 에 대한 바인딩이 필요했다는 듯한 글을 본 대충 넘겨 본 기억이 있다.

 

WARP 속도의 미학 : Linux Transparent Proxy (TPROXY)

 

Leave a Reply

Your email address will not be published. Required fields are marked *