99705 หน่วยที่ 5

Page 1

5-1 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ หน่วยที่ 5 ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของ เครือข่าย อาจารย์ ดร.เตชค์ฐสิณป์ เพียซ้าย ชื่อ อาจารย์ ดร.เตชค์ฐสิณป์ เพียซ้าย วุฒิ วศ.บ. (วิศวกรรรมโทรคมนาคม) สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง วศ.ม. (วิศวกรรมไฟฟ้า) ปร.ด. (วิศวกรรมไฟฟ้าและคอมพิวเตอร์) มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี ตาแหน่ง อาจารย์ประจาสาขาวิชาวิทยาศาสตร์และเทคโนโลยีสารสนเทศ มหาวิทยาลัยสุโขทัยธรรมาธิราช หน่วยที่เขียน หน่วยที่ 5

5.1.2 ไลบรารีสาหรับระบบอัตโนมัติของเครือข่าย

จาเป็นต้องรู้ก่อนว่าระบบเครือข่ายนั้นทาหน้าที่อะไรที่ต้อง ทางานซ้า ๆ หรือเหมือนเดิมทุกครั้งเพื่อทาการพัฒนาชุดคาสั่งแบบสคริปต์ผ่านการโปรแกรมแทนและมี

เพื่อให้ทางานเป็นอย่างอัตโนมัติได้ ได้แก่

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

เมื่อศึกษาหน่วยที่ 5 จบแล้ว นักศึกษาสามารถ

1. อธิบายการโปรแกรมภาษาไพธอนสาหรับระบบอัตโนมัติของเครือข่ายได้

2. อธิบายเอพีไอสาหรับระบบอัตโนมัติของเครือข่ายได้

ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-2 หน่วยที่ 5 ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของ เครือข่าย เค้าโครงเนื้อหา ตอนที่ 5.1 การโปรแกรมภาษาไพธอนสาหรับระบบอัตโนมัติของเครือข่าย
5.1.1 พื้นฐานภาษาไพธอน
ตอนที่ 5.2 เอพีไอสาหรับระบบอัตโนมัติของเครือข่าย 5.2.1 ซิสโก้เอพีไอ 5.2.2 ไพธอนเอพีไอของค่ายจูนิเปอร์เน็ตเวิร์ก 5.2.3 ไพธอนเอพีไอของค่ายเอริสตาเน็ตเวิร์ก แนวคิด 1. การทาระบบเครือข่ายให้เป็นอัตโนมัตินั้น
ระบบเครือข่ายมีอุปกรณ์เครือข่าย เช่น อุปกรณ์ เราเทอร์ อุปกรณ์สวิตช์ เป็นต้น อุปกรณ์เหล่านี้สามารถตอบสนองต่อการทางานด้วยการโปรแกรมคาสั่ง
การโปรแกรมด้วยภาษาไพธอน
ผลทาให้ระบบเครือข่ายนั้นทางานเป็นอย่างอัตโนมัติ
วัตถุประสงค์

เครือข่ายให้เป็นอย่างอัตโนมัติได้

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

หรือโพรโทคอลเอสเอสเอชเอชจะถูกใช้สาหรับการทาหน้าที่ในการเชื่อมต่อไปยังคอมพิวเตอร์เครื่องอื่น

5-3 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ตอนที่ 5.1 การโปรแกรมภาษาไพธอนสาหรับระบบอัตโนมัติของเครือข่าย โปรดอ่านแผนการสอนประจาตอนที่ 5.1 แล้วจึงศึกษาเนื้อหาสาระ พร้อมปฏิบัติกิจกรรมในแต่ละเรื่อง หัวเรื่อง เรื่องที่ 5.1.1 พื้นฐานภาษาไพธอน เรื่องที่ 5.1.2 ไลบรารีสาหรับระบบอัตโนมัติของเครือข่าย แนวคิด 1.
การโปรแกรมควบคุมการทางานกับอุปกรณ์ฮาร์ดแวร์ต่าง ๆ หรือการโปรแกรมเพื่อ จัดการตั้งค่าอุปกรณ์เครือข่าย เป็นต้น การเรียนรู้พื้นฐานของการโปรแกรมภาษาไพธอนถือเป็นส่วนที่ สาคัญเพื่อทาให้สามารถโปรแกรมควบคุมหรือจัดการตั้งค่าการทางานต่าง ๆ ของอุปกรณ์ในระบบ
พื้นฐานภาษาไพธอนเป็นภาษาสาหรับการโปรแกรมทางคอมพิวเตอร์ที่มีการนาไปประยุกต์ในงานที่ หลากหลาย เช่น
อุปกรณ์เครือข่ายเหล่านี้ ได้แก่ อุปกรณ์เราเทอร์ สวิตช์ ไฟร์วอลล์ โหลดบาลานซ์ เซิร์ฟเวอร์ หรือ อุปกรณ์อื่น ๆ ที่รองรับการใช้งานกับส่วนต่อประสานแบบบรรทัดคาสั่งได้ โดยโพรโทคอลซีเคียวเชลล์
ๆ ภายในระบบเครือข่าย โปรแกรมชุดคาสั่งที่สนับสนุนการโปรแกรมกับอุปกรณ์เครือข่าย ได้แก่ ไลบรารีพารามิโก และไลบรารีเน็ตมิโก วัตถุประสงค์ เมื่อศึกษาตอนที่ 5.1 จบแล้ว นักศึกษาสามารถ 1. อธิบายพื้นฐานภาษาไพธอนได้ 2. อธิบายไลบรารีสาหรับระบบอัตโนมัติของเครือข่ายได้

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

