ความรู้คู่ความก้าวหน้า
 
host 10.1.1.1/8 กับ host 10.2.1.1/16 ใน Broadcast Domain เดียวกัน สามารถติดต่อกันได้หรือไม่?





บทความนี้่เกิดจากผู้อ่านท่านหนึ่งที่ใช้นามปากกว่า "Brandon" ได้มาอ่านบทความ "Default Gateways และความสัมพันธ์ที่มีต่อ Subnet Mask บน Host" ตาม link ข้างล่าง

//www.bloggang.com/viewblog.php?id=likecisco&date=03-11-2014&group=3&gblog=23

และได้เกิดคำถามว่า:

======================================

ถ้า..
host ต้นทางเป็น 10.1.1.1/8
host ปลายทางเป็น 10.2.1.1/16
ล่ะครับ 

นำ subnet ต้นทางมาหา network ID ปลายทาง ก็จะกลายเป็นว่าได้ network ID เดียวกันสิครับ คือ 10.0.0.0

ซึ่งจริงๆแล้ว network ID ปลายทางต้องเป็น 10.2.0.0 รึป่าวครับ

======================================

ก่อนอ่านบทความนี้ ขอแนะนำให้ท่านๆ ทั้งหลายไปอ่านบทความ "Default Gateways และความสัมพันธ์ที่มีต่อ Subnet Mask บน Host" ตาม link ข้างบนก่อนนะครับ จะได้อ่านบทความนี้อย่างสนุกมากขึ้น

---- นิดนึงครับ คือ บทความนี้เป็นการตอบคำถาม เลยยังไม่ได้ทำสีสันให้ส่วยงาม แต่เห็นเพราะว่ามีประโยชน์ เลยทำเป็นบทความให้ครับ แต่ถ้ามีเวลา จะเข้ามาปรับปรุงให้สวยงามนะครับ ---


เอาล่ะ เริ่มกันเลย

ในกรณีที่ host 10.1.1.1/8 และ host 10.2.1.1/16 ถูกติดตั้งอยู่บน broadcast domain เดียวกัน หรืออาจจะต่อบน switch ตัวเดียวกันที่ไม่ได้แบ่งvlan หรืออยู่บน switchคนละตัว แต่อยู่ vlan เดียวกัน นั่น:

ถ้า host A เป็น hostต้นทางที่มี ip address คือ 10.1.1.1 และ subnetmask เป็น /8หรือ 255.0.0.0

host B เป็น hostปลายทางที่มี ip address เป็น 10.2.1.1 และ subnetmask เป็น /16 หรือ 255.255.0.0

หมายเหตุ: ในการอธิบายนี้ Host A และ Host B ไม่มีการset Default Gateway นะครับ

ในตัวอย่างที่ผมจะอธิบายจะกล่าวในลักษณะที่เอาสาย LANต่อกันตรงๆ คือ




เช่น host A (10.1.1.1) ping ไปยัง hostB (10.2.1.1)

กระบวนการการทำงานจะเป็นดังนี้:

Step 1. Host ฝั่งต้นทาง หรือ host A (10.1.1.1/8) จะเอา /8 หรือ 255.0.0.0 ของตัวเองมา AND กับ ip address ของตัวเอง คือ 10.1.1.1 AND 255.0.0.0 = Network 10.0.0.0

Step 2. จากนั้น hostA (10.1.1.1) จะทำการตรวจสอบว่า host ปลายทาง หรือ host B (10.2.1.1) ว่าอยู่ใน subnetเดียวกับมันหรือไม่ โดยการเอา subnet mask ของตัวเองคือ /8 (255.0.0.0) มาทำการ AND กับ ipaddress ปลายทาง 10.2.1.1 ที่ต้องการติดต่อด้วย

- Host A (10.1.1.1) ดำเนินการ เอา ip address ปลายทาง 10.2.1. 1 (ip host B) AND 255.0.0.0 (subnet mask ของhost A เอง) แล้วได้ผลลัพธ์เป็น Network คือ 10.0.0.0

