Advanced Topic 3 of 3

Advanced Internetworking

เมื่อ Internet โตขึ้นเป็นหลักแสนเครือข่าย พันล้านโหนด — จะจัดการ routing ให้ scale ได้อย่างไร (BGP), จะแก้ปัญหาพื้นที่ address ของ IPv4 หมดอย่างไร (IPv6), และจะส่งข้อมูลแบบ one-to-many/many-to-many และรองรับ host ที่เคลื่อนที่ได้อย่างไร (Multicast, Mobile IP) — ต่อยอดโดยตรงจาก Network Layer

🔗
ต่อยอดจาก: OSI L3 Network Layer / TCP/IP Internet Layer — ควรอ่าน Distance Vector, Link State, CIDR, และ ARP ในหน้านั้นมาก่อน

1ปัญหาสเกล (Scalability Problem)

สามคำถามหลักของบทนี้: จะสร้างระบบ routing ที่รองรับเครือข่ายหลักแสนและโหนดปลายทางหลักพันล้านได้อย่างไร? จะจัดการปัญหาพื้นที่ address ของ IPv4 ใกล้หมดอย่างไร? จะเพิ่มความสามารถของ Internet (multicast, mobility) ได้อย่างไร?

2Global Internet และ Autonomous System (AS)

Internet ถูกจัดเป็น Autonomous System (AS) — แต่ละ AS อยู่ภายใต้การควบคุมของหน่วยงานเดียว (มหาวิทยาลัย บริษัท backbone network) บริษัทหนึ่งอาจเป็น 1 AS หรือ ISP หนึ่งรายก็อาจเป็น 1 AS

Two-Level Route Propagation Hierarchy
แบ่งปัญหา routing เป็น 2 ระดับเพื่อเพิ่ม scalability: Intra-domain routing (ภายใน AS หนึ่ง — แต่ละ AS เลือก protocol เองได้ เช่น OSPF) และ Inter-domain routing (ระหว่าง AS — ใช้ protocol มาตรฐานเดียวทั่ว Internet) AS ในบริบทนี้เรียกอีกชื่อว่า routing domain

EGP → BGP

Protocolลักษณะ
EGP (Exterior Gateway Protocol)บังคับ topology แบบ tree — มี backbone เดียว AS อื่นเชื่อมเป็น parent/child เท่านั้น ไม่รองรับโครงสร้างทั่วไป (peer-to-peer)
BGP (Border Gateway Protocol)สมมติว่า Internet เป็นกราฟเชื่อมต่อกันแบบใดก็ได้ — ตรงกับ Internet จริงที่มีหลาย backbone (service provider) เชื่อมกันที่ peering point

ประเภทของ AS (BGP-4)

นิยาม local traffic = traffic ที่เกิดหรือจบภายใน AS, transit traffic = traffic ที่แค่ผ่าน AS

Stub ASเชื่อมกับ AS อื่นแค่จุดเดียว — carry เฉพาะ local traffic
Multihomed ASเชื่อมกับหลาย AS แต่ปฏิเสธ carry transit traffic
Transit ASเชื่อมกับหลาย AS และออกแบบมาให้ carry ทั้ง transit และ local traffic (เช่น backbone provider)

เป้าหมายของ BGP: Reachability ไม่ใช่ Optimality

เป้าหมายของ inter-domain routing คือหาเส้นทางใดก็ได้ที่ไปถึงปลายทางและไม่มี loop — ไม่ใช่เส้นทางที่ดีที่สุด เพราะ:

BGP Speaker และ Border Gateway
แต่ละ AS มี BGP speaker (อย่างน้อย 1 ตัว) ทำหน้าที่ advertise เครือข่ายภายใน AS ตัวเอง และ (ถ้าเป็น transit AS) advertise เครือข่ายที่ reach ได้ผ่าน AS นี้ พร้อมข้อมูล path — border gateway คือ router ที่แพ็กเก็ตเข้า/ออก AS จริง (ไม่จำเป็นต้องเป็นตัวเดียวกับ speaker)
BGP ไม่ใช่ Distance-Vector หรือ Link-State
BGP จัดเป็น path-vector protocol — advertise path แบบ enumerated list ของ AS ที่ต้องผ่านเพื่อไปถึงเครือข่ายปลายทาง ไม่ใช่แค่ระยะทาง (distance) หรือ topology ทั้งหมด (link-state)
ตัวอย่าง BGP Advertisement
Speaker ของ AS 2 advertise ว่า reach เครือข่าย 128.96, 192.4.153, 192.4.32, 192.4.3 ได้โดยตรง → Speaker ของ backbone advertise ต่อว่าเครือข่ายเดียวกันนี้ reach ได้ตาม path <AS 1, AS 2> — speaker ยกเลิก path ที่เคย advertise ไปแล้วได้เช่นกัน

AS number ต้องไม่ซ้ำกัน (เป็นเลข 16-bit กำหนดโดยหน่วยงานกลาง) — ไม่เช่นนั้น AS จะแยกแยะตัวเองใน AS path ไม่ได้

Integrating Interdomain และ Intradomain Routing

Router ทุกตัวใน AS รัน iBGP (internal BGP) ร่วมกับ intradomain routing protocol — router ที่เป็น border router เท่านั้นที่รันเพิ่มด้วย eBGP (external BGP) คุยกับ AS อื่น ผลลัพธ์คือแต่ละ router มีทั้ง BGP routing table, IGP (intradomain) routing table และตาราง combined

Routing Areas
เพื่อ scale intradomain routing เอง AS ขนาดใหญ่แบ่งเป็น area — มี backbone area เชื่อม area อื่นทั้งหมด และ Area Border Router (ABR) ทำหน้าที่เชื่อมระหว่าง area (เช่นใน OSPF)

