Border Gateway Protocol (BGP)
    • ควรผ่าน 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 ถึง 600,000 กว่า Route แล้ว
      http://www.cidr-report.org/as2.0


    • ใช้งาน 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 ไม่เพียงแต่ต้องการรับข้อมูลข่าวสารเกี่ยวกับเส้นทางเท่านั้น แต่ใช้เพื่อพิสูจน์เส้นทางที่ดีที่สุดที่จะเดินทางไปสู่ปลายทาง

    Best Path Selection Algorithm

    BGP สามารถรับการประกาศเส้นทางหลายๆ ชุด จากเส้นทางเดียวกัน โดยเส้นทางหลายๆ ชุดนี้มาจากแหล่งต่างๆ กันหลายแห่งได้ แต่จะเลือกเส้นทางใดเส้นทางหนึ่งที่เห็นว่าดีที่สุด เมื่อเส้นทางที่ดีที่สุดถูกเลือกแล้ว จะนำเส้นทางที่ดีที่สุดที่เลือกแล้วนี้ไปไว้ใน Routing Table จากนั้นก็จะเผยแพร่เส้นทางนี้ไปสู่เราท์เตอร์เพื่อนบ้าน มีข้อพิจารณาอยู่ 11 ข้อนี้ ให้จำคำย่อ N WLIA OMNI

    0. Consider Only (synchronized) route with no AS loops and a valid Next hop - หากเส้นทางระบุปลายทางที่ไม่สามารถเข้าถึงได้ จะมีการยกเลิกการ Update, and then: - ตามลำดับดังนี้

    1. Prefer the highest Weight (local to a router). - ค่า Weight มากสุด (Cisco Proprietary ใช้เฉพาะภายใน router ตัวเดียวเท่านั้น)
    The weight attribute basically a Cisco proprietary technology and considered as the 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

    2. Prefer highest Local preference (global within AS). - ค่า Local Preference มากสุด (default เป็น 100)

    3. Prefer the path through the closest IGP neighbor (IGP cost). - เส้นทางที่มาจาก IGP neighbor ที่ใกล้ที่สุด (cost)

    4. Prefer the oldest route for EBGP paths. - EBGP ให้เลือกเส้นทางที่อยู่นานที่สุด เช่น ในการทำ dampening

    5. Prefer the path with the lowest neighbor BGP router ID. - เลือกเส้นทางที่มาจาก Router ที่มีค่า BGP Router ID น้อยสุด

    6. Prefer the path with the lowest neighbor IP address.

    ถ้าเท่ากันทุกข้อจะ load-balance

    Example:

    Router R1#show ip bgp vpnv4 rd 1100:1001 10.30.116.0/23

      (65001 64955 65003) 65089, (Received from a RR-client)
    172.16.254.226 (metric 20645) from 172.16.224.236 (172.16.224.236)
    Origin IGP, metric 0, localpref 100, valid, confed-internal
    Extended Community: RT:1100:1001
    mpls labels in/out nolabel/362

    (65008 64955 65003) 65089
    172.16.254.226 (metric 20645) from 10.131.123.71 (10.131.123.71)
    Origin IGP, metric 0, localpref 100, valid, confed-external
    Extended Community: RT:1100:1001
    mpls labels in/out nolabel/362

    0. The paths should always be valid if see them in the output of "show ip bgp".

    Example: Reason that router RT-3 chose router RT-1 as its best path to network 131.25.0.0/16.

    image
    Recall the best path selection algorithm:
    1. RT-3 is not an exit point
    2. same local preference of 100
    3. both routes are from IBGP
    4. same
    5. both are incomplete (EGP > IGP > Incomplete)
    6. both MEDs are 0
    7. both are IBGP
    8. not used because IBGP is used
    9. not used
    10. 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

    Cr: Dr.วิรินทร์ & Cisco B-)
  • 1 Comment sorted by
    • 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]

    • *Jan  3 10:29:18.139: BGP: 3.3.3.3 active open failed - tcb is not available, open active delayed 12288ms (35000ms max, 60% jitter)
      Amsterdam(config-router)#neighbor 3.3.3.3 update-source lo0

    Cr: Dr.วิรินทร์ & Cisco

    Understanding BGP Regular Expressions
    blog.ine.com/2008/01/06/understanding-bgp-regular-expressions

    Global BGP Prefix Count
    bgp.he.net/report/netstats

    โลกจริงของอินเตอร์เนต, Internet Tier hierarchy, Peering, IP Transit, AS number
    www.thainetworker.com/โลกจริงของอินเตอร์เนต

    Basic BGP Configuration - Part 1


    BGP Route Reflectors and Clusters
    gns3vault.com/BGP/bgp-route-reflectors-and-clusters.html

    Configuration Example:
    router bgp 700
     no synchronization
      bgp log-neighbor-changes
     network 7.7.7.7 mask 255.255.255.255 -> BGP Route: Loopback Interface
     neighbor 8.8.8.8 remote-as 700 -> IBGP
     neighbor 8.8.8.8 password cisco123 -> Authentication Key = cisco123
     neighbor 8.8.8.8 update-source Loopback0 -> Update Source Loopback 0
     neighbor 192.168.1.1 remote-as 100 -> EBGP
     neighbor 192.168.1.1 password cisco123
      no auto-summary
    !

    แนะนำ Protocol เลือกเส้นทางที่ใช้งานบน Internet เพื่อเชื่อมต่อกับ Router และเครือข่ายต่าง Domain ซึ่งใช้โดย ISP เป็น Protocol ที่เหมาะสำหรับเครือข่ายหรือโครงข่ายที่มีความสลับซับซ้อน และยังให้ประสิทธิภาพในการทำงานมากที่สุดตัวหนึ่ง

    BGP คืออะไร

    BGP (Border Gateway Protocol) เป็น Protocol เลือกเส้นทางประเภท Exterior Gateway Routing ที่ใช้เพื่อการเชื่อมต่อ Router และเครือข่ายที่อยู่ต่าง Domain กันบน Internet

    BGP ใช้ Protocol TCP Port หมายเลข 179 เพื่อใช้ในการขนถ่ายข้อมูลข่าวสาร โดยมีการใช้ TCP เพื่อการสถาปนาการเชื่อมต่อก่อนจะแลกเปลี่ยนข้อมูลข่าวสารระหว่าง Router BGP ทั้งสอง (Peer Router) จากนั้นก็จะทำการแลกเปลี่ยนข้อมูลข่าวสาร รวมทั้งการเปิดสัมพันธไมตรีก่อนที่จะแลกเปลี่ยนข่าวสารระหว่างกันต่อไป ข้อมูลข่าวสารที่ Router ทั้งสองใช้เพื่อการแลกเปลี่ยนกัน รวมไปถึงข่าวสารที่แสดงถึงความสามารถในการเข้าถึงกันได้ โดยข่าวสารนี้เป็นในรูปแบบของเลขหมาย AS ของแต่ละฝ่าย ซึ่งต่างฝ่ายถือเป็นเส้นทางในการเข้าหากัน ข้อมูลนี้จะช่วยให้ Router สามารถสร้างผังของเส้นทางที่ปราศจาก Loop ในการเข้าหากัน อีกทั้ง Router ยังใช้เพื่อเป็นการกำหนดเส้นทางเชิงนโยบายที่มีเนื้อหาที่กำหนดข้อจำกัดต่างๆ

    จุดประสงค์ของการใช้ BGP

    • BGP ให้ประโยชน์อย่างเห็นได้ชัด โดยเฉพาะการเชื่อมต่อเครือข่ายต่างๆ รวมทั้งลูกค้า และผู้ให้บริการโทรศัพท์ รวมทั้งเครือข่ายอื่นๆ

    • BGP เหมาะอย่างยิ่งสำหรับการเชื่อมต่อเครือข่ายในรูปแบบของ Autonomous ต่างๆ เข้าด้วยกัน

    • BGP เหมาะอย่างยิ่งสำหรับการเชื่อมต่อเครือข่ายในระดับ Enterprise หากองค์กรมีการเชื่อมต่อกับ Internet แบบหลายเชื่อมต่อ เพื่อผลแห่ง Redundancy, BGP ยังสามารถทำ Load Balancing Traffic ได้บนเส้นทางที่เป็น Redundant Link

    • จัดเลือกเส้นทางผ่านทางเครือข่ายไปยัง Autonomous System อื่นๆ ที่เชื่อมต่อกัน

    • มีการเชื่อมต่อระหว่าง Autonomous System มากกว่า 1 เส้น

    • ควบคุมการลำเลียงข้อมูลข่าวสารที่วิ่งไปมาระหว่างระบบ Autonomous System

    Cr: Dr.วิรินทร์ B-)