(sequence) ตัวแปรชนิดการแมป (mapping)

ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-4 เรื่องที่ 5.1.1 พื้นฐานภาษาไพธอน การทาระบบเครือข่ายให้เป็นอัตโนมัตินั้น จาเป็นต้องรู้ก่อนว่าระบบเครือข่ายนั้นทาหน้าที่อะไรที่ต้องทางาน ซ้า ๆ หรือเหมือนเดิมทุกครั้ง เพื่อทาการพัฒนาชุดคาสั่งแบบสคริปต์ (script) ผ่านการโปรแกรมแทน และมีผลทาให้ ระบบเครือข่ายนั้นทางานเป็นอย่างอัตโนมัติ ระบบเครือข่ายมีอุปกรณ์เครือข่าย เช่น อุปกรณ์เราเทอร์ อุปกรณ์สวิตช์ เป็นต้น
เช่น การโปรแกรมควบคุมการทางานกับอุปกรณ์ฮาร์ดแวร์ต่าง ๆ หรือการโปรแกรมเพื่อจัดการตั้งค่าอุปกรณ์เครือข่าย เป็น ต้น การเรียนรู้พื้นฐานของการโปรแกรมภาษาไพธอนถือเป็นส่วนที่สาคัญเพื่อทาให้สามารถโปรแกรมควบคุมหรือ จัดการตั้งค่าการทางานต่าง ๆ ของอุปกรณ์เครือข่ายในระบบเครือข่ายให้เป็นอย่างอัตโนมัติได้ ดังนี้ 1. ชนิดของตัวแปรในภาษาไพธอน ชนิดพื้นฐานของตัวแปรภาษาไพธอน ประกอบด้วย ตัวแปรชนิดตัวเลข (numeric) ตัวแปรชนิดลาดับ
และตัวแปรชนิดเซ็ต (set) มีรายละเอียดดังนี้ 1.1 ตัวแปรชนิดตัวเลข ประกอบด้วย int, long, float, complex และ bool 1.2 ตัวแปรชนิดลำดับ ประกอบด้วย str, list และ tuple มีรายละเอียดดังนี้ ▪ str เป็นรูปแบบข้อความ (string) ที่จะกาหนดข้อความด้วยเครื่องหมาย “ ” หรือ ‘ ’ หรือ " " " " " " ระหว่างข้อความ เพื่อกาหนดค่า ดังภาพที่ 5.1 ภาพที่ 5.1 ตัวอย่างการกาหนดค่าตัวแปรชนิดลาดับแบบ string ▪ list เป็นรูปแบบลาดับของข้อความ (string) ภายใต้เครื่องหมาย [ ] เพื่อกาหนดค่า ดังภาพที่ 5.2
5-5 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ภาพที่ 5.2 ตัวอย่างการกาหนดค่าตัวแปรชนิดลาดับแบบ list ▪ tuple เป็นรูปแบบลาดับของข้อความ (string) ภายใต้เครื่องหมาย ( ) เพื่อกาหนดค่า ดังภาพที่ 5.3 ภาพที่ 5.3 ตัวอย่างการกาหนดค่าตัวแปรชนิดลาดับแบบ tuple การเรียกดูสมาชิกของตัวแปรชนิดลาดับ สามารถอ้างอิงด้วยการใช้ค่า index เพื่อการแสดงค่าข้อมูล ดังภาพ ที่ 5.4 ภาพที่ 5.4 ตัวอย่างการกาหนดค่าแบบอ้างอิงด้วยการใช้ค่า index
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-6 การจัดการกับตัวแปรชนิดลาดับแบบ string สามารถแสดงการใช้คาสั่งได้ ดังภาพที่ 5.5 ภาพที่ 5.5 การจัดการกับตัวแปรชนิดลาดับแบบ string การเพิ่มค่าให้กับตัวแปรชนิดลาดับ ดังภาพที่ 5.6 ภาพที่ 5.6 การเพิ่มค่าให้กับตัวแปรชนิดลาดับ 1.3 ตัวแปรชนิดกำรแมป เป็นลักษณะของตัวแปรแบบดิกชันนารี (dictionary - dict) ที่สามารถมี สมาชิกของตัวแปรเป็นชนิดต่าง ๆ ได้ภายในเครื่องหมาย { } ดังภาพที่ 5.7
5-7 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ภาพที่ 5.7 ตัวอย่างการกาหนดค่าตัวแปรชนิดการแมปแบบ dictionary 1.4 ตัวแปรชนิดเซ็ต เป็นตัวแปรสาหรับการจัดการสมาชิกในเซ็ต (set) โดยการดาเนินการของเซ็ต ประกอบด้วย ยูเนียน (union) อินเทอร์เซกชัน (intersection) และดิฟเฟอร์เรนส์ (differences) ดังภาพที่ 5.8 ภาพที่ 5.8 ตัวอย่างการกาหนดค่าตัวแปรชนิดเซ็ต 2. การกระทาในภาษาไพธอน ตัวกระทาหรือโอเปอเรเตอร์ (operator) ในภาษาไพธอนการกระทาเพื่อการคานวณทางคณิตศาสตร์ ทาง ตรรกะหรือทางลอจิก (logic) แบ่งการกระทาพื้นฐานได้ 2 แบบ ได้แก่ (1) ตัวกระทาเกี่ยวกับตัวเลข (numeric operator) และ (2) ตัวกระทาเกี่ยวกับการเปรียบเทียบ (comparison operator) มีรายละเอียดดังนี้ 2.1 ตัวกระทำเกี่ยวกับตัวเลข (numeric operator) ตัวกระทาพื้นฐานเกี่ยวกับตัวเลขของภาษาไพธอน ได้แก่ การบวก การลบ การคูณ (*) การยกกาลัง (**) การหาร (/) การหารต้องการผลลัพธ์จานวนเต็ม (//) และการ หารต้องการเศษ (%) แสดงได้ดังภาพที่ 5.9
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-8 ภาพที่ 5.9 ตัวอย่างตัวกระทาเกี่ยวกับตัวเลข 2.2 ตัวกระทำเกี่ยวกับกำรเปรียบเทียบ (comparison operator) ตัวกระทาพื้นฐานเกี่ยวกับการ เปรียบเทียบของภาษาไพธอน ได้แก่ เท่ากัน มากกว่า น้อยกว่า มากกว่าเท่ากับ น้อยกว่าเท่ากับ แสดงได้ดังภาพที่ 5.10 ภาพที่ 5.10 ตัวอย่างตัวกระทาเกี่ยวกับการเปรียบเทียบ ตัวอย่างการตรวจสอบตรรกะหรือลอจิกของตัวแปร แสดงได้ดังภาพที่ 5.11 ภาพที่ 5.11 ตัวอย่างการตรวจสอบตรรกะหรือลอจิกของตัวแปร 3. การควบคุมการไหลของข้อมูล การควบคุมการไหลของข้อมูลหรือการทางานของโปรแกรม (control flow) คาสั่งพื้นฐานของภาษาไพธอน ได้แก่ if-elif-else while-do และ for มีรายละเอียดดังนี้ 1) คำสั่ง if-elif-else มีรูปแบบดังภาพที่ 5.12
5-9 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ภาพที่ 5.12 รูปแบบของคาสั่ง if-elif-else ตัวอย่างการใช้คาสั่ง if-elif-else ดังภาพที่ 5.13 ภาพที่ 5.13 ตัวอย่างการใช้คาสั่ง if-elif-else 2) คำสั่ง while-do มีรูปแบบดังภาพที่ 5.14 ภาพที่ 5.14 รูปแบบของคาสั่ง while-do ตัวอย่างการใช้คาสั่ง while-do ดังภาพที่ 5.15
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-10 ภาพที่ 5.15 ตัวอย่างการใช้คาสั่ง while-do 3) คำสั่ง for มีรูปแบบดังภาพที่ 5.16 ภาพที่ 5.16 รูปแบบของคาสั่ง for ตัวอย่างการใช้คาสั่ง for ดังภาพที่ 5.17 ภาพที่ 5.17 ตัวอย่างการใช้คาสั่ง for 4. ฟังก์ชันในภาษาไพธอน ฟังก์ชันในภาษาไพธอนคือคาสั่งหลาย ๆ คาสั่งที่ถูกรวบรวมการทางานไว้ภายใต้ชื่อเดียวสาหรับการเรียกใช้ งานและอาจมีการส่งผ่านตัวแปรเข้า (argument) ซึ่งเป็นตัวแปรอิสระและผลลัพธ์การทางานของคาสั่งจะถูกส่งคืน (return) ค่าให้กับตัวแปรตามที่กาหนดเรียกใช้ชื่อฟังก์ชัน โดยรูปแบบการกาหนดหรือสร้างฟังก์ชันต้องทาการระบุ “def” หน้าชื่อของฟังก์ชันที่สร้างขึ้น
5-11 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ รูปแบบการสร้างฟังก์ชันแสดงดังภาพที่ 5.18 ภาพที่ 5.18 รูปแบบการสร้างฟังก์ชัน ตัวอย่างการใช้คาสั่งการสร้างฟังก์ชัน ดังภาพที่ 5.19 ภาพที่ 5.19 ตัวอย่างการใช้ฟังก์ชันที่ถูกสร้าง 5. การสร้างคลาสในภาษาไพธอน คลาสในภาษาไพธอน คือ การนาฟังก์ชันต่าง
และเรียกกลุ่มของรวมของฟังก์ชันนี้ว่า คลาส (class) ตัวอย่างการสร้างคลาสในภาษาไพธอน มีลักษณะดังภาพที่ 5.20 ภาพที่ 5.20 ตัวอย่างการสร้างคลาสชื่อ router ตัวอย่างการเรียกใช้คลาส ดังภาพที่ 5.21
ๆ ที่ได้สร้างขึ้นมารวบรวมเป็นกลุ่มของฟังก์ชันที่มีลักษณะการ ทางานสัมพันธ์กันไว้เป็นกลุ่มเดียวเพื่อให้สะดวกต่อการใช้งาน
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-12 ภาพที่ 5.21 ตัวอย่างการเรียกใช้คลาสชื่อ router 6. การเรียกใช้โมดูลและแพ็กเกจ โมดูล (modules) และแพ็กเกจ (packages) เป็นไฟล์คาสั่งสามารถเรียกใช้หรือนาเข้าเพื่อการโปรแกรม รูปแบบการเรียกใช้โมดูลดังภาพที่ 5.22 ภาพที่ 5.22 รูปแบบการเรียกใช้ modules แพ็กเกจเป็นกลุ่มของโมดูลที่มีการทางานเชื่อมโยงคาสั่งกัน รตัวอย่างโครงสร้างของแพ็กเกจดังภาพที่ 5.23 ภาพที่ 5.23 ตัวอย่างโครงสร้างของ packages ตัวอย่างการเรียกใช้แพ็กเกจแสดงดังภาพที่ 5.24
5-13 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ภาพที่ 5.24 ตัวอย่างการเรียกใช้ packages พื้นฐานการโปรแกรมภาษาไพธอนเหล่านี้จะถูกนาไปประยุกต์ใช้ในเรื่อง 5.1.2 ต่อไป หลังจากศึกษาเนื้อหาสาระเรื่องที่ 5.1.1 แล้ว โปรดปฏิบัติกิจกรรม 5.1.1 ในแนวการศึกษาหน่วยที่ 5 ตอนที่ 5.1 เรื่องที่ 5.1.1