3Next Generation IP (IPv6)

Major Features ของ IPv6
  • Address ขนาด 128-bit (แก้ปัญหา address exhaustion ของ IPv4)
  • รองรับ Multicast เป็นส่วนหลักของ design
  • รองรับ real-time service
  • มี Authentication และ Security ในตัว
  • รองรับ Auto-configuration
  • End-to-end fragmentation (ไม่ fragment ที่ router ระหว่างทางเหมือน IPv4)
  • Routing functionality ที่ดีขึ้น รวมถึงรองรับ mobile host

IPv6 Address

Classless addressing/routing (คล้าย CIDR) — notation: x:x:x:x:x:x:x:x (x = เลข hex 16-bit) โดย contiguous 0 บีบอัดได้:

ตัวอย่าง Notation
47CD::A456:0124 (บีบอัดกลุ่ม 0 ที่ต่อเนื่องกัน) และ IPv4-compatible address: ::128.42.1.87

การกำหนด address มี 2 แนวทาง: provider-based (ตาม ISP) และ geographic (ตามภูมิศาสตร์)

IPv6 Header

Base header ขนาดคงที่ 40 byte + Extension headers (ลำดับคงที่ ส่วนใหญ่ความยาวคงที่) สำหรับ fragmentation, source routing, authentication และ security, และ option อื่นๆ — ต่างจาก IPv4 ที่ header เดียวมี option ผสมปนกัน

4Internet Multicast

ภาพรวม

IPv4IPv6
ใช้ class D address, สาธิตผ่าน MBone (ใช้ tunneling), ต้องแก้ปัญหาเรื่อง scaleเป็นส่วนหนึ่งของ design ตั้งแต่แรก

รูปแบบการใช้งาน: One-to-many (radio broadcast, ข่าว/ราคาหุ้น, software update) และ Many-to-many (teleconference, online multiplayer game, distributed simulation)

ทำไมต้องมี IP-level Multicast
ถ้าไม่มี multicast source ต้องส่งแพ็กเก็ตเหมือนกันซ้ำแยกไปทีละสมาชิก — สิ้นเปลือง bandwidth (โดยเฉพาะกระจุกตัวใกล้ source) และ source ต้องรู้ IP address ของสมาชิกทุกคน (ที่อาจเปลี่ยนแปลงตลอดเวลา) — IP multicast แก้ด้วยการให้ source ส่งแค่สำเนาเดียวไปยัง multicast address ของกลุ่ม เครือข่ายจัดการทำสำเนาไปหาสมาชิกเอง

Host เข้า/ออกกลุ่มได้อิสระ (อยู่หลายกลุ่มพร้อมกันได้) โดยใช้โปรโตคอลคุยกับ router local: IGMP (Internet Group Management Protocol) ใน IPv4, MLD (Multicast Listener Discovery) ใน IPv6 — แบ่งเป็น SSM (Source Specific Multicast: ระบุทั้งกลุ่มและ source ที่ต้องการ) และ ASM (Any Source Multicast: many-to-many)

Multicast Routing

Router ต้องมี multicast forwarding table เพิ่มจาก unicast forwarding table — unicast table กำหนด "เส้นทาง" (path) ส่วน multicast table กำหนด "ต้นไม้" (tree) การกระจายแพ็กเก็ต

Distance-Vector Multicast (Flood-and-Prune)

Router รู้อยู่แล้วว่า shortest path ไปยัง source S ผ่าน router N (จาก distance vector) — เมื่อได้รับ multicast packet จาก S ให้ forward ออกทุก outgoing link (ยกเว้น link ที่รับมา) ก็ต่อเมื่อแพ็กเก็ตมาจาก N จริง เพื่อไม่ให้เกิดแพ็กเก็ตซ้ำ ใช้กฎ "parent" ของแต่ละ LAN (เทียบกับ S): เลือก router ที่มี shortest path ไปยัง S ที่สุด (ตัดสินด้วย address น้อยสุดถ้าเสมอ)

Reverse Path Broadcast (RPB) — Pruning
เป้าหมาย: ตัด (prune) เครือข่ายที่ไม่มีสมาชิกกลุ่ม G ออกจากต้นไม้ — ขั้นตอน: (1) ตรวจว่า LAN เป็น leaf หรือไม่ (parent เป็น router เดียวบน LAN นั้น) แล้วเช็คว่ามีสมาชิก G จริงหรือไม่ผ่าน IGMP; (2) ประกาศ "ไม่มีสมาชิก G ที่นี่" ไปยัง neighbor โดยแนบชุด group ที่สนใจ/ไม่สนใจไปกับ <Destination, Cost> update ปกติ

Protocol Independent Multicast (PIM)

รองรับทั้ง Shared Tree (ต้นไม้เดียวใช้ร่วมกันทุก source ในกลุ่ม ผ่าน Rendezvous Point/RP) และ Source-Specific Tree (ต้นไม้แยกต่อ source) — การส่งผ่าน shared tree: router ต้นทาง (R1) tunnel แพ็กเก็ตไปยัง RP ก่อน แล้ว RP ค่อย forward ต่อไปตาม shared tree ไปยัง router ปลายทาง (เช่น R4, R5)

Inter-domain Multicast: MSDP
Multicast Source Discovery Protocol (MSDP) ใช้เชื่อม multicast domain ต่างๆ ให้รู้จัก source ของกันและกันข้ามโดเมน

5Routing for Mobile Hosts (Mobile IP)

องค์ประกอบหลัก
  • Home Agent — router บนเครือข่ายบ้านของ mobile host
  • Home Address — IP address ถาวรของ mobile host (มี network number เดียวกับเครือข่ายบ้าน/home agent)
  • Foreign Agent — router บนเครือข่ายที่ mobile node ไปเชื่อมต่อขณะอยู่ห่างจากบ้าน

