CIDR สำหรับ Dummies


46

ฉันเข้าใจว่า CIDR คืออะไรและใช้เพื่ออะไร แต่ฉันยังไม่สามารถหาวิธีคำนวณได้ในหัวของฉัน ใครสามารถให้คำอธิบายประเภท "สำหรับหุ่น" กับตัวอย่าง?


3
ดูคำถามนี้สำหรับคำถาม subnetting แบบละเอียด
Zoredache

คำตอบ:


78

CIDR (Classless Inter-Domain Routing, ออกเสียง "kidder" หรือ "ไซเดอร์" - เพิ่มตัวแปรท้องถิ่นของคุณในการแสดงความคิดเห็น!) เป็นระบบในการกำหนดส่วนเครือข่ายของที่อยู่ IP (โดยปกติคนมักคิดว่านี่เป็น subnet mask) . เหตุผลที่ "classless" คือมันช่วยให้วิธีการแบ่งเครือข่าย IP ลงมีความยืดหยุ่นมากกว่าชั้นฐานของพวกเขา

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

Class    Binary Prefix    Range                       Network Bits
A        0*               0.0.0.0-127.255.255.255     8
B        10*              128.0.0.0-191.255.255.255   16
C        110*             192.0.0.0-223.255.255.255   24
D        1110*            224.0.0.0-239.255.255.255
E        1111*            240.0.0.0-255.255.255.255

(โปรดทราบว่านี่เป็นแหล่งที่มาของคนที่อ้างถึง / 24 ว่าเป็น "คลาส C" แม้ว่าจะไม่ใช่การเปรียบเทียบที่แท้จริงอย่างเข้มงวดเพราะคลาส C จำเป็นต้องมีคำนำหน้าเฉพาะ)

คำนำหน้าไบนารีเหล่านี้ใช้สำหรับการกำหนดเส้นทางพื้นที่ขนาดใหญ่ของ IP เรื่องนี้ไม่มีประสิทธิภาพเพราะมันส่งผลให้บล็อกขนาดใหญ่ถูกกำหนดให้กับองค์กรที่ไม่จำเป็นต้องใช้พวกเขาและเพราะ Class C สามารถกำหนดได้เพียงเพิ่มขึ้น 24 บิตหมายความว่าตารางเส้นทางอาจมีขนาดใหญ่เกินความจำเป็นเนื่องจาก Class C หลายตัวถูกกำหนดเส้นทาง สถานที่เดียวกัน

CIDR ถูกกำหนดเพื่ออนุญาตให้ใช้ซับเน็ตมาสก์ความยาวผันแปร (VLSM) กับเครือข่าย ตามชื่อที่ใช้กลุ่มที่อยู่หรือเครือข่ายสามารถแบ่งออกเป็นกลุ่มที่ไม่มีความสัมพันธ์โดยตรงกับ "คลาส" ธรรมชาติที่พวกเขาอยู่

หลักฐานพื้นฐานของ VLSM คือการจัดให้มีการนับจำนวนบิตเครือข่ายในเครือข่าย เนื่องจากที่อยู่ IPv4 เป็นจำนวนเต็ม 32 บิต VLSM จะอยู่ระหว่าง 0 ถึง 32 เสมอ (ถึงแม้ว่าฉันไม่แน่ใจว่าอินสแตนซ์ใดของคุณอาจมีหน้ากากยาว 0)

วิธีที่ง่ายที่สุดในการเริ่มต้นคำนวณ VLSM / CIDR ในหัวของคุณคือการเข้าใจขอบเขต 8 บิตที่เป็น "ธรรมชาติ":

CIDR    Dotted Quad
/8      255.0.0.0
/16     255.255.0.0
/24     255.255.255.0
/32     255.255.255.255

(โดยวิธีการที่ถูกกฎหมายและค่อนข้างธรรมดาใน ACLs ที่จะใช้หน้ากาก / 32 มันก็หมายความว่าคุณหมายถึง IP เดียว)

เมื่อคุณเข้าใจสิ่งเหล่านี้มันเป็นเลขฐานสองแบบง่าย ๆ ที่จะเลื่อนขึ้นหรือลงเพื่อรับจำนวนโฮสต์ ตัวอย่างเช่นถ้า a / 24 มี 256 IP (ลองละเครือข่ายและที่อยู่การออกอากาศตอนนี้นั่นเป็นคำถามทฤษฎีเครือข่ายที่แตกต่างกัน) การเพิ่มซับเน็ตโดยหนึ่งบิต (ถึง / 25) จะลดพื้นที่โฮสต์ลงหนึ่งบิต (เป็น 7) ความหมายจะมี 128 IP

นี่คือตารางของออคเต็ตสุดท้าย ตารางนี้สามารถเลื่อนไปยัง octet ใดก็ได้เพื่อให้ได้รูปสี่เหลี่ยมที่มีจุดเทียบเท่า

CIDR    Dotted Quad
/24     255.255.255.0
/25     255.255.255.128
/26     255.255.255.192
/27     255.255.255.224
/28     255.255.255.240
/29     255.255.255.248
/30     255.255.255.252
/31     255.255.255.254
/32     255.255.255.255

เป็นตัวอย่างของการย้ายสิ่งเหล่านี้ไปยัง octet อื่น / 18 (ซึ่ง / 26 ลบ 8 บิตดังนั้นเลื่อน octet) จะเป็น 255.255.192.0