Step 3. Host A นำผลลัพธ์ของการ AND ที่ได้จากข้อ 1 และข้อ 2 มาทำการเปรียบเทียบกัน ได้ผลลัพธ์เหมือนกัน คือ 10.0.0.0 เหมือนกัน ดังนั้น host A (10.1.1.1) จึงตีความว่า host B (10.2.1.1) อยุ่ใน subnet เดียวกับมัน มันจึงทำการส่ง icmp request ออกไปหา host B (10.2.1.1) ตรงๆ โดยไม่ต้องอาศัย หรือไม่่ต้องส่งผ่าน Default Gateway

Step 4. IP packet ที่เป็น icmp request ได้วิ่งจาก host A (10.1.1.1) ไปยัง host B (10.2.1.1)

Step 5. Host B ได้รับ icmp request ที่มี source IP = 10.1.1.1 (host A) และ destination IP = 10.2.1.1 (ip ของ host B เอง) มันจึงพยายามที่จะตอบ icmp reply กลับไปยัง host A (10.1.1.1)

Step 6. Host B ในตอนนี้ที่พยายายามจะตอบกลับไปยังhost A (10.1.1.1) ด้วย icmp reply นั้น

host B จะทำการสร้าง icmp reply ขึ้นมาด้วยตัวของมันเองดังนั้นมันจึงหนด source ip address ของ icmp reply เป็นตัวมันเองคือ 10.2.1.1 และ destination ip address เป็น host A (10.1.1.1)

จากนั้น Host B (10.2.1.1) ดำเนินการในลักษณะเดียวกันกับ Host A (10.1.1.1) ตาม step 1 ถึง step 3 แต่เป็นการดำเนินการในลักษณะที่กลับกันดังนี้

Step 7. Host ฝั่งต้นทาง หรือ host B (10.2.1.1/16) จะเอา /16 หรือ 255.255.0.0 ของตัวเองมา AND กับ ip address ของตัวเอง คือ 10.2.1.1 AND 255.255.0.0 = Network 10.2.0.0

Step 8. จากนั้น host B (10.2.1.1) จะทำการตรวจสอบว่า host ปลายทาง หรือ host A (10.1.1.1) ว่าอยู่ใน subnet เดียวกับมันหรือไม่ โดยการเอา subnet mask ของตัวเองคือ /16 (255.255.0.0) มาทำการ AND กับ ip address ปลายทาง 10.1.1.1 ที่ต้องการติดต่อด้วย

- Host B (10.2.1.1) ดำเนินการ เอา ip address ปลายทาง 10.1.1.1 (ip host A) AND 255.255.0.0 (subnet mask ของ host B เอง) แล้วได้ผลลัพธ์เป็น Network คือ 10.1.0.0

Step 9. Host B นำผลลัพธ์ของการ AND ที่ได้จากข้อ 7 และข้อ 8 มาทำการเปรียบเทียบกัน ได้ผลลัพธ์ต่างกันดังนี้

- จาก step 7 แล้ว, host B เห็นว่าตัวเองอยู่ใน subnet 10.2.0.0

- จาก step 8 แล้ว, host B เห็นว่าปลายทาง นั่นก็คือ host A ip address 10.1.1.1 อยู่ใน subnet 10.1.0.0

ดังนั้น host B (10.2.1.1) จึงตีความว่า host A (10.1.1.1) อยุ่คนละ subnet กับมัน มันจึงไปตรวจสอบดูว่า ที่ตัวมันมีการ setup Default Gateway ไว้หรือไม่ แต่จากตัวอย่างนี้ คือ เราไม่ได้ set Default Gateway ไว้ดังนั้น host B จึงจำเป็นต้อง drop icmp reply ที่ตัวเองสร้างขึ้นมา