กลไกการส่งแพ็กเก็ตถึง Mobile Node

สามคำถามที่ต้องแก้:

  1. Home agent สกัดแพ็กเก็ตที่มุ่งไปยัง mobile node ได้อย่างไร? → ใช้ Proxy ARP (home agent ตอบ ARP request แทน mobile node ที่ไม่อยู่)
  2. Home agent ส่งแพ็กเก็ตต่อไปยัง foreign agent ได้อย่างไร? → ใช้ IP tunnel ไปยัง care-of-address (address ชั่วคราวที่ mobile node ได้ ณ เครือข่ายต่างถิ่น)
  3. Foreign agent ส่งแพ็กเก็ตต่อให้ mobile node ได้อย่างไร? → forward ตามปกติบนเครือข่ายท้องถิ่นนั้น

Triangle Routing Problem และ Route Optimization

เส้นทางจาก sending node ไปยัง mobile node อาจห่างไกลจาก optimal มาก — กรณีสุดขั้ว: mobile node กับ sending node อยู่เครือข่ายเดียวกัน แต่ home network ของ mobile node อยู่อีกฟากหนึ่งของโลก แพ็กเก็ตกลับต้องอ้อมไปที่ home agent ก่อนวนกลับมา เรียกปัญหานี้ว่า Triangle Routing Problem

ทางแก้: Route Optimization
ให้ sending node รู้ care-of-address ของ mobile node โดยตรง แล้วสร้าง tunnel ของตัวเองไปยัง foreign agent ได้เลย (ไม่ต้องอ้อมผ่าน home agent) — กลไก: home agent ส่ง binding update message ไปให้ sending node สร้าง entry ใน binding cache ของตัวเอง หาก binding cache ล้าสมัย (mobile node ย้ายเครือข่ายอีก) foreign agent (เดิม) จะส่ง binding warning message แจ้งเตือน

6Routing ข้ามองค์กรคือเรื่อง Policy ก่อนเป็นเรื่องระยะทาง

ภายในองค์กรเดียว ผู้ดูแลอาจกำหนด metric แล้วหาเส้นทาง cost ต่ำได้ แต่ Internet เชื่อม Autonomous System ที่มีเจ้าของ เป้าหมาย และสัญญาธุรกิจต่างกัน AS หนึ่งอาจยอมส่ง traffic ให้ลูกค้า แต่ไม่ยอมเป็นทางผ่านฟรีระหว่าง provider สองราย เส้นทางที่สั้นจึงอาจไม่ใช่เส้นทางที่อนุญาต

อุปมา: ถนนผ่านที่ดินหลายเจ้าของ
แผนที่บอกว่าทางลัดผ่านสวนข้างบ้านสั้นที่สุด แต่เจ้าของสวนไม่ได้อนุญาต BGP จึงไม่ได้ถามเพียงว่า “ไปทางไหนใกล้” แต่ถามว่า “เส้นทางใดประกาศมา ผ่านใครบ้าง และนโยบายอนุญาตให้ใช้หรือส่งต่อหรือไม่”

eBGP กับ iBGP

eBGP แลก route ระหว่าง AS ส่วน iBGP กระจาย route ภายนอกให้ router ภายใน AS รู้ การมีชื่อ internal ไม่ได้ทำให้ iBGP เป็น IGP แบบ OSPF เพราะหน้าที่หลักยังเป็นการรักษาข้อมูล BGP และ policy ภายในองค์กร ขณะที่ IGP ช่วยหาเส้นทางไปยัง next hop ภายในเครือข่ายตน

Path Vector ป้องกัน Loop ด้วยประวัติเส้นทาง

BGP advertisement มี AS_PATH บอก AS ที่ route ผ่านมา หาก AS เห็นหมายเลขของตนอยู่ใน path ก็ปฏิเสธ route นั้น ช่วยป้องกัน loop ระหว่าง domain นี่ต่างจาก distance vector ที่ส่งเพียงระยะ และต่างจาก link state ที่ทุก node พยายามสร้างแผนที่ topology ชุดเดียวกัน

Attribute สำคัญของ BGP

Attributeใช้ทำอะไร
LOCAL_PREFเลือกทางออกที่องค์กรต้องการ ค่าสูงมักได้รับเลือกก่อนภายใน AS
AS_PATHบอกเส้นทาง AS และช่วยตรวจ loop; path สั้นมักได้เปรียบเมื่อเงื่อนไขก่อนหน้าเท่ากัน
MEDบอกเพื่อนบ้านว่าต้องการให้ traffic เข้าทางใด โดยมีขอบเขตการเปรียบเทียบตาม policy
NEXT_HOPระบุ address ที่ต้องส่งต่อไป และต้อง reachable ผ่าน IGP
COMMUNITYติดป้าย route เพื่อให้ policy หลายรายการจัดการเป็นกลุ่ม

กระบวนการเลือก route ของอุปกรณ์จริงมีรายละเอียดและอาจต่างตามผู้ผลิต แต่หลักสำคัญคือ policy บางตัวถูกพิจารณาก่อนความสั้นของ AS path เสมอ การตอบว่า BGP เลือก path สั้นที่สุดจึงเป็นคำตอบที่จำง่ายแต่ไม่แม่น

7Failure และ Convergence บน Internet

เมื่อ link หรือ router ล้ม ข่าวต้องแพร่ผ่านหลาย AS แต่แต่ละแห่งกรองและเลือก route ตาม policy การถอน route อาจทำให้ router ลองเส้นทางสำรองหลายชุดก่อนนิ่ง เรียกว่า path exploration ระหว่าง convergence packet อาจหาย วน หรือเดินอ้อม แม้ control plane สุดท้ายจะหาคำตอบใหม่ได้

