กลับไปหน้าบทความ

อ่าน 5 นาที

การห่อหุ้มการกำหนดเส้นทางทั่วไป

Generic routing encapsulation ( GRE ) เป็น โปรโตคอลการสร้างอุโมงค์ ที่พัฒนาโดย Cisco Systems ซึ่งสามารถ ห่อหุ้ม โปรโตคอล เลเยอร์เครือข่าย ได้หลากหลายชนิดภายใน ลิงก์แบบจุดต่อจุด...

การห่อหุ้มการกำหนดเส้นทางทั่วไป

การห่อหุ้มการกำหนดเส้นทางทั่วไป
โปรโตคอลการสื่อสาร
วัตถุประสงค์การสร้างอุโมงค์เครือข่าย
นักพัฒนาซิสโก้ ซิสเต็มส์
การแนะนำ1994 [ 1 ]
อาร์เอฟซี1701 , 1702 , 2784

Generic routing encapsulation ( GRE ) เป็นโปรโตคอลการสร้างอุโมงค์ที่พัฒนาโดยCisco Systemsซึ่งสามารถห่อหุ้มโปรโตคอลเลเยอร์เครือข่าย ได้หลากหลายชนิดภายในลิงก์แบบจุดต่อจุด เสมือน หรือลิงก์แบบจุดต่อหลายจุดผ่านเครือข่ายโปรโตคอลอินเทอร์เน็ต[ 2 ]

ตัวอย่างการใช้งาน

ตัวอย่างสแต็กโปรโตคอล

เลเยอร์ โมเดล OSIตัวอย่างโปรโตคอล
7. การสมัครทศนิยม
4. การขนส่งทีพีซีพี
3. เครือข่าย(ห่อหุ้มด้วย GRE)IPv4
การห่อหุ้มเกร
3. เครือข่ายIPv6
2. การเชื่อมโยงข้อมูลอีเธอร์เน็ต
1. ด้านร่างกายชั้นกายภาพของอีเธอร์เน็ต

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

โปรโตคอลการจัดส่ง

แพ็กเก็ต GRE ที่ถูกห่อหุ้มไว้ภายในIPโดยตรง จะใช้โปรโตคอล IP ประเภท 47 ใน ฟิลด์Protocolของส่วนหัว IPv4 [ 3 ]หรือฟิลด์Next Headerของส่วนหัว IPv6 [ 4 ]

ด้วยเหตุผลด้านประสิทธิภาพ GRE สามารถถูกห่อหุ้มไว้ในแพ็กเก็ต UDP ได้เช่นกัน[ 5 ]สามารถเพิ่มปริมาณงานได้ดีขึ้นโดยใช้การกำหนดเส้นทางแบบหลายเส้นทางที่มีต้นทุนเท่ากัน

ส่วนหัวของแพ็กเก็ต

ส่วนหัวแพ็กเก็ต GRE แบบขยาย (RFC 2890)

ส่วนหัวแพ็กเก็ต GRE เวอร์ชันขยาย[ 6 ]แสดงไว้ด้านล่าง:

รูปแบบส่วนหัว GRE แบบขยาย
ค่าชดเชยอ็อกเท็ต0 1 2 3
อ็อกเท็ตนิดหน่อย0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 ซีเคเอสจองแล้ว 0เวอร์ชั่นประเภทโปรโตคอล
4 32 ผลรวมตรวจสอบ (ไม่บังคับ)จองไว้ 1 ที่ (ไม่บังคับ)
8 64 คำอธิบายสัญลักษณ์ (ไม่จำเป็น)
12 96 หมายเลขลำดับ (ไม่บังคับ)
ซี (1 บิต)
บิต ตรวจสอบความถูกต้อง (Checksum bit) ตั้งค่าเป็น 1 หากมีการตรวจสอบความถูกต้อง
เค (1 บิต)
บิตกุญแจ ตั้งค่าเป็น 1 ถ้ามีกุญแจอยู่
ส (1 บิต)
บิตหมายเลขลำดับ ตั้งค่าเป็น 1 หากมีหมายเลขลำดับอยู่
สงวนไว้ 0 (9 บิต)
บิตที่สงวนไว้; ตั้งค่าเป็น 0
เวอร์ชัน (3 บิต)
หมายเลขเวอร์ชัน GRE; ตั้งค่าเป็น 0
ประเภทโปรโตคอล (16 บิต)
ระบุประเภทโปรโตคอลอีเธอร์เน็ตของข้อมูลที่ถูกห่อหุ้ม (สำหรับIPv4จะเป็นเลขฐานสิบหก 0800)
ผลรวมตรวจสอบ (16 บิต)
มีค่านี้หาก บิต Cถูกตั้งค่า โดยจะมีค่าตรวจสอบความถูกต้อง (checksum) สำหรับส่วนหัวและส่วนข้อมูลของ GRE
สงวนไว้ 1 (16 บิต)
มีอยู่หาก บิต Cถูกตั้งค่า; ตั้งค่าเป็น 0
รหัส (32 บิต)
มีอยู่หาก บิต Kถูกตั้งค่า โดยจะมีค่าคีย์เฉพาะสำหรับแอปพลิเคชันนั้นๆ
หมายเลขลำดับ (32 บิต)
มีอยู่หาก บิต Sถูกตั้งค่าไว้ โดยจะประกอบด้วยหมายเลขลำดับสำหรับแพ็กเก็ต GRE

