NETCONF

ชั้นโปรโตคอล NETCONF

Network Configuration Protocol ( NETCONF ) เป็น โปรโตคอล การจัดการเครือข่ายที่พัฒนาและกำหนดมาตรฐานโดยIETF ได้รับการพัฒนาในคณะทำงานของ NETCONF [1]และเผยแพร่ในเดือนธันวาคม พ.ศ. 2549 เป็น RFC 4741 [2]และแก้ไขในภายหลังในเดือนมิถุนายน พ.ศ. 2554 และเผยแพร่เป็น RFC 6241 [3]ข้อมูลจำเพาะของโปรโตคอล NETCONF เป็นเอกสารติดตามมาตรฐานอินเทอร์เน็ต

NETCONF มีกลไกในการติดตั้ง จัดการ และลบการกำหนดค่าของอุปกรณ์เครือข่าย การดำเนินการนี้เกิดขึ้นจาก เลเยอร์ Remote Procedure Call (RPC) อย่างง่าย โปรโตคอล NETCONF ใช้ การเข้ารหัสข้อมูลตาม Extensible Markup Language (XML) สำหรับข้อมูลการกำหนดค่ารวมถึงข้อความของโปรโตคอล ข้อความโปรโตคอลจะถูกแลกเปลี่ยนบนโปรโตคอลการขนส่งที่ปลอดภัย

โปรโตคอล NETCONF สามารถแบ่งตามแนวคิดออกเป็นสี่เลเยอร์:

  1. ชั้นเนื้อหาประกอบด้วยข้อมูลการกำหนดค่าและข้อมูลการแจ้งเตือน
  2. เลเยอร์การดำเนินการกำหนดชุดของการดำเนินการโปรโตคอลพื้นฐานเพื่อดึงและแก้ไขข้อมูลการกำหนดค่า
  3. เลเยอร์ข้อความมีกลไกสำหรับเข้ารหัสการเรียกขั้นตอนระยะไกล (RPC) และการแจ้งเตือน
  4. เลเยอร์ Secure Transport จัดเตรียมการส่งข้อความที่ปลอดภัยและเชื่อถือได้ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

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

ประวัติศาสตร์

IETF ได้พัฒนาSimple Network Management Protocol (SNMP) ในช่วงปลายทศวรรษ 1980 และได้รับการพิสูจน์แล้วว่าเป็นโปรโตคอลการจัดการเครือข่าย ที่ ได้รับความนิยมอย่างมาก ใน ช่วงต้นของศตวรรษที่ 21 เห็นได้ชัดว่าแม้จะมีจุดประสงค์เดิม แต่ SNMP ไม่ได้ถูกใช้เพื่อกำหนดค่าอุปกรณ์เครือข่าย แต่ส่วนใหญ่ใช้สำหรับการตรวจสอบเครือข่าย ในเดือนมิถุนายน พ.ศ. 2545 คณะกรรมการสถาปัตยกรรมอินเทอร์เน็ตและสมาชิกหลักของชุมชนการจัดการเครือข่ายของ IETF ได้ร่วมกับผู้ให้บริการเครือข่ายเพื่อหารือเกี่ยวกับสถานการณ์ดังกล่าว ผลลัพธ์ของการประชุมนี้ได้รับการบันทึกไว้ใน RFC 3535 ปรากฎว่าผู้ให้บริการเครือข่ายแต่ละรายใช้อินเทอร์เฟซบรรทัดคำสั่ง ที่เป็นกรรมสิทธิ์ที่แตกต่างกันเป็นหลัก(CLI) เพื่อกำหนดค่าอุปกรณ์ของตน สิ่งนี้มีคุณสมบัติหลายอย่างที่ผู้ให้บริการชื่นชอบ รวมถึงข้อเท็จจริงที่ว่ามันเป็นแบบข้อความ ซึ่งตรงข้ามกับSNMP ที่เข้ารหัสด้วย BER นอกจากนี้ ผู้จำหน่ายอุปกรณ์หลายรายไม่ได้ให้ตัวเลือกในการกำหนดค่าอุปกรณ์ผ่าน SNMP อย่างสมบูรณ์ เนื่องจากผู้ให้บริการมักชอบเขียนสคริปต์เพื่อช่วยจัดการกล่องของตน พวกเขาจึงพบว่า SNMP CLI ขาดคุณสมบัติหลายประการ ที่โดดเด่นที่สุดคือลักษณะที่คาดเดาไม่ได้ของผลลัพธ์ เนื้อหาและรูปแบบของเอาต์พุตมีแนวโน้มที่จะเปลี่ยนแปลงในลักษณะที่คาดเดาไม่ได้