ความเสถียรกับความไวตอบสนองเป็นของแลกกัน

ถ้าเผยแพร่ทุกการแกว่งทันที โลกจะรับ update จำนวนมาก หากหน่วงหรือ aggregate มากเกินไป การกู้เส้นทางจะช้า Timer, damping และ policy จึงต้องระวัง เพราะการลด noise อาจลงโทษ route ที่กำลังกู้จาก failure จริงได้

Route Leak กับ Route Hijack

Route leak เกิดเมื่อ AS ประกาศ route ที่เรียนรู้มาไปยังเพื่อนบ้านผิดตามความสัมพันธ์ เช่นนำ route จาก provider หนึ่งไปเสนอให้อีก provider จนตนกลายเป็นทางผ่านโดยไม่ตั้งใจ ส่วน route hijack คือการประกาศ prefix ที่ไม่ได้รับอนุญาต อาจเกิดจากความผิดพลาดหรือเจตนา ทั้งสองทำให้ traffic เดินผิดทาง ถูกดัก หรือหายไป

RPKI และ Route Origin Validation

RPKI ให้เจ้าของ prefix สร้างข้อมูลว่าหมายเลข AS ใดได้รับอนุญาตให้เป็น origin ของ prefix นั้น Router ใช้ Route Origin Validation แบ่งประกาศเป็น Valid, Invalid หรือ Not Found ช่วยลด origin hijack บางชนิด แต่ไม่ได้ตรวจ AS_PATH ทุกช่วงและไม่ได้แทน policy กับ monitoring ทั้งหมด

บทเรียนจาก BGP Security
Protocol ที่เชื่อมองค์กรจำนวนมากอาศัยทั้งกติกาทางเทคนิคและความสัมพันธ์ทางสังคม การเพิ่ม cryptographic validation ช่วยบางจุด แต่ configuration, filtering, coordination และการตอบสนองเหตุการณ์ยังจำเป็น

8IPv6 มากกว่า IPv4 ที่ Address ยาวขึ้น

IPv6 ใช้ address 128 bit แต่การเปลี่ยนแปลงสำคัญยังรวม header ที่เรียบขึ้น extension header, Neighbor Discovery, multicast และแนวทาง fragmentation ใหม่ Router IPv6 ไม่แบ่ง packet ให้ระหว่างทาง ต้นทางต้องเลือกขนาดให้เหมาะกับ Path MTU

การเขียน IPv6 Address

IPv6 เขียนเป็นเลขฐานสิบหกแปดกลุ่ม กลุ่มศูนย์นำหน้าตัดได้ และช่วงศูนย์ต่อเนื่องย่อด้วย :: ได้หนึ่งครั้ง เช่น 2001:db8:0:0:0:0:0:1 ย่อเป็น 2001:db8::1 การใช้ :: สองครั้งทำให้ไม่รู้ว่าควรเติมศูนย์ตรงไหนจึงไม่อนุญาต

ชนิด Addressบทบาท
Global UnicastAddress ที่ route ได้ในเครือข่าย IPv6 ทั่วไป
Link-Localใช้บน link เดียว มักเริ่มด้วย fe80::/10 และจำเป็นต่อ Neighbor Discovery
Unique Localใช้ภายในองค์กร ไม่ได้ตั้งใจ route บน Internet สาธารณะ
Multicastส่งถึงสมาชิกกลุ่ม IPv6 ไม่มี broadcast แบบ IPv4
AnycastAddress เดียวประกาศจากหลายตำแหน่ง Routing พาไปยัง instance ที่เหมาะตาม topology

SLAAC, DHCPv6 และ Neighbor Discovery

Host อาจสร้าง address ผ่าน SLAAC จาก Router Advertisement หรือรับข้อมูลผ่าน DHCPv6 ตามการตั้งค่า Neighbor Discovery ใช้ ICMPv6 ทำหน้าที่ค้นเพื่อนบ้าน ตรวจ duplicate address และค้น router แทน ARP การบล็อก ICMPv6 ทั้งหมดจึงทำให้ IPv6 พังได้มากกว่าที่ผู้ดูแลคาด

Dual Stack และกลไกเปลี่ยนผ่าน

Internet ไม่สามารถเปลี่ยน IPv4 เป็น IPv6 พร้อมกันทั้งโลก ระบบจึงใช้ dual stack ให้ host พูดได้ทั้งสองแบบ ใช้ tunnel ขน IPv6 ผ่านโครงสร้างบางช่วง หรือใช้ translation เช่น NAT64/DNS64 ให้ client IPv6 ติดต่อบริการ IPv4 การเปลี่ยนผ่านจึงเป็นสภาวะระยะยาว ไม่ใช่วันย้ายระบบครั้งเดียว

อุปมา: เมืองเปลี่ยนระบบเลขที่บ้าน
ตราบใดที่บ้านเก่ายังใช้เลขแบบเดิม บริษัทขนส่งต้องอ่านได้สองระบบหรือมีจุดแปลเลข การเปิดใช้ IPv6 ที่ interface จึงไม่พอ ต้องตรวจ DNS, firewall, monitoring, load balancer และ security policy ว่ารองรับทั้งสองเส้นทางเท่ากัน

9Tunneling และ Overlay Network

Tunnel นำ packet ชั้นในไปห่อใน packet ชั้นนอก Endpoint สองฝั่งดูเหมือนเชื่อมด้วย link เสมือน แม้ packet ชั้นนอกผ่าน router จำนวนมาก VPN, GRE, VXLAN และกลไกเปลี่ยนผ่าน IP ใช้แนวคิดนี้ต่างวัตถุประสงค์

ข้อดีและต้นทุนของ Tunnel

