VPN ความเร็วสูงรองรับการเชื่อมต่อโฮสต์ดาต้าเซ็นเตอร์


16

เรากำลังเช่าโฮสต์จำนวนหนึ่งในดาต้าเซ็นเตอร์สาธารณะ ดาต้าเซ็นเตอร์ไม่มี VLAN ส่วนตัว โฮสต์ทั้งหมดจะได้รับที่อยู่ IPv4 / IPv6 สาธารณะหนึ่งแห่งขึ้นไป โฮสต์มาพร้อมกับ CPU ที่ทันสมัยมาก (Haswell quad-core, 3.4GHz) และมี Gbit อัพลิงค์ พื้นที่ต่างๆ (อาคารห้องพักชั้น) ของดาต้าเซ็นเตอร์นั้นเชื่อมโยงกันด้วย - จากสิ่งที่ฉันสามารถบอกได้ - ลิงก์ Gbit หรือ 500Mbit โฮสต์ของเรากำลังส่งเสียงดังเสียงฮิปปี้เดเบียน ขณะนี้เรากำลังดำเนินการมากกว่า 10 โฮสต์โดยคาดว่าจะมีการเติบโตในอนาคตอันใกล้

ฉันกำลังมองหาวิธีที่จะทำให้ทุกคนในครอบครัวสามารถสื่อสารซึ่งกันและกันได้อย่างปลอดภัยและเป็นความลับ เลเยอร์ 3 ใช้ได้ดีเลเยอร์ 2 ตกลง (แต่ไม่จำเป็น) เนื่องจากฉันไม่สามารถเข้าถึง VLAN ได้มันจะต้องเป็น VPN ในบางประเภท

อะไรที่สำคัญสำหรับฉัน:

  1. ปริมาณงานสูงใกล้กับสายความเร็ว
  2. สถาปัตยกรรมแบบกระจายอำนาจและเป็นตาข่าย - นี่คือการตรวจสอบให้แน่ใจว่าปริมาณงานไม่ได้ชะลอตัวลงโดยองค์ประกอบกลาง (เช่นหัว VPN)
  3. CPU footprint ไม่มากเกินไป (จากชุด AESNI และ GCM-cipher ฉันหวังว่านี่ไม่ใช่ข้อกำหนดที่ไร้สาระ)
  4. ใช้งานง่าย ไม่ซับซ้อนเกินไปในการตั้งค่า เครือข่ายสามารถเติบโตได้โดยไม่สูญเสียการเชื่อมต่อที่สร้างไว้แล้ว

ขณะนี้เรากำลังใช้Tinc มันทำเครื่องหมาย [2] และ [4] แต่ฉันทำได้แค่ 600Mbit / s (simplex) ของ 960Mbit / s cordpeed และฉันปล่อยแกนหนึ่งออกจนหมด นอกจากนี้ tinc 1.1 - ขณะนี้อยู่ระหว่างการพัฒนา - ยังไม่ได้มีหลายเธรดดังนั้นฉันจึงติดอยู่กับประสิทธิภาพแบบซิงเกิลคอร์

IPSec แบบดั้งเดิมไม่เป็นที่ต้องการเนื่องจากต้องการองค์ประกอบกลางหรือ sh * tload ของอุโมงค์ที่จะกำหนดค่า (เพื่อให้บรรลุ [2]) IPsec ที่มีการเข้ารหัสแบบฉวยโอกาสจะเป็นวิธีแก้ปัญหา แต่ฉันไม่แน่ใจว่าจะทำให้เป็นรหัสการผลิตที่เสถียร

ฉันสะดุดtcpcryptวันนี้ ยกเว้นการตรวจสอบที่ขาดหายไปดูเหมือนว่าสิ่งที่ฉันต้องการ การใช้พื้นที่ผู้ใช้มีกลิ่นช้า แต่ VPN อื่นทั้งหมดก็มีเช่นกัน และพวกเขาพูดถึงการใช้เคอร์เนล ฉันยังไม่ได้ลองและยังสนใจว่ามันมีพฤติกรรมอย่างไร [1] และ [3]

มีตัวเลือกอื่น ๆ อีกบ้าง? ผู้คนกำลังทำอะไรที่ไม่ได้อยู่ใน AWS?

ข้อมูลเพิ่มเติม

ฉันสนใจ GCM โดยหวังว่าจะช่วยลดการปล่อยซีพียู ดูกระดาษของอินเทลในหัวข้อ เมื่อพูดคุยกับนักพัฒนาซอฟต์แวร์รายหนึ่งเขาอธิบายว่าแม้การใช้ AESNI สำหรับการเข้ารหัส HMAC (เช่น SHA-1) ยังคงมีราคาแพงมากที่ความเร็ว Gbit

การปรับปรุงครั้งสุดท้าย

IPsec ในโหมดการขนส่งทำงานได้อย่างสมบูรณ์และทำในสิ่งที่ฉันต้องการ หลังจากการประเมินผลจำนวนมากฉันเลือก Openswan มากกว่า ipsec-tools เพียงเพราะรองรับ AES-GCM ใน Haswell ซีพียูผมมาตรการเกี่ยวกับ 910-920Mbit / วินาทีเริมผ่านมีประมาณ 8-9% ภาระของ CPU kworkerdของหนึ่ง


ดังนั้น equiment ต่ำสุดหรือไม่ คุณคาดหวังอะไรเกี่ยวกับประสิทธิภาพหลังจากทำการเข้ารหัสระดับกิกะบิต ไม่มีทาง - ฉันขอแนะนำให้คุณค้นหาโฮสต์มืออาชีพหรือฆ่าส่วนการเข้ารหัส
TomTom