ส่วนหัวแพ็กเก็ต GRE มาตรฐาน (RFC 2784)

โครงสร้างส่วนหัวแพ็กเก็ต GRE มาตรฐาน[ 7 ]แสดงอยู่ในแผนภาพด้านล่าง

รูปแบบส่วนหัวมาตรฐานของ GRE
ค่าชดเชยอ็อกเท็ต0 1 2 3
อ็อกเท็ตนิดหน่อย0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 ซีจองแล้ว 0เวอร์ชั่นประเภทโปรโตคอล
4 32 ผลรวมตรวจสอบ (ไม่บังคับ)จองไว้ 1 ที่ (ไม่บังคับ)
ซี (1 บิต)
บิต ตรวจสอบความถูกต้อง (Checksum bit) ตั้งค่าเป็น 1 หากมีการตรวจสอบความถูกต้อง
สงวนไว้ 0 (12 บิต)
บิตที่สงวนไว้; ตั้งค่าเป็น 0
เวอร์ชัน (3 บิต)
หมายเลขเวอร์ชัน GRE; ตั้งค่าเป็น 0
ประเภทโปรโตคอล (16 บิต)
ระบุประเภทโปรโตคอลอีเธอร์ของเพย์โหลดที่ถูกห่อหุ้ม (สำหรับIPv4จะเป็นเลขฐานสิบหก 0x0800 สำหรับIPv6จะเป็น 0x86DD [ 4 ] )
ผลรวมตรวจสอบ (16 บิต)
มีค่านี้หาก บิต Cถูกตั้งค่า โดยจะมีค่าตรวจสอบความถูกต้อง (checksum) สำหรับส่วนหัวและส่วนข้อมูลของ GRE
สงวนไว้ 1 (16 บิต)
มีอยู่หาก บิต Cถูกตั้งค่า โดยค่าในบิต C จะเป็น 0

ส่วนหัวแพ็กเก็ต GRE ดั้งเดิม (RFC 1701)

โครงสร้างใหม่เข้ามาแทนที่โครงสร้างเดิม: [ 1 ]

รูปแบบส่วนหัว GRE ดั้งเดิม
ค่าชดเชยอ็อกเท็ต0 1 2 3
อ็อกเท็ตนิดหน่อย0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 ซีอาร์เคเอสเกิดซ้ำธงเวอร์ชั่นประเภทโปรโตคอล
4 32 ผลรวมตรวจสอบ (ไม่บังคับ)ค่าชดเชย (ไม่บังคับ)
8 64 คำอธิบายสัญลักษณ์ (ไม่จำเป็น)
12 96 หมายเลขลำดับ (ไม่บังคับ)
16 128 การกำหนดเส้นทาง (ไม่บังคับ ความยาวปรับได้)

มาตรฐาน GRE RFC ดั้งเดิมได้กำหนดฟิลด์เพิ่มเติมในส่วนหัวของแพ็กเก็ต ซึ่งล้าสมัยไปแล้วในมาตรฐานปัจจุบัน:

