CIDR cho người giả


46

Tôi hiểu CIDR là gì và nó được sử dụng để làm gì, nhưng tôi vẫn không thể tìm ra cách tính toán nó trong đầu. Ai đó có thể đưa ra một lời giải thích kiểu "cho người giả" với các ví dụ không?


3
Cũng xem câu hỏi này cho câu hỏi subnet đầy đủ.
Zoredache

Câu trả lời:


78

CIDR (Định tuyến giữa các miền không phân loại, phát âm là "kidder" hoặc "cider" - thêm biến thể cục bộ của riêng bạn vào các nhận xét!) Là một hệ thống xác định phần mạng của địa chỉ IP (thường mọi người nghĩ đây là mặt nạ mạng con) . Lý do nó "không có lớp" là vì nó cho phép cách phá vỡ các mạng IP linh hoạt hơn so với lớp cơ sở của chúng.

Khi mạng IP được xác định lần đầu tiên, IP có các lớp dựa trên tiền tố nhị phân của chúng:

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

(Lưu ý rằng đây là nguồn của những người coi a / 24 là "lớp C", mặc dù đó không phải là một so sánh đúng hoàn toàn vì một lớp C cần phải có tiền tố cụ thể)

Các tiền tố nhị phân này được sử dụng để định tuyến các khối lớn không gian IP xung quanh. Điều này không hiệu quả vì nó dẫn đến việc các khối lớn được gán cho các tổ chức không nhất thiết cần chúng và cũng vì Class C chỉ có thể được gán theo gia số 24 bit, có nghĩa là các bảng định tuyến có thể lớn hơn một cách không cần thiết khi nhiều lớp C được định tuyến đến cùng một vị trí.

CIDR được xác định để cho phép các mặt nạ mạng con có chiều dài thay đổi (VLSM) được áp dụng cho các mạng. Khi tên được áp dụng, các nhóm địa chỉ hoặc mạng, có thể được chia thành các nhóm không có mối quan hệ trực tiếp với "lớp" tự nhiên mà chúng thuộc về.

Tiền đề cơ bản của VLSM là cung cấp số lượng bit mạng trong mạng. Vì địa chỉ IPv4 là số nguyên 32 bit, nên VLSM sẽ luôn nằm trong khoảng từ 0 đến 32 (mặc dù tôi không chắc trong trường hợp nào bạn có thể có mặt nạ có độ dài 0).

Cách dễ nhất để bắt đầu tính toán VLSM / CIDR trong đầu của bạn là hiểu ranh giới 8 bit "tự nhiên":

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

(Nhân tiện, nó hoàn toàn hợp pháp và khá phổ biến trong ACL, để sử dụng mặt nạ / 32. Điều đó đơn giản có nghĩa là bạn đang đề cập đến một IP duy nhất)

Khi bạn nắm được chúng, số học nhị phân đơn giản sẽ di chuyển lên hoặc xuống để lấy số lượng máy chủ. Chẳng hạn, nếu a / 24 có 256 IP (hãy bỏ địa chỉ mạng và phát sóng ngay bây giờ, đó là một câu hỏi lý thuyết mạng khác), tăng mạng con thêm một bit (đến / 25) sẽ giảm không gian máy chủ xuống một bit (đến 7), có nghĩa là sẽ có 128 IP.

Đây là một bảng của octet cuối cùng. Bảng này có thể được chuyển sang bất kỳ octet nào để có được bốn chấm tương đương.

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

Như một ví dụ về việc dịch chuyển chúng sang octet khác, / 18 (tức là / 26 trừ 8 bit, do đó, việc chuyển một octet) sẽ là 255.255.192.0.


2
Kì lạ, tôi thường nghe nó phát âm là "rượu táo"
sclarson

Tôi chắc chắn đó là khu vực / tổ chức. Tôi không chắc mình có nghe ai đó gọi CIDR là "đứa trẻ" không, nhưng tôi biết khi tôi tham gia lập trình LISP nhiều năm trước, chức năng CDR được gọi là "kidder" bởi prof của tôi, có lẽ tôi đã nhặt nó từ đó ...
jj33

Cũng như các điểm dữ liệu bổ sung: Tôi chỉ nghe thấy "rượu táo" và tôi được dạy rằng CDR là "âu yếm". Để mỗi người của họ, tôi đoán. :-)
Lu-ca

Cảm ơn SaveTheRbtz, tôi đã thay đổi phạm vi kết thúc của lớp B thành 191.255.255.255 và Class C bắt đầu thành 192.255.255.255. Thật kỳ lạ, tôi đã có tiền tố nhị phân đúng và tôi nhớ làm toán. Cảm ơn rất nhiều vì đã phát hiện ra điều đó!
jj33

2
Tôi sẽ cho +10 này nếu tôi có thể. Đó là một lời giải thích tuyệt vời về CIDR / VLSM.
JamesBarnett

8

Mỗi octet có giá trị 8.

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

Vì vậy, bạn có thể nhanh chóng thu hẹp mạng con của mình và sau đó bạn chỉ lo lắng về 8 bit cuối cùng.

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

Hy vọng rằng đủ rõ ràng


6

Một ngày (sic) muộn, hy vọng không phải là một đô la ngắn. CIDR là số lượng một bit liền kề trong mặt nạ IPv4 (32 bit) bắt đầu từ bit quan trọng nhất.

10000000 00000000 00000000 00000000 trong đó 1 = bit quan trọng nhất

Các mặt nạ phổ biến là / 8, / 16, / 24, tất cả đều nằm trên ranh giới 8 bit (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

Nó không thực sự khó khi nó không được sắp xếp theo octet, nhưng nó đòi hỏi một số phép toán đơn giản và sự hiểu biết về octet là gì.

11111111 11111111 11100000 00000000 = / 19

Hai octet đầu tiên của mặt nạ là 255.255 (/ 16 nhỏ hơn / 19). Octet cuối cùng là 0 (/ 19 nhỏ hơn / 24). Cho đến nay chúng ta biết

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

Khi nhìn vào mỗi octet hãy nhớ nó là một giá trị 8 bit, 0 - 255.

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

Vậy octet thứ ba (?) 11100000 là 128 + 64 + 32 = 224. Điều đó có nghĩa là

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0


4

Rất dễ bị lỗi khi tính toán các mạng không tầm thường bằng tay. Hãy thử một Máy tính CIDR thay thế.


2
Ai đã bỏ phiếu này?! Tôi hoàn toàn đồng ý, rất dễ tính toán phạm vi CIDR trong đầu của bạn, đặc biệt khi chuyển đổi, ví dụ: mẫu từ 23 sang 255.255.254.0. Tôi sử dụng gói 'ipcalc' trên Debian để giúp tôi.
Mike Pountney

2
Tôi nghĩ ipcalcsipcalclà lựa chọn tốt hơn, nhưng dù sao +1
SaveTheRbtz

2

Ngược lại, tôi nghĩ thật tốt khi hiểu hoàn toàn CIDR và có thể thực hiện các phép tính trong não của bạn ... nhưng đôi khi bạn muốn kiểm tra lại các tính toán của mình. Tôi thích sử dụng Máy tính mạng con PHP : http://share-foo.com/SubnetCalc.php

văn bản thay thế


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.