(protocol) ที่ทา หน้าที่สาหรับการติดต่อสื่อสารระหว่างเครื่องหรืออุปกรณ์เครือข่ายผ่านพอร์ต (port) ได้ โพรโทคอลที่ทาหน้าที่

ดังกล่าว เช่น โพรโทคอลซีเคียวเชลล์หรือเอสเอสเอช (Secure Shell - SSH) โพรโทคอลเทลเน็ต

(module) สาหรับบริการให้ผู้ใช้งานติดต่ออุปกรณ์เครือข่าย

เช่น pexpect, telnetlib, paramiko, netmiko เป็นต้น

(Paramiko) และไลบรารีเน็ตมิโก (Netmiko) ที่ได้รับความนิยมนามาใช้กับโปรแกรมแกรม

ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-14 เรื่องที่ 5.1.2 ไลบรารีสาหรับระบบอัตโนมัติของเครือข่าย อุปกรณ์เครือข่าย (network device) หมายถึงอุปกรณ์ที่ทาหน้าที่เชื่อมต่อการติดต่อสื่อสารในระบบ เครือข่าย เช่น อุปกรณ์เราเทอร์ สวิตช์ ไฟร์วอลล์ เป็นต้น ซึ่งบางครั้งเรียกอุปกรณ์เครือข่ายเหล่านี้ว่า “อุปกรณ์เอ็นด์ พอยต์ (endpoint device)” สาหรับระบบอัตโนมัติของเครือข่าย อุปกรณ์เครือข่ายเหล่านี้จะมีซอฟต์แวร์ ระบบปฏิบัติการเครือข่าย (Network Operation System - NOS) บนอุปกรณ์เพื่อสนับสนุนการทางานกับอุปกรณ์ เครือข่ายนั้น ๆ เพื่อให้ผู้ใช้งานสามารถโปรแกรมค
สั่งการทางานตามต้องการได้
(configuration) สาหรับพารามิเตอร์ของอุปกรณ์ผ่านส่วนติดต่อประสานแบบบรรทัดคาสั่ง (Command Line Interface - CLI) เป็นต้น อย่างไรก็ตาม การปรับแต่งการทางานบนอุปกรณ์เครือข่ายที่มีมากกว่าหนึ่งตัวอาจไม่สะดวก ในการทางาน เช่น ต้องทาการปรับแต่งหน้าเครื่องหรืออุปกรณ์ เป็นต้น ดังนั้น การเข้าถึงหรือการเชื่อมต่อกับอุปกรณ์ เครือข่ายเป้าหมายด้วยการสั่งการระยะไกลหรือการรีโมต
สามารถกระทาผ่านโพรโทคอล
เช่น การปรับแต่ง ค่า
(remote)
(TELNET) เป็นต้น โพรโทคอลเอสเอสเอช (SSH) เป็นโพรโทคอลที่ถูกใช้งานสาหรับการทาหน้าที่การเชื่อมต่อกับอุปกรณ์ เครือข่ายเพื่อทาการโปรแกรมคาสั่งสาหรับการปรับแต่งค่าพารามิเตอร์หรือสั่งการอื่น ๆ ตามต้องการ โดยพอร์ตการ ติดต่อการสื่อสารของโพรโทคอล SSH กาหนดเป็นหมายเลข 22 เพื่อให้ผู้ใช้งานเข้าถึง ควบคุม หรือสั่งการเครื่องหรือ อุปกรณ์ได้อย่างปลอดภัย อย่างไรก็ตาม เพื่อให้การโปรแกรมสั่งการมีความสะดวกมากขึ้นสาหรับผู้ใช้งาน ได้มี โปรแกรมชุดคาสั่งหรือไลบรารี (library) หรือโมดูลคาสั่ง
ได้ง่ายและสะดวกรวดเร็วขึ้น
โดยเนื้อหาในตอนนี้ ขอกล่าว
ภาษาไพธอนและกับโพรโทคอล SSH 1. ไลบรารีพารามิโก ไลบรารีพารามิโก (Paramiko) เป็นโมดูลที่มีชุดคาสั่งสาหรับการใช้งานผ่านโพรโทคอล SSH โดยรูปแบบการ ทางานของชุดคาสั่งเป็นลักษณะของการสั่งการผ่านโพรโทคอลที่เชื่อมต่อระหว่างเครื่องคอมพิวเตอร์กับอุปกรณ์ เครือข่ายปลายทาง และการเชื่อมต่อผ่านโพรโทคอล SSH จาเป็นต้องกาหนดหรือระบุชื่อผู้ใช้ (username) และ รหัสผ่าน (password) ที่อยู่ไอพี (IP address) และข้อมูลสาคัญอื่น ๆ ที่ถูกกาหนดไว้เพื่อให้สามารถเข้าถึงอุปกรณ์ เครือข่ายนั้น ๆ ได้ รายละเอียดเบื้องต้นของไลบรารีพารามิโก มีดังนี้ 1.1 ฟังก์ชันของ Paramiko เบื้องต้น เป็นฟังก์ชันคาสั่งเบื้องต้นที่จาเป็นสาหรับการติดต่อกับอุปกรณ์ เครือข่าย ได้แก่ - ฟังก์ชันกาหนดคีย์ของโพรโทคอล
key) เพื่อติดต่อกับอุปกรณ์เครือข่ายหรือโฮสต์ ปลายทาง
- ฟังก์ชันสร้างการติดต่อกับเซิร์ฟเวอร์ปลายทางผ่านโพรโทคอล SSH
connect()
เพียงไลบรารีพารามิโก
SSH (SSH
คือ set_missing_host_key_policy(paramiko.AutoAddPolicy())
คือ

(send)

send(specified string)

(receive)

maximum value in bytes)