ข้อดีต้นทุน
สร้าง topology เชิงตรรกะโดยไม่เปลี่ยน underlayเพิ่ม header ทำให้ MTU สำหรับ payload ลดลง
เชื่อมเครือข่ายที่ใช้ address หรือ protocol ต่างกันเส้นทางจริงถูกซ่อน ทำให้วินิจฉัยยากขึ้น
ป้องกัน traffic ได้เมื่อใช้ cryptographic tunnelTunnel endpoint กลายเป็น trust boundary สำคัญ

ปัญหา MTU ใน tunnel เกิดได้ง่าย หาก packet ชั้นในพอดีกับ Ethernet 1500 byte แล้วเติม outer header ขนาดรวมจะเกิน MTU ต้องลด MSS, ใช้ Path MTU Discovery หรือเลือก interface MTU ให้เหมาะ อาการบางเว็บเปิดได้บางเว็บค้างจึงอาจมาจาก packet ใหญ่ถูกทิ้งและ ICMP ที่จำเป็นถูกบล็อก

10Multicast: ประหยัด Bandwidth แต่แลกกับ State ใน Network

Unicast ทำสำเนาที่ source หรือ server ส่วน multicast ให้ router ทำสำเนาตรงจุดที่เส้นทางแตกแขนง ช่วยประหยัด bandwidth เมื่อผู้รับจำนวนมาก แต่ router ต้องรู้สมาชิกและต้นไม้ของแต่ละกลุ่ม พร้อมรับมือ join, leave และ source หลายราย ความประหยัดใน data plane จึงแลกกับความซับซ้อนใน control plane

Shared Tree กับ Source Tree

Shared tree ใช้โครงสร้างร่วมผ่าน Rendezvous Point ลด state และเริ่มต้นง่าย แต่เส้นทางอาจอ้อม Source-specific tree ให้เส้นทางเหมาะกับ source มากกว่า แต่ต้องสร้าง state แยกตาม source และ group ระบบจึงอาจเริ่มจาก shared tree แล้วเปลี่ยนไป shortest-path tree เมื่อ traffic สูง

เหตุใด Internet Multicast ไม่แพร่หลายเท่า CDN

Multicast ข้ามหลายองค์กรต้องประสาน routing, accounting, security และ troubleshooting ผู้รับปลอมเข้ากลุ่มหรือ source ส่งเกินอัตราก็สร้างภาระได้ CDN ใช้ unicast กับ cache ที่ควบคุมในระดับ application จึง deploy ผ่าน Internet ปัจจุบันง่ายกว่า แม้อาจทำสำเนาข้อมูลมากกว่าในบางช่วง

11Mobility: รักษาตัวตนขณะตำแหน่งเปลี่ยน

IP address ทำหน้าที่ทั้ง identifier ของ interface และ locator ใน topology เมื่อ host ย้าย network locator ต้องเปลี่ยน แต่ connection และคู่สื่อสารอยากจำว่าเป็น host เดิม Mobile IP แยก home address ออกจาก care-of address เพื่อรักษาตัวตนเดิม ขณะ tunnel ส่งข้อมูลไปยังตำแหน่งปัจจุบัน

Mobility มีหลายระดับ

ระดับตัวอย่างสิ่งที่ต้องรักษา
Link mobilityย้ายระหว่าง access point ในระบบเดียวการเชื่อมต่อท้องถิ่นและ delay ของ handoff
Network mobilityย้ายไป subnet ใหม่Address, route และ reachability
Transport/Application mobilityQUIC connection migration หรือ reconnect พร้อม session tokenConnection/session แม้ IP เปลี่ยน

ระบบสมัยใหม่อาจแก้ mobility ที่ชั้นอื่นแทน Mobile IP เช่น application reconnect, load balancer, cellular core หรือ QUIC connection ID นี่ไม่ทำให้แนวคิด home/care-of address ไร้ค่า แต่แสดงว่าปัญหาเดียวแก้ได้หลายชั้นและมี trade-off ต่างกัน

12กรณีศึกษา: บริการระดับโลก

  1. DNS หรือ anycast พาผู้ใช้ไปยังจุดให้บริการใกล้เคียงตาม topology
  2. BGP policy กำหนดว่า prefix ของจุดนั้นถูกประกาศผ่าน provider ใด
  3. ภายในศูนย์ข้อมูล IGP พา packet ไปยัง load balancer หรือ tunnel endpoint
  4. Overlay อาจส่งต่อไปยัง service instance โดยไม่เปิด topology ภายในต่อ Internet
  5. เมื่อจุดหนึ่งล้ม ระบบถอน route, เปลี่ยน DNS หรือย้าย session ตามกลไกที่ออกแบบ

คำว่า “ใกล้ที่สุด” ในระบบนี้มีหลายความหมาย: AS path สั้น, RTT ต่ำ, ค่าใช้จ่ายต่ำ หรือมี capacity เหลือ การออกแบบ internetworking จึงต้องประกาศ objective ให้ชัด ไม่เช่นนั้นแต่ละส่วนอาจ optimize คนละเป้าหมาย

13การวินิจฉัยปัญหาข้ามเครือข่าย

  1. ตรวจ DNS ว่าชี้ address และ address family ที่คาดหรือไม่
  2. ตรวจ local route, default gateway และ source address ที่ระบบเลือก
  3. ใช้ traceroute/MTR ดู path, loss และจุดที่ latency เปลี่ยน โดยไม่สรุปจาก hop เดียวเร็วเกินไป
  4. ตรวจ BGP announcement และมุมมองจากหลายเครือข่ายเมื่อปัญหาเกิดเฉพาะบาง ISP
  5. ตรวจ MTU, tunnel และ ICMP เมื่อข้อมูลก้อนเล็กผ่านแต่ก้อนใหญ่ค้าง
  6. ตรวจ policy, firewall และ translation ทั้ง IPv4/IPv6 แยกกัน