2
แปลกผมมักจะได้ยินมันออกเสียง "ไซเดอร์"
sclarson

ฉันแน่ใจว่าเป็นภูมิภาค / องค์กร ผมไม่แน่ใจว่าถ้าผมได้ยินบางคนโทร CIDR "คิดเดอร์" แต่ฉันรู้ว่าเมื่อฉันเอา LISP โปรแกรมปีที่ผ่านมาการทำงาน CDR ถูกเรียกว่า "คิดเดอร์" โดยศาสตราจารย์ของฉันฉันอาจจะหยิบมันขึ้นมาจากที่นั่น ...
jj33

เช่นเดียวกับจุดข้อมูลเพิ่มเติม: ฉันเพิ่งได้ยิน "ไซเดอร์" และฉันถูกสอนว่า CDR คือ "cudder" สำหรับแต่ละคนฉันคิดว่า :-)
ลุ

ขอบคุณ SaveTheRbtz ฉันเปลี่ยนช่วงท้ายคลาส B เป็น 191.255.255.255 และคลาส C เริ่มเป็น 192.255.255.255 แปลกฉันได้เลขนำหน้าเลขฐานสองที่ถูกต้องและฉันจำได้ว่าทำคณิตศาสตร์ ขอบคุณมากสำหรับการพบสิ่งนั้น!
jj33

2
ฉันจะให้ +10 นี้ถ้าทำได้ มันเป็นคำอธิบายที่ดีของ CIDR / VLSM
JamesBarnett

8

แต่ละ octet มีค่า 8

  • 255.0.0.0 / 8
  • 255.255.0.0 / 16
  • 255.255.255.0 / 24
  • 255.255.255.255 / 32

ดังนั้นคุณสามารถ จำกัด เครือข่ายย่อยของคุณได้อย่างรวดเร็วและจากนั้นคุณก็กังวลเกี่ยวกับ 8 บิตสุดท้าย

128, 192, 224, 240, 248, 252, 254, 255

+1  , +2 , +3 , +4 , +5 , +6 , +7 , +8
  • 255.128.0.0 = / 9
  • 255.192.0.0 = / 10
  • 255.224.0.0 = / 11
  • 255.240.0.0 = / 12
  • 255.248.0.0 = / 13
  • 255.252.0.0 = / 14
  • 255.254.0.0 = / 15

หวังว่าชัดเจนพอ


6

ดึกวันหนึ่ง (sic) หวังว่าจะไม่สั้น CIDR คือจำนวนบิตต่อเนื่องหนึ่งบิตในหน้ากาก IPv4 (32 บิต) เริ่มต้นที่บิตที่สำคัญที่สุด

10,000,000 00000000 00000000 00000000 โดยที่ 1 = บิตที่สำคัญที่สุด

รูปแบบทั่วไปคือ / 8, / 16, / 24 ซึ่งทั้งหมดอยู่ในขอบเขต 8 บิต (octet)

11111111 00000000 00000000 00000000 = / 8 = 255.0.0.0

11111111 11111111 00000000 00000000 = / 16 = 255.255.0.0

11111111 11111111 11111111 00000000 = / 24 = 255.255.255.0

มันไม่ยากจริง ๆ เมื่อไม่มีการจัดแนวของออคเต็ต แต่จำเป็นต้องใช้คณิตศาสตร์อย่างง่ายและเข้าใจว่าออคเต็ตคืออะไร

11111111 11111111 11100000 00000000 = / 19

octet สองตัวแรกของหน้ากากคือ 255.255 (/ 16 น้อยกว่า / 19) octet สุดท้ายคือ 0 (/ 19 น้อยกว่า / 24) จนถึงตอนนี้เราก็รู้

11111111 11111111 11100000 00000000 = / 19 = 255.255.?.0

เมื่อดูที่แต่ละ octet โปรดจำไว้ว่ามันคือค่า 8 บิต 0 - 255

0 0 0 0 0 0 0 0 
1
2 6 3 1
8 4 2 6 8 4 2 1

ดังนั้นออคเต็ตที่สาม (?) 11100000 คือ 128 + 64 + 32 = 224 นั่นหมายความว่า

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0


4

มันเป็นข้อผิดพลาดอย่างมากที่มีแนวโน้มที่จะคำนวณเครือข่ายที่ไม่สำคัญด้วยมือ ลองใช้เครื่องคิดเลข CIDRแทน


2
ใครลงคะแนนนี้บ้าง! ฉันเห็นด้วยอย่างยิ่งมันเป็นเรื่องง่ายมากที่จะคำนวณช่วง CIDR ในหัวของคุณโดยเฉพาะเมื่อแปลงเช่น / 23 ถึง 255.255.254.0 แบบฟอร์ม ฉันใช้แพ็คเกจ 'ipcalc' บน Debian เพื่อช่วยฉัน
Mike Pountney

2
ฉันคิดipcalcและเลือกsipcalcได้ดีกว่า แต่อย่างไรก็ตาม +1
SaveTheRbtz

2

ในทางตรงกันข้ามฉันคิดว่าเป็นการดีที่จะเข้าใจCIDRอย่างสมบูรณ์และสามารถทำการคำนวณในสมองของคุณ ... แต่บางครั้งคุณต้องการตรวจสอบการคำนวณของคุณอีกครั้ง ฉันชอบใช้PHP Subnet Calculator : http://share-foo.com/SubnetCalc.php

ข้อความแสดงแทน


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