Author Topic: Border Gateway Protocol (BGP)  (Read 2266 times)

Offline ปลาวาฬทราย

  • RMUTT CPE IX
  • ผ.บ.ท.อ.
  • จอมพล ขั้น5
  • *
  • Posts: 1582
  • Gender: Male
    • MSN Messenger - pws_admin@thaicpe.com
    • AOL Instant Messenger - ---
    • Yahoo Instant Messenger - ---
    • View Profile
    • ไทยซีพีอี
    • Email
Border Gateway Protocol (BGP)
« on: February 14, 2010, 10:00:43 PM »
  • ควรผ่าน 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 Process
BGP สามารถรับการประกาศเส้นทางหลายๆ ชุด จากเส้นทางเดียวกัน โดยเส้นทางหลายๆ ชุดนี้มาจากแหล่งต่างๆ กันหลายแห่งได้ แต่จะเลือกเส้นทางใดเส้นทางหนึ่งที่เห็นว่าดีที่สุด เมื่อเส้นทางที่ดีที่สุดถูกเลือกแล้ว จะนำเส้นทางที่ดีที่สุดที่เลือกแล้วนี้ไปไว้ใน Routing Table จากนั้นก็จะเผยแพร่เส้นทางนี้ไปสู่เราท์เตอร์เพื่อนบ้าน มีข้อพิจารณาอยู่ 11 ข้อนี้ ให้จำคำย่อ N WLLA OMNI
Consider 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
Code: [Select]
http://blog.ine.com/2008/01/06/understanding-bgp-regular-expressions
Global BGP Prefix Count
Code: [Select]
http://www.cymru.com/BGP/bgp_prefixes.html
โลกจริงของอินเตอร์เนต, Internet Tier hierarchy, Peering, IP Transit, AS number
Code: [Select]
http://thainetworker.com/?q=node/25 8)
« Last Edit: April 23, 2012, 09:19:09 AM by ปลาวาฬทราย »
ปลาวาฬทราย
RMUTT CPE IX

" มีแม่เหล็กอยู่ในหัวใจของคุณ ซึ่งจะดึงดูดมิตรแท้ แม่เหล็กชนิดนี้คือ ความไม่เห็นแก่ตัว และการคิดถึงคนอื่นก่อน เมื่อคุณเรียนรู้ที่จะอยู่เพื่อคนอื่น พวกเขาก็จะอยู่เพื่อคุณ "


Offline ISSA

  • ผ.บ.ท.อ.
  • พลตรี ขั้น 4
  • *
  • Posts: 681
    • View Profile
Re: มหากาพย์ BGP คับ :-D
« Reply #1 on: February 14, 2010, 10:37:53 PM »
BGP ใช้กับ  router ที่ ใช้งานในเครือข่าย Wan ใช่ไหมครับ ซึ่ง router พวกนั้นราคาแสนแพง พี่วาฬ ยกตัวอย่าง Router พวกนั้นให้ดูหน่อยครับ  series ไหน
« Last Edit: February 15, 2010, 07:37:44 PM by ปลาวาฬทราย »