วิธีการวางซับเน็ตสองอันไว้ติดกันได้อย่างไร


10

ฉันใช้เครื่องคิดเลขนี้แล้วhttp://www.subnet-calculator.com/cidr.phpและฉันพยายามหาวิธีที่จะวางเครือข่ายย่อยสองเครือข่ายที่แตกต่างกัน

ตัวอย่างเช่นฉันต้องการเครือข่ายย่อย / 27 เริ่มต้นที่ 1.0.0.1 ถัดจาก / 25 ดังนั้นฉันจึงคิดว่าเครือข่ายย่อย / 25 จะเริ่มต้นที่ 1.0.0.32 เนื่องจากเป็นเครือข่ายย่อยนอกเครือข่ายย่อย / 27 อย่างไรก็ตามเมื่อฉันลองทำสิ่งนี้เครื่องคิดเลขบอกว่าช่วงสำหรับ / 25 จะเป็น 1.0.0.1-1.0.0.127 ไม่ใช่เริ่มต้นที่. 32

นี่เป็นข้อ จำกัด ของเครื่องคิดเลขหรือคุณวางซับเน็ตไว้ติดกันได้อย่างไร

แก้ไข : ฉันเดาว่าคำถามของฉันคือเครือข่ายย่อยใดที่สามารถอยู่ติดกันได้ อะไรเป็นตัวกำหนดสิ่งนี้


คุณไม่สามารถมี / 25 เริ่มต้นที่ 1.0.0.32 หากสิ่งที่คุณถาม โปรดจำไว้ว่าเครือข่ายย่อยไม่ได้อยู่ในช่วงที่กำหนดเองมันเป็นเพียงวิธีแยกแยะหมายเลขโฮสต์จากหมายเลขเครือข่าย
BatchyX

ฉันเดาคำถามของฉันคืออะไรซับเน็ตสามารถไปต่อกันได้? มีเอกสารหรือเอกสารอ้างอิงที่สามารถไปที่ไหน
instipod

2
ฉันขอแนะนำให้คุณอ่านเกี่ยวกับ bitmasks แล้วคุณจะเข้าใจว่า subnet mask คืออะไร
BatchyX

คำตอบ:


7

คุณจำเป็นต้องแยกแยะเครือข่ายย่อยที่อยู่เริ่มต้นและเครือข่ายย่อยขนาด จำนวนที่อยู่เบื้องหลังเครื่องหมายทับคือขนาด (เป็น 32 บิต) ดังนั้นคุณสามารถมีซับเน็ตสอง / 27 เช่นนี้

10.0.0.1/27  == 10.0.0.1  -> 10.0.0.30
10.0.0.33/27 == 10.0.0.33 -> 10.0.0.62

แต่ a / 27 และ a 25 subnet ในลักษณะเดียวกันจะหมายถึงการเริ่มต้น / 25 ที่ที่อยู่ภายหลัง

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

เนื่องจาก / 25 subnet "ต้องการ" พื้นที่มากขึ้น คุณไม่สามารถเริ่ม subnet / 25 ที่อยู่โดยพลการเฉพาะที่ขอบเขตที่ถูกต้อง:

10.0.0.1/25   == 10.0.0.1   -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

แต่ทราบว่า

10.0.0.33/25   == 10.0.0.1   -> 10.0.0.126

เพราะ10.0.0.33/25เป็นเพียงวิธีการอื่นที่จะพูดหรือ10.0.0.1/2510.0.0.0/25

คุณสามารถตัดสินใจที่จะ "เติม" ช่องว่างระหว่างคุณ / 27 และ / 25 subnet ของคุณด้วย / 27 subnets:

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.33/27  == 10.0.0.33  -> 10.0.0.62
10.0.0.65/27  == 10.0.0.65  -> 10.0.0.94
10.0.0.97/27  == 10.0.0.97  -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

หรือกับอีก / 27 และ a / 26:

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.33/27  == 10.0.0.33  -> 10.0.0.62
10.0.0.65/26  == 10.0.0.65  -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

