Advanced Internetworking
เมื่อ Internet โตขึ้นเป็นหลักแสนเครือข่าย พันล้านโหนด — จะจัดการ routing ให้ scale ได้อย่างไร (BGP), จะแก้ปัญหาพื้นที่ address ของ IPv4 หมดอย่างไร (IPv6), และจะส่งข้อมูลแบบ one-to-many/many-to-many และรองรับ host ที่เคลื่อนที่ได้อย่างไร (Multicast, Mobile IP) — ต่อยอดโดยตรงจาก Network Layer
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
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
เป้าหมายของ BGP: Reachability ไม่ใช่ Optimality
เป้าหมายของ inter-domain routing คือหาเส้นทางใดก็ได้ที่ไปถึงปลายทางและไม่มี loop — ไม่ใช่เส้นทางที่ดีที่สุด เพราะ:
- Scalability — backbone router ต้อง forward แพ็กเก็ตไปได้ทุกที่ในโลก ต้องมี routing table ที่ match ทุก address ที่ถูกต้อง
- Autonomy — คำนวณ cost ที่มีความหมายข้ามหลาย AS ไม่ได้ (cost 1000 ของ provider A อาจดีมาก แต่แย่มากสำหรับ provider B)
- Trust — provider A อาจไม่เชื่อ advertisement บางอย่างจาก provider B
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
3Next Generation IP (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 บีบอัดได้:
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
ภาพรวม
| IPv4 | IPv6 |
|---|---|
| ใช้ class D address, สาธิตผ่าน MBone (ใช้ tunneling), ต้องแก้ปัญหาเรื่อง scale | เป็นส่วนหนึ่งของ design ตั้งแต่แรก |
รูปแบบการใช้งาน: One-to-many (radio broadcast, ข่าว/ราคาหุ้น, software update) และ Many-to-many (teleconference, online multiplayer game, distributed simulation)
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 น้อยสุดถ้าเสมอ)
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)
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
สามคำถามที่ต้องแก้:
- Home agent สกัดแพ็กเก็ตที่มุ่งไปยัง mobile node ได้อย่างไร? → ใช้ Proxy ARP (home agent ตอบ ARP request แทน mobile node ที่ไม่อยู่)
- Home agent ส่งแพ็กเก็ตต่อไปยัง foreign agent ได้อย่างไร? → ใช้ IP tunnel ไปยัง care-of-address (address ชั่วคราวที่ mobile node ได้ ณ เครือข่ายต่างถิ่น)
- 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
6Routing ข้ามองค์กรคือเรื่อง Policy ก่อนเป็นเรื่องระยะทาง
ภายในองค์กรเดียว ผู้ดูแลอาจกำหนด metric แล้วหาเส้นทาง cost ต่ำได้ แต่ Internet เชื่อม Autonomous System ที่มีเจ้าของ เป้าหมาย และสัญญาธุรกิจต่างกัน AS หนึ่งอาจยอมส่ง traffic ให้ลูกค้า แต่ไม่ยอมเป็นทางผ่านฟรีระหว่าง provider สองราย เส้นทางที่สั้นจึงอาจไม่ใช่เส้นทางที่อนุญาต
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 ทั้งหมด
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 Unicast | Address ที่ route ได้ในเครือข่าย IPv6 ทั่วไป |
| Link-Local | ใช้บน link เดียว มักเริ่มด้วย fe80::/10 และจำเป็นต่อ Neighbor Discovery |
| Unique Local | ใช้ภายในองค์กร ไม่ได้ตั้งใจ route บน Internet สาธารณะ |
| Multicast | ส่งถึงสมาชิกกลุ่ม IPv6 ไม่มี broadcast แบบ IPv4 |
| Anycast | Address เดียวประกาศจากหลายตำแหน่ง 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 การเปลี่ยนผ่านจึงเป็นสภาวะระยะยาว ไม่ใช่วันย้ายระบบครั้งเดียว
9Tunneling และ Overlay Network
Tunnel นำ packet ชั้นในไปห่อใน packet ชั้นนอก Endpoint สองฝั่งดูเหมือนเชื่อมด้วย link เสมือน แม้ packet ชั้นนอกผ่าน router จำนวนมาก VPN, GRE, VXLAN และกลไกเปลี่ยนผ่าน IP ใช้แนวคิดนี้ต่างวัตถุประสงค์
ข้อดีและต้นทุนของ Tunnel
| ข้อดี | ต้นทุน |
|---|---|
| สร้าง topology เชิงตรรกะโดยไม่เปลี่ยน underlay | เพิ่ม header ทำให้ MTU สำหรับ payload ลดลง |
| เชื่อมเครือข่ายที่ใช้ address หรือ protocol ต่างกัน | เส้นทางจริงถูกซ่อน ทำให้วินิจฉัยยากขึ้น |
| ป้องกัน traffic ได้เมื่อใช้ cryptographic tunnel | Tunnel 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 mobility | QUIC connection migration หรือ reconnect พร้อม session token | Connection/session แม้ IP เปลี่ยน |
ระบบสมัยใหม่อาจแก้ mobility ที่ชั้นอื่นแทน Mobile IP เช่น application reconnect, load balancer, cellular core หรือ QUIC connection ID นี่ไม่ทำให้แนวคิด home/care-of address ไร้ค่า แต่แสดงว่าปัญหาเดียวแก้ได้หลายชั้นและมี trade-off ต่างกัน
12กรณีศึกษา: บริการระดับโลก
- DNS หรือ anycast พาผู้ใช้ไปยังจุดให้บริการใกล้เคียงตาม topology
- BGP policy กำหนดว่า prefix ของจุดนั้นถูกประกาศผ่าน provider ใด
- ภายในศูนย์ข้อมูล IGP พา packet ไปยัง load balancer หรือ tunnel endpoint
- Overlay อาจส่งต่อไปยัง service instance โดยไม่เปิด topology ภายในต่อ Internet
- เมื่อจุดหนึ่งล้ม ระบบถอน route, เปลี่ยน DNS หรือย้าย session ตามกลไกที่ออกแบบ
คำว่า “ใกล้ที่สุด” ในระบบนี้มีหลายความหมาย: AS path สั้น, RTT ต่ำ, ค่าใช้จ่ายต่ำ หรือมี capacity เหลือ การออกแบบ internetworking จึงต้องประกาศ objective ให้ชัด ไม่เช่นนั้นแต่ละส่วนอาจ optimize คนละเป้าหมาย
13การวินิจฉัยปัญหาข้ามเครือข่าย
- ตรวจ DNS ว่าชี้ address และ address family ที่คาดหรือไม่
- ตรวจ local route, default gateway และ source address ที่ระบบเลือก
- ใช้ traceroute/MTR ดู path, loss และจุดที่ latency เปลี่ยน โดยไม่สรุปจาก hop เดียวเร็วเกินไป
- ตรวจ BGP announcement และมุมมองจากหลายเครือข่ายเมื่อปัญหาเกิดเฉพาะบาง ISP
- ตรวจ MTU, tunnel และ ICMP เมื่อข้อมูลก้อนเล็กผ่านแต่ก้อนใหญ่ค้าง
- ตรวจ 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
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 Forwarding | MPLS |
|---|---|---|
| ข้อมูลหลัก | Destination prefix | Label 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 อ้อม
- AS65010 เป็นลูกค้าของ Provider A และ Provider B เพื่อ redundancy
- ปกติควรประกาศ prefix ของตนให้ทั้งสอง provider แต่ไม่ส่ง route ที่เรียนจาก A ไปให้ B
- Configuration ผิดทำให้ AS65010 ประกาศ route จำนวนมากจาก A ไปยัง B
- B เห็นเส้นทางนี้น่าสนใจตาม policy บางอย่างและส่ง traffic เข้าหา AS65010
- ลิงก์ลูกค้าขนาดเล็กรับ transit traffic ไม่ไหว เกิด congestion และเส้นทางทั่วบางส่วนผิดปกติ
การแก้ต้องถอนประกาศ แก้ export filter และประสานเครือข่ายที่รับ route ไปแล้ว การป้องกันใช้ prefix filter, max-prefix, community, RPKI สำหรับ origin บางส่วน และ policy ตาม customer cone ไม่มี control เดียวตรวจความสัมพันธ์ทางธุรกิจทั้งหมดได้สมบูรณ์
20Worked Example: Tunnel MTU Black Hole
- Site A กับ B เชื่อมผ่าน VPN tunnel บน Internet MTU 1500
- Packet ชั้นในขนาด 1500 ถูกเติม outer IP/UDP/security header จนใหญ่เกิน underlay MTU
- อุปกรณ์ทิ้ง packet และส่ง ICMP Packet Too Big แต่ firewall บล็อก ICMP
- Packet เล็กและ TCP handshake ผ่านได้ แต่การส่ง response ใหญ่ค้าง
- แก้ด้วยเปิด ICMP ที่จำเป็น ปรับ tunnel MTU หรือ clamp TCP MSS อย่างเข้าใจขอบเขต
21การออกแบบ Multi-Homing
การมีสองลิงก์ไม่ได้แปลว่ามี redundancy หากทั้งคู่เข้าท่อเดียว อาคารเดียว หรือ provider upstream เดียว ต้องตรวจ shared fate ทั้งไฟฟ้า fiber path, router, DNS และ control plane นอกจากนี้ inbound traffic ควบคุมยากกว่า outbound เพราะขึ้นกับ route ที่เครือข่ายอื่นเลือก
| เป้าหมาย | กลไกที่เกี่ยวข้อง | ข้อควรทดสอบ |
|---|---|---|
| Outbound failover | Default route tracking, BGP local preference หรือ SD-WAN | Session เดิมอยู่รอดหรือ reconnect อย่างไร |
| Inbound failover | BGP advertisement, DNS failover หรือ anycast | Convergence, TTL และ stale route |
| Load sharing | Policy, ECMP, DNS/anycast | ความไม่สมมาตรและ stateful firewall |
22Internetworking Design Checklist
- กำหนด administrative boundary และเจ้าของ prefix/AS/policy
- แยก underlay, overlay และ tunnel endpoint ให้เห็นชัด
- บันทึก MTU และ overhead ทุก encapsulation
- ออกแบบ IPv4/IPv6 ร่วมกัน รวม DNS, firewall และ monitoring
- กำหนด route import/export ตาม business relationship
- ใช้ filtering, max-prefix, RPKI และ alert ความเปลี่ยนแปลง route
- ทดสอบ failure ของ link, router, site และ control plane จริง
- วัดจากหลาย 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 คือการแยกตัวตนออกจากตำแหน่ง และอาจแก้ได้หลายชั้น
- อธิบายว่าทำไม inter-domain routing (BGP) จึงเน้น reachability มากกว่า optimality พร้อมเหตุผล 3 ข้อ
- เปรียบเทียบ AS สามประเภท (stub, multihomed, transit) พร้อมยกตัวอย่าง
- อธิบายว่า BGP เป็น path-vector protocol ต่างจาก distance-vector และ link-state อย่างไร
- อธิบายกลไก Mobile IP ทั้ง 3 ขั้นตอน (Proxy ARP → IP tunnel → foreign agent) และ Triangle Routing Problem
- เปรียบเทียบ Distance-Vector Multicast/RPB กับ PIM Shared Tree ในแง่วิธีสร้างต้นไม้กระจายแพ็กเก็ต