14Peering, Transit และเศรษฐศาสตร์ของเส้นทาง

AS ที่ซื้อ transit จ่ายให้ provider เพื่อเข้าถึง Internet ส่วน peering คือสองเครือข่ายแลก traffic ของตนหรือลูกค้าตามข้อตกลง อาจ settlement-free หรือมีเงื่อนไขทางการเงิน Route policy จึงสะท้อน business relationship เช่นมักเลือก customer route ก่อน peer และ provider เพราะ customer สร้างรายได้ ส่วน provider มีต้นทุน

Valley-Free Routing ในภาพอย่างง่าย

เส้นทางเชิงพาณิชย์ทั่วไปเดินจาก customer ขึ้น provider ได้หลายช่วง อาจข้าม peer ได้หนึ่งครั้ง แล้วลงจาก provider ไป customer ไม่ควรลงแล้วกลับขึ้นอีก เพราะเท่ากับ AS หนึ่งให้ transit ระหว่างเครือข่ายที่ไม่ได้จ่ายตน กฎนี้ไม่ใช่ข้อบังคับของ packet แต่เป็น pattern ของ export policy

อุปมา: รถโดยสารกับตั๋ว
เส้นทางบนแผนที่อาจผ่านสถานีใดก็ได้ แต่บริษัทไม่จำเป็นต้องรับผู้โดยสารที่ซื้อตั๋วจากคู่แข่งสองรายมาข้ามระบบตนฟรี BGP policy จึงเป็นทั้ง routing และ accounting โดยอ้อม

Internet Exchange Point

IXP ให้หลายเครือข่ายมาเชื่อมและ peering กันบนโครงสร้างร่วม ลดการอ้อมผ่าน transit provider และอาจลด latency แต่การเชื่อมทางกายภาพไม่ได้สร้าง BGP relationship ให้อัตโนมัติ แต่ละคู่ยังต้องกำหนด policy หรือใช้ route server ตามข้อตกลง

15Anycast: Address เดียว หลายสถานที่

Anycast ให้หลาย site ประกาศ prefix เดียวกัน Routing พาผู้ใช้ไปยัง instance ที่เหมาะตามมุมมอง BGP ใช้กับ DNS root, CDN และบริการกระจายทั่วโลก ข้อดีคือ failover และ proximity โดยอาศัย routing แต่ “ใกล้” หมายถึงเส้นทางที่ policy เลือก ไม่จำเป็นต้องใกล้ทางภูมิศาสตร์หรือ RTT ต่ำที่สุด

Failure ของ Anycast

เมื่อ site หนึ่งถอน route ผู้ใช้ใหม่จะไป site อื่น แต่ connection ที่มี state อาจขาดเพราะ packet เปลี่ยนปลายทาง ระบบ anycast จึงเหมาะกับ request สั้นหรือบริการที่แชร์ state/กู้ session ได้ หากประกาศ route ค้างทั้งที่ application ตาย ผู้ใช้ยังถูกส่งไป blackhole ต้องผูก health ของ service กับ routing อย่างระวัง ไม่ใช่ตรวจเพียง interface ขึ้น

16MPLS และการส่งต่อที่ไม่อาศัย IP Lookup ทุกช่วง

MPLS ใส่ label เพื่อให้ router ในเครือข่ายผู้ให้บริการส่งต่อตาม Label Switched Path ช่วยทำ traffic engineering และ VPN หลายลูกค้าบน backbone เดียว Label มีความหมายภายในบริบทของผู้ให้บริการ ไม่ใช่ address end-to-end แบบ IP

ประเด็นIP ForwardingMPLS
ข้อมูลหลักDestination prefixLabel stack
เส้นทางแต่ละ router ใช้ forwarding tableเดินตาม label-switched path ที่สร้างไว้
ประโยชน์เด่นInternetworking ทั่วไปTraffic engineering, VPN และ service provider core

MPLS มักถูกเรียกเล่น ๆ ว่าอยู่ “Layer 2.5” เพราะอยู่ระหว่าง link framing กับ IP แต่ชื่อนี้เป็นเพียงวิธีสื่อสาร ไม่ใช่ชั้นทางการของ OSI อีกครั้งหนึ่งที่ protocol จริงวางหน้าที่ในจุดที่ใช้งานได้ มากกว่ารักษากล่อง model ให้เรียบร้อย

17SD-WAN และ Policy-Based Path Selection

องค์กรอาจมี Internet, MPLS และ cellular หลายเส้น SD-WAN สร้าง overlay แล้วเลือกทางตาม application, latency, loss, jitter, cost และ policy Traffic เสียงอาจเลือกเส้น latency ต่ำ ส่วน backup เลือกเส้นราคาถูก การตัดสินใจจึงละเอียดกว่า destination prefix เพียงอย่างเดียว

Measurement ต้องมาก่อน Steering

ถ้าใช้ probe วัด RTT แต่ไม่วัด loss หรือ capacity ระบบอาจย้าย traffic ไปเส้นที่ตอบ probe เร็วแต่รับโหลดจริงไม่ได้ การย้ายเส้นถี่เกินไปสร้าง oscillation จึงต้องมี threshold, hysteresis และช่วงยืนยันก่อนเปลี่ยน Policy routing เป็น control loop เช่นเดียวกับ congestion control

18IPv6 Transition Failure Patterns

Happy Eyeballs และความไม่เท่ากันของสอง Stack

Client สมัยใหม่อาจทดลอง IPv6 และ IPv4 ใกล้เคียงกันเพื่อไม่ให้ IPv6 ที่เสียทำให้ผู้ใช้รอนาน กลไกนี้ช่วยประสบการณ์แต่ซ่อนปัญหาได้ Dashboard เห็นผู้ใช้สำเร็จผ่าน IPv4 ทั้งที่เส้น IPv6 พังมาหลายเดือน จึงต้องวัด success และ latency แยกตาม address family