ในช่วงเวลาเดียวกันนี้Juniper Networksใช้วิธีการจัดการเครือข่ายแบบ XML สิ่งนี้ถูกนำไปที่ IETF และแบ่งปันกับชุมชนในวงกว้าง โดยรวมแล้ว เหตุการณ์ทั้งสองนี้นำไปสู่ ​​IETF ในเดือนพฤษภาคม 2546 ไปสู่การสร้างคณะทำงาน NETCONF คณะทำงานนี้ได้รับการว่าจ้างให้ทำงานบนโปรโตคอลการกำหนดค่าเครือข่าย ซึ่งจะสอดคล้องกับความต้องการของผู้ให้บริการเครือข่ายและผู้จำหน่ายอุปกรณ์ได้ดีกว่า โปรโตคอล NETCONF พื้นฐานเวอร์ชันแรกเผยแพร่เป็น RFC 4741 ในเดือนธันวาคม 2549 ส่วนขยายหลายรายการได้รับการเผยแพร่ในปีต่อๆ มา (การแจ้งเตือนใน RFC 5277 ในเดือนกรกฎาคม 2551 การล็อกบางส่วนใน RFC 5717 ในเดือนธันวาคม 2552 โดยมีค่าเริ่มต้นใน RFC 6243 ในเดือนมิถุนายน 2011, การแจ้งเตือนของระบบใน RFC 6470 ในเดือนกุมภาพันธ์ 2012, การควบคุมการเข้าถึงใน RFC 6536 ในเดือนมีนาคม 2012) เวอร์ชันแก้ไขของโปรโตคอล NETCONF พื้นฐานได้รับการเผยแพร่เป็น RFC 6241 ในเดือนมิถุนายน 2554

ชั้นโปรโตคอล

เนื้อหา

เนื้อหาของการดำเนินการ NETCONF เป็น XML ที่มีรูปแบบเหมาะสม เนื้อหาส่วนใหญ่เกี่ยวข้องกับการจัดการเครือข่าย ต่อจากนั้น เพิ่ม การรองรับการเข้ารหัสในJavaScript Object Notation (JSON)

คณะทำงาน NETMOD ได้เสร็จสิ้นการทำงานเพื่อกำหนดภาษาการสร้างแบบจำลองที่ "เป็นมิตรกับมนุษย์" สำหรับการกำหนดความหมายของข้อมูลการดำเนินงาน ข้อมูลการกำหนดค่า การแจ้งเตือน และการดำเนินการที่เรียกว่าYANG YANG ถูกกำหนดไว้ใน RFC 6020 (เวอร์ชัน 1) และ RFC 7950 (เวอร์ชัน 1.1) และมาพร้อมกับ "ประเภทข้อมูล YANG ทั่วไป" ที่พบใน RFC 6991

ในช่วงฤดูร้อนปี 2010 คณะทำงาน NETMOD ได้รับการว่าจ้างใหม่ให้ทำงานเกี่ยวกับโมเดลการกำหนดค่าหลัก (ระบบ อินเทอร์เฟซ และการกำหนดเส้นทาง) รวมทั้งทำงานเกี่ยวกับความเข้ากันได้กับภาษาการสร้างโมเดล SNMP

การดำเนินงาน

โปรโตคอลพื้นฐานกำหนดการทำงานของโปรโตคอลต่อไปนี้:

การดำเนินการ คำอธิบาย
<รับ> เรียกใช้ข้อมูลการกำหนดค่าและสถานะอุปกรณ์
<รับการกำหนดค่า> ดึงข้อมูลจากที่เก็บข้อมูลการกำหนดค่าที่ระบุทั้งหมดหรือบางส่วน
<แก้ไข-config> แก้ไขที่เก็บข้อมูลการกำหนดค่าโดยการสร้าง ลบ ผสาน หรือแทนที่เนื้อหา
<คัดลอก-config> คัดลอกที่เก็บข้อมูลการกำหนดค่าทั้งหมดไปยังที่เก็บข้อมูลการกำหนดค่าอื่น
<ลบการกำหนดค่า> ลบที่เก็บข้อมูลการกำหนดค่า
<ล็อค> ล็อกที่เก็บข้อมูลการกำหนดค่าทั้งหมดของอุปกรณ์
<ปลดล็อค> ปล่อยการล็อกที่เก็บข้อมูลการกำหนดค่าที่ได้รับก่อนหน้านี้ด้วยการดำเนินการ <lock>
<ช่วงปิด> ขอยุติเซสชัน NETCONF อย่างสง่างาม
<คิลเซสชั่น> บังคับให้ยุติเซสชัน NETCONF

ฟังก์ชัน NETCONF พื้นฐานสามารถขยายได้ด้วยคำจำกัดความของความสามารถ NETCONF ชุดคุณสมบัติโปรโตคอลเพิ่มเติมที่การนำไปใช้งานรองรับมีการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอ็นต์ระหว่างส่วนการแลกเปลี่ยนความสามารถของการตั้งค่าเซสชัน คุณสมบัติโปรโตคอลบังคับไม่รวมอยู่ในการแลกเปลี่ยนความสามารถเนื่องจากถือว่าเป็นไปตามนั้น RFC 4741 กำหนดความสามารถเพิ่มเติมจำนวนหนึ่งรวมถึง :xpath และ :validate โปรดทราบว่า RFC 6241 ล้าสมัย RFC 4741