นั่นก็คือ หาก host A มีการสื่อสารใดๆ กับ host B ไม่ว่าจะเป็น application อะไรก็ตามที่ต้องการสื่อสารแบบ two way communication (มีการเช็คกันแบบมี acknowledge) ก็จะไม่สามารถสื่อสารได้ แม้ว่า host A จะส่ง ip packet มาถึง host B ก็ตาม แต่เพราะ host B ไม่สามารถติดต่อกลับได้ มันจึงเป็นการส่งข้อมูลเพียงด้านเดียว ซึ่งในการใช้งาาน application ทั่วๆ ไปแล้วนั้น application ส่วนใหญ่ โดยเฉพาะ application ที่ใช้งานอยู่บน TCP จะต้องสามารถส่งข้อมูลได้ทั้งไปและกลับ

หากท่านใดสนใจจะพิสูจน์บทความนี้ ท่านสามารถต่อ PC และ set IP address กับ Subnet Mask ได้ตามรูป จากนั้นทำการจับ Wireshark บน Host A หรือ B ก็ได้ แล้วทำการ ping จาก Host A ไปยัง Host B ดูนะครับ 

Step การ test กับ Wireshark:

1. เพื่อให้สามารถเห็นการสื่อสารตามปกติ ท่านควรให้ host A กับ host B ใช้ subnet mask ที่เหมือนกันก่อน แล้ว ping หากัน ท่านจะพบว่ามีทั้ง icmp request และ reply กลับไปมา

2. ทำตามบทความ โดย host A ใช้ /8 และ host B ใช้ /16


เนื่องจากมีคำถามที่น่าสนใจหลังจากที่บทความนี้ได้เผยแพร่ออกไป ผมจึงเอามาเขียนเพิ่มเพื่อเป็นความรู้นะครับ

คำถามที่ 1: (ผมขอปรับใส่รายละเอียดเข้าไปในคำถามของต้นฉบับ เพื่อให้อ่านเข้าใจง่ายนะครับ)

"ถ้าเปลี่ยน Subnet Mask ของ host B (10.2.1.1) จาก /16 มาเป็น /9 (255.128.0.0) ไล่มาจนถึง /14 (255.252.0.0) แล้ว จะได้ผลลัพธ์ตอนที่ AND กับ 10.1.1.1 (host A) และ 10.2.1.1 (host B) ทั้งทิศทางขาไปและขากลับ เป็น 10.0.0.0 เหมือนกัน และจะส่ง ICMP กลับมาหาได้ใช่ไหมครับ"

ตอบคำถามที่ 1: (ผมได้ทดสอบแล้ว เพื่อให้แน่ใจก่อนตอบแล้วครับ)
คำตอบคือ ใช่ครับ โดยอธิบายได้ดังนี้ครับ

1. กรณี host A (10.1.1.1/8) เป็นต้นทาง และ host B (10.2.1.1/9 ถึง /14) เป็นปลายทางแล้ว host A จะเห็นตัวมันเอง กับ host B เป็น subnet เดียวกัน คือ 10.0.0.0 ดังนั้น host A จะส่ง IP packet ออกไปหา host B

2. (ทิศทาง traffic ขากลับ หรือ return traffic) กรณี host B (10.2.1.1/9 ถึง /14) เป็นต้นทาง และ host A (10.1.1.1/8) เป็นปลายทางแล้ว host B จะเห็นตัวมันเอง กับ host A เป็น subnet เดียวกัน คือ 10.0.0.0 ดังนั้น host B จะส่ง IP packet ออกไปหา host A

==========================================

คำถามที่ 2: (ผมขอปรับใส่รายละเอียดเข้าไปในคำถามของต้นฉบับ เพื่อให้อ่านเข้าใจง่ายนะครับ)

ถ้า host A เปลี่ยน IP address จาก 10.1.1.1/8 มาเป็น 10.2.2.1/8

และ host B เหมือนเดิมคือ 10.2.1.1/16 จะสามารถส่งข้อมูลไปกลับได้ไหม

นั่นคือ host A = 10.2.2.1/8 และ host B = 10.2.1.1/16

ตอบคำถามที่ 2: (ผมได้ทดสอบ เพื่อให้แน่ใจก่อนตอบแล้วครับ)
คำตอบคือ ได้ครับ โดยอธิบายได้ดังนี้ครับ

