- ควรผ่าน ROUTE ก่อนคับ
- Router ที่ support น่าจะเกือบทุกตัว แต่ถ้ารับ route global คิดว่าน่าจะ 3800 อย่างต่ำ แล้วก็ขึ้นอยู่กับ memory ด้วย
- BGP ย่อมาจาก Border Gateway Protocol เป็นโปรโตคอลเลือกเส้นทางประเภท Exterior Gateway Routing (EGP)
- จะมาพูดถึงกันแบบละเอียดคับ ถ้าคนพิมพ์มีเวลาว่างพอ 555+ สงสัยอะไรก็โพสถามไว้ได้เลย
- มันเป็น Interdomain Routing คับ domain ก็คือ AS เพราะฉะนั้นหลักๆ มันก็จะเอาไว้ใช้เพื่อเชื่อมต่อกับ Router และเครือข่ายที่อยู่ต่าง AS (1 AS ก็คือ 1 ISP น่ะแหละ)
- โดยหลักการแล้ว AS Number เป็นเลขหมายในทางตรรกะที่กำหนดให้กับเราท์เตอร์ทุกตัวที่ทำงานอยู่ภายใต้ระบบการจัดการเดียวกัน โดยเราท์เตอร์เหล่านี้จะมีการแบ่งปัน (Share) ข่าวสารเกี่ยวกับตารางเลือกเส้นทาง และมีการ Update ภายใต้สภาวการณ์ปกติ โดยเฉพาะเมื่อมีการเปลี่ยนแปลงใดๆ เกิดขึ้น มาตรฐานการกำหนดเลขหมาย AS อยู่ภายใต้การดำเนินงานของ Internet Assigned Numbers Authority (IANA) ที่เป็นผู้กำหนดเลขหมาย AS บนอินเทอร์เน็ต โดยเลขหมาย AS นี้สามารถมีได้ตั้งแต่ 1 - 65,535 แบ่งเป็น Public AS Number และ Private AS Number โดยมีเลข 64,512 ไปจนถึง 65,535 ถูกสำรองไว้ให้กับเครือข่ายส่วนตัวที่ไม่ได้ทำงานบนอินเทอร์เน็ต (Private AS Number) เช่นเดียวกับ Private IP Address ปัจจุบันนี้ เค้าเพิ่มเป็น 4 byte แล้ว
- ใช้โดย ISP เป็น Routing หลักของโลกใบนี้
- เป็นโปรโตคอลเลือกเส้นทางบนอินเทอร์เน็ต ซึ่งปัจจุบันนี้มี Route ถึง 300,000 กว่า Route แล้ว
- ใช้งาน Protocol TCP จึงทำให้มีความปลอดภัย ต้องทำ 3 Way Handshake และใช้ Sliding Window จึงส่งข้อมูลได้เป็นก้อนๆ ไม่เหมือนกับ OSPF และ EIGRP ซึ่งใช้ Protocol UDP ส่งได้ทีละ 1 Packet
- ไม่สนใจ Bandwidth ในการคำนวณหาเส้นทางจะดูจาก Policy ที่กำหนดไว้เท่านั้น
- เป็น Advanced Distance Vector เพราะพัฒนามาจาก Distance Vector
- จะ Update เมื่อมีการเปลี่ยนแปลงเครือข่ายเกิดขึ้นเท่านั้น ซึ่งเป็นข้อเสียของ TCP จึงมีต้องมี Hello Message ขึ้นมา ใน BGP จะเรียกว่า Keepalive เข้ามาช่วยตรวจสอบ การมีชีวิตอยู่ของเพื่อนบ้าน สามารถคุยกับอุปกรณ์ยี่ห้ออื่นได้เพราะเป็นมาตรฐานของ RFC
- Metrics เรียกว่า Attributes มีเยอะมาก
- มันจะเลือกเองว่าตัวไหนเป็น Server หรือ Client ในการส่ง Update
- เวลาเปลี่ยน Configure หรือ Policy จะใช้เวลา Update นานเป็นนาที จึงจะเห็นผล ต้อง Clear Routing จึงจะเห็นผลเลย
- เหมาะกับเครือข่ายหรือโครงข่ายที่มีความสลับซับซ้อนและให้ประสิทธิภาพการทำงานมากที่สุดตัวหนึ่ง
- เราท์เตอร์ใน AS หนึ่งๆ จะมีการเชื่อมต่อกับ AS อื่นๆ อีกหลายๆ AS ตัวเราืท์เตอร์ใน AS นั้นๆ จะทำหน้าที่เป็นทางผ่านของ AS อื่นๆ ได้ เช่น AS200 เป็นทางผ่านของ AS100 กับ AS300 โดยจะแยกออกเป็น 2 โปรโตคอลย่อยๆ
IBGP (Internal BGP) ใช้ส่งระหว่างเราท์เตอร์ที่อยู่ภายใต้ AS ที่มีเลขหมายเดียวกัน
EBGP (External BGP) ใช้ส่งระหว่างเราท์เตอร์ทีอยู่ภายใต้ AS ที่มีเลขหมายต่างกัน - Triggered Updates ของ IBGP จะส่งทุกๆ 5 วินาที EBGP 30 วินาที
- ข้อเสียของมันก็มีคือกิน Resource (CPU, Memory) เพราะต้องสร้าง TCP Session เยอะ และ Update ช้านั่นเอง
- ลักษณะของเครือข่ายจะมี 2 แบบคือ แบบ Single-Homed และ Multihomed
- Single-Homed เป็นการต่อไปยัง ISP รายเดียว ลูกค้าก็จะเป็นพวกลูกค้ารายใหญ่ๆ หรือ ISP รายเล็กๆ จะใช้ BGP ก็ต่อเมื่อ มีหลาย Link หรือต้องการตรวจสอบความผิดปกติของฝั่ง ISP โดยต้องใช้ Private AS Number ถ้าไม่ตามเงื่อนไขนี้ใช้ Static Route ได้เลย
- Multihomed เป็นการต่อไปยัง ISP มากกว่า 1 ราย เช่นในกรณีที่ต้องการทำ Full Backup ใช้ได้แต่ BGP ใช้ Public AS Number และ Public IP Address
- Router ที่ Run BGP จะเป็นแค่ทางผ่านเท่านั้น จึงไม่สามารถควบคุม Routing ที่เป็น Downstream ได้ เป็นแค่ทางเลือกหนึ่งเท่านั้น
- ปกติโปรโตคอลเลือกเส้นทางทั่วไปจะใช้ิวิธีการเลือกเส้นทางที่ดีที่สุดต่างกัน เช่น RIP จะใช้จำนวน Hop เป็นหลัก ขณะที่ IGRP ใช้แบนด์วิดธ์เป็นหลัก ส่วน EIGRP ใช้การผสมผสานกันระหว่างแบนด์วิดธ์และดีเลย์ (Delay) เป็นแนวทางในการเลือกเส้นทาง นอกจากนี้ OSPF ใ้ช้ค่า Cost เป็นหลัก แต่ BGP ใช้ Attribute เป็นหลักในการเลือกเส้นทางที่ดีที่สุด การใช้ Attribute ของ BGP ไม่เพียงแต่ต้องการรับข้อมูลข่าวสารเกี่ยวกับเส้นทางเท่านั้น แต่ใช้เพื่อพิสูจน์เส้นทางที่ดีที่สุดที่จะเดินทางไปสู่ปลายทาง
Route Selection Decision ProcessBGP สามารถรับการประกาศเส้นทางหลายๆ ชุด จากเส้นทางเดียวกัน โดยเส้นทางหลายๆ ชุดนี้มาจากแหล่งต่างๆ กันหลายแห่งได้ แต่จะเลือกเส้นทางใดเส้นทางหนึ่งที่เห็นว่าดีที่สุด เมื่อเส้นทางที่ดีที่สุดถูกเลือกแล้ว จะนำเส้นทางที่ดีที่สุดที่เลือกแล้วนี้ไปไว้ใน Routing Table จากนั้นก็จะเผยแพร่เส้นทางนี้ไปสู่เราท์เตอร์เพื่อนบ้าน มีข้อพิจารณาอยู่ 11 ข้อนี้ ให้จำคำย่อ
N WLLA OMNIConsider Only (synchronized) route with no AS loops and a valid
Next hop - หากเส้นทางระบุปลายทางที่ไม่สามารถเข้าถึงได้ จะมีการยกเลิกการ Update, and then: -
ตามลำดับดังนี้
- Prefer highest Weight (local to router). - ค่า Weight มากสุด (proprietary cisco ใช้เฉพาะภายใน router ตัวเดียวเท่านั้น)
The weight attribute basically a Cisco proprietary technology and considered as first attribute. The default value of weight is 0 and the range is from 0 to 65535.
(config-router) # neighbor 50.1.1.1 weight 100 - Prefer highest Local preference (global within AS). - ค่า Local Preference มากสุด (default เป็น 100)
- Prefer route originated by the Local router (next hop = 0.0.0.0). - เกิดจากตัวมันเอง
- Prefer shortest AS path. - ค่า AS Path สั้นสุด
- Prefer lowest Origin code (IGP < EGP < incomplete). - ค่า Origin น้อยสุด
- Prefer lowest MED (exchanged between autonomous systems). - ค่า MED น้อยสุด
- Prefer EBGP path over IBGP path (Neighbor type). - เลือกเส้นทาง EBGP ก่อน IBGP
- Prefer the path through the closet IGP neighbor (IGP cost). - เส้นทางที่มาจาก IGP neighbor ที่ใกล้ที่สุด (cost)
- Prefer oldest route for EBGP paths. - EBGP ให้เลือกเส้นทางที่อยู่นานที่สุด เช่น ในการทำ dampening
- Prefer the path with the lowest neighbor BGP router ID. - เลือกเส้นทางที่มาจาก Router ที่มีค่า BGP Router ID น้อยสุด
- Prefer the path with the lowest neighbor IP address.
ถ้าเท่ากันทุกข้อจะ load-balance
Example: Reason that router RT-3 chose router RT-1 as its best path to network 131.25.0.0/16.