Firewall เปิด IPv4 แต่ลืม IPv6

บางองค์กรเปิด IPv6 ที่ host โดยไม่มีกฎเทียบเท่า IPv4 ทำให้ service ถูกเข้าถึงผ่านทางที่ monitoring ไม่ครอบคลุม อีกด้านหนึ่งการบล็อก ICMPv6 กว้างเกินไปทำให้ Neighbor Discovery และ Path MTU พัง Security policy ต้องออกแบบสอง stack อย่างตั้งใจ ไม่ใช่ถือว่า IPv6 ยังไม่มีใครใช้

DNS64/NAT64 และ Application ที่ฝัง IPv4 Literal

DNS64 สร้าง AAAA จาก A record เพื่อให้ client IPv6 ส่งผ่าน NAT64 ไปยัง server IPv4 แต่ application ที่ใช้ IPv4 literal โดยไม่ถาม DNS อาจข้ามกลไกนี้ Protocol ที่ส่ง address อยู่ใน payload ก็อาจต้องมีตัวช่วย การเปลี่ยนผ่านจึงเกี่ยวข้องกับ application ไม่ใช่แก้ที่ router อย่างเดียว

19Worked Example: Route Leak ทำให้ Traffic อ้อม

  1. AS65010 เป็นลูกค้าของ Provider A และ Provider B เพื่อ redundancy
  2. ปกติควรประกาศ prefix ของตนให้ทั้งสอง provider แต่ไม่ส่ง route ที่เรียนจาก A ไปให้ B
  3. Configuration ผิดทำให้ AS65010 ประกาศ route จำนวนมากจาก A ไปยัง B
  4. B เห็นเส้นทางนี้น่าสนใจตาม policy บางอย่างและส่ง traffic เข้าหา AS65010
  5. ลิงก์ลูกค้าขนาดเล็กรับ transit traffic ไม่ไหว เกิด congestion และเส้นทางทั่วบางส่วนผิดปกติ

การแก้ต้องถอนประกาศ แก้ export filter และประสานเครือข่ายที่รับ route ไปแล้ว การป้องกันใช้ prefix filter, max-prefix, community, RPKI สำหรับ origin บางส่วน และ policy ตาม customer cone ไม่มี control เดียวตรวจความสัมพันธ์ทางธุรกิจทั้งหมดได้สมบูรณ์

20Worked Example: Tunnel MTU Black Hole

  1. Site A กับ B เชื่อมผ่าน VPN tunnel บน Internet MTU 1500
  2. Packet ชั้นในขนาด 1500 ถูกเติม outer IP/UDP/security header จนใหญ่เกิน underlay MTU
  3. อุปกรณ์ทิ้ง packet และส่ง ICMP Packet Too Big แต่ firewall บล็อก ICMP
  4. Packet เล็กและ TCP handshake ผ่านได้ แต่การส่ง response ใหญ่ค้าง
  5. แก้ด้วยเปิด ICMP ที่จำเป็น ปรับ tunnel MTU หรือ clamp TCP MSS อย่างเข้าใจขอบเขต
อาการหลอก
ผู้ใช้บอกว่า “Internet ใช้ได้ แต่เว็บนี้เปิดไม่ได้” DNS และ handshake สำเร็จจึงดูเหมือน Application เสีย ทั้งที่ต้นเหตุคือ MTU หลัง encapsulation การวินิจฉัย internetworking ต้องตามขนาด packet และชั้นห่อ ไม่ใช่ดูเพียงว่า ping ก้อนเล็กผ่าน

21การออกแบบ Multi-Homing

การมีสองลิงก์ไม่ได้แปลว่ามี redundancy หากทั้งคู่เข้าท่อเดียว อาคารเดียว หรือ provider upstream เดียว ต้องตรวจ shared fate ทั้งไฟฟ้า fiber path, router, DNS และ control plane นอกจากนี้ inbound traffic ควบคุมยากกว่า outbound เพราะขึ้นกับ route ที่เครือข่ายอื่นเลือก

เป้าหมายกลไกที่เกี่ยวข้องข้อควรทดสอบ
Outbound failoverDefault route tracking, BGP local preference หรือ SD-WANSession เดิมอยู่รอดหรือ reconnect อย่างไร
Inbound failoverBGP advertisement, DNS failover หรือ anycastConvergence, TTL และ stale route
Load sharingPolicy, ECMP, DNS/anycastความไม่สมมาตรและ stateful firewall

22Internetworking Design Checklist

  1. กำหนด administrative boundary และเจ้าของ prefix/AS/policy
  2. แยก underlay, overlay และ tunnel endpoint ให้เห็นชัด
  3. บันทึก MTU และ overhead ทุก encapsulation
  4. ออกแบบ IPv4/IPv6 ร่วมกัน รวม DNS, firewall และ monitoring
  5. กำหนด route import/export ตาม business relationship
  6. ใช้ filtering, max-prefix, RPKI และ alert ความเปลี่ยนแปลง route
  7. ทดสอบ failure ของ link, router, site และ control plane จริง
  8. วัดจากหลาย vantage point เพราะมุมมอง BGP ไม่เหมือนกันทั่วโลก

23Control Plane กับ Data Plane Failure

Data plane failure คือ packet ส่งไม่ได้แม้ route อาจยังอยู่ เช่น interface หรือ forwarding hardware มีปัญหา Control plane failure คือ route หายหรือผิดแม้ link ยังส่ง frame ได้ การตรวจเพียง ping อาจไม่บอกว่าปัญหาอยู่ plane ใด ต้องดู routing adjacency, RIB/FIB และ counter ของ interface ร่วมกัน