1
ซับเน็ตรวมที่อยู่เครือข่ายและที่อยู่การออกอากาศ ... คุณไม่มี IP ที่ไม่ได้ใช้ระหว่างเครือข่ายย่อยที่ต่อเนื่องกัน และพยายามอธิบายว่าทำไมบางเครือข่ายย่อยสามารถรวมกันเป็นรูปแบบที่สั้นกว่าโดยไม่ต้องใช้เลขฐานสองคณิตศาสตร์ได้ทำให้เข้าใจผิดอย่างสมบูรณ์
cpt_fink

4

คำนำหน้า / เครือข่ายย่อยใช้ตรรกะไบนารี ซับเน็ตถูกกำหนดโดยบิตที่ได้รับการแก้ไขและบิตที่สามารถใช้ได้สำหรับที่อยู่ จำนวนบิตคงที่คือความยาวส่วนนำหน้าหรือซับเน็ตมาสก์ ตัวอย่าง IPv4 สองสามตัวอย่าง:

Prefix:           10.0.0.0/8
Prefix length:    8
Subnet mask:      255.0.0.0
Prefix bits:      00001010 00000000 00000000 00000000 = 10.0.0.0
Subnet mask bits: 11111111 00000000 00000000 00000000 = 255.0.0.0

A 1ในบิตซับเน็ตมาสก์ระบุว่าบิตที่สอดคล้องกันได้รับการแก้ไขแล้วและ0บ่งชี้ว่าคุณสามารถใช้บิตนั้นได้ ความยาวส่วนนำหน้าคือจำนวนบิตที่ตั้งค่าเป็น1และซับเน็ตมาสก์คือหมายเลขไบนารี่ที่เขียนไว้เป็นที่อยู่ IPv4

ดังนั้นในตัวอย่างนี้คุณสามารถใช้:

First address in the prefix: 00001010 00000000 00000000 00000000 = 10.0.0.0
Last address in the prefix:  00001010 11111111 11111111 11111111 = 10.255.255.255

อีกตัวอย่างที่มีความยาวส่วนนำหน้าต่างกัน:

Prefix:           10.0.0.0/10
Prefix length:    10
Subnet mask:      255.192.0.0
Prefix bits:      00001010 00000000 00000000 00000000 = 10.0.0.0
Subnet mask bits: 11111111 11000000 00000000 00000000 = 255.192.0.0

ในตัวอย่างนี้คุณสามารถใช้ที่อยู่น้อยลง:

First address in the prefix: 00001010 00000000 00000000 00000000 = 10.0.0.0
Last address in the prefix:  00001010 00111111 11111111 11111111 = 10.63.255.255

ในขณะที่คุณสามารถเห็นเครือข่ายย่อยจะถูกกำหนดโดยค่าและจำนวนของบิตคงที่ เมื่อใช้ตัวอย่างของ1.0.0.32/25คุณคุณจะได้รับ:

Prefix:           1.0.0.32/25
Prefix length:    25
Subnet mask:      255.255.255.128
Prefix bits:      00000001 00000000 00000000 00100000 = 10.0.0.32
Subnet mask bits: 11111111 11111111 11111111 10000000 = 255.255.255.128

First address in the prefix: 00000001 00000000 00000000 00000000 = 1.0.0.0
Last address in the prefix:  00000001 00000000 00000000 01111111 = 1.0.0.127

ค่า 32 อยู่ตรงกลางของบิตที่ยืดหยุ่น เมื่อดู/25คำนำหน้าคุณจะได้รับ:

Prefix length:      25
Subnet mask bits:   11111111 11111111 11111111 10000000

1st /25 in 1.0.0.0: 00000001 00000000 00000000 00000000 = 1.0.0.0/25
2nd /25 in 1.0.0.0: 00000001 00000000 00000000 10000000 = 1.0.0.128/25
3rd /25 in 1.0.0.0: 00000001 00000000 00000001 00000000 = 1.0.1.0/25
4th /25 in 1.0.0.0: 00000001 00000000 00000001 10000000 = 1.0.1.128/25
5th /25 in 1.0.0.0: 00000001 00000000 00000010 00000000 = 1.0.2.0/25
Etc.

เมื่อดู/27คำนำหน้าคุณจะได้รับ:

Prefix length:      27
Subnet mask bits:   11111111 11111111 11111111 11100000