Recall the route selection decision process:
- RT-3 is not an exit point
- same local preference of 100
- both routes are from IBGP
- same
- both are incomplete (EGP > IGP > Incomplete)
- both MEDs are 0
- both are IBGP
- not used because IBGP are used
- not used
- the router-id 162.105.11.1 is lower than 165.105.3.2
- Attributes แบ่งออกได้เป็น 2 แบบ คือ Well-known และ Optional
- Well-known Attributes ก็ยังแบ่งออกอีก 2 แบบ คือ Mandatory จะมีอยู่ในทุก Update และ Discretionary จะมีหรือไม่มีก็ได้ แต่ถ้าส่งออกไปแล้วทุกคนจะรู้จัก
- Mandatory ก็จะประกอบด้วย
Origin Attribute เอาไว้ใช้บอกว่า Route นั้นเกิดมาจากอะไร จะอยู่ใน BGP Table โดย i = IGP ข่าวสารเกี่ยวกับเส้นทางที่จะเข้าถึงเครือข่าย มาจากการใช้คำสั่ง (config-router)#network x.x.x.x ประกาศ Route ธรรมดา, e = ได้รับการเรียนรู้โดย EGP ปัจจุบันนี้ไม่ค่อยเห็นแ้ล้ว, ? = ได้รับการเรียนรู้โดยเหตุผลอื่นๆ เช่น การทำ Redistributed Route เข้ามาข้างใน BGP
AS-Path Attribute AS-Path Attribute เป็นรายชื่อของ AS ที่ Route Update ได้วิ่งผ่านและบันทึกไว้ เพื่อให้ทราบว่ามาจากที่ใด และเป็นกลไกสำคัญในการป้องกัน Loop ระหว่าง AS อีกทั้งเราท์เตอร์ยังใช้เพื่อเป็นการกำหนดเส้นทางเชิงนโยบายที่มีเนื้อหาที่กำหนดข้อจำกัดต่างๆ
IBGP รับมาต้องส่งออกไปเหมือนเดิมทุกครั้งไม่มีการเปลี่ยนแปลง
EBGP จะเพิ่ม AS Number ของตัวเองเข้าไปเวลาส่ง ใน Packet จึงมี AS ทั้งหมดที่ผ่านมาอยู่ด้วย
และ Next-hop Attribute เป็น IP Address ของ Hop ต่อไปที่จะใช้เพื่อเดินทางไปสู่เครือข่ายปลายทาง สำหรับ EBGP จะหมายถึง IP Address ของเพื่อนบ้านที่กำหนดขึ้นโดยคำสั่ง neighbor - Discretionary ประกอบด้วย Local Preference และ Atomic Aggregate
- Optional Attributes จะส่งต่อถ้ารู้จัก ถ้าไม่รู้จักจะมี 2 ทางเลือก คือ Transitive จะส่งโดยการเพิ่ม partial bit เข้าไป เช่น Route Summary, Community และ Nontransitive จะไม่ส่ง Attribute นี้เลย
- Next-Hop Attribute ก็คือ IP Address ที่ Interface ของ Router อีก AS นึงที่ต่ออยู่กับ Router ภายใน AS ของเรา แต่ถ้าต่อผ่าน Shared Media คือ มี IP Address อยู่ใน Subnet เดียวกัน มันจะไม่เปลี่ยน Next-Hop
- Weight Attribute เป็นมาตรฐานของ Cisco ที่เราท์เตอร์ใช้เป็นการภายใน จะไม่มีการประกาศออกไปที่เราท์เตอร์เพื่อนบ้าน
- Local Preference Attribute จะบ่งบอกแก่ AS เกี่ยวกับเส้นทางที่ต้องการใช้เป็นทางออกไปจาก AS เพื่อเดินทางไปสู่เครือข่ายปลายทาง ค่า default ของ Local Preference ได้แก่ 100
- Multi-Exit Discriminator Attribute (MED) ทำหน้าที่ชี้นำเพื่อนบ้านที่อยู่ภายนอก AS เกี่ยวกับเส้นทางที่เหมาะสมที่สุดที่จะเข้ามาภายใน AS ใน AS ต่างกันจะมีการแลกเปลี่ยน Metric กัน ค่า Metric จะถูกนำเข้ามาใน AS แต่จะไม่ถูกส่งออกไป เมื่อใดที่ค่า Metric ถูกนำเข้ามาใน AS จะนำค่านี้ไปทำการตัดสินใจเลือกเส้นทางต่อไป ค่าดีฟอลต์ของ Metric คือ 0 หากไม่กำหนดค่าใดๆ ตัวเรา์ท์เตอร์จะทำการเปรียบเทียบค่า Metric ของเส้นทางจากเพื่อนบ้านที่อยู่ใน AS เีดียวกันเท่านั้น เพื่อให้เราท์เตอร์สามารถเปรียบเทียบค่า Metric จากเพื่อนบ้านที่อยู่ต่าง AS กัน จะต้องใช้คำสั่ง (config-router)#bgp always-compare-med
- Community Attribute เป็นวิถีทางที่จะรวมกลุ่มเส้นทางที่เป็นปลายทางเข้าด้วยกันเป็นกลุ่ม มีการใช้ Route Map เพื่อจัดตั้ง มาตรฐานจะมี 4 แบบ ทุกแบบจะกล่าวถึงเราท์เตอร์ที่ Run BGP เท่านั้น
no-export: ไม่ประกาศเส้นทางนี้ไปต่าง AS
no-advertise: ไม่ประกาศเส้นทางนี้สู่เราท์เตอร์ใดๆ
local-as: ไม่ประกาศเส้นทางนี้ไปต่าง AS รวมทั้งคนละ Intra-Confederation ด้วย
internet: ประกาศเส้นทางนี้สู่เราท์เตอร์ใดๆ - เครือข่าย Frame Relay จะต้องทำเป็น Full Meshed
- Neighbors ไม่สามารถค้นหาเองได้ ต้อง Configure เองเท่านั้น ต้องทำทั้ง 2 ฝั่ง Router ทั้ง 2 ตัว จะสร้าง TCP Session Port หมายเลข 179 ขึ้นมา เพื่อใช้ในการขนถ่ายข้อมูลข่าวสาร แต่จะใช้งานจริงแค่ Session เดียว IP Address ปลายทางที่เข้ามา จะูถูกนำไปตรวจสอบกับ Command neighbor มันจะใช้ TCP เพื่อการสถาปนาการเชื่อมต่อระหว่างกัน โดยการใช้ Open Message ก่อนจะแลกเปลี่ยนข้อมูลข่าวสารระหว่างเราท์เตอร์ BGP ทั้งสอง (Peer Router)
- เมื่อใช้ command neighbor แล้ว sho ip bgp sum ตรง State จะเป็น Idle
- ชนิดของข่าวสารที่ใช้ มีอยู่ 4 แบบ
Open Message - ใช้เพื่อการสถาปนาจัดตั้งการเชื่อมต่อระหว่าง Router BGP ประกอบด้วย BGP version number, AS number บอกว่ามาจาก AS อะไร, Holdtime บอกว่าจะตายเมื่อไหร่, Router-ID และ Option
Keepalives - เป็นข่าวสารที่ใช้ทักทายเราเตอร์เพื่อนบ้าน โดยการส่งออกมาเป็นห้วงเวลาที่แน่นอนเพื่อการตรวจสอบเส้นทาง หากค่านี้ถูกตั้งเป็น "0" จะหมายถึง Infinity ซึ่งหมายความว่าจะไม่มีการส่ง Keepalive Message เกิดขึ้น โดยปกติจะส่งทุก 60 วินาที
Update Message - ประกอบด้วยข้อมูลเกี่ยวกับเส้นทาง รวมทั้ง Path Attribute ครอบคลุมไปถึง Route ที่ถูกถอดออกจาก Routing Table หรือไม่มีตัวตนแล้ว จะ Update 1 Path ต่อ 1 Update หากมีหลายๆ Path ก็ต้องมีหลาย Update
Notification - ใช้เพื่อการแจ้งเตือนความผิดพลาดที่เกิดขึ้น - Transit AS เป็นระบบ AS ที่ข้อมูลข่าวสารจะต้องวิ่งผ่าน AS หนึ่งไปยังอีก AS หนึ่ง เช่น AS 30 เป็นทางผ่านของ AS 10 เพื่อเดินทางไปสู่ AS 50 เป็นต้น
- สามารถใช้ MD5 ในการ authen ระหว่าง peers ได้ โดยทั้งสองฝั่งต้องมี password เหมือนกัน ช่วยในการป้องกัน DoS หรือ man-in-the-middle ได้
- ฺBGP Route Dampening (ระบบทำโทษ/ดอง) ออกแบบมาจัดการกับ Link ที่ Up/Down บ่อยๆ หลักการทำงานของมันก็คือ มันจะตั้งแต้มเอาไว้ เวลา Flap (Down) 1 ครั้ง มันจะหักแต้มนั้นไป 1000 แต้ม และเก็บเอาไว้ประจำเส้นทางนั้น ถ้าโดนหักแต้มไว้เกินค่าที่ตั้งไว้ ถึง Link ปกติแล้ว มันก็จะไม่ส่ง Update ไปหาเพื่อนบ้านของมันทางนี้อีก จนกว่าจะถึงค่าเวลาที่กำหนดให้กลับมาใช้ใหม่ได้ (reuse limit)
(config-router)#bgp dampening [half-life reuse suppress max-suppress-time] [route-map map-name]
Credit ดร.วิรินทร์ & Cisco
Understanding BGP Regular Expressions
http://blog.ine.com/2008/01/06/understanding-bgp-regular-expressionsGlobal BGP Prefix Count
http://www.cymru.com/BGP/bgp_prefixes.htmlโลกจริงของอินเตอร์เนต, Internet Tier hierarchy, Peering, IP Transit, AS number
http://thainetworker.com/?q=node/25 