RIB กับ FIB

Routing Information Base เก็บ route ที่เรียนรู้และตัวเลือก ส่วน Forwarding Information Base คือข้อมูลที่ติดตั้งเพื่อส่ง packet จริง Route อาจอยู่ใน BGP table แต่ไม่ได้ชนะจนเข้า RIB หรืออยู่ใน RIB แต่ติดตั้ง FIB ไม่สำเร็จเพราะ resource จำกัด การบอกว่า “BGP เห็น route แล้ว” จึงยังไม่รับรองว่า packet ส่งได้

24Asymmetric Routing

เส้นไปและกลับบน Internet ไม่จำเป็นต้องเหมือนกัน เพราะแต่ละ AS ตัดสินจาก destination กับ policy ของตน Asymmetry ไม่ใช่ความผิดเสมอ แต่ทำให้วัด one-way delay, firewall state, NAT และ troubleshooting ซับซ้อน อุปกรณ์ที่บังคับให้สองทิศผ่านจุดเดียวอาจทิ้ง traffic ที่ routing ปกติมองว่าถูกต้อง

Traceroute จาก A ไป B จึงไม่บอกเส้นทาง B กลับ A การวิเคราะห์ปัญหาที่เกิดเฉพาะทิศทางต้องเก็บข้อมูลจากสองปลายหรือหลาย vantage point และระวัง router บางตัวลด priority ของ ICMP ทำให้ hop ดูช้า ทั้งที่ forwarding data ปกติ

25Source of Truth และ Automation

เครือข่ายขนาดใหญ่ไม่ควรพึ่ง configuration ที่แก้มือโดยไม่มีแบบกลาง ควรมี source of truth สำหรับ prefix, VLAN, AS, policy และ ownership แล้วสร้าง configuration ผ่าน validation ก่อน deploy Automation ลดความผิดซ้ำ แต่ถ้า input ผิดก็แพร่ความผิดได้เร็วกว่าเดิม จึงต้องมี staged rollout, diff, approval และ rollback

Pre-deployment Check

  • Prefix ที่ประกาศเป็นขององค์กรและไม่กว้างเกินหรือไม่
  • Import/export policy ตรงกับ customer/peer/provider หรือไม่
  • จำนวน route หลังเปลี่ยนเกิน max-prefix หรือ resource หรือไม่
  • มีเส้นทาง management เหลือเมื่อเปลี่ยนผิดหรือไม่
  • ทดสอบใน lab/digital twin หรือจำลอง policy ได้หรือไม่

26คำถามแยกชั้นเมื่อเส้นทางผิดปกติ

ชื่อ resolve ถูกหรือไม่ Address family ที่เลือกใช้งานได้หรือไม่ Local routing ส่งออก interface ใด BGP ประกาศ prefix จาก origin ใด Tunnel เพิ่ม overhead เท่าใด Firewall เห็นเส้นทางไปและกลับเหมือนกันหรือไม่ การถามตามลำดับนี้ช่วยแยก name, address, route, encapsulation และ policy ซึ่งมักถูกรวมเรียกว่า “Internet ล่ม”

หลักสำคัญคือเก็บหลักฐานจากหลายจุดก่อน route เปลี่ยน เพราะ control plane มีเวลา เมื่อ convergence จบ สภาพที่ทำให้ packet หายอาจหายไปจากตารางแล้ว Telemetry, route history และ synchronized clock จึงจำเป็นสำหรับปัญหาที่เกิดชั่วคราว

27สรุปและขั้นตอนถัดไป

Internetworking คือการทำให้เครือข่ายที่ต่างเจ้าของ ต่างเทคโนโลยี และต่างนโยบายยังส่งข้อมูลถึงกันได้ เส้นทางที่เห็นจึงเป็นผลรวมของ address, routing protocol, business policy, tunnel และ failure state การเข้าใจเพียง algorithm หาเส้นทางสั้นที่สุดยังไม่พอ ต้องรู้ว่าใครประกาศอะไร ใครยอมส่งต่อ และข้อมูลถูกห่อหรือแปลตรงจุดใดด้วย

  • Interdomain routing เลือกเส้นทางด้วย policy และความสัมพันธ์ระหว่าง AS ไม่ใช่ shortest path อย่างเดียว
  • BGP ใช้ path vector และ attribute หลายชนิด พร้อมต้องรับมือ route leak, hijack และ convergence
  • IPv6 เปลี่ยนทั้ง address, Neighbor Discovery, fragmentation และวิธี transition
  • Tunnel สร้าง topology เสมือน แต่เพิ่ม overhead, trust boundary และความยากในการวินิจฉัย
  • Multicast ประหยัดการทำสำเนาใน data plane แต่เพิ่ม state และ coordination ใน network
  • Mobility คือการแยกตัวตนออกจากตำแหน่ง และอาจแก้ได้หลายชั้น
ลองตอบด้วยความเข้าใจ
  1. อธิบายว่าทำไม inter-domain routing (BGP) จึงเน้น reachability มากกว่า optimality พร้อมเหตุผล 3 ข้อ
  2. เปรียบเทียบ AS สามประเภท (stub, multihomed, transit) พร้อมยกตัวอย่าง
  3. อธิบายว่า BGP เป็น path-vector protocol ต่างจาก distance-vector และ link-state อย่างไร
  4. อธิบายกลไก Mobile IP ทั้ง 3 ขั้นตอน (Proxy ARP → IP tunnel → foreign agent) และ Triangle Routing Problem
  5. เปรียบเทียบ Distance-Vector Multicast/RPB กับ PIM Shared Tree ในแง่วิธีสร้างต้นไม้กระจายแพ็กเก็ต