1. กรณี host A (10.2.2.1/8) เป็นต้นทาง และ host B (10.2.1.1/16) เป็นปลายทางแล้ว host A จะเห็นตัวมันเอง กับ host B เป็น subnet เดียวกัน คือ 10.0.0.0 ดังนั้น host A จะส่ง IP packet ออกไปหา host B

2. (ทิศทาง traffic ขากลับ หรือ return traffic) กรณี host B (10.2.1.1/16) เป็นต้นทาง และ host A (10.2.2.1/8) เป็นปลายทางแล้ว host B จะเห็นตัวมันเอง กับ host A เป็น subnet เดียวกัน คือ 10.2.0.0 ดังนั้น host B จะส่ง IP packet ออกไปหา host A

==============================

หวังว่าบทความนี้จะมีประโยชน์นะครับ

โก้-ชัยวัฒน์




Create Date : 13 กันยายน 2559
Last Update : 8 มกราคม 2560 0:17:55 น. 6 comments
Counter : 8185 Pageviews.  
 
 
 
 
ขอบพระคุณครับอาจารย์
 
 

โดย: IRONMINI IP: 61.19.235.66 วันที่: 14 กันยายน 2559 เวลา:9:37:35 น.  

 
 
 
ผมสงสัยตรงคำถามที่ 2 ครับ ที่ว่า 2. (ทิศทาง traffic ขากลับ หรือ return traffic) กรณี host B (10.2.1.1/16) เป็นต้นทาง และ host A (10.2.2.1/8) เป็นปลายทางแล้ว host B จะเห็นตัวมันเอง กับ host B เป็น subnet เดียวกัน คือ 10.2.0.0 ดังนั้น host B จะส่ง IP packet ออกไปหา host A (มันจะส่งข้อมูลไปกลับได้ไหมครับ เพราะ Subnet มันเปน 10.2.0.0 แต่ของ A มันเป็น 10.0.0.0)
 
 

โดย: Surasak IP: 27.130.167.69 วันที่: 10 ตุลาคม 2559 เวลา:18:27:20 น.  

 
 
 
@K. Surasak,
จากคำถามที่ 2 ที่คุณ Surasak ถามมา:
คำตอบคือ ได้ครับ

A --> B: A จะมองว่าตัวมันเอง และ B อยู่ใน subnet 10.0.0.0/8 จึงส่งไปหา B

B-->A: B จะมองว่า A อยู่ใน subnet 10.2.0.0/16 เดียวกับมัน จึงส่งข้อมุลกลับไปหา A ได้

ทำให้การสื่อสารระหว่าง A และ B สามารถสื่อสารกันได้ โดยที่ A อยู่ใน subnet 10.0.0.0/8 และ B อยู่ใน subnet 10.2.0.0/16

ขอบคุณครับ
โก้-ชัยวัฒน์
 
 

โดย: kochaiwat วันที่: 13 ตุลาคม 2559 เวลา:9:31:20 น.  

 
 
 
@K. kochaiwat
เข้าใจขึ้นเลยครับ ขอบคุณครับ
 
 

โดย: Surasak IP: 171.6.18.33 วันที่: 13 ตุลาคม 2559 เวลา:21:33:04 น.  

 
 
 
ขอบคุณบทความดีๆของอาจารย์โก้ครับ ผมสงสัยมานานแล้วครับ ว่าทำไม subnet mask ต่างกัน ทำไม ping เจอกันได้ วันนี้กระจ่างเลยครับ
 
 

โดย: Apiwat IP: 171.97.97.109 วันที่: 25 มีนาคม 2561 เวลา:1:22:53 น.  

 
 
 
ขอบคุณครับ
 
 

โดย: TUM IP: 14.207.168.69 วันที่: 10 ธันวาคม 2561 เวลา:14:25:52 น.  

Name
Opinion
*ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก

kochaiwat
 
Location :
กรุงเทพฯ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 693 คน [?]




