โปรโตคอล GRE ในเราเตอร์อุตสาหกรรม
โปรโตคอล GRE (Generic Routing Encapsulation) คือโปรโตคอลการสื่อสารที่ใช้ในการสร้างการเชื่อมต่อแบบจุดต่อจุดโดยตรงระหว่างโหนดเครือข่าย GRE ใช้เทคโนโลยี Tunnel ซึ่งเป็นโปรโตคอลการสร้างอุโมงค์เลเยอร์ 3 ของ VPN (Virtual Private Network) และห่อหุ้มข้อความข้อมูลของโปรโตคอลเลเยอร์เครือข่ายบางประเภท (เช่น IP และ IPX) เพื่อให้สามารถส่งข้อความข้อมูลห่อหุ้มเหล่านี้ไปยังโปรโตคอลเลเยอร์เครือข่ายอื่น (เช่น IP) ได้ จึงสามารถแก้ปัญหาเครือข่ายที่เชื่อมต่อกันแบบข้ามเครือข่ายได้ GRE ถูกกำหนดโดย RFC 2784
โปรโตคอล GRE มีข้อดีดังต่อไปนี้
มีการใช้โปรโตคอลหลายตัวบนโครงโปรโตคอลเดียว
การสร้างเครือข่ายสามารถทำได้ด้วยจำนวนฮ็อปที่จำกัด
การสร้างเครือข่ายซับเน็ตที่ไม่ต่อเนื่อง
ความต้องการทรัพยากรต่ำกว่าทางเลือกอื่น (เช่น IPsec VPN)
หลักการทำงาน
ระบบจะส่งข้อมูลไปยังปลายทาง GRE ผ่านเส้นทางที่กำหนดไว้ในตารางกำหนดเส้นทาง เมื่อปลายทาง GRE ได้รับแพ็กเก็ต แพ็กเก็ตดังกล่าวจะถูกถอดรหัสและกำหนดเส้นทางใหม่ไปยังที่อยู่ปลายทาง อุโมงค์ GRE ไม่มีสถานะ และปลายทางอุโมงค์ไม่มีข้อมูลเกี่ยวกับสถานะหรือความพร้อมใช้งานของปลายทางอุโมงค์ระยะไกล ดังนั้น สวิตช์ที่ทำงานเป็นเราเตอร์ต้นทางอุโมงค์จึงไม่สามารถปิดอินเทอร์เฟซอุโมงค์ GRE ได้หากปลายทางระยะไกลไม่สามารถเข้าถึงได้
กระแสการส่งข้อความ GRE
หากส่งข้อความจากโฮสต์ A จากเราเตอร์ A ไปยังเราเตอร์ B ข้อมูล GRE จะถูกห่อหุ้มบนเราเตอร์ A และถอดรหัสบนเราเตอร์ B เส้นทางที่ข้อความข้อมูลห่อหุ้มเดินทางผ่านเครือข่ายคืออุโมงค์ GRE
1. ข้อความการห่อหุ้ม
1) เมื่อเราเตอร์ A ได้รับแพ็กเก็ตจากโฮสต์ A 192.168.10.10 ที่มี IP ปลายทาง 192.172.1.10 (โฮสต์ B) เราเตอร์จะห่อหุ้มแพ็กเก็ตต้นฉบับเป็นแพ็กเก็ตโหลดในโปรโตคอล GRE และเพิ่มส่วนหัว GRE พร้อมด้วย IP ต้นทาง 1.1.1.2 และ IP ปลายทาง 1.1.1.3 ที่ปลายอุโมงค์ตรงข้าม
2) ทำการสรุปเนื้อหาในแพ็คเกจ GRE ให้เสร็จสมบูรณ์
3) เราเตอร์ A ยังคงเพิ่มแหล่งที่มาของ IP ของอุโมงค์ GRE 113.113.11.11 และ IP ปลายทาง 113.113.10.10 ลงที่ด้านนอกของแพ็กเก็ตและส่งไปยังอินเทอร์เน็ต
2. การแยกข้อความออกจากแคปซูล
1) หลังจากที่แพ็กเก็ตถูกส่งไปยังอินเทอร์เน็ตแล้ว เราเตอร์ทั้งหมดจะส่งต่อแพ็กเก็ตตามที่อยู่ IP สาธารณะภายนอกเท่านั้น จนกว่าแพ็กเก็ตจะถูกส่งต่อไปยัง IP ปลายทางจริง 113.113.10.10 (เราเตอร์ B)
2) เราเตอร์ B จะคลายการเชื่อมต่อส่วนหัว IP สาธารณะของแพ็กเก็ตก่อน จากนั้นจึงตระหนักว่า IP ปลายทางในส่วนหัว GRE คือ 1.1.1.3 ซึ่งตรงกับตัวมันเอง
3) เราเตอร์ B จะดำเนินการแกะแพ็กเก็ต GRE ต่อไปและค้นพบว่า IP ปลายทางคือ 192.172.1.10 จากนั้นจึงส่งแพ็กเก็ตไปยัง 192.172.1.10 ในที่สุด (โฮสต์ B)