1st /25 in 1.0.0.0: 00000001 00000000 00000000 00000000 = 1.0.0.0/27
2nd /25 in 1.0.0.0: 00000001 00000000 00000000 00100000 = 1.0.0.32/27
3rd /25 in 1.0.0.0: 00000001 00000000 00000000 01000000 = 1.0.0.64/27
4th /25 in 1.0.0.0: 00000001 00000000 00000000 01100000 = 1.0.0.96/27
5th /25 in 1.0.0.0: 00000001 00000000 00000000 10000000 = 1.0.0.128/27
Etc.

ในเครือข่ายย่อยของ IPv4 ที่อยู่แรก (บิตยืดหยุ่นทั้งหมด0) จะถูกจองและเรียกว่าที่อยู่เครือข่าย ที่อยู่สุดท้าย (บิตที่ยืดหยุ่นทั้งหมด1) คือที่อยู่การออกอากาศย่อย คุณไม่สามารถใช้สิ่งเหล่านี้สำหรับเชื่อมต่อเครือข่ายบนอุปกรณ์

หากคุณต้องการวางเครือข่ายย่อยหลาย ๆ ตัวไว้ข้าง ๆ กันคุณจะต้องแน่ใจว่ามันจะไม่ทับซ้อนกัน เมื่อคุณมีพื้นที่ที่อยู่ไม่มากเหมือนกับ IPv4 การสร้างเครือข่ายย่อยทั้งหมดอาจเป็นกระบวนการที่ยากมากและทำให้จัดการได้ง่ายเมื่อเปลี่ยนแผนการกำหนดที่อยู่เป็นเรื่องที่ยากขึ้น นั่นคือเหตุผลที่ IPv6 ทำงานได้ดีมาก: พื้นที่ที่อยู่มากมายและซับเน็ตมักจะเป็น/64(มันเป็นไปได้ที่จะใช้ความยาวของคำนำหน้าที่แตกต่างกัน แต่มันทำลายบางสิ่งเช่นการกำหนดค่าอัตโนมัติ)

หากคุณมีความสนใจในแผนการกำหนดที่อยู่ IPv6 ให้ดูที่เอกสาร'การเตรียมแผนที่อยู่ IPv6'ฉันได้เขียนสองสามปีที่ผ่านมาสำหรับSURFnet (เครือข่ายการวิจัยและการศึกษาแห่งชาติดัตช์) วิธีการทำงานของเครือข่ายย่อยใน IPv6 นั้นเหมือนกับ IPv4 ทั้งหมดยกเว้นตัวเลขนั้นใหญ่กว่าและเขียนเป็นเลขฐานสิบหก (ซึ่งสอดคล้องกับบิตมากกว่าสัญลักษณ์เลขฐานสิบที่ใช้กับ IPv4!) ความยาวส่วนนำหน้าการมีบิตคงที่และยืดหยุ่นสามารถทำงานได้ในลักษณะเดียวกัน ตัวอย่างสั้น ๆ :

Prefix:           2001:0db8:0000:0000:0000:0000:0000:0000/64
Prefix length:    64
Subnet mask:      not really used anymore in IPv6, but it would have been:
                  ffff:ffff:ffff:ffff:0000:0000:0000:0000
Prefix bits:      0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
Subnet mask bits: 1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000

First address in the prefix:
                  0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
Last address in the prefix:
                  0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff

So from 2001:0db8:0000:0000:0000:0000:0000:0000
     to 2001:0db8:0000:0000:ffff:ffff:ffff:ffff

PS: ฉันไม่ได้ใช้สัญกรณ์แนะนำ / บัญญัติที่นี่ในจุดประสงค์ โดยปกติแล้วคุณบีบอัด zeroes ในที่อยู่และการเขียน2001:0db8:0000:0000:0000:0000:0000:0000เป็น2001:db8::, 2001:0db8:0000:0000:0000:0000:0000:0001เขียนเป็น2001:db8::1ฯลฯ


