เราเรียกใช้เราเตอร์ / ไฟร์วอลล์ OpenBSD เฉพาะเพื่อรองรับ FogBugz On Demand หากคุณไม่ได้ทำงานในบทบาทการขนส่งและต้องการปริมาณข้อมูล pps ที่สูงมากซึ่งฮาร์ดแวร์และซอฟต์แวร์แบบรวมสามารถให้ได้ OpenBSD บนฮาร์ดแวร์ที่เป็นของแข็งจะเป็นโซลูชันที่จัดการจัดการปรับขนาดได้และประหยัดมากขึ้น
เปรียบเทียบ OpenBSD กับ IOS หรือ JUNOS (จากประสบการณ์ของฉัน):
ข้อดี
- ไฟร์วอลล์ pf ไม่ตรงกันในแง่ของความยืดหยุ่นการกำหนดค่าที่จัดการได้และการรวมเข้ากับบริการอื่น ๆ (ทำงานร่วมกับ spamd, ftp-proxy, etc) ได้อย่างราบรื่น ตัวอย่างการกำหนดค่าไม่ยุติธรรม
- คุณได้รับเครื่องมือทั้งหมดของ * ระวังบนเกตเวย์ของคุณ: syslog, grep, netcat, tcpdump, systat, top, cron เป็นต้น
- คุณสามารถเพิ่มเครื่องมือตามความจำเป็น: iperf และ iftop ฉันพบว่ามีประโยชน์มาก
- tcpdump พูดพอแล้ว.
- การกำหนดค่าที่ใช้งานง่ายสำหรับทหารผ่านศึก Unix
- การรวมอย่างราบรื่นกับการจัดการการกำหนดค่าที่มีอยู่ (cfengine, หุ่นกระบอก, สคริปต์, อะไรก็ตาม)
- คุณสมบัติของ gen ถัดไปนั้นฟรีและไม่ต้องใช้โมดูลเสริม
- การเพิ่มประสิทธิภาพมีราคาถูก
- ไม่มีสัญญาการสนับสนุน
ข้อเสีย
- IOS / JUNOS ทำให้การถ่ายโอน / โหลดการกำหนดค่าทั้งหมดง่ายขึ้น ขาดเครื่องมือการจัดการการกำหนดค่าใด ๆ พวกเขาจะง่ายต่อการปรับใช้เมื่อการกำหนดค่าของคุณถูกเขียน
- อินเทอร์เฟซบางตัวไม่พร้อมใช้งานหรือเสถียรใน OpenBSD (เช่นฉันรู้ว่าไม่มีการ์ด ATM DS3 ที่รองรับอย่างดี)
- อุปกรณ์ประเภท Cisco / Juniper ระดับสูงจะรองรับ pps ที่สูงกว่าฮาร์ดแวร์เซิร์ฟเวอร์
- ไม่มีสัญญาการสนับสนุน
ตราบใดที่คุณไม่ได้พูดถึงเราเตอร์แบ็คโบนในสภาพแวดล้อมที่เหมือน ISP หรือเราเตอร์ขอบที่เชื่อมต่อกับการเชื่อมต่อเครือข่ายแบบพิเศษ OpenBSD น่าจะใช้ได้
ฮาร์ดแวร์
สิ่งที่สำคัญที่สุดสำหรับประสิทธิภาพเราเตอร์ของคุณคือ NIC ของคุณ ซีพียูที่รวดเร็วจะได้รับภาระอย่างรวดเร็วภายใต้การโหลดปานกลางหากคุณมี NIC ที่น่ารังเกียจซึ่งขัดจังหวะสำหรับทุก ๆ แพ็กเก็ตที่ได้รับ ค้นหา gigabit NICs ที่รองรับการลดการขัดจังหวะ / การรวมตัวกันอย่างน้อย ฉันโชคดีกับไดร์เวอร์ Broadcom (bge, bnx) และ Intel (em)
ความเร็วของ CPU มีความสำคัญมากกว่าในฮาร์ดแวร์เฉพาะ แต่ไม่ใช่เรื่องที่น่ากังวล ซีพียูระดับเซิร์ฟเวอร์ที่ทันสมัยใด ๆ จะจัดการปริมาณการใช้งานจำนวนมากก่อนที่จะแสดงความตึงเครียดใด ๆ
คว้าซีพียูที่เหมาะสม (หลายคอร์ยังไม่ได้ช่วยอะไรมากมายดูที่ GHz แบบดิบ) ECC RAM ที่ดีฮาร์ดไดรฟ์ที่เชื่อถือได้และแชสซีที่มั่นคง จากนั้นเพิ่มทุกอย่างเป็นสองเท่าและรันสองโหนดเป็นคลัสเตอร์ CARP ที่ใช้งาน / ไม่ทำงาน ตั้งแต่การอัปเกรด pfsync 4.5 ของคุณสามารถใช้งาน / ใช้งานได้ แต่ฉันยังไม่ได้ทดสอบ
เราเตอร์ของฉันกำลังทำงานเคียงข้างกันกับ load-balancer ของเราในการกำหนดค่า 1U twin-node แต่ละโหนดมี:
- แชสซี Supermicro SYS-1025TC-TB (ในตัว Intel Gigabit NICs)
- Xeon Harpertown Quad Core 2GHz CPU (ตัวปรับสมดุลโหลดของฉันใช้หลายคอร์)
- RAM ที่ลงทะเบียน 4GB ของ ECC จาก Kingston
- Add-in ของ Intel Gigabit สองพอร์ต
พวกมันแข็งกระด้างตั้งแต่เริ่มใช้งาน ทุกอย่างเกี่ยวกับเรื่องนี้เกินความจริงสำหรับปริมาณการใช้งานของเรา แต่ฉันได้ทดสอบปริมาณงานสูงกว่า 800Mbps (จำกัด NIC, CPU ไม่ได้ใช้งานเป็นส่วนใหญ่) เราใช้ประโยชน์จาก VLAN อย่างหนักดังนั้นเราเตอร์เหล่านี้จึงต้องจัดการกับปริมาณการใช้ข้อมูลภายในจำนวนมากเช่นกัน
ประสิทธิภาพการใช้พลังงานนั้นยอดเยี่ยมเนื่องจากแชสซี 1U แต่ละตัวมี 700W PSU เดียวที่จ่ายไฟให้สองโหนด เราได้กระจายเราเตอร์และ balancer ผ่านหลายแชสซีเพื่อให้เราสามารถสูญเสียแชสซีทั้งหมดและมีความล้มเหลวได้อย่างราบรื่นมาก (ขอบคุณ pfsync และ CARP)
ระบบปฏิบัติการ
บางคนกล่าวถึงการใช้ Linux หรือ FreeBSD แทน OpenBSD เซิร์ฟเวอร์ของฉันส่วนใหญ่เป็น FreeBSD แต่ฉันชอบเราเตอร์ OpenBSD ด้วยเหตุผลบางประการ:
- เน้นความปลอดภัยและความมั่นคงให้เข้มงวดกว่า Linux และ FreeBSD
- เอกสารที่ดีที่สุดของระบบโอเพ่นซอร์สใด ๆ
- นวัตกรรมของพวกเขามีศูนย์กลางอยู่ที่การใช้งานประเภทนี้ (ดู pfsync, ftp-proxy, carp, การจัดการ vlan, ipsec, sasync, ifstated, pflogd, ฯลฯ - ทั้งหมดนี้รวมอยู่ในฐาน)
- FreeBSD มีการเผยแพร่หลายครั้งในพอร์ตของ pf
- pf มีความสง่างามและจัดการได้มากกว่า iptables, ipchains, ipfw หรือ ipf
- กระบวนการติดตั้ง / ติดตั้ง Leaner
ที่กล่าวว่าหากคุณคุ้นเคยกับ Linux หรือ FreeBSD อย่างสนิทสนมและไม่มีเวลาลงทุน