ซี (1 บิต)
บิต ตรวจสอบความถูกต้อง (Checksum bit) ตั้งค่าเป็น 1 หากมีการตรวจสอบความถูกต้อง
อาร์ (1 บิต)
บิตกำหนดเส้นทาง ตั้งค่าเป็น 1 หากมีข้อมูลการกำหนดเส้นทางและค่าชดเชยอยู่
เค (1 บิต)
บิตกุญแจ ตั้งค่าเป็น 1 ถ้ามีกุญแจอยู่
ส (1 บิต)
บิตหมายเลขลำดับ ตั้งค่าเป็น 1 หากมีหมายเลขลำดับอยู่
ส (1 บิต)
บิตเส้นทางแหล่งที่มาที่เข้มงวด
เกิดซ้ำ (3 บิต)
บิตควบคุมการเรียกซ้ำ
ธง (5 บิต)
สงวนไว้สำหรับการใช้งานในอนาคต ตั้งค่าเป็น 0
เวอร์ชัน (3 บิต)
ตั้งค่าเป็น 0
ประเภทโปรโตคอล (16 บิต)
ระบุประเภทโปรโตคอลอีเธอร์ของข้อมูลที่ถูกห่อหุ้มไว้
ผลรวมตรวจสอบ (16 บิต)
มีค่านี้หาก บิต Cถูกตั้งค่า โดยจะมีค่าตรวจสอบความถูกต้อง (checksum) สำหรับส่วนหัวและส่วนข้อมูลของ GRE
ค่าออฟเซ็ต (16 บิต)
ฟิลด์นี้จะปรากฏขึ้นเมื่อ บิต Rหรือ บิต Cถูกตั้งค่า และจะมีข้อมูลที่ถูกต้องก็ต่อเมื่อ บิต Rถูกตั้งค่าเท่านั้น นอกจากนี้ยังมีฟิลด์ออฟเซ็ตที่ระบุค่าออฟเซ็ตภายใน ฟิลด์ การ กำหนดเส้นทาง ไปยังรายการเส้นทางต้นทางที่ใช้งานอยู่ด้วย
รหัส (32 บิต)
มีอยู่หาก บิต Kถูกตั้งค่า โดยจะมีค่าคีย์เฉพาะสำหรับแอปพลิเคชันนั้นๆ
หมายเลขลำดับ (32 บิต)
มีอยู่หาก บิต Sถูกตั้งค่าไว้ โดยจะประกอบด้วยหมายเลขลำดับสำหรับแพ็กเก็ต GRE
การกำหนดเส้นทาง (ตัวแปร)
มีค่าเมื่อ บิต Rถูกตั้งค่า ประกอบด้วยรายการเส้นทางต้นทาง ดังนั้นความยาวจึงแปรผันได้

ส่วนหัวแพ็กเก็ต PPTP GRE

โปรโตคอลการสร้างอุโมงค์แบบจุดต่อจุด (PPTP) [ 8 ]ใช้โครงสร้างส่วนหัวแพ็กเก็ต GRE ที่แตกต่างกัน ซึ่งแสดงไว้ด้านล่าง PPTP สร้างอุโมงค์ GRE ซึ่งแพ็กเก็ต PPTP GRE จะถูกส่งผ่าน

รูปแบบส่วนหัว PPTP GRE
ค่าชดเชยอ็อกเท็ต0 1 2 3
อ็อกเท็ตนิดหน่อย0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 ซีอาร์เคเอสเกิดซ้ำเอธงเวอร์ชั่นประเภทโปรโตคอล
4 32 ความยาวของข้อมูลสำคัญรหัสการโทรหลัก
8 64 หมายเลขลำดับ (ไม่บังคับ)
12 96 หมายเลขยืนยัน (ไม่บังคับ)
ซี (1 บิต)
บิต ตรวจสอบความถูกต้อง (Checksum bit) สำหรับแพ็กเก็ต PPTP GRE จะตั้งค่าเป็น 0
อาร์ (1 บิต)
บิตกำหนดเส้นทาง สำหรับแพ็กเก็ต PPTP GRE จะตั้งค่าเป็น 0
เค (1 บิต)
บิตสำคัญ สำหรับแพ็กเก็ต PPTP GRE จะตั้งค่าเป็น 1 (แพ็กเก็ต PPTP GRE ทุกแพ็กเก็ตมีบิตสำคัญ)
ส (1 บิต)
บิตหมายเลขลำดับ ตั้งค่าเป็น 1 หากมีการระบุหมายเลขลำดับ ซึ่งบ่งชี้ว่าเป็นแพ็กเก็ตข้อมูล PPTP GRE
ส (1 บิต)
บิตกำหนดเส้นทางต้นทางที่เข้มงวด สำหรับแพ็กเก็ต PPTP GRE จะตั้งค่าเป็น 0
เกิดซ้ำ (3 บิต)
บิตควบคุม การเรียกซ้ำสำหรับแพ็กเก็ต PPTP GRE บิตเหล่านี้จะถูกตั้งค่าเป็น 0
เอ (1 บิต)
มีหมายเลขยืนยันการรับเอกสาร ตั้งค่าเป็น 1 หากมีการระบุหมายเลขยืนยันการรับเอกสาร ซึ่งแสดงว่ามีแพ็กเก็ตยืนยันการรับเอกสาร PPTP GRE อยู่
แฟล็ก (4 บิต)
บิตแฟล็ก สำหรับแพ็กเก็ต PPTP GRE บิตเหล่านี้จะถูกตั้งค่าเป็น 0
เวอร์ชัน (3 บิต)
หมายเลขเวอร์ชัน GRE สำหรับชุดเอกสาร GRE ของ PPTP จะตั้งค่าเป็น 1
ประเภทโปรโตคอล (16 บิต)
สำหรับแพ็กเก็ต PPTP GRE ค่านี้จะถูกตั้งเป็นเลขฐานสิบหก 880B
ความยาวของข้อมูลสำคัญ (16 บิต)
ประกอบด้วยขนาดของข้อมูลที่ส่งไป ไม่รวมส่วนหัวของ GRE
รหัสการโทร (16 บิต)
ประกอบด้วย Call ID ของ Peer สำหรับเซสชันที่แพ็กเก็ตนั้นเป็นส่วนหนึ่งอยู่
หมายเลขลำดับ (32 บิต)
จะปรากฏหากบิต S ถูกตั้งค่า โดยจะมีหมายเลขลำดับของข้อมูล GRE อยู่ภายใน
หมายเลขยืนยัน (32 บิต)
มีค่านี้หากบิต A ถูกตั้งค่า โดยจะเก็บหมายเลขลำดับของแพ็กเก็ตข้อมูล GRE ที่มีลำดับสูงสุดที่ผู้ส่งได้รับ