1
  • สำหรับ a / 24 octet ล่าสุด (โดยปกติสงวนไว้) สำหรับเครือข่ายคือ. 0 และ .0 เท่านั้น 1 subnet

  • สำหรับ a / 25 มันอาจเป็น. 0 หรือ. 128 2 subnets

  • สำหรับ a / 26 อาจเป็น. 0, .64, .128 หรือ. 192 4 subnets

  • สำหรับ a / 27 อาจเป็น. 0, .32, .64, .96, .128, .160, .192 หรือ .224 8 subnets

  • สำหรับ a / 28, .0, .16, .32, .48, .64, .80, .96, .1212, .128, .144, .160, .160, .176, .192, .208, .224, หรือ. 240 16 subnets

  • สำหรับ a / 29, .0, .8, .16, .24, .32, .40, .48, .56, .64, .72, .80, .88, .96, .124, .120, .128, .136, .144, .152, .160, .168, .176, .184, .192, .200, .208, .216, .224, .232, .240 หรือ. 248 32 subnets

  • คำนำหน้า / 30 มักจะพบได้ในอินเตอร์เฟสแบบจุดต่อจุด 64 subnets

  • คำนำหน้า / 31 ไม่พบในไวด์เว็บเนื่องจากไม่มีโฮสต์ที่กำหนดแอดเดรสได้ทั่วไปเนื่องจากมีเพียงหมายเลขเครือข่าย 2 หมายเลขเท่านั้น "เครือข่าย" และ "เผยแพร่" โดยไม่มีที่ว่างสำหรับโฮสต์ IP 128 subnets(เลขคู่ทั้งหมดระหว่าง 0 ถึง 254)

  • คำนำหน้า / 32 ใช้เพื่อระบุเส้นทางสำหรับโฮสต์เดียว มันเป็นเส้นทางที่เฉพาะเจาะจงที่สุดและถ้ามีควรมีความสำคัญกว่าการจัดเส้นทางเหนือรายการตารางเส้นทางอื่น ๆ ทั้งหมดที่ไม่ใช่ / 32s A / 32 ไม่มีที่อยู่ 'เครือข่าย' หรือ 'ออกอากาศ' 256 subnets (0 และ 255 อาจไม่ทำงานในการใช้งานบางอย่าง)


0

วิธีง่ายๆในการทำความเข้าใจ:

ใน IPv4:

ลองนึกภาพบรรทัดที่อยู่ IP ที่เป็นไปได้ 256 * 256 * 256 * 256 (หรือ 2 ^ 32)

[] [] [] [] .................. [] [] []
       256*256*256*256 total IP adresses

นี่มีซับเน็ตมาสก์ 0.0.0.0 (หรือ 0000 0000 0000 0000 0000 0000 0000 0000 ในรูปแบบไบนารี)
บิตทั้งหมดที่ไม่ถูกปิดบังสามารถใช้เพื่อให้ที่อยู่ IP ในเครือข่ายนั้น

ที่อยู่ที่เป็นไปได้ในเน็ตเดียวคือ:

0000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK ไม่ปิดบังอะไรที่นี่ ... )

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) ถึง
1111 1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

เครือข่ายทั้งหมดนี้เริ่มต้นที่ IP 0.0.0.0 และไปจนถึง IP 255.255.255.255

แต่ละบิตในซับเน็ตมาสก์จะแบ่งบรรทัดเป็น 2 ส่วนเท่า ๆ กัน

บิตแรกในซับเน็ตมาสก์จะแบ่งออกเป็น 2 ส่วนเท่า ๆ กันโดยแต่ละที่มีที่อยู่ IP 128 * 256 * 256 * 256 (หรือ 2 ^ 31) ที่อยู่ IP:

[] [] [] .......... [] [] []  |  [] [] ........... [] []
128*256*256*256 IP Adresses       128*256*256*256 IP Adr

นี่มีซับเน็ตมาสก์ 128.0.0.0 (หรือ 1,000 0000 0000 0000 0000 0000 0000 0000 ในรูปแบบไบนารี)
บิตทั้งหมดที่ไม่ถูกปิดบังสามารถใช้เพื่อให้ที่อยู่ IP ในเครือข่ายนั้น

ดังนั้นคุณสามารถมี 2 ซับเน็ตและสำหรับแต่ละซับเน็ตคุณมีที่อยู่ IP 31 บิต

สำหรับเครือข่ายย่อยแรก (เครือข่ายแรกที่อยู่หลัง netmask คือ '0')

1,000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) ถึง
0111 1111 1111 1111 1111 1111 1111 1111 1111 (IP 127.255.255.255)