2
@tomtom ตามเอกสารการเข้ารหัสลับของ Intelประสิทธิภาพการเข้ารหัส AES-128-CBC อยู่ที่ 4.52 รอบต่อไบต์หมายความว่า 100 MB / s จะกินมากถึง 450 MHz ของแกนเดียว การถอดรหัสมีค่าใช้จ่ายน้อยกว่ามาก ดังนั้นถ้าปัญหาการใช้งานที่เฉพาะเจาะจงลากประสิทธิภาพลงก็ควรจะทำงานออกมาให้โหลดซึ่งไม่จำเป็นต้องมีประสิทธิภาพของ CPU สูงสุดและประสิทธิภาพของเครือข่ายสูงสุดในเวลาเดียวกัน
the-wabbit

ทำไมคุณต้องการ GCM IPSEC นั้นไม่ไวต่อการโจมตีของ TLS ดังนั้นการพิจารณาใช้ GCM เพื่อแก้ไขจุดอ่อนของ TLS ในโหมด CBC นั้นเป็นจุดที่สงสัย
the-wabbit

คำตอบ:


15

สิ่งที่คุณไม่ต้องการคือ VPN สิ่งที่คุณไม่ต้องการเป็นที่แน่นอน IPsec แต่ไม่ได้อยู่ในโหมดอุโมงค์ ค่อนข้างคุณต้องการ IPsec ในโหมดการขนส่ง

ในการกำหนดค่านี้แต่ละโฮสต์สื่อสารโดยตรงกับเพียร์ของตนและมีการเข้ารหัสแพ็กเก็ตเพย์โหลดเท่านั้นโดยปล่อยให้ส่วนหัว IP อยู่ในตำแหน่ง ด้วยวิธีนี้คุณไม่จำเป็นต้องทำยิมนาสติกเส้นทางเพื่อให้สิ่งต่าง ๆ ทำงานได้

ใช่คุณจะต้องมีการเชื่อมต่อ IPsec สำหรับแต่ละโฮสต์ (เว้นแต่ว่าโฮสต์ของคุณจะถูกจัดกลุ่มในเครือข่ายย่อยซึ่งในกรณีนี้คุณสามารถทำได้ผ่านบล็อก CIDR) แต่สิ่งเหล่านั้นสามารถสร้างได้อย่างง่ายดายโดยระบบการจัดการการกำหนดค่าของคุณ

คุณไม่ได้ถามเกี่ยวกับรายละเอียดการกำหนดค่า แต่ถ้าคุณต้องการพอยน์เตอร์บางส่วน (ไม่มีข้อมูลที่เป็นของแข็งจำนวนมากในโหมดการขนส่ง) คุณสามารถอ้างอิงโพสต์บล็อกนี้ที่ฉันเขียนขึ้นเมื่อไม่นานมานี้


ฉันคิดที่สองที่จะใช้โหมดการขนส่ง IPSEC สำหรับสิ่งนี้ การใช้ PSK กับ OpenSWAN อาจไม่ดีที่สุดสำหรับการตั้งค่าทั้งหมด ลินุกซ์มาพร้อมกับการติดตั้ง IPSEC แบบดั้งเดิมและ keying daemon (แร็กคูน) ฉันจะทำตามนั้นเว้นแต่ว่ามีข้อกำหนดเฉพาะที่ไม่ครอบคลุมโดย KAME / แร็กคูน
the-wabbit

1
ขอบคุณมาก! เมื่อรวมคำแนะนำของคุณฉันใช้การปฏิบัติ IPsec ดั้งเดิมกับแร็กคูน ฉันทดสอบกับเครื่อง single-core ขนาดเล็กก่อนและปริมาณงานเพิ่มขึ้น 50% และความล่าช้าลดลงเป็น 60% ฉันจะยืนยันบนโหนด Haswell ในสัปดาห์หน้าและจะยอมรับคำตอบแล้ว ฉันต้องคิดออกว่า AES-GCM ได้รับการสนับสนุนในเคอร์เนลและวิธีส่งสัญญาณไปยัง IPsec
แฮงค์

@ syneticon-dj - อยากรู้อยากเห็น ... ทำไมไม่ openswan? มันยังคงใช้ ip xfrm ของเคอร์เนลสำหรับ IPsec แต่ใช้พลูโตเป็นพื้นที่ IKE daemon ของผู้ใช้แทนแร็กคูน ฉันไม่ได้สนับสนุนว่า openswan เป็นสิ่งที่ดีที่สุดนั่นคือทั้งหมดที่ฉันเคยใช้และถ้ามีตัวเลือกที่ดีกว่าฉันต้องการย้ายทิศทางนั้น
EEAA

1
อาจทำให้ความชอบส่วนบุคคลลดลง แต่ฉันมักมีปัญหากับการตั้งค่าไฟล์ Free- / OpenSWAN และการกำหนดเส้นทางอย่างน่าเกลียดที่สุด ฉันชอบส่วนไดนามิกracoonctlที่คล้ายกับที่เราเตอร์เชิงพาณิชย์อนุญาตให้ใช้ในการควบคุม IPSEC ของพวกเขา KAME รู้สึกได้รับการออกแบบอย่างละเอียดมากขึ้นในขณะที่ OpenSWAN ค่อนข้างจะรู้สึกได้รับการปะติดกัน
the-wabbit

@ syneticon-dj คุณอยากจะอธิบายเพิ่มเติมเกี่ยวกับเรื่องนี้หรือไม่? คุณหมายถึงคุณสามารถกำหนดเส้นทางเครือข่ายหลายแห่งผ่านลิงค์ IPSec โดยไม่จำเป็นต้องมีการกำหนดค่า SA หลายอย่างเนื่องจากตอนนี้อยู่กับ Openswan หรือไม่
rsuarez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.