데이터 센터 호스트를 연결하기위한 고 처리량 메시 VPN 가까운 시일 내에 성장을 기대하고 있습니다. 모든

우리는 공공 데이터 센터에서 여러 호스트를 임대하고 있습니다. 데이터 센터는 개인 VLAN을 제공하지 않습니다. 모든 호스트는 하나 이상의 공개 IPv4 / IPv6 주소를받습니다. 호스트에는 최신 CPU (Haswell quad-core, 3.4GHz)가 제공되며 Gbit 업 링크가 있습니다. 데이터 센터의 다른 영역 (방? 층? 건물?)은 내가 말할 수있는 것부터 Gbit 또는 500Mbit 링크와 상호 연결되어 있습니다. 우리 호스트는 debian wheezy를 운영하고 있습니다. 현재 10 개 이상의 호스트를 운영하고 있으며 가까운 시일 내에 성장을 기대하고 있습니다.

모든 호스트가 안전하고 기밀로 서로 통신 할 수있는 방법을 찾고 있습니다. 레이어 3은 괜찮고 레이어 2는 괜찮습니다 (필요하지는 않습니다). VLAN에 액세스 할 수 없기 때문에 일종의 VPN이어야합니다.

나에게 중요한 것은 :

  1. 높은 처리량, 유선 속도에 이상적
  2. 분산 형 메시 아키텍처-중앙 요소 (예 : VPN 집중 장치)에 의해 처리량이 느려지지 않도록하기위한 것입니다.
  3. CPU 풋 프린트가 과도하지 않습니다 (AESNI 및 GCM 암호 제품군을 제공합니다.
  4. 사용 편의성; 설정하기에는 너무 복잡하지 않습니다. 기존 연결을 잃지 않고 네트워크가 커질 수 있음

우리는 현재 tinc를 사용 하고 있습니다. [2]와 [4]를 똑딱 거리지 만 960Mbit / s 회선 속도의 약 600Mbit / s (단순)에 도달하고 하나의 코어를 완전히 느슨하게합니다. 또한 현재 개발중인 tinc 1.1은 아직 멀티 스레드가 아니므로 싱글 코어 성능에 갇혀 있습니다.

기존의 IPSec은 문제가되지 않습니다. 중앙 요소 나 sh * tload의 터널을 구성해야하기 때문입니다 ([2]). 기회 암호화를 사용하는 IPsec이 해결책이 될 수 있지만 안정적인 프로덕션 코드로 만들지 확실하지 않습니다.

나는 오늘 tcpcrypt를 우연히 발견했습니다 . 누락 된 인증을 제외하고는 원하는 것 같습니다. 사용자 공간 구현은 느리게 냄새가 나지만 다른 모든 VPN도 마찬가지입니다. 그리고 그들은 커널 구현에 대해 이야기합니다. 아직 시도하지 않았으며 [1]과 [3]의 작동 방식에 관심이 있습니다.

다른 옵션이 있습니까? AWS를 사용 하지 않는 사람들은 무엇을하고 있습니까?

추가 정보

CPU 사용량이 줄어들기를 희망하는 GCM에 관심이 있습니다. 주제에 대한 인텔의 문서를 참조하십시오 . Tinc 개발자 중 한 명과 이야기 할 때, 그는 암호화에 AESNI를 사용하더라도 HMAC (예 : SHA-1)는 여전히 Gbit 속도로 매우 비싸다고 설명했습니다.

최종 업데이트

전송 모드의 IPsec은 완벽하게 작동하며 원하는 것을 정확하게 수행합니다. 많은 평가를 거친 후 나는 AES-GCM을 지원하기 때문에 ipsec-tools보다 Openswan을 선택했습니다. Haswell CPU에서 약 910-920Mbit / sec 심플 렉스 처리량을 약 8-9 %의 CPU로드로 측정 kworkerd합니다.



답변

당신 원하지 않는 것은 VPN입니다. 당신이 원하는 것은 아니지만 터널 모드에서, 참으로 IPsec을합니다. 오히려 IPsec을 전송 모드로 사용 하려고 합니다.

이 구성에서 각 호스트는 해당 피어와 직접 통신하며 패킷 페이로드 만 암호화되어 IP 헤더는 그대로 둡니다. 이런 식으로, 당신은 일을하기 위해 라우팅 체조를 할 필요가 없습니다.

예, 호스트가 서브넷으로 그룹화되지 않은 경우 (CIDR 블록을 통해이를 수행 할 수없는 경우) 각 호스트에 대해 IPsec 연결 스탠자가 필요하지만 구성 관리 시스템에서 프로그래밍 방식으로 쉽게 생성 할 수 있습니다.

구성 세부 사항에 대해서는 묻지 않았지만 포인터가 필요한 경우 (전송 모드에 대한 확실한 정보가 많지 않음) 최근에 작성한 이 블로그 게시물을 참조 할 수 있습니다 .