ความสามารถในการรองรับการสมัครสมาชิกและรับการแจ้งเตือนเหตุการณ์แบบอะซิงโครนัสได้รับการเผยแพร่ใน RFC 5277 เอกสารนี้กำหนดการดำเนินการ <create-subscription> ซึ่งเปิดใช้งานการสร้างการสมัครสมาชิกตามเวลาจริงและการเล่นซ้ำ การแจ้งเตือนจะถูกส่งแบบอะซิงโครนัสโดยใช้โครงสร้าง <การแจ้งเตือน> นอกจากนี้ยังกำหนดความสามารถ :interleave ซึ่งเมื่อได้รับการสนับสนุนจากความสามารถ :notification พื้นฐานแล้ว จะช่วยอำนวยความสะดวกในการประมวลผลการดำเนินการอื่นๆ ของ NETCONF ในขณะที่การสมัครรับข้อมูลยังทำงานอยู่

ความสามารถในการรองรับการล็อคบางส่วนของการกำหนดค่าที่กำลังรันถูกกำหนดไว้ใน RFC 5717 ซึ่งช่วยให้หลายเซสชันสามารถแก้ไขแผนผังย่อยที่ไม่ทับซ้อนกันภายในการกำหนดค่าที่กำลังทำงานอยู่ หากไม่มีความสามารถนี้ ล็อคเดียวที่ใช้ได้สำหรับการกำหนดค่าทั้งหมด

ความสามารถในการตรวจสอบโปรโตคอล NETCONF ถูกกำหนดไว้ใน RFC 6022 เอกสารนี้มีโมเดลข้อมูลรวมถึงข้อมูลเกี่ยวกับที่เก็บข้อมูล เซสชัน การล็อก และสถิติของ NETCONF ที่อำนวยความสะดวกในการจัดการเซิร์ฟเวอร์ NETCONF นอกจากนี้ยังกำหนดวิธีการสำหรับไคลเอ็นต์ NETCONF เพื่อค้นหาโมเดลข้อมูลที่สนับสนุนโดยเซิร์ฟเวอร์ NETCONF และกำหนดการดำเนินการ <get-schema> เพื่อดึงข้อมูลเหล่านั้น

ข้อความ

เลเยอร์ข้อความของ NETCONF มอบกลไกการกำหนดเฟรมที่ง่ายและไม่ขึ้นกับการขนส่งสำหรับการเข้ารหัส

  • การเรียกใช้ RPC (ข้อความ <rpc>)
  • ผลลัพธ์ RPC (ข้อความ <rpc-reply>) และ
  • การแจ้งเตือนเหตุการณ์ (ข้อความ <การแจ้งเตือน>)

ทุกข้อความของ NETCONF เป็นเอกสาร XML ที่มีรูปแบบถูกต้อง ผลลัพธ์ RPC เชื่อมโยงกับการเรียกใช้ RPC โดยแอตทริบิวต์รหัสข้อความ ข้อความ NETCONF สามารถไปป์ไลน์ได้ กล่าวคือ ไคลเอนต์สามารถเรียกใช้ RPC หลายตัวโดยไม่ต้องรอข้อความผลลัพธ์ของ RPC ก่อน ข้อความ RPC ถูกกำหนดใน RFC 6241 และข้อความแจ้งเตือนถูกกำหนดไว้ใน RFC 5277

ขนส่ง

  • โปรโตคอล NETCONF บน Secure Shell (SSH): rfc:6242
  • โปรโตคอล NETCONF ผ่าน Transport Layer Security (TLS) พร้อมการรับรองความถูกต้องร่วมกัน X.509: rfc:7589

ดูสิ่งนี้ด้วย

  • ยาง
  • สเตฟาน วอลลิน (2014-10-18) บทช่วยสอน NETCONF (YouTube) สตอกโฮล์ม: tail-f. เก็บถาวรจากต้นฉบับเมื่อ 2021-12-21
  • การจัดการเครือข่าย
  • การจัดการการตั้งค่า
  • การตรวจสอบเครือข่าย
  • XML Schema

อ้างอิง

  1. ^ "คณะทำงานการกำหนดค่าเครือข่าย". ไออีทีเอฟ.
  2. ^ เอนส์ ร็อบ (2549) NETCONF Configuration Protocol (รายงานทางเทคนิค) ไออีทีเอฟ. ดอย : 10.17487/RFC4741 . RFC4741.
  3. อรรถ เอนส์ ร็อบ; บียอร์กลันด์, มาร์ติน ; เชินเวลเดอร์, เจอร์เก้น ; เบียร์แมน, แอนดี้ (2554). Network Configuration Protocol (NETCONF) (รายงานทางเทคนิค) ไออีทีเอฟ. ดอย : 10.17487/RFC6241 . RFC6241.