มาตรฐาน

  • RFC  1701 : การห่อหุ้มการกำหนดเส้นทางทั่วไป (GRE) (ข้อมูล)
  • RFC  1702 : การห่อหุ้มการกำหนดเส้นทางทั่วไปบนเครือข่าย IPv4 (ข้อมูล)
  • RFC  2637 : โปรโตคอลการสร้างอุโมงค์แบบจุดต่อจุด (ข้อมูล)
  • RFC  2784 : การห่อหุ้มเส้นทางแบบทั่วไป (Generic Routing Encapsulation หรือ GRE) (มาตรฐานที่เสนอ ปรับปรุงโดย RFC 2890)
  • RFC  2890 : ส่วนขยายคีย์และหมายเลขลำดับสำหรับ GRE (มาตรฐานที่เสนอ)
  • RFC  8086 : การห่อหุ้ม GRE ใน UDP (มาตรฐานที่เสนอ)

ดูเพิ่มเติม

  • การเข้ารหัสการกำหนดเส้นทางทั่วไป (Generic Routing Encapsulation ) และหน้าเว็บหลักของโปรโตคอลย่อยที่ Cisco
  • Generic Routing Encapsulation ถูกเก็บถาวรเมื่อวันที่ 29 ธันวาคม 2018 ที่Wayback Machineเป็นบทความใน Cisco DocWiki (เดิมชื่อ "Internetworking Technology Handbook")
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Generic_routing_encapsulation&oldid=1249941346 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การห่อหุ้มการกำหนดเส้นทางทั่วไป

Generic routing encapsulation ( GRE ) เป็น โปรโตคอลการสร้างอุโมงค์ ที่พัฒนาโดย Cisco Systems ซึ่งสามารถ ห่อหุ้ม โปรโตคอล เลเยอร์เครือข่าย ได้หลากหลายชนิดภายใน ลิงก์แบบจุดต่อจุด...

ตัวอย่างการใช้งาน

ใช้ร่วมกับ PPTP เพื่อสร้าง VPN ใช้ร่วมกับ VPN IPsec เพื่อให้สามารถส่งข้อมูลการกำหนดเส้นทางระหว่างเครือข่ายที่เชื่อมต่อกันได้ ในโปรโตคอล การจัดการการเคลื่อนที่ ใน อินเทอร์เฟซ A8/A10 ใช้สำหรับห่อหุ้มข้อมูล IP จาก/ไปยังฟังก์ชันควบคุมแพ็กเก็ต (PCF) ระบบปฏิบัติการ...

ตัวอย่างสแต็กโปรโตคอล

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

โปรโตคอลการจัดส่ง

แพ็กเก็ต GRE ที่ถูกห่อหุ้มไว้ภายใน IP โดยตรง จะใช้โปรโตคอล IP ประเภท 47 ใน ฟิลด์ Protocol ของส่วนหัว IPv4 [ 3 ] หรือฟิลด์ Next Header ของ ส่วนหัว IPv6 [ 4 ]