เริ่มงานครั้งแรกที่บริษัท UIH (United Information Highway) ซึ่งเป็นบริษัทผู้ให้บริการทางด้านการสื่อสารข้อมูล อาทิเช่น Lease Line, Frame Relay และ MPLS และได้ย้ายไปร่วมงานกับบริษัท dtac โดยได้ทำงานเกี่ยวกับ IP Network (Switch/Router/Firewall/F5-Loadbalancer) รวมถึง MPLS Network และ IPRAN (IP Radio Access Network) ซึ่งเป็น IP Network ที่รองรับ Access ของ Mobile System นอกจากนั้นยังสนใจศึกษาเรื่อง IPv6 Address ที่จะมาใช้แทน IPv4 ที่เราใช้งานอยู่ในปัจจุบัน
แต่ด้วยความชอบในการแบ่งปันความรู้ จึงได้มีโอกาสสอน CCNA อยู่ที่สถาบันแห่งหนึ่งในอาคารฟอร์จูนทาวน์ในวันเสาร์-อาทิตย์ ตั้งแต่ปี พ.ศ. 2549 จนถึง พ.ศ. 2553 รวมเป็นเวลา 4 ปี, หลังจากนั้นในระหว่างที่ทำงานที่ dtac ก็ได้สอนเสาร์-อาทิตย์เรื่อยมา

เคยเป็น Trainer หรือ Instructor อย่างเต็มตัว สอนวิชาต่างๆ ของ Cisco อย่างเป็นทางการ (Authorize Training) ที่บริษัท Training Partner Thailand จนถึง มีนาคม 2014 และได้ตัดสินใจออกมาสอนเอง เพราะด้วยความรักในอาชีพการสอน และต้องการที่จะแบ่งปันความรู้ให้กับบุคคลในระดับกลางและล่างเพื่อส่งเสริมให้ได้มีโอกาสได้เรียน และได้มีโอกาสสมัครงาน แต่ด้วยใจรักในบริษัท Cisco ดังนั้น เมื่อมีโอกาสเข้ามา จึงได้ตัดสินใจหยุดการสอน และได้เข้าไปเป็นพนักงาน หรือทำงานที่บริษัท Cisco Thailand ตั้งแต่วันที่ 15 กุมภาพันธ์ 2559 (2016) จนถึงปัจจุบัน

ลูกค้าที่เคยมารับการอบรม เช่น
- Lao Telecom Company Ltd
- CAT Telecom
- TOT
- True
- dtac
- CDG Group
- SITA air transport communications and information technology (www.sita.aero/)
- Infonet Thailand
- MultiLink Co., Ltd
- โรงพยาบาลไทยนครินทร์
- และเคยไปเป็นวิทยากรพิเศษที่ มหาวิทยลัยกรุงเทพสุวรรณภูมิ

ปัจจุบัน โก้-ชัยวัฒน์ ได้ผ่านการสอบ:
- Cisco Certified Internetwork Expert (CCIE) No. 51353 และ
- Cisco Certified Systems Instructor (CCSI) ซึ่งเป็น Certificate ที่ออกให้โดย Cisco สำหรับผู้ที่จะเป็นผู้สอน Cisco Certificate อย่างเป็นทางการ และได้รับ CCSI ID: 34784