และทาการส่งข้อความคาสั่ง “show version | include uptime” ไป และมีการสั่งให้โปรแกรมรอประมาณ

5-15 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ -
หรือช่องทางการสื่อสาร คือ
-
ข้อมูลผ่านช่องทางการสื่อสารที่กาหนดไว้จากฟังก์ชัน invoke_shell() คือ
- ฟังก์ชันรับ
ข้อมูลผ่านช่องทางการสื่อสารที่กาหนดไว้จากฟังก์ชัน invoke_shell() คือ
- ฟังก์ชันปิดการติดต่อสื่อสารของโพรโทคอล SSH คือ close() ▪ การติดตั้งไลบรารี Paramiko สาหรับโปรแกรมภาษาไพธอน สามารถใช้คาสั่ง “pip install paramiko” ▪ ตัวอย่าง สคริปต์การใช้ฟังก์ชันเบื้องต้นของไลบรารี Paramiko ดังภาพที่ 5.25 ภาพที่ 5.25 ตัวอย่างการใช้ฟังก์ชันของไลบรารี Paramiko จากตัวอย่างเป็นการใช้ฟังก์ชันของไลบรารี Paramiko ผ่านโพรโทคอล SSH เพื่อติดต่อกับอุปกรณ์เครือข่าย ที่มีชื่อโฮสต์เป็นที่อยู่ไอพี และมีการป้อนผู้ใช้และรหัสผ่านในการเข้าถึงอุปกรณ์
2 วินาที ก่อนทาการรับข้อความการตอบกลับ เพื่อมาแสดงผล เมื่อรันโปรแกรมแล้วจะได้ผลลัพธ์ ดังภาพที่ 5.26 ภาพที่ 5.26 ผลลัพธ์จากการรันคาสั่งจากภาพที่ 5.25 ▪ ตัวอย่าง สคริปต์ดักจับเครื่องหมายพรอมต์ (prompt - #) ที่ใช้ฟังก์ชันเบื้องต้นของไลบรารี Paramiko เนื่องจากระหว่างการทางานของอุปกรณ์เครือข่ายหรืออุปกรณ์เครือข่ายกาลังประมวลผลอยู่จะทาให้อุปกรณ์ เครือข่ายจะไม่สามารถรับคาสั่งใด ๆ ได้และหากอุปกรณ์เครือข่ายประมวลผลเสร็จแล้วจะปรากฏเครื่องหมาย
ฟังก์ชันสร้างเซสซัน (session)
invoke_shell()
ฟังก์ชันส่ง
recv(the
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-16 prompt เพื่อแสดงให้รู้ว่าอุปกรณ์เครือข่ายพร้อมจะรับคาสั่งการทางานต่อ ดังภาพที่ 5.27 ซึ่งเป็นการเพิ่มฟังก์ชันเพื่อ ดักจับเครื่องหมาย prompt และหากไม่เจอเครื่องหมาย prompt ก็จะไม่ทางานต่อ ภาพที่ 5.27 รูปแบบคาสั่งการดักจับเครื่องหมาย # ฟังก์ชัน
จะรับค่าตัวแปรนาเข้าชื่อ output จากเซิร์ฟเวอร์เพื่อตรวจสอบบรรทัดสุดท้าย สาหรับการค้นหาเครื่องหมาย prompt ซึ่งถ้าตรวจพบเครื่องหมาย prompt จะหมายถึงว่าอุปกรณ์เครือข่ายพร้อมรับ คาสั่งเพื่อประมวลผลคาสั่งใหม่ ดังภาพที่ 5.28 ภาพที่ 5.28 ตัวอย่างคาสั่งดักจับเครื่องหมาย prompt (#) และตรวจสอบการทางานบนระบบ เมื่อรันแล้วจะได้ผลลัพธ์ ดังภาพที่ 5.29
search_prompt()
5-17 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ภาพที่ 5.29 ผลลัพธ์จากการรันคาสั่งจากภาพที่ 5.28 อย่างไรก็ตาม การตรวจสอบการทางานเพื่อรอดักจับเครื่องหมาย prompt ด้วยฟังก์ชัน time.sleep() อาจ ไม่เหมาะสม หากการประมวลผลของคาสั่ง show running-config มีจานวนหลายบรรทัด ทาให้อาจคาดการณ์เรื่อง ของเวลาไม่ได้ ดังนั้นการวนลูปเพื่อตรวจสอบข้อมูลที่ได้รับจะถูกปรับโปรแกรมคาสั่งมาใช้แทนฟังก์ชันดังกล่าว ▪ ตัวอย่าง สคริปต์ดักจับเครื่องหมายพรอมต์ (prompt - #) โดยการวนลูปรอรับข้อมูล การวนลูปรอรับข้อมูล เป็นยการกาหนดฟังก์ชันรับข้อมูลจาก session ก่อนด้วยฟังก์ชัน recv() ขนาดการรับ ข้อมูลประมาณ 64 KB ดังภาพที่ 5.30 ภาพที่ 5.30 กาหนดฟังก์ชันรับข้อมูลจากตัวแปร session1 และทาการเพิ่มฟังก์ชันสาหรับการวนลูปตรวจสอบการรับข้อมูลด้วยฟังก์ชัน send_command() ดังภาพที่ 5.31 ภาพที่ 5.31 กาหนดฟังก์ชันการส่งค่าเพื่อวนลูปตรวจสอบเครื่องหมาย prompt ฟังก์ชัน send_command() จะทาการวนลูปเพื่อรับค่าจากฟังก์ชัน get_session() เพื่อรับข้อมูลมา ตรวจสอบเครื่องหมาย prompt และทาการส่งคืนค่าเมื่อทาการตรวจพบ เมื่อนาฟังก์ชันทั้งสองแทนการใช้คาสั่ง ฟังก์ชัน time.sleep() ในตัวอย่างโปรแกรมภาพที่ 5.28 และแสดงสคริปต์โปรแกรมคาสั่งใหม่ได้ดังภาพที่ 5.32
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-18 ภาพที่ 5.32 คาสั่งตรวจสอบการทางานและดักจับเครื่องหมาย prompt (#) โปรแกรมคาสั่งได้ทาการตรวจสอบการทางานและตรวจจับเครื่องหมาย prompt แทนการใช้ฟังก์ชัน time.sleep() ที่ทาหน้าที่แทนการหน่วง (delay) ผลการรันโปรแกรม ดังภาพที่ 5.33 ภาพที่ 5.33 ผลลัพธ์จากการรันโปรแกรมบางส่วนเบื้องต้นจากภาพที่ 5.32

ด้วยข้อจากัดนี้ ทาให้ไลบรารีเน็ตมิโกจึงได้พัฒนาชุดคาสั่งสาหรับการใช้งานเพิ่มขึ้นและให้ง่ายต่อการใช้งาน

(mode)

คือ ฟังก์ชัน enable()

ฟังก์ชันเปิดสิทธิ์การปรับแต่งค่า (configuration mode) คือ ฟังก์ชัน config_mode()

ฟังก์ชันออกจากสิทธิ์การใช้งานของฟังก์ชัน enable() คือ ฟังก์ชัน exit_enable_mode() - ฟังก์ชันออกจากสิทธิ์การใช้งานการปรับแต่ง คือ ฟังก์ชัน exit_config_mode()

ฟังก์ชันส่ง

5-19 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ 2. ไลบรารีเน็ตมิโก ไลบรารีเน็ตมิโก
เนื่องจากไลบรารี Paramiko
เพิ่มเติม
กับอุปกรณ์เครือข่าย การติดตั้งไลบรารี Netmiko ผ่านโปรแกรมภาษาไพธอน ทาด้วยคาสั่ง “pip install netmiko” รายละเอียดเบื้องต้นสาหรับไลบรารีเน็ตมิโก มีรายละเอียดดังนี้ 2.1. ฟังก์ชันของไลบรำรี Netmiko เบื้องต้น มีฟังก์ชันพื้นฐาน ได้แก่ - ฟังก์ชันสร้างการเชื่อมต่อ (connection) หรือช่องทางการสื่อสาร (session) กับอุปกรณ์เครือข่าย คือ
- ฟังก์ชันกาหนดเปิดสิทธิ์หรือโหมด
-
-
(Netmiko) เป็นไลบรารีที่ได้รับการพัฒนาด้านการใช้งานต่อจากไลบรารี Paramiko
การติดต่อกับอุปกรณ์มีจานวนฟังก์ชันน้อยทาให้ผู้ใช้งานต้องเขียนโปรแกรมชุดคาสั่ง
ฟังก์ชัน ConnectHandler()
การใช้งาน
-
ข้อมูลค าสั่ง ( command) และส่งคืนค่า ให้ตัวแปร ที่ รับค่า คือ ฟังก์ชัน send_command() - ฟังก์ชันส่งข้อมูล คาสั่งการปรับแต่งค่า และส่งคืนค่าให้ตัวแปรที่รับค่า คือ ฟังก์ชัน send_config_set() - ฟังก์ชันยกเลิกการเชื่อมต่อ คือ ฟังก์ชัน disconnect() ▪ ตัวอย่าง สคริปต์การใช้ฟังก์ชันของไลบรารี Netmiko บางฟังก์ชัน ดังภาพที่ 5.34 ภาพที่ 5.34 ตัวอย่างคาสั่งการดักจับเครื่องหมาย prompt (#) ของการใช้ฟังก์ชันไลบรารีเน็ตมิโก จากสคริปต์คาสั่งสังเกตได้ว่าไลบรารี Netmiko มีฟังก์ชันสาหรับทาการตรวจจับเครื่องหมาย prompt ไว้ให้ เรียกใช้งาน ทาให้ผู้ใช้งานสะดวกและใช้งานฟังก์ชันได้ง่าย ซึ่งจะแตกต่างจากการใช้คาสั่งฟังก์ชันของไลบรารี Paramiko
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-20 ผลการรันโปรแกรมของภาพที่ 5.34 แสดงได้ดังนี้ โดยผลการแสดง จะแสดงการตรวจพบเครื่องหมาย prompt และแสดงการเชื่อมต่อของอุปกรณ์เครือข่ายที่ ทางานในขณะนั้น โดยสรุป จากการโปรแกรมภาษาไพธอนที่ใช้ทั้งไลบรารี Paramiko และ Netmiko สังเกตได้ว่าชุดคาสั่ง ฟังก์ชันของไลบรารี Netmiko จะสะดวกต่อการโปรแกรมมากกว่าการใช้ไลบรารี Paramiko อย่างไรก็ตาม ถ้าผู้เขียน ต้องการพัฒนาบางส่วนหรือจัดการเพิ่มเติมเอง สามารถใช้ไลบรารี Paramiko พัฒนาได้และจะอยู่ในรูปแบบของ สคริปต์หรือชุดคาสั่งสาหรับการเรียกใช้งาน หลังจากศึกษาเนื้อหาสาระเรื่องที่ 5.1.2 แล้ว โปรดปฏิบัติกิจกรรม 5.1.2 ในแนวการศึกษาหน่วยที่ 5 ตอนที่ 5.1 เรื่องที่ 5.1.2

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

1. อธิบายซิสโก้เอพีไอได้

2. อธิบายไพธอนเอพีไอของค่ายจูนิเปอร์เน็ตเวิร์กได้

3. อธิบายไพธอนเอพีไอของค่ายเอริสตาเน็ตเวิร์กได้

5-21 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ตอนที่ 5.2 เอพีไอสาหรับระบบอัตโนมัติของเครือข่าย โปรดอ่านแผนการสอนประจาตอนที่ 5 2 แล้วจึงศึกษาเนื้อหาสาระ พร้อมปฏิบัติกิจกรรมในแต่ละเรื่อง หัวเรื่อง เรื่องที่ 5.2.1 ซิสโก้เอพีไอ เรื่องที่ 5 2.2 ไพธอนเอพีไอของค่ายจูนิเปอร์เน็ตเวิร์ก เรื่องที่ 5 2.3 ไพธอนเอพีไอของค่ายเอริสตาเน็ตเวิร์ก แนวคิด 1. ซิสโก้เอพีไอเป็นการใช้โปรแกรมคาสั่งกับอุปกรณ์ของซิสโก้ผ่านเอพีไอที่มีให้บริการ
วัตถุประสงค์ เมื่อศึกษาตอนที่ 5 2 จบแล้ว นักศึกษาสามารถ
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-22 เรื่องที่ 5.2.1 ซิสโก้เอพีไอ รูปแบบของเครือข่ายที่กาหนดโดยซอฟต์แวร์ (Software
- SDN) มีลักษณะของการ จัดการเครือข่ายคอมพิวเตอร์ผ่านชุดคาสั่งหรือสคริปต์ (script) เพื่อทาหน้าที่ควบคุมระบบเครือข่ายจากศูนย์กลาง ในการกาหนดค่าต่าง ๆ ของอุปกรณ์เครือข่ายให้เป็นแบบอัตโนมัติ ผ่านทางส่วนต่อประสานโปรแกรมประยุกต์หรือเอ พีไอ (Application Programming Interfaces - API) โดยการเขียนชุดคาสั่งในอุปกรณ์เครือข่าย ในเรื่องนี้จะกล่าวถึง Cisco ACI ( Cisco Application Centric Infrastructure) (ภาพที่ 5.35) ซึ่งเป็น โซลู ชันหลักของเครือข่ายที่กาหนดโดยซอฟต์แวร์จากการพัฒนาศูนย์ข้อมูลของซิสโก้ เพื่อกาหนดค่าต่าง ๆ ของอุปกรณ์ เครือข่ายที่มีจานวนมาก แทนการกาหนดค่าอุปกรณ์ทีละตัว เพื่อช่วยเพิ่มประสิทธิภาพและลดความยุ่งยากในการ บริหารจัดการที่ครอบคลุมมากกว่าเดิม ภาพที่ 5.35 สถาปัตยกรรมของ Cisco ACI ที่มา: Chris Jackson, Jason Gooley, Adrian Iliesiu and Ashutosh Malegaonkar (2021) เทคโนโลยี Cisco ACI ประกอบด้วย 2 โซลูชัน หลัก ได้แก่ Cisco Nexus familyและ APIC (Cisco Application Policy Infrastructure Controller ) มีรายละเอียดดังนี้ 1) Cisco Nexus family เป็นโซลูชันของ Cisco ACI ที่ทางานบนอุปกรณ์สวิตช์ของ Cisco รุ่น Nexus 9000 ซึ่งสามารถทางานได้ 2 โหมด ขึ้นอยู่กับซอฟต์แวร์ที่ติดตั้งอยู่ในอุปกรณ์ ดังนี้ ▪ NX OS Mode เป็นโหมดซึ่งมี API สาหรับเขียนสคริปต์เพื่อไปควบคุมสวิตช์ทีละตัวได้ ทาให้สามารถ ควบคุมการใช้งานระบบเครือข่ายด้วยการกาหนดนโยบายและการตั้งค่า เมื่อผู้ดูแลระบบทาการกาหนด
จะทาให้อุปกรณ์เครือข่ายทั้งหมดนั้นปรับเปลี่ยนการ กาหนดค่าอุปกรณ์ให้ตรงตามนโยบายที่ต้องการโดยอัตโนมัติ
Defined Networking
นโยบายให้กับระบบเครือข่ายให้เป็นกลุ่มแล้ว

▪ ACI Mode เป็นโหมดที่ถูกกาหนดไว้ในอุปกรณ์ Cisco Nexus ซึ่งเป็นส่วนหนึ่งของโครงสร้างเครือข่าย

และจัดการแบบรวมศูนย์

2) Cisco APIC เป็นตัวควบคุมของสถาปัตยกรรม Cisco ACI โดยจะใช้เทคโนโลยีเครือข่ายเสมือนจริงหรือวี เอ็กซ์แลน (Virtual eXtensible Local Area Network - VXLAN) ในการสร้าง Cisco ACI สาหรับแบ่งย่อยเครือข่าย

5-23 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์
ของระบบเครือข่ายเป็นแบบโซน เพื่อให้อยู่ในรูปแบบที่ทาการควบคุมได้ง่าย (micro-segment) ในทุกการเชื่อมต่อ บนเครือข่าย ทาให้ไม่เกิดการลูป (loop) รูปแบบของการทางานของ Cisco APIC มีองค์ประกอบในการทางานที่ประกอบด้วย 2 ส่วนได้แก่ ส่วนของ NX-OS และส่วนของนโยบาย (policy element) โดยส่วนนี้แบ่งเป็นแบบจาลองหรือโมเดลการทางานของคาสั่งแบบ เชิงตรรกะ (logical model) และแบบจาลองแบบเขิงรูปธรรม (concrete model) โดยทั้งสองแบบจาลองจะทางาน บนระบบปฏิบัติการ Nexus (NX OS) ดังภาพที่ 5.36 โดยการกาหนดค่าคาสั่งแบบจาลองเชิงตรรกะในส่วนของ โครงสร้าง Cisco ACI ที่เก็บอยู่ใน Cisco APIC และตัว Cisco APIC จะทาหน้าที่โดยการแปลงชุดคาสั่งแบบจาลองเชิง ตรรกะแล้วทาการออกเป็นคาสั่งนโยบายในรูปแบบจาลองเชิงรูปธรรม ภาพที่ 5.36 ความสัมพันธ์ระหว่าง แบบจาลองเชิงตรรกะ แบบจาลองเชิงรูปธรรม และระบบปฏิบัติการ ที่มา: Chris Jackson, Jason Gooley, Adrian Iliesiu and Ashutosh Malegaonkar, (2021) โครงสร้างของ Cisco ACI ประกอบด้วย ส่วนประกอบทางกายภาพและทางนามธรรม ส่วนประกอบเหล่านี้ ถูกบันทึกไว้ในแบบจาลองการจัดการสารสนเทศ (Management Information Model - MIM) สามารถแสดงเป็น ลาดับชั้นในการจัดการข้อมูลแบบโครงสร้างเชิงต้นไม้
MIT) แต่ละโหนดในการ จัดการข้อมูลแบบโครงสร้างเชิงต้นไม้ จะแสดงถึงอ็อบเจ็กต์ที่มีการจัดการ (Managed Object - MO) ซึ่งสามารถ แสดงถึงอ็อบเจ็กต์ทางกายภาพ เช่น สวิตช์ ตัวแปลงสัญญาณ แหล่งจ่ายไฟ เป็นต้น และอ็อบเจ็กต์ทางนามธรรม เช่น โพรไฟล์แอปพลิเคชัน กลุ่มอุปกรณ์ปลายทาง หรือข้อความแสดงข้อผิดพลาด เป็นต้น ภาพที่ 5.37 แสดงภาพรวมของ การจัดการข้อมูลแบบโครงสร้างเชิงต้นไม้และองค์ประกอบต่าง ๆ ของ Cisco ACI
(Management Information Tree -
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-24 ภาพที่ 5.37 การจัดการข้อมูลแบบโครงสร้างเชิงต้นไม้ของ Cisco ACI ที่มา: Chris Jackson, Jason Gooley, Adrian Iliesiu and Ashutosh Malegaonkar (2021) สาหรับนักพัฒนาโปรแกรมด้านโครงสร้างพื้นฐานของระบบเครือข่ายของค่าย Cisco สามารถใช้เครื่องมือ สาหรับการโปรแกรมที่เรียกว่า “Cisco Intersight REST API” เพื่อสนับสนุนการทางานให้นักพัฒนาสามารถเชื่อมต่อ กับอุปกรณ์ในสถาปัตยกรรมแบบ REST ได้ ดังภาพที่ 5.38 ทั้งนี้ทางค่าย Cisco ได้ให้บริการ API สาหรับการรับและ ส่งข้อความบนโพรโตคอล HTTP หรือ HTTPS ในรูปแบบภาษา JSON หรือ XML ซึ่งรายละเอียดอื่น ๆ สามารถศึกษา เพิ่มเติมได้จากเว็บไซต์ https://intersight.com/apidocs ภาพที่ 5.38 เครื่องมือ Cisco Intersight Developer ที่มา: https://www.ciscolive.com หลังจากศึกษาเนื้อหาสาระเรื่องที่ 5 2.1 แล้ว โปรดปฏิบัติกิจกรรม 5 2.1 ในแนวการศึกษาหน่วยที่ 5 ตอนที่ 5.2 เรื่องที่ 5.2.1

(Juniper Networks) เป็นบริษัทด้านเทคโนโลยีระบบเครือข่ายและระบบรักษาความ

รวมถึงเป็นผู้ให้บริการเครือข่าย

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

(Remote Procedure Call: RPC) ซึ่งเป็นโพรโทคอลที่ทา

หน้าที่กาหนดรูปแบบการขอใช้บริการสาหรับการรับส่งข้อมูลในลักษณะแท็กของ

https://ultraconfig.com.au/blog/introduction-to-netconf-and-juniper-yang-models/

5-25 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์
กับองค์กรขนาดเล็ก และองค์กรขนาดใหญ่
เรื่องที่ 5.2.2 ไพธอนเอพีไอของค่ายจูนิเปอร์เน็ตเวิร์ก จูนิเปอร์เน็ตเวิร์ก
มั่นคงปลอดภัย
(service provider)
(API) กับผู้ใช้งาน ได้แก่ NETCONF (NETwork CONFiguration protocol) ซึ่งเป็นโพรโทคอลที่พัฒนาเพื่อมาแทนที่โพรโทคอลเอสเอ็นเอ็มพี (Simple Network Management Protocol - SNMP) เพื่อใช้ในการติดตั้ง การจัดการ การปรับแต่งค่า (configuration) รวมถึง การตรวจสอบสถานะหรือมอนิเตอร์ (monitor) การทางานของอุปกรณ์เครือข่าย โพรโทคอล NETCONF เป็นโพรโทคอลนาส่งข้อมูล (transport protocol) ที่ใช้สาหรับการรับส่งข้อมูล สาหรับการปรับแต่งระหว่างไคลเอนท์ (client) และเซิร์ฟเวอร์ (server) เพื่อทาการปรับแต่งและมอนิเตอร์การทางาน ผ่านโพรโทคอลโดยมีการทางานร่วมกับโพรโทคอลอาร์พีซี
rpc (<rpc>) และการตอบกลับการ ขอใช้บริการในลักษณะแท็กของ
(<rpc-reply>) ซึ่งอยู่ในรูปแบบของไฟล์แบบเอ็กซ์เอ็มแอล (XML) ที่เป็นไฟล์ เอกสารข้อมูล ดังภาพที่ 5.39 สาหรับการรับส่งข้อมูลระหว่างอุปกรณ์ผ่านทางโพรโทคอลสื่อสารแบบ SSH ภาพที่ 5.39 โครงสร้างโพรโทคอล NETCONF ที่มา:
โพรโทคอล NETCONF สามารถใช้งานผ่านส่วนติดต่อประสานแบบบรรทัดคาสั่งได้ เพื่อทาการปรับแต่งค่า ระบบและมอนิเตอร์การทางานของอุปกรณ์เครือข่ายนั้น ๆ อย่างไรก็ตาม เนื่องจากการทางานของโพรโทคอล NETCONF รับส่งข้อมูลในรูปแบบเอกสาร XML ทาให้บางครั้งการติดต่อสื่อสารในรูปแบบอื่นหรือเลเยอร์การทางาน
rpc
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-26 อื่นของอุปกรณ์ อาจต้องมีองค์ประกอบการทางานอื่นมาช่วยสนับสนุนการทางานเพิ่มขึ้น รูปแบบหนึ่งที่ได้มีการ พัฒนาภาษาข้อมูลเพื่อมาจัดการให้สนับสนุนการทางานดังกล่าว ได้แก่ YANG (Yet Another Next Generation) โดย YANG เป็นรูปแบบภาษาการสร้างแบบจาลองข้อมูลที่ทางานร่วมกับโพรโทคอล NETCONF ดังภาพที่ 5.40 ภาพที่ 5.40 การทางานร่วมกันของ โพรโทคอล NETCONF และ YANG ที่มา: https://www.researchgate.net/figure/NETCONF-protocol-layers-with-YANGmodel_fig2 344267037 1. ส่วนประกอบการรับส่งข้อมูลของโพรโทคอล NETCONF การรับส่งข้อมูลของโพรโทคอล NETCONF มีส่วนประกอบของฝั่งไคลเอนท์และฝั่งเซิร์ฟเวอร์ ได้แก่
ฝั่งไคลเอนท์
Client) ทาหน้าที่เป็นตัวจัดการอุปกรณ์บน เครือข่าย (network manager) ที่ต้องการทาการปรับแต่งค่าของอุปกรณ์ 2) ส่วนประกอบของ NETCONF ฝั่งเซิร์ฟเวอร์ (NETCONF Server) หมายถึงตัวอุปกรณ์ที่ทาหน้าที่ เปิดใช้งานโพรโทคลอล NETCONF เพื่อใช้สาหรับการทาปรับแต่งค่า ทั้งนี้การทางานทางฝั่ง NETCONF client จะทาการส่งชุดคาสั่งและทางานร่วมกับไฟล์ข้อมูลแบบ YANG เช่น ค่าการปรับแต่ง เป็นต้น ไปยังฝั่งของ NETCONF server เพื่อทาการปรับแต่งค่าของระบบอุปกรณ์เครือข่าย ทั้งนี้ การปรับแต่งอาจขึ้นอยู่คาแนะนาของทางผู้ผลิตอุปกรณ์เครือข่ายนั้น ๆ ด้วย 2. การสื่อสารระหว่างฝั่ง client และฝั่ง server ผ่านโพรโทคอล NETCONF การติดต่อสื่อสารระหว่างฝั่ง client และฝั่ง server ผ่านโพรโทคอล NETCONF สามารถติดต่อสื่อสารรับส่ง ข้อมูลได้หลายรูปแบบและแต่ละรูปแบบจะถูกกาหนดเป็นช่องทางการสื่อสารไม่เกี่ยวข้องกัน เช่น การรับส่งข้อมูลของ การปรับแต่งค่าระบบ การรับส่งข้อมูลของการอ่านค่าสถานะการทางาน เป็นต้น ดังภาพที่ 5.41
1) ส่วนประกอบของ NETCONF
(NETCONF
5-27 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ภาพที่ 5.41 ลักษณะการติดต่อสื่อสารรับส่งข้อมูลระหว่าง NETCONF Client และ NETCONF Server ที่มา: https://learning.knetsolutions.in/docs/netconf/ 3. การโปรแกรมภาษาไพธอนสาหรับโพรโทคอล NETCONF สาหรับการโปรแกรมภาษาไพธอนของโพรโทคอล NETCONF ระหว่างอุปกรณ์สามารถกาหนดการเชื่อมต่อ กับอุปกรณ์ปลายทางที่ต้องการปรับแต่งค่าระบบด้วยข้อมูลที่จาเป็นสาหรับการติดต่อ ได้แก่ ชื่อโฮสต์ หมายเลขพอร์ต ชื่อบัญชี รหัสผ่าน และข้อมูลส่วนอื่น ๆ ที่ได้ถูกกาหนดไว้บนตัวอุปกรณ์เพื่อให้การโปรแกรมเข้าถึงตัวอุปกรณ์ได้ ดัง ภาพที่ 5.42 ภาพที่ 5.42 ตัวอย่างโปรแกรมภาษาไพธอนสาหรับติดต่ออุปกรณ์ผ่านโพรโทคอล NETCONF จากการติดต่ออุปกรณ์ปลายทางผ่านโปรแกรมดังภาพที่ 5.42 อุปกรณ์ต้นทางจะได้รับข้อมูลในรูปแบบ เอกสาร XML ที่มีลักษณะตัวอย่าง ดังภาพที่ 5.43
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-28 ภาพที่ 5.43 ตัวอย่างข้อมูลไฟล์เอกสารการตอบกลับแบบ XML อย่างไรก็ตาม ขั้นตอนของการโปรแกรมภาษาไพธอนของโพรโทคอล NETCONF มีขั้นตอนที่ชัดเจนตั้งแต่ การสร้างการติดต่อ การส่งคาสั่ง และการปรับแต่งค่า โดยการปรับแต่งค่าของอุปกรณ์อาจประกอบด้วย คาสั่งล็อก (lock) อุปกรณ์ คาสั่งปรับแต่งค่า (configure) คาสั่งปลดล็อก (unlock) อุปกรณ์ และคาสั่งกาหนดการทางาน (commit) โดยแต่ละคาสั่งเหล่านี้ แสดงดังภาพที่ 5.44 ภาพที่ 5.44 ตัวอย่างการโปรแกรมติดต่อผ่านโพรโทคอล NETCONF สาหรับแต่ละขั้นตอนกับอุปกรณ์ปลายทาง อย่างไรก็ตาม
ปรับแต่งค่าระบบอุปกรณ์ของเครือข่ายสามารถเรียกใช้งาน ได้แก่ ชุดคาสั่ง PyEZ ที่เป็นชุดคาสั่งที่เชื่อมโยงการทางาน กับ API ของอุปกรณ์ค่ายจูนิเปอร์เน็ตเวิร์ก หลังจากศึกษาเนื้อหาสาระเรื่องที่ 5.2.2 แล้ว โปรดปฏิบัติกิจกรรม 5.2.2 ในแนวการศึกษาหน่วยที่ 5 ตอนที่ 5.2 เรื่องที่ 5.2.2
ค่ายจูนิเปอร์เน็ตเวิร์กได้มีการพัฒนาคลังชุดคาสั่งบนภาษาไพธอนเพื่อให้ผู้ใช้งานที่ต้องการ

(software)

(Arista Networks)

5-29 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ เรื่องที่ 5.2.3 ไพธอนเอพีไอของค่ายเอริสตาเน็ตเวิร์ก เอริสตาเน็ตเวิร์ก
เป็นบริษัทผู้ให้บริการและผู้ผลิตอุปกรณ์ ด้านฮาร์ดแวร์ (hardware) ซอฟต์แวร์
และระบบการจัดการบริหารเครือข่าย
management) เพื่อรองรับบริหารจัดการ โครงสร้างพื้นฐานระบบเครือข่ายศูนย์ข้อมูล (Data Center Networking Infrastructure) (ภาพที่ 5.45) ที่ถูก ออกแบบในลักษณะระบบเครือข่ายที่ถูกกาหนดโดยซอฟต์แวร์บนคลาวด์ (Software-Defined Cloud Networking) ซึ่งเป็นเครื่องมือในการบริหารจัดการระบบอัตโนมัติของเครือข่ายที่มีประสิทธิภาพ และได้ให้บริการด้านเอพีไอเพื่อ การนาไปประยุกต์ใช้งานกับอุปกรณ์เครือข่าย ภาพที่ 5.45 โครงสร้างพื้นฐานระบบเครือข่ายศูนย์ข้อมูลของค่ายเอริสตาเน็ตเวิร์ก ที่มา: https://www.arista.com/en/products 1. การบริหารจัดการด้วย Arista eAPI การปรับแต่งอุปกรณ์ด้วย Arista eAPI สนับสนุนการทางานร่วมกับโพรโทคอล HTTP และ HTTPs และ รูปแบบไฟล์เป็น JSON การใช้งานของ Arista eAPI สามารถดาเนินการได้ดังนี้ การเตรียม eAPI สาหรับอุปกรณ์ สามารถดาเนินการขอเปิด (enable) โหมดการทางานได้ตามคาสั่งดังนี้ และการดาเนินการเกี่ยวกับพอร์ต (port) ของโพรโทคอล HTTP ได้ตามคาสั่งดังนี้
(network
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-30 หลังจากนั้นการเข้าหน้าเพจจะปรากฏดังภาพที่ 5.46 ภาพที่ 5.46 ตัวอย่างหน้าต่างของเพจเข้าใช้งาน

Arista

5-31 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์ ตัวอย่างการโปรแกรม eAPI ด้วยภาษาไพธอน มีขั้นตอนดังนี้ โดยขั้นตอนดังกล่าว เป็นการโปรแกรมด้วยภาษาไพธอนร่วมกับโปรแกรมของ eAPI โดยใช้รูปแบบการ ติดต่อสื่อสารผ่านโพรโทคอล HTTP 2. การใช้งาน
Pyeapi library Arista Pyeapi library เป็นคลังชุดคาสั่งหรือไลบรารีที่อานวยความสะดวกสาหรับการเรียกใช้งาน eAPI ด้วยภาษาไพธอนกับอุปกรณ์ของค่ายเอริสตาเน็ตเวิร์ก การติดตั้งชุดคาสั่ง pyeapi ดังภาพที่ 5.44 ภาพที่ 5.44 คาสั่งการติดตั้ง pyeapi การโปรแกรมภาษาไพธอนของไลบรารี Pyeapi ประกอบด้วย คลังชุดคาสั่ง pyeapi เป็นชุดคาสั่งภาษาไพ ธอนเพื่อเชื่อมโยงการทางานของโปรแกรม eAPI กับอุปกรณ์เครือข่าย การนาเข้าไลบรารีใช้คาสั่งดังนี้ ตัวอย่างการใช้ไลบรารีและได้ผลลัพธ์ดังนี้ การปรับแต่งค่าของอุปกรณ์เครือข่าย ด้วยการโปรแกรมภาษาไพธอนสามารถโปรแกรมดังนี้
ภาษาไพธอนและการประยุกต์สาหรับระบบอัตโนมัติของเครือข่าย 5-32 และได้ผลลัพธ์ ดังนี้ ตัวอย่างการโปรแกรมสาหรับกาหนดการเชื่อมต่อของระบบเครือข่ายแบบ VLAN ของอุปกรณ์เครือข่าย สามารถปรับแต่งกับอุปกรณ์ด้วยคาสั่ง ดังนี้ ชุดคาสั่ง pyeapi เป็นชุดคาสั่งมาตรฐานหนึ่งของการทาระบบบอัตโนมัติของเครือข่ายให้กับอุปกรณ์ เครือข่ายในระบบเครือข่าย ดังนั้น จึงสามารถเขียนหรือพัฒนาเป็นชุดโปรแกรมเพื่อบริหารจัดการกับอุปกรณ์เครือข่าย ได้ตลอดเวลา หลังจากศึกษาเนื้อหาสาระเรื่องที่ 5 2 3 แล้ว โปรดปฏิบัติกิจกรรม 5 2 3 ในแนวการศึกษาหน่วยที่ 5 ตอนที่ 5.2 เรื่องที่ 5.2.3

Albrecht, M. (2019. Introduction to NETCONF and Juniper YANG Models. Retrieved from https://ultraconfig.com.au/blog/introduction-to-netconf-and-juniper-yang-models/

Alshawi, M. (2013). Cisco ACI Architecture – Simplified - Cisco Community. Retrieved from www.stou.ac.th/link/mq1Q7Q

Birchard, T. (2020). SSH & SCP in Python with Paramiko. Retrieved from https://hackersandslackers.com/automate-ssh-scp-python-paramiko/

Choi, B. (2021). Introduction to Python network automation: the first journey. Apress Berkeley, CA.

Chou, E. (2018). Mastering Python networking: your one-stop solution to using Python for network automation, DevOps, and test-driven development. 2nd ed. Packt Publishing.

Cisco. (2020). Cisco application centric infrastructure - cisco application centric infrastructure solution overview – Cisco. Retrieved from www.stou.ac.th/link/WvvnX2

Cisco. (2022). Cisco Application Centric Infrastructure - Cisco ACI Contract Guide – Cisco. Retrieved from www.stou.ac.th/link/edzZQa

Khaokaew, N. (2020).

จาก www.stou.ac.th/link/qCHq4G

KNET Solutions. (2023). NETCONF YANG Beginners Course - Book | KNet Solutions. Retrieved from https://learning.knetsolutions.in/docs/netconf/

Nopnithi Khaokaew. (2020). What is NETCONF? ค้นคืนจาก www.stou.ac.th/link/doM3PE

Okasha, K. (2017). Network Automation and the Rise of NETCONF. Retrieved from www.stou.ac.th/link/p2SxLU

Ratan, A. (2017). Practical network automation: leverage the power of python and ansible to optimize your network. 1st ed. Packt Publishing.

Sonsan, S. (2020). เรียนรู้ Network Automation

www.stou.ac.th/link/45dWLT

Srdjan P., Maksim V., Petar C., & Branislav, M.T. (2020). Secure Topology Detection in Software-Defined Networking with Network Configuration Protocol and Link Layer Discovery Protocol. https://www.researchgate.net/publication/344267037

ThemeXpose. (2019). Cisco ACI Basics: EPG and Contracts - The Network DNA. Retrieved from https://www.thenetworkdna.com/2019/12/cisco-aci-basics-epg-and-contracts.html

5-33 ระบบอัตโนมัติของเครือข่ายและความมั่นคงปลอดภัยทางไซเบอร์
บรรณานุกรม
สอนเขียน Python เพื่อใช้ SSH ด้วย Paramiko และ Netmiko แบบรวบรัด ค้นคืน
Python เบื้องต้น ค้นคืนจาก
โดยการใช้

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.