และสำหรับเครือข่ายย่อยที่ 2 (เครือข่ายเดียวที่อยู่หลัง netmask คือ '1')

1,000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)

1000 0000 0000 0000 0000 0000 0000 0000 (IP 128.0.0.0) ถึง
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

บิตที่เพิ่มถัดไปในซับเน็ตมาสก์จะแบ่งทั้งสองข้างออกเป็น 2 ส่วนเท่า ๆ กันของ IP 2 ^ 30 ที่อยู่แต่ละอัน

และอื่น ๆ ...

ดังนั้นหากคุณพยายามที่จะบอกเครือข่ายย่อยของ / 3 ก็หมายความว่าคุณใช้เวลา 3 การแบ่งซ้ำแล้วลงท้ายด้วย 2 ^ 3 = 8 เครือข่ายย่อย แต่ละเครือข่ายย่อยสามารถเป็นหนึ่งใน 8 แผนกของทั้งสายของเครื่องจักร พวกเขาไม่สามารถทับซ้อนกัน แต่ละคนเริ่มต้นหลังจากอดีต

[] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... []
32*256*256*256 or 2^30 IP Adresses each.

นี่คือซับเน็ตมาสก์ 0.0.0.0

ดังนั้นสำหรับซับเน็ตแรก (ที่หนึ่งที่อยู่หลัง netmask คือ '000')

1110 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) ถึง
0001 1111 1111 1111 1111 1111 1111 1111 1111 (IP 31.255.255.255)

และสำหรับเครือข่ายย่อยที่ 2 (เครือข่ายเดียวที่อยู่หลัง netmask คือ '001')

1110 0000 0000 0000 0000 0000 0000 0000 (NETMASK)

0010 0000 0000 0000 0000 0000 0000 0000 (IP 32.0.0.0) ถึง
0011 1111 1111 1111 1111 1111 1111 1111 (IP 63.255.255.255)

...

และสำหรับเครือข่ายย่อยที่ 7 (ที่อยู่หลัง netmask คือ '110')

1110 0000 0000 0000 0000 0000 0000 0000 (NETMASK)

1100 0000 0000 0000 0000 0000 0000 0000 (IP 192.0.0.0) ถึง
1101 1111 1111 1111 1111 1111 1111 1111 (IP 223.255.255.255)

และสำหรับเครือข่ายย่อยที่ 8 (ที่ซึ่งอยู่หลัง netmask คือ '111')

1110 0000 0000 0000 0000 0000 0000 0000 (NETMASK)

1110 0000 0000 0000 0000 0000 0000 0000 (IP 224.0.0.0) ถึง
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

หากคุณยังคงเพิ่มบิตลงใน netmask คุณจะยังคงทำการหาร: ซับเน็ตที่ / 32 แยกเดี่ยวเครื่องเดียว

แต่จำไว้ว่าคุณไม่มีเครื่องจักรจริงๆ:

เพื่อให้สิ่งต่าง ๆ ทำงานได้ช่วงของ subnet บางส่วนถูกสงวนไว้:

สำหรับแต่ละเครือข่ายย่อย "0 บิตที่ค่า 1" และ "บิตทั้งหมดที่ค่า 1" มักจะสงวนไว้สำหรับการแพร่ภาพดังนั้นคุณมักจะมีเพียงที่อยู่ IP nb_of_possible_adresses_in_the_subnet-2 nb_of_possible_adresses_in_the_subnet-2 ในซับเน็ตสำหรับอินเทอร์เฟซเครื่องจริง และสิ่งที่ดีกว่าคืออินเทอร์เฟซของเกตเวย์ที่มีอินเทอร์เฟซอื่นในเน็ตอื่น ๆ ช่วยให้คุณใช้เป็นเกตเวย์ในการเข้าถึงเน็ตอื่น ๆ (และทุกอย่างผ่านเกตเวย์สุทธิของเน็ตเวิร์กอื่น)


ยากที่จะเป็นตัวแทนอย่างเรียบร้อย ... และฉันหวังว่าความสับสนระหว่าง "บรรทัดของ 2 ^ 32 IP adresses" และการแสดง 32 บิตที่ใช้ในที่อื่นไม่สับสนมากกว่าการช่วยเหลือ ...
Olivier Dulac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.