วิชาที่สามารถได้สอนได้สำหรับ Cisco Certificate ในขณะนี้คือ
- CCNA Routing & Switching
- CCNA Security (IINS)
- CCNP Route & Switch: ROUTE
- CCNP Route & Switch: SWITCH
- CCNP Route & Switch: TSHOOT
- MPLS (IOS)
- MPLS Traffic Engineering (IOS)
- CCNP Service Provider: SPROUTE (OSPF, IS-IS, BGP, Prefix-List, Route-Map and RPL (Routing Policy Language))
- CCNP Service Provider: SPADVROUTE (Advance BGP, Multicast, and IPv6)
- CCNP Service Provider: SPCORE (MPLS, MPLS-TE, QoS)
- CCNP Service Provider: SPEDGE (MPLS-L3VPN, MPLS-L2VPN (AToM and VPLS)
- IPv6

Certification ที่มีอยู่ในปัจจุบัน CCIE# 51353, CCSI# 34784, CCNA Routing & Switching, CCNA Security (IINS), CCNA Design, CCNP Routing & Switching, CCIP, CCNP Service Provider ซึ่งเป็น Certification ของ Cisco product รวมถึง Certification ของสถาบัน EC-Council (www.eccouncil.org) นั่นคือ Certified Ethical Hacker (CEH)

"เป้าหมายมีไว้ให้ไล่ล่า บ้างเหนื่อยล้าบ้างหยุดพัก
ชีวิตแม้ยากนัก แต่เรารักเราไม่ถอย
ชีวิตแม้ต้องคอย จะไม่ปล่อยไปวันๆ
ชิวิตไม่วายพลัน แม้นสักวันต้องได้ชัย"

"แม้ระยะทางจะไกลแค่ไหน แม้ต้องใช้เวลามากเพียงใด
ขอเพียงแค่มีความตั้งใจ เราต้องได้ไปให้ถึงมัน"

ผมจะไม่ยอมทิ้งฝัน แต่จะไล่ล่ามันให้ถึงที่สุด สักวันฝันอาจจะเป็นจริง ถึงจะไปไม่ถึง แต่ผมก็ภูมิใจที่ได้ทำ
==============================
ความรู้ = เมล็ดพืช
ความพยายามในการเรียนรู้ = ปุ๋ย, น้ำ และความใส่ใจที่จะปลูก
สรุปคือ
ยิ่งพยายามเรียนรู้ ยิ่งพยายามศึกษาในเรื่องใดๆ ผลที่ได้คือ จะได้ความรู้ในเรื่องนั้นๆ อย่างลึกซึ้ง เปรียบเสมือนปลูกต้นไม้ด้วยความใส่ใจ ให้น้ำ ให้ปุ๋ย ผลที่ได้ก็คือ ต้นไม้ที่เติบโตอย่างแข็งแรง และผลิดอกและผลที่งดงามให้เราได้ชื่นชม
ความพยายามอยู่ที่ไหน ความสำเร็จจะอยู่ที่นั่น หรือที่ไหนก็ช่าง แต่เชื่อเถอะ เราจะได้ผลลัพธ์ที่ดีจากความพยายามนั้นๆ ไม่มากก็น้อย
อยากได้อะไรให้พยายาม แล้วความสำเร็จมันจะเข้ามาหาเอง
ผมเชื่อ และมั่นใจอย่างนั้น
===============================
ตอนนี้ผมได้ไปถึงฝัน (CCIE) แล้ว และสิ่งที่ไม่คาดฝัน คือได้ทำงานที่บริษัท Cisco ซึ่งถือได้ว่าไกลเกินฝัน

กว่าผมจะมาถึงจุดนี้ได้ เกิดจากความตั้งใจ มุ่งมั่น และพยายามอย่างไม่ย่อท้อ ศึกษาหาความรู้ และฝึกฝนตนเองอยู่เสมอ จนกระทั่งประสบความสำเร็จ และผมก็ได้พิสูจน์แล้วว่า ความพยายามอยู่ที่ไหน ความสำเร็จอยู่ที่นั่น ขอเพียงแค่อย่าท้อ อย่าถอย และอย่าหยุด

ผมขอเป็นกำลังใจให้กับทุกคน และขอให้ประสบความสำเร็จดังที่มุ่งหวัง ไม่ว่าท่านจะหวังสิ่งใดก็ตามครับ

ท้ายที่สุด ผมขอฝากข้อคิดในเรื่อง Certificate ไว้สักนิดนะครับ:
*** "CCIE และ Certificate อื่นๆ มีไว้เพื่อทำมาหากิน และมีไว้เพื่อข่มตนไม่ให้เกรียน เพราะความเกรียนจะนำมาซึ่งการเป็นเป้าให้คนที่เค้าหมั่นไส้ยิงเอานะครับ" ***

Facebook: Chaiwat Amornhirunwong
New Comments
[Add kochaiwat's blog to your web]

MY VIP Friends


 
 
pantip.com pantipmarket.com pantown.com