Làm thế nào để mạng con IPv4 hoạt động?


439

Đây là một câu hỏi Canonical về mạng con IPv4.

Liên quan:

Làm thế nào để mạng con hoạt động, và làm thế nào để bạn làm điều đó bằng tay hoặc trong đầu của bạn? Ai đó có thể giải thích cả về khái niệm và với một số ví dụ? Server Fault nhận được rất nhiều câu hỏi về bài tập về nhà, vì vậy chúng tôi có thể sử dụng câu trả lời để chỉ chúng trên Server Fault.

  • Nếu tôi có một mạng, làm thế nào để tôi tìm ra cách chia nó ra?
  • Nếu tôi được tặng netmask, làm sao tôi biết Phạm vi mạng dành cho nó là gì?
  • Đôi khi có một dấu gạch chéo theo sau một số, số đó là gì?
  • Đôi khi có một mặt nạ mạng con, nhưng cũng là mặt nạ ký tự đại diện, chúng có vẻ giống nhau nhưng chúng khác nhau?
  • Ai đó đã đề cập đến một cái gì đó về việc biết nhị phân cho điều này?

Câu trả lời gồm hai phần này giải thích mọi thứ bạn muốn biết về tính toán địa chỉ IPv4 và hơn thế nữa.
Ron Maupin

Câu trả lời:


648

Mạng con IP tồn tại để cho phép các bộ định tuyến chọn điểm đến thích hợp cho các gói. Bạn có thể sử dụng mạng con IP để phá vỡ các mạng lớn hơn vì lý do hợp lý (tường lửa, v.v.) hoặc nhu cầu vật lý (miền quảng bá nhỏ hơn, v.v.).

Mặc dù vậy, chỉ cần đặt các bộ định tuyến IP sử dụng mạng con IP của bạn để đưa ra quyết định định tuyến. Hiểu cách các quyết định đó hoạt động và bạn có thể hiểu cách lập kế hoạch mạng con IP.

Đếm đến 1

Nếu bạn đã thành thạo ký hiệu nhị phân (cơ sở 2), bạn có thể bỏ qua phần này.

Đối với những người còn lại: Xấu hổ vì bạn không thông thạo ký hiệu nhị phân!

Vâng-- đó có thể là một chút khắc nghiệt. Thật sự rất dễ dàng để học đếm nhị phân và học các phím tắt để chuyển đổi nhị phân thành thập phân và ngược lại. Bạn thực sự nên biết làm thế nào để làm điều đó.

Đếm trong nhị phân rất đơn giản vì bạn chỉ cần biết cách đếm đến 1!

Hãy nghĩ về "đồng hồ đo đường" của ô tô, ngoại trừ việc không giống như đồng hồ đo đường truyền thống, mỗi chữ số chỉ có thể đếm tối đa 1 từ 0. Khi xe còn mới từ nhà máy, đồng hồ đo là "00000000".

Khi bạn lái xe dặm đầu tiên, đồng hồ đo sẽ ghi "00000001". Càng xa càng tốt.

Khi bạn đã lái dặm thứ hai của mình, chữ số đầu tiên của đồng hồ đo sẽ quay trở về "0" (vì giá trị tối đa của nó là "1") và chữ số thứ hai của đồng hồ đo đường sẽ chuyển sang "1", làm cho đồng hồ đo được đọc " 00000010 ". Điều này có vẻ như số 10 trong ký hiệu thập phân, nhưng nó thực sự 2 (đối với số dặm bạn đã điều khiển chiếc xe cho đến nay) trong ký hiệu nhị phân.

Khi bạn đã lái được quãng đường thứ ba, đồng hồ đo sẽ ghi "00000011", vì chữ số đầu tiên của đồng hồ đo sẽ quay lại. Số "11", trong ký hiệu nhị phân, giống như số thập phân 3.

Cuối cùng, khi bạn đã lái được dặm thứ tư của mình, cả hai chữ số (đang đọc "1" ở cuối dặm thứ ba) sẽ quay trở lại vị trí 0 và chữ số thứ 3 cuộn lên vị trí "1", cho chúng tôi " 00000100 ". Đó là biểu diễn nhị phân của số thập phân 4.

Bạn có thể ghi nhớ tất cả những điều đó nếu bạn muốn, nhưng bạn thực sự chỉ cần hiểu làm thế nào đồng hồ đo nhỏ "lăn qua" khi con số mà nó đếm được lớn hơn. Nó chính xác giống như một hoạt động của máy đo thập phân truyền thống, ngoại trừ mỗi chữ số chỉ có thể là "0" hoặc "1" trên "đồng hồ đo nhị phân" giả tưởng của chúng tôi.

Để chuyển đổi một số thập phân thành nhị phân, bạn có thể cuộn đồng hồ đo về phía trước, đánh dấu bằng cách đánh dấu, đếm to cho đến khi bạn cuộn nó một số lần bằng số thập phân bạn muốn chuyển đổi thành nhị phân. Bất cứ điều gì được hiển thị trên máy đo đường sau khi tất cả các couting và cán đó sẽ là biểu diễn nhị phân của số thập phân mà bạn đếm được.

Vì bạn hiểu cách đo đường lăn về phía trước, bạn cũng sẽ hiểu cách nó quay ngược lại. Để chuyển đổi số nhị phân được hiển thị trên đồng hồ đo trở lại thành số thập phân, bạn có thể cuộn lại đồng hồ đo một lần, đếm to cho đến khi đồng hồ đo có ghi "00000000". Khi tất cả việc đếm và lăn được thực hiện, số cuối cùng bạn nói to sẽ là biểu diễn thập phân của số nhị phân mà đồng hồ đo bắt đầu.

Chuyển đổi giá trị giữa nhị phân và thập phân theo cách này sẽ rất tẻ nhạt. Bạn có thể làm điều đó, nhưng nó sẽ không hiệu quả. Học thuật toán nhỏ để làm nó nhanh hơn.

Bỏ qua một bên: Mỗi chữ số trong một số nhị phân được gọi là "bit". Đó là "b" từ "nhị phân" và "nó" từ "chữ số". Một bit là một chữ số nhị phân.

Chuyển đổi một số nhị phân như "1101011" thành số thập phân là một quá trình đơn giản với một thuật toán nhỏ tiện dụng.

Bắt đầu bằng cách đếm số bit trong số nhị phân. Trong trường hợp này, có 7. Thực hiện 7 cách chia trên một tờ giấy (trong tâm trí của bạn, trong một tệp văn bản, v.v.) và bắt đầu điền chúng từ phải sang trái. Trong khe ngoài cùng bên phải, nhập số "1", vì chúng tôi sẽ luôn bắt đầu bằng "1". Trong vị trí tiếp theo bên trái, nhập gấp đôi giá trị trong vị trí bên phải (vì vậy, "2" trong phần tiếp theo, "4" trong phần tiếp theo) và tiếp tục cho đến khi tất cả các vị trí đã đầy. (Cuối cùng bạn sẽ ghi nhớ những con số này, đó là sức mạnh của 2, khi bạn làm điều này ngày càng nhiều. Tôi có thể lên đến 131.072 trong đầu nhưng tôi thường cần một máy tính hoặc giấy sau đó).

Vì vậy, bạn nên có những điều sau đây trên giấy của bạn trong các khe nhỏ của bạn.

 64    |    32    |    16    |    8    |    4    |    2    |    1    |

Phiên mã các bit từ số nhị phân bên dưới các vị trí, như vậy:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
  1          1          0         1         0         1         1

Bây giờ, thêm một số ký hiệu và tính toán câu trả lời cho vấn đề:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
       +          +          +         +         +         +         =

Làm tất cả các phép toán, bạn nên nghĩ ra:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
 64    +    32    +     0    +    8    +    0    +    2    +    1    =   107

Đó là nó. "1101011" trong số thập phân là 107. Đó chỉ là các bước đơn giản và toán học dễ dàng.

Chuyển đổi thập phân thành nhị phân cũng dễ dàng và là thuật toán cơ bản tương tự, chạy ngược lại.

Nói rằng chúng tôi muốn chuyển đổi số 218 thành nhị phân. Bắt đầu ở bên phải một tờ giấy, viết số "1". Ở bên trái, nhân đôi giá trị đó (vì vậy, "2") và tiếp tục di chuyển về phía bên trái của tờ giấy nhân đôi giá trị cuối cùng. Nếu số bạn sắp viết lớn hơn số được chuyển đổi thì dừng viết. mặt khác, tiếp tục nhân đôi số trước và viết. (Chuyển đổi một số lượng lớn, như 34.157.216.092, sang nhị phân bằng thuật toán này có thể hơi tẻ nhạt nhưng chắc chắn là có thể.)

Vì vậy, bạn nên có trên giấy của bạn:

 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |

Bạn đã dừng viết số ở 128 vì nhân đôi 128, sẽ cung cấp cho bạn 256, sẽ lớn hơn số được chuyển đổi (218).

Bắt đầu từ số ngoài cùng bên trái, viết "218" phía trên số đó (128) và tự hỏi: "218 có lớn hơn hoặc bằng 128 không?" Nếu câu trả lời là có, hãy gãi "1" bên dưới "128". Trên "64", viết kết quả của 218 trừ 128 (90).

Nhìn vào "64", hãy tự hỏi: "90 có lớn hơn hoặc bằng 64 không?" Đó là, vì vậy bạn sẽ viết "1" bên dưới "64", sau đó trừ 64 từ 90 và viết lên trên "32" (26).

Tuy nhiên, khi bạn đến "32", bạn thấy rằng 32 không lớn hơn hoặc bằng 26. Trong trường hợp này, hãy viết "0" bên dưới "32", sao chép số (26) từ trên 32 "lên trên" 16 "và sau đó tiếp tục tự hỏi mình câu hỏi tương tự với các con số còn lại.

Khi bạn đã hoàn tất, bạn nên có:

 218         90         26         26        10         2         2         0
 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |
   1          1          0          1         1         0         1         0

Các số ở trên cùng chỉ là các ghi chú được sử dụng trong tính toán và không có ý nghĩa nhiều đối với chúng tôi. Tuy nhiên, ở phía dưới, bạn thấy một số nhị phân "11011010". Chắc chắn, 218, được chuyển đổi thành nhị phân, là "11011010".

Thực hiện theo các thủ tục rất đơn giản này, bạn có thể chuyển đổi nhị phân thành thập phân và quay lại máy tính w / oa. Toán học rất đơn giản và các quy tắc có thể được ghi nhớ chỉ với một chút thực hành.

Tách địa chỉ

Hãy nghĩ về định tuyến IP như giao bánh pizza.

Khi bạn được yêu cầu giao một chiếc bánh pizza đến "123 Main Street", với tư cách là một con người, bạn muốn đến tòa nhà được đánh số "123" trên con phố có tên "Main Street". Thật dễ dàng để biết rằng bạn cần phải đi đến 100 khối của Phố chính vì số tòa nhà nằm trong khoảng từ 100 đến 199 và hầu hết các khối thành phố được đánh số hàng trăm. Bạn "chỉ biết" cách chia địa chỉ.

Bộ định tuyến cung cấp các gói, không phải pizza. Công việc của họ giống như một người lái pizza: Để có được hàng hóa (gói) càng gần đích đến càng tốt. Một bộ định tuyến được kết nối với hai hoặc nhiều mạng con IP (hoàn toàn hữu ích). Một bộ định tuyến phải kiểm tra các địa chỉ IP đích của các gói và chia các địa chỉ đích đó thành các thành phần "tên đường" và "số tòa nhà", giống như trình điều khiển pizza, để đưa ra quyết định về việc giao hàng.

Mỗi máy tính (hoặc "máy chủ") trên mạng IP được cấu hình với một địa chỉ IP và mặt nạ mạng con duy nhất. Địa chỉ IP đó có thể được chia thành một thành phần "số tòa nhà" (như "123" trong ví dụ trên) được gọi là "ID máy chủ" và thành phần "tên đường" (như "Phố chính" trong ví dụ trên) được gọi là "ID mạng". Đối với mắt người, chúng ta dễ dàng nhận thấy số tòa nhà và tên đường phố nằm trong "123 Main Street", nhưng khó hơn để thấy sự phân chia đó trong "10.13.216.41 với mặt nạ mạng con là 255.255.192.0".

Bộ định tuyến IP "chỉ biết" cách chia địa chỉ IP thành các bộ phận thành phần này để đưa ra quyết định định tuyến. Vì hiểu được các gói IP được định tuyến như thế nào để hiểu quá trình này, chúng ta cũng cần biết cách chia nhỏ địa chỉ IP. May mắn thay, trích xuất ID máy chủ và ID mạng ra khỏi địa chỉ IP và mặt nạ mạng con thực sự khá dễ dàng.

Bắt đầu bằng cách viết địa chỉ IP thành nhị phân (sử dụng máy tính nếu bạn chưa học cách làm điều này trong đầu, nhưng hãy ghi chú tìm hiểu cách thực hiện - thật sự rất dễ dàng và gây ấn tượng với người khác giới các bên):

      10.      13.     216.      41
00001010.00001101.11011000.00101001

Viết ra mặt nạ mạng con ở dạng nhị phân:

     255.     255.     192.       0
11111111.11111111.11000000.00000000

Được viết cạnh nhau, bạn có thể thấy rằng điểm trong mặt nạ mạng con nơi "dừng" 1 "thẳng hàng" đến một điểm trong địa chỉ IP. Đó là điểm mà ID mạng và ID máy chủ phân tách. Vì vậy, trong trường hợp này:

      10.      13.     216.      41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Bộ định tuyến sử dụng mặt nạ mạng con để "che giấu" các bit được bao phủ bởi 1 trong địa chỉ IP (thay thế các bit không được "che giấu" bằng 0) để trích xuất ID mạng:

      10.      13.     192.       0
00001010.00001101.11000000.00000000 - Network ID

Tương tự, bằng cách sử dụng mặt nạ mạng con để "che giấu" các bit được bao phủ bởi 0 trong địa chỉ IP (thay thế các bit không được "che dấu" bằng 0) một lần nữa, bộ định tuyến có thể trích xuất ID máy chủ:

       0.       0.      24.      41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Mắt người chúng ta không dễ dàng nhìn thấy "sự phá vỡ" giữa ID mạng và ID máy chủ vì nó nằm giữa "số tòa nhà" và "tên đường" trong các địa chỉ vật lý trong quá trình giao bánh pizza, nhưng hiệu quả cuối cùng là tương tự.

Giờ đây, bạn có thể tách địa chỉ IP và mặt nạ mạng con thành ID máy chủ và ID mạng, bạn có thể định tuyến IP giống như bộ định tuyến.

Thuật ngữ khác

Bạn sẽ thấy các mặt nạ mạng con được viết trên Internet và trong phần còn lại của câu trả lời này là (IP / số). Ký hiệu này được gọi là ký hiệu "Định tuyến giữa các miền không phân loại" (CIDR). "255.255.255.0" được tạo thành từ 24 bit 1 lúc đầu và viết nhanh hơn là "/ 24" so với "255.255.255.0". Để chuyển đổi số CIDR (như "/ 16") sang mặt nạ mạng con thập phân rải rác, chỉ cần viết ra số đó là 1, chia nó thành các nhóm 8 bit và chuyển đổi thành số thập phân. (Ví dụ: "/ 16" là "255.255.0.0".)

Quay lại "ngày xưa", mặt nạ mạng con không được chỉ định, nhưng được lấy bằng cách xem xét một số bit nhất định của địa chỉ IP. Ví dụ, một địa chỉ IP bắt đầu bằng 0 - 127, có mặt nạ mạng con ngụ ý là 255.0.0.0 (được gọi là địa chỉ IP "lớp A").

Những mặt nạ mạng con ngụ ý này không được sử dụng ngày nay và tôi không khuyên bạn nên tìm hiểu về chúng nữa trừ khi bạn không may xử lý các thiết bị cũ hoặc các giao thức cũ (như RIPv1) không hỗ trợ địa chỉ IP không có lớp. Tôi sẽ không đề cập đến các "lớp" địa chỉ này nữa bởi vì ngày nay nó không thể áp dụng được và có thể gây nhầm lẫn.

Một số thiết bị sử dụng ký hiệu gọi là "mặt nạ ký tự đại diện". "Mặt nạ ký tự đại diện" không gì khác hơn là mặt nạ mạng con với tất cả 0 trong đó sẽ có 1 và 1 là ở đó sẽ có 0. "Mặt nạ ký tự đại diện" của a / 26 là:

 11111111.11111111.11111111.11000000 - /26 subnet mask
 00000000.00000000.00000000.00111111 - /26 "wildcard mask"

Thông thường, bạn thấy "mặt nạ ký tự đại diện" được sử dụng để khớp ID máy chủ trong danh sách kiểm soát truy cập hoặc quy tắc tường lửa. Chúng tôi sẽ không thảo luận thêm về họ ở đây.

Bộ định tuyến hoạt động như thế nào

Như tôi đã nói trước đây, các bộ định tuyến IP có một công việc tương tự như trình điều khiển giao bánh pizza ở chỗ họ cần đưa hàng hóa (gói) của mình đến đích. Khi được trình bày với gói bị ràng buộc cho địa chỉ 192.168.10.2, bộ định tuyến IP cần xác định giao diện mạng nào sẽ giúp gói đó đến gần đích nhất.

Giả sử bạn là một bộ định tuyến IP và bạn có các giao diện được kết nối với bạn được đánh số:

  • Ethernet0 - 192.168.20.1, mặt nạ mạng con / 24
  • Ethernet1 - 192.168.10.1, mặt nạ mạng con / 24

Nếu bạn nhận được một gói để phân phối với địa chỉ đích là "192.168.10.2", thì thật dễ dàng để nói (bằng mắt người của bạn) rằng gói tin sẽ được gửi ra giao diện Ethernet1, vì địa chỉ giao diện Ethernet1 tương ứng với đích của gói địa chỉ nhà. Tất cả các máy tính được gắn vào giao diện Ethernet1 sẽ có địa chỉ IP bắt đầu bằng "192.168.10.", Vì ID mạng của địa chỉ IP được gán cho giao diện Ethernet1 của bạn là "192.168.10.0".

Đối với bộ định tuyến, quy trình chọn tuyến này được thực hiện bằng cách xây dựng bảng định tuyến và tư vấn bảng mỗi khi gói được gửi. Một bảng định tuyến chứa ID mạng và tên giao diện đích. Bạn đã biết cách lấy ID mạng từ địa chỉ IP và mặt nạ mạng con, vì vậy bạn đang trên đường xây dựng bảng định tuyến. Đây là bảng định tuyến của chúng tôi cho bộ định tuyến này:

  • ID mạng: 192.168.20.0 (11000000.10101000.00010100.00000000) - Mặt nạ mạng con 24 bit - Giao diện Ethernet0
  • ID mạng: 192.168.10.0 (11000000.10101000.00001010.00000000) - Mặt nạ mạng con 24 bit - Giao diện Ethernet1

Đối với gói đến của chúng tôi bị ràng buộc cho "192.168.10.2", chúng tôi chỉ cần chuyển đổi địa chỉ của gói đó thành nhị phân (vì con người-- bộ định tuyến lấy nó dưới dạng nhị phân để bắt đầu) và cố gắng khớp nó với từng địa chỉ trong định tuyến của chúng tôi bảng (tối đa số bit trong mặt nạ mạng con) cho đến khi chúng ta khớp với một mục.

  • Điểm đến gói đến: 11000000.10101000.00001010.00000010

So sánh điều đó với các mục trong bảng định tuyến của chúng tôi:

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

Mục nhập cho Ethernet0 khớp với 19 bit đầu tiên, nhưng sau đó dừng khớp. Điều đó có nghĩa là nó không phải là giao diện đích thích hợp. Bạn có thể thấy rằng giao diện Ethernet1 khớp với 24 bit của địa chỉ đích. À, ha! Gói bị ràng buộc cho giao diện Ethernet1.

Trong một bộ định tuyến thực tế, bảng định tuyến được sắp xếp theo cách sao cho các mặt nạ mạng con dài nhất được kiểm tra khớp đầu tiên (nghĩa là các tuyến cụ thể nhất) và bằng số để ngay khi tìm thấy kết quả khớp, gói có thể được định tuyến và không cần cố gắng kết hợp nữa (có nghĩa là 192.168.10.0 sẽ được liệt kê đầu tiên và 192.168.20.0 sẽ không bao giờ được kiểm tra). Ở đây, chúng tôi đơn giản hóa một chút. Các cấu trúc dữ liệu và thuật toán ưa thích làm cho các bộ định tuyến IP nhanh hơn, nhưng các thuật toán đơn giản sẽ tạo ra kết quả tương tự.

Tuyến tĩnh

Cho đến thời điểm này, chúng tôi đã nói về bộ định tuyến giả định của mình là có các mạng được kết nối trực tiếp với nó. Rõ ràng, đó không phải là cách thế giới thực sự hoạt động. Trong sự tương tự lái xe pizza, đôi khi người lái xe không cho phép đi sâu vào tòa nhà hơn quầy lễ tân và phải giao bánh pizza cho người khác để giao cho người nhận cuối cùng (tạm ngưng sự hoài nghi của bạn và chịu đựng tôi trong khi Tôi kéo dài sự tương tự của tôi, xin vui lòng).

Hãy bắt đầu bằng cách gọi bộ định tuyến của chúng tôi từ các ví dụ trước đó "Bộ định tuyến A". Bạn đã biết bảng định tuyến của RouterA là:

  • ID mạng: 192.168.20.0 (11000000.10101000.00010100.00000000) - mặt nạ mạng con / 24 - Bộ định tuyến giao diệnA-Ethernet0
  • ID mạng: 192.168.10.0 (11000000.10101000.00001010.00000000) - mặt nạ mạng con / 24 - Bộ định tuyến giao diệnA-Ethernet1

Giả sử rằng có một bộ định tuyến khác, "Bộ định tuyến B", với các địa chỉ IP 192.168.10.254/24 và 192.168.30.1/24 được gán cho giao diện Ethernet0 và Ethernet1 của nó. Nó có bảng định tuyến sau:

  • ID mạng: 192.168.10.0 (11000000.10101000.00001010.00000000) - mặt nạ mạng con / 24 - Bộ định tuyến giao diệnB-Ethernet0
  • ID mạng: 192.168.30.0 (11000000.10101000.00011110.00000000) - mặt nạ mạng con / 24 - Bộ định tuyến giao diệnB-Ethernet1

Trong nghệ thuật ASCII đẹp, mạng trông như thế này:

               Interface                      Interface
               Ethernet1                      Ethernet1
               192.168.10.1/24                192.168.30.254/24
     __________  V                  __________  V
    |          | V                 |          | V
----| ROUTER A |------- /// -------| ROUTER B |----
  ^ |__________|                 ^ |__________|
  ^                              ^
Interface                      Interface
Ethernet0                      Ethernet0
192.168.20.1/24                192.168.10.254/24

Bạn có thể thấy rằng Bộ định tuyến B biết cách "truy cập" mạng, 192.168.30.0/24, Bộ định tuyến A không biết gì về.

Giả sử rằng một PC có địa chỉ IP 192.168.20.13 được gắn vào mạng được kết nối với bộ định tuyến Giao diện Ethernet0 của A sẽ gửi một gói đến Bộ định tuyến A để phân phối. Gói giả thuyết của chúng tôi được dành cho địa chỉ IP 192.168.30.46, là thiết bị được gắn với mạng được kết nối với giao diện Ethernet1 của Bộ định tuyến B.

Với bảng định tuyến được hiển thị ở trên, không có mục nào trong bảng định tuyến của Bộ định tuyến A khớp với đích 192.168.30.46, do đó, Bộ định tuyến A sẽ trả lại gói cho PC gửi với thông báo "Không thể truy cập mạng đích".

Để làm cho Bộ định tuyến A "biết" về sự tồn tại của mạng 192.168.30.0/24, chúng tôi thêm mục sau vào bảng định tuyến trên Bộ định tuyến A:

  • ID mạng: 192.168.30.0 (11000000.10101000.00011110.00000000) - mặt nạ mạng con / 24 - Có thể truy cập qua 192.168.10.254

Theo cách này, Bộ định tuyến A có một mục nhập bảng định tuyến khớp với đích 192.168.30.46 của gói ví dụ của chúng tôi. Mục nhập bảng định tuyến này có hiệu quả cho biết "Nếu bạn nhận được gói bị ràng buộc trong 192.168.30.0/24, hãy gửi nó đến 192.168.10.254 vì anh ta biết cách xử lý." Đây là hành động tương tự "bỏ bánh pizza ở quầy lễ tân" mà tôi đã đề cập trước đó - chuyển gói cho người khác biết cách đưa nó đến gần đích hơn.

Thêm một mục vào bảng định tuyến "bằng tay" được gọi là thêm "tuyến tĩnh".

Nếu Bộ định tuyến B muốn phân phối các gói đến mạng con 192.168.20.0 mặt nạ mạng 255.255.255.0, thì nó cũng sẽ cần một mục trong bảng định tuyến của nó:

  • ID mạng: 192.168.20.0 (11000000.10101000.00010100.00000000) - mặt nạ mạng con / 24 - Có thể truy cập qua: 192.168.10.1 (Địa chỉ IP của Bộ định tuyến A trong mạng 192.168.10.0)

Điều này sẽ tạo ra một đường dẫn để phân phối giữa mạng 192.168.30.0/24 và mạng 192.168.20.0/24 trên mạng 192.168.10.0/24 giữa các bộ định tuyến này.

Bạn luôn muốn chắc chắn rằng các bộ định tuyến ở cả hai phía của một "mạng xen kẽ" như vậy có một mục nhập bảng định tuyến cho mạng "xa tận cùng". Nếu bộ định tuyến B trong ví dụ của chúng tôi không có mục nhập bảng định tuyến cho mạng "xa tận cùng" 192.168.20.0/24 được gắn với bộ định tuyến Một gói giả định của chúng tôi từ PC ở 192.168.20.13 sẽ đến thiết bị đích ở 192.168.30.46, nhưng bất kỳ câu trả lời nào mà 192.168.30.46 đã cố gửi lại sẽ được bộ định tuyến B trả về là "mạng đích không thể truy cập được". Giao tiếp một chiều nói chung là không mong muốn. Luôn chắc chắn rằng bạn nghĩ về lưu lượng truy cập theo cả hai hướng khi bạn nghĩ về giao tiếp trong mạng máy tính.

Bạn có thể nhận được rất nhiều dặm từ các tuyến tĩnh. Các giao thức định tuyến động như EIGRP, RIP, v.v., thực sự không có gì khác hơn là một cách để các bộ định tuyến trao đổi thông tin định tuyến với nhau, trên thực tế, có thể được cấu hình với các tuyến tĩnh. Tuy nhiên, một lợi thế lớn cho việc sử dụng các giao thức định tuyến động trên các tuyến tĩnh là các giao thức định tuyến động có thể thay đổi linh hoạt bảng định tuyến dựa trên các điều kiện mạng (sử dụng băng thông, giao diện "đi xuống", v.v.) và, như vậy, sử dụng động giao thức định tuyến có thể dẫn đến một cấu hình "định tuyến xung quanh" các lỗi hoặc tắc nghẽn trong cơ sở hạ tầng mạng. (Tuy nhiên, các giao thức định tuyến động là CÁCH ngoài phạm vi của câu trả lời này.)

Bạn không thể đến đó từ đây

Trong trường hợp của Bộ định tuyến A mẫu của chúng tôi, điều gì xảy ra khi một gói bị ràng buộc cho "172.16.31.92" xuất hiện?

Nhìn vào bảng định tuyến A, giao diện đích hoặc tuyến tĩnh không khớp với 24 bit đầu tiên là 172,18.31,92 (là 10101100.00010000.00011111.01011100, BTW).

Như chúng ta đã biết, Bộ định tuyến A sẽ trả lại gói cho người gửi thông qua thông báo "Không thể truy cập mạng đích".

Giả sử có một bộ định tuyến (Bộ định tuyến C) khác đang ở địa chỉ "192.168.20.254". Bộ định tuyến C có kết nối với Internet!

                              Interface                      Interface                      Interface
                              Ethernet1                      Ethernet1                      Ethernet1
                              192.168.20.254/24              192.168.10.1/24                192.168.30.254/24
                    __________  V                  __________  V                  __________  V
((  heap o  ))     |          | V                 |          | V                 |          | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
((   w00t!  ))   ^ |__________|                 ^ |__________|                 ^ |__________|
                 ^                              ^                              ^
               Interface                      Interface                      Interface
               Ethernet0                      Ethernet0                      Ethernet0
               10.35.1.1/30                   192.168.20.1/24                192.168.10.254/24

Sẽ thật tuyệt nếu Bộ định tuyến A có thể định tuyến các gói không khớp với bất kỳ giao diện cục bộ nào tới Bộ định tuyến C để Bộ định tuyến C có thể gửi chúng lên Internet. Nhập tuyến đường "cổng mặc định".

Thêm một mục ở cuối bảng định tuyến của chúng tôi như thế này:

  • ID mạng: 0.0.0.0 (00000000.00000000.00000000.00000000) - mặt nạ mạng con / 0 - Bộ định tuyến đích: 192.168.20.254

Khi chúng tôi cố gắng khớp "172.16.31.92" với mỗi mục trong bảng định tuyến, cuối cùng chúng tôi sẽ nhấn mục mới này. Đó là một chút bối rối, lúc đầu. Chúng tôi đang tìm cách khớp 0 bit của địa chỉ đích với ... chờ ... cái gì? Khớp bit nào? Vì vậy, chúng tôi không tìm kiếm một trận đấu nào cả. Về cơ bản, mục nhập bảng định tuyến này có nội dung: "Nếu bạn đến đây, thay vì từ bỏ việc giao hàng, hãy gửi gói đến bộ định tuyến tại 192.168.20.254 và để anh ta xử lý".

192.168.20.254 là một điểm đến chúng tôi DO biết làm thế nào để cung cấp một gói tin đến. Khi đối mặt với gói bị ràng buộc cho đích mà chúng tôi không có mục nhập bảng định tuyến cụ thể, mục nhập "cổng mặc định" này sẽ luôn khớp (vì nó khớp với các bit không của địa chỉ đích) và cung cấp cho chúng tôi vị trí "cuối cùng" mà chúng tôi có thể gửi gói để giao hàng. Đôi khi bạn sẽ nghe thấy cổng mặc định được gọi là "cổng cuối cùng".

Để một tuyến cổng mặc định có hiệu quả, nó phải tham khảo một bộ định tuyến có thể truy cập bằng cách sử dụng các mục khác trong bảng định tuyến. Ví dụ, nếu bạn đã cố gắng chỉ định một cổng mặc định 192.168.50.254 trong Bộ định tuyến A, thì việc phân phối đến một cổng mặc định như vậy sẽ thất bại. 192.168.50.254 không phải là địa chỉ mà Bộ định tuyến A biết cách phân phối các gói đến sử dụng bất kỳ tuyến nào khác trong bảng định tuyến của nó, vì vậy một địa chỉ như vậy sẽ không hiệu quả như một cổng mặc định. Điều này có thể được nói chính xác: Cổng mặc định phải được đặt thành một địa chỉ có thể truy cập bằng cách sử dụng một tuyến đường khác trong bảng định tuyến.

Các bộ định tuyến thực thường lưu trữ cổng mặc định là tuyến cuối cùng trong bảng định tuyến của chúng sao cho khớp với các gói sau khi chúng không khớp với tất cả các mục khác trong bảng.

Quy hoạch đô thị và định tuyến IP

Việc chia một mạng con IP thành các mạng con IP nhỏ hơn là quy hoạch đô thị. Trong quy hoạch đô thị, phân vùng được sử dụng để thích ứng với các đặc điểm tự nhiên của cảnh quan (sông, hồ, v.v.), để tác động đến các luồng giao thông giữa các khu vực khác nhau của thành phố và để phân tách các loại sử dụng đất khác nhau (công nghiệp, dân cư, v.v.) . Mạng con IP thực sự rất giống nhau.

Có ba lý do chính khiến bạn lên mạng con:

  • Bạn có thể muốn giao tiếp qua khác nhau không giống như phương tiện truyền thông. Nếu bạn có kết nối WAN T1 giữa hai tòa nhà, bộ định tuyến IP có thể được đặt ở đầu của các kết nối này để tạo điều kiện liên lạc qua T1. Các mạng ở mỗi đầu (và có thể là mạng "xen kẽ" trên chính T1) sẽ được gán cho các mạng con IP duy nhất để các bộ định tuyến có thể đưa ra quyết định về việc lưu lượng nào sẽ được gửi qua dòng T1.

  • Trong mạng Ethernet, bạn có thể sử dụng mạng con để giới hạn lưu lượng phát trong một phần nhất định của mạng. Các giao thức tầng ứng dụng sử dụng khả năng phát sóng của Ethernet cho các mục đích rất hữu ích. Tuy nhiên, khi bạn nhận được càng nhiều máy chủ được đóng gói vào cùng một mạng Ethernet, tỷ lệ lưu lượng phát trên mạng (hoặc không khí, trong Ethernet không dây) có thể tăng đến mức gây ra sự cố khi phân phối lưu lượng không phát sóng. (Vào thời xa xưa, lưu lượng phát sóng có thể áp đảo CPU của máy chủ bằng cách buộc chúng kiểm tra từng gói phát sóng. Điều đó ít có khả năng ngày nay.) Lưu lượng truy cập quá mức trên Ethernet chuyển đổi cũng có thể ở dạng "tràn khung vào các đích không xác định". Tình trạng này xảy ra do một bộ chuyển mạch Ethernet không thể theo dõi mọi điểm đến trên mạng và là lý do tại sao các mạng Ethernet chuyển đổi không thể mở rộng thành vô số máy chủ. Hiệu ứng ngập khung hình đến các điểm đến không xác định tương tự như ảnh hưởng của lưu lượng phát quá mức, cho các mục đích của mạng con.

  • Bạn có thể muốn "cảnh sát" các loại lưu lượng giao thông giữa các nhóm máy chủ khác nhau. Có lẽ bạn có thiết bị máy chủ in và bạn chỉ muốn máy tính máy chủ xếp hàng in được ủy quyền gửi công việc cho họ. Bằng cách giới hạn lưu lượng được phép truyền đến mạng con thiết bị máy chủ in, người dùng không thể định cấu hình PC của mình để nói chuyện trực tiếp với các thiết bị máy chủ in để bỏ qua kế toán in. Bạn có thể tự đặt các thiết bị máy chủ in vào một mạng con và tạo quy tắc trong bộ định tuyến hoặc tường lửa được gắn vào mạng con đó để kiểm soát danh sách các máy chủ được phép gửi lưu lượng đến các thiết bị máy chủ in. (Cả bộ định tuyến và tường lửa thường có thể đưa ra quyết định về cách hoặc có thể phân phối gói dựa trên địa chỉ nguồn và đích của gói. Tường lửa thường là một loài phụ của bộ định tuyến với tính cách ám ảnh. Họ có thể rất, rất quan tâm đến tải trọng của các gói, trong khi các bộ định tuyến thường bỏ qua tải trọng và chỉ phân phối các gói.)

Khi lập kế hoạch cho một thành phố, bạn có thể lập kế hoạch cách các đường phố giao nhau với nhau và có thể sử dụng các đường rẽ, một chiều và ngõ cụt để tác động đến các luồng giao thông. Bạn có thể muốn Main Street dài 30 khối, mỗi khối có tới 99 tòa nhà mỗi tòa. Thật dễ dàng để lập kế hoạch đánh số đường phố của bạn sao cho mỗi khối trong Phố chính có một dãy số đường phố tăng thêm 100 cho mỗi khối. Rất dễ dàng để biết "số bắt đầu" trong mỗi khối tiếp theo sẽ là gì.

Khi lập kế hoạch mạng con IP, bạn quan tâm đến việc xây dựng đúng số mạng con (đường phố) với đúng số ID máy chủ có sẵn (số tòa nhà) và sử dụng bộ định tuyến để kết nối mạng con với nhau (giao điểm). Các quy tắc về địa chỉ nguồn và đích được chỉ định trong các bộ định tuyến có thể kiểm soát thêm lưu lượng. Tường lửa có thể hoạt động như cảnh sát giao thông ám ảnh.

Đối với mục đích của câu trả lời này, xây dựng mạng con của chúng tôi là mối quan tâm chính duy nhất của chúng tôi. Thay vì làm việc theo số thập phân, như bạn làm với quy hoạch đô thị, bạn làm việc theo hệ nhị phân để mô tả giới hạn của mỗi mạng con.

Tiếp tục: Làm thế nào để mạng con IPv4 hoạt động?

(Có ... chúng tôi đã đạt đến kích thước tối đa của câu trả lời (30000 ký tự).)


13
@Joseph: Đó là một bài giảng mà tôi đã cung cấp quá nhiều lần cho lợi ích của riêng tôi. > mỉm cười <Tôi sẽ xem phần nhị phân của bạn. Tôi không thích dạy về toán học (điều thực sự hiểu về nhị phân là gì - tính ở cơ sở 2) vì tôi không giỏi về nó lắm.
Evan Anderson

2
Vấn đề duy nhất của tôi với việc phá vỡ câu trả lời là người ta cần phải hiểu tại sao mạng con tồn tại (định tuyến IP) trước khi có thể hiểu cách chia mạng IP thành mạng con một cách hiệu quả. Tôi chưa bao giờ tìm thấy một cách tốt để thảo luận về một chủ đề tách biệt với chủ đề khác. (Thực sự, thiết kế mạng IP với VLSM là điều đương nhiên và "có ý nghĩa" sau khi bạn hiểu định tuyến IP ...)
Evan Anderson

28
Đừng phá vỡ nó.
Joseph Kern

3
+1 cho bài đăng toàn diện nhất từng thấy trên serverfault
Scott Lundberg

3
Upvote nếu chỉ cho ẩn dụ Odometer. Bây giờ tôi biết làm thế nào để giải thích làm thế nào nhị phân làm việc với mọi người.
phuzion

142

Tiếp tục từ: Mạng con IPv4 hoạt động như thế nào?

ISP của bạn cung cấp cho bạn phạm vi ID mạng 192.168.40.0/24 (11000000.10101000.00101000.00000000). Bạn biết rằng bạn muốn sử dụng thiết bị tường lửa / bộ định tuyến để hạn chế giao tiếp giữa các phần khác nhau của mạng (máy chủ, máy khách, thiết bị mạng) và như vậy, bạn muốn phá vỡ các phần khác nhau của mạng vào các mạng con IP (mà thiết bị tường lửa / bộ định tuyến có thể định tuyến giữa).

Bạn có:

  • 12 máy tính máy chủ, nhưng bạn có thể nhận được nhiều hơn tới 50%
  • 9 công tắc
  • 97 máy tính khách, nhưng bạn có thể nhận được nhiều hơn

Cách tốt để chia 192.168.40.0/24 thành những phần này là gì?

Suy nghĩ về sức mạnh của cả hai và làm việc với số lượng lớn hơn các thiết bị có thể, bạn có thể đưa ra:

  • 18 máy tính máy chủ - Sức mạnh lớn nhất tiếp theo của hai là 32
  • 9 công tắc - Công suất lớn nhất tiếp theo của hai là 16
  • 97 máy tính khách - Sức mạnh lớn nhất tiếp theo của hai là 128

Trong một mạng con IP nhất định, có hai địa chỉ dành riêng không thể được sử dụng làm địa chỉ IP của thiết bị hợp lệ - địa chỉ có tất cả các số 0 trong phần ID máy chủ và địa chỉ có tất cả các địa chỉ trong phần ID máy chủ. Như vậy, đối với bất kỳ mạng con IP cụ thể nào, số lượng địa chỉ máy chủ khả dụng là hai với sức mạnh của số lượng 32 trừ đi số bit trong mặt nạ mạng con, trừ 2. Vì vậy, trong trường hợp 192.168.40.0/24, chúng tôi có thể thấy rằng mặt nạ mạng con có 24 bit. Điều đó để lại 8 bit có sẵn cho ID máy chủ. Chúng ta biết rằng công suất từ ​​2 đến 8 là 256-- có nghĩa là 256 tổ hợp bit có thể phù hợp với một khe rộng 8 bit. Do sự kết hợp "11111111" và "00000000" của 8 bit đó không được phép đối với ID máy chủ, điều đó khiến chúng tôi có 254 máy chủ có thể được chỉ định trong mạng 192.168.40.0/24.

Trong số 254 máy chủ đó, có vẻ như chúng ta có thể lắp máy tính khách, bộ chuyển mạch và máy tính của máy chủ vào không gian đó, phải không? Hãy thử xem.

Bạn có 8 bit mặt nạ mạng con để "chơi với" (8 bit còn lại của địa chỉ IP 192.168.40.0/24 không được bao phủ bởi mặt nạ mạng con do ISP cung cấp). Chúng ta phải tìm ra cách sử dụng 8 bit đó để tạo ra một số ID mạng duy nhất có thể chứa các thiết bị ở trên.

Bắt đầu với mạng lớn nhất - máy tính khách. Bạn biết rằng sức mạnh lớn hơn tiếp theo của hai từ số lượng thiết bị có thể là 128. Số 128, ở dạng nhị phân, là "10000000". May mắn cho chúng tôi, nó phù hợp với khe 8 bit mà chúng tôi có miễn phí (nếu không, đó sẽ là một dấu hiệu cho thấy mạng con bắt đầu của chúng tôi quá nhỏ để có thể chứa tất cả các thiết bị của chúng tôi).

Hãy lấy ID mạng của chúng tôi, như được cung cấp bởi ISP của chúng tôi và thêm một chút mặt nạ mạng con vào đó, chia nó thành hai mạng:

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.00000000 - Old subnet mask (/24)

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

Nhìn qua cho đến khi nó có ý nghĩa. Chúng tôi đã tăng mặt nạ mạng con thêm một bit, khiến ID mạng che đi một bit sẽ được sử dụng cho ID máy chủ. Vì một bit đó có thể là 0 hoặc 1, chúng tôi đã chia mạng 192.168.40.0 của chúng tôi thành hai mạng một cách hiệu quả. Địa chỉ IP hợp lệ đầu tiên trong mạng 192.168.40.0/25 sẽ là ID máy chủ đầu tiên có "1" ở bit ngoài cùng bên phải:

11000000.10101000.00101000.00000001 - 192.168.40.1 - First valid host in the 192.168.40.0/25 network

Máy chủ hợp lệ đầu tiên trong mạng 192.168.40.128, tương tự, sẽ là ID máy chủ đầu tiên có "1" ở bit ngoài cùng bên phải:

11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/25 network

Máy chủ hợp lệ cuối cùng trong mỗi mạng sẽ là ID máy chủ với mỗi bit ngoại trừ bit phải nhất được đặt thành "1":

11000000.10101000.00101000.01111110 - 192.168.40.126 - Last valid host in the 192.168.40.0/25 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.128/25 network

Vì vậy, theo cách này, chúng tôi đã tạo ra một mạng đủ lớn để chứa các máy khách của chúng tôi và một mạng thứ hai mà sau đó chúng tôi có thể áp dụng cùng một nguyên tắc để phân chia thành các mạng nhỏ hơn. Hãy ghi chú lại:

  • Máy tính khách - 192.168.40.0/25 - IP hợp lệ: 192.168.40.1 - 192.168.40.126

Bây giờ, để phá vỡ mạng thứ hai cho các máy chủ và thiết bị chuyển mạch của chúng tôi, chúng tôi cũng làm điều tương tự.

Chúng tôi có 12 máy tính, nhưng chúng tôi có thể mua thêm 6 máy nữa. Hãy lên kế hoạch vào ngày 18, để lại cho chúng ta sức mạnh cao nhất tiếp theo là 2 là 32. Trong nhị phân, 32 là "100000", dài 6 bit. Chúng tôi có 7 bit mặt nạ mạng con còn lại trong 192.168.40.128/25, vì vậy chúng tôi có đủ bit để tiếp tục "phát". Thêm một chút mặt nạ mạng con cho chúng ta thêm hai mạng:

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - Old subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/26 network
11000000.10101000.00101000.10111110 - 192.168.40.190 - Last valid host in the 192.168.40.128/26 network

11000000.10101000.00101000.11000000 - 192.168.40.192 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.11000001 - 192.168.40.193 - First valid host in the 192.168.40.192/26 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.192/26 network

Vì vậy, bây giờ chúng tôi đã chia 192.168.40.128/25 thành hai mạng nữa, mỗi mạng có 26 bit mặt nạ mạng con hoặc tổng cộng 62 ID máy chủ có thể-- 2 ^ (32 - 26) - 2.

Điều đó có nghĩa là cả hai mạng này đều có đủ địa chỉ cho máy chủ và thiết bị chuyển mạch của chúng tôi! Hãy ghi chú lại:

  • Máy chủ - 192.168.40.128/26 - IP hợp lệ: 192.168.40.129 - 192.168.40.190
  • Công tắc - 192.168.40.192/26 - IP hợp lệ: 192.168.40.193 - 192.168.40.254

Kỹ thuật này được gọi là mặt nạ mạng con có độ dài thay đổi (VLSM) và, nếu được áp dụng đúng cách, sẽ khiến "bộ định tuyến lõi" có các bảng định tuyến nhỏ hơn (thông qua một quá trình gọi là "tóm tắt tuyến đường"). Trong trường hợp ISP của chúng tôi trong ví dụ này, họ có thể hoàn toàn không biết về cách chúng tôi đã cho thuê lại 192.168.40.0/24. Nếu bộ định tuyến của họ có gói bị ràng buộc cho 192.168.40.206 (một trong các thiết bị chuyển mạch của chúng tôi), họ chỉ cần biết để chuyển nó đến bộ định tuyến của chúng tôi (vì 192.168.40.206 khớp với id mạng và mặt nạ mạng con 192.168.40.0/24 trong bảng định tuyến của bộ định tuyến của họ ) và bộ định tuyến của chúng tôi sẽ đưa nó đến đích. Điều này giữ cho các tuyến mạng con của chúng ta ra khỏi bảng định tuyến của chúng. (Tôi đang đơn giản hóa ở đây, nhưng bạn có ý tưởng.)

Bạn có thể lập kế hoạch các mạng rất lớn về mặt địa lý theo cách tương tự. Miễn là bạn thực hiện đúng "quy hoạch đô thị" (dự đoán số lượng máy chủ trong mỗi mạng phụ với một số độ chính xác và hướng tới tương lai), bạn có thể tạo một hệ thống phân cấp định tuyến lớn, tại các bộ định tuyến lõi, "tóm tắt "Đến một số lượng nhỏ các tuyến đường. Như chúng ta đã thấy ở trên, càng nhiều tuyến đường trong bảng định tuyến của bộ định tuyến thì nó càng thực hiện công việc chậm hơn. Thiết kế mạng IP với VLSM và giữ các bảng định tuyến nhỏ là một điều tốt (tm).

Tính phi thực tế của các ví dụ

Thế giới hư cấu trong câu trả lời này, rõ ràng là hư cấu. Thông thường, bạn có thể tạo các mạng con trên Ethernet chuyển mạch hiện đại với nhiều máy chủ hơn 254 (phụ thuộc vào cấu hình lưu lượng). Như đã được chỉ ra trong các nhận xét, sử dụng / 24 mạng giữa các bộ định tuyến không phù hợp với Real Life (tm). Nó làm cho các ví dụ dễ thương, nhưng là một sự lãng phí không gian địa chỉ. Thông thường, a / 30 hoặc a / 31 (xem http://www.faqs.org/rfcs/rfc3021.html để biết chi tiết về cách thức / 31 của công việc-- chắc chắn chúng nằm ngoài phạm vi của câu trả lời này) các liên kết nghiêm ngặt điểm-điểm giữa hai bộ định tuyến.


Lỗi nhỏ: Mã ngay sau "Máy chủ hợp lệ cuối cùng ..." trở lại gọi nó là "máy chủ hợp lệ đầu tiên". Tôi cho rằng vẫn nên nói "cuối cùng."
JoeCool1986

@ JoeCool1986 - Bắt tốt.
Evan Anderson

2
Tôi sẽ nâng cao câu trả lời này để đảm bảo rằng hai câu trả lời được giữ theo thứ tự.
l46kok

Về phần bạn tạo hai mạng con từ 192.168.40.128 và tạo ID mạng 192.168.40.192, 192 đến từ đâu?
dùng6607

@ user6607 Các mạng con được tính ngược (không có khoảng trống). Ví dụ, mạng con đầu tiên 0được biểu diễn dưới dạng 00000000. Mạng con thứ hai là 128như vậy 10000000và mạng con thứ ba 192được thể hiện là 11000000, v.v. Chỉ cần tiếp tục đếm ngược để tìm mạng con mới.
Joseph Kern

76

Lưới phụ

Lưới phụ không khó nhưng có thể đáng sợ. Vì vậy, hãy bắt đầu với bước đơn giản nhất có thể. Học để đếm trong nhị phân.

Nhị phân

Nhị phân là một hệ thống đếm cơ sở 2. Chỉ bao gồm hai số (1 và 0). Đếm số tiền thu được theo cách này.

1 = 001 ( 0 + 0 + 1 = 1)
2 = 010 ( 0 + 2 + 0 = 2)
3 = 011 ( 0 + 2 + 1 = 3)
4 = 100 ( 4 + 0 + 0 = 4)
5 = 101 ( 4 + 0 + 1 = 5)

Vì vậy, nếu bạn chỉ tưởng tượng rằng mỗi 1 là một người giữ chỗ cho một giá trị (tất cả các giá trị nhị phân là quyền hạn của hai)

1     1     1     1     1 = 31
16  + 8  +  4  +  2  +  1 = 31

Vậy ... 100000 = 32. Và 10000000 = 128. VÀ 11111111 = 255.

Khi tôi nói, "Tôi có mặt nạ mạng con là 255.255.255.0", tôi thực sự muốn nói, "Tôi có mặt nạ mạng con là 11111111.1111111.1111111.00000000." Chúng tôi sử dụng mạng con như một bàn tay ngắn.

Các dấu chấm trong địa chỉ, tách riêng mỗi 8 chữ số nhị phân (một octet). Đây là lý do tại sao IPv4 được gọi là không gian địa chỉ 32 bit (8 * 4).

Tại sao mạng con?

Địa chỉ IPv4 (192.168.1.1) đang bị thiếu. Lưới phụ cho chúng ta một cách để tăng số lượng mạng khả dụng (hoặc máy chủ). Điều này là vì lý do hành chính và lý do kỹ thuật.

Mỗi địa chỉ IP được chia thành hai phần riêng biệt, mạng và máy chủ. Theo mặc định, một địa chỉ Lớp C (192.168.1.1) sử dụng 3 octet đầu tiên (192.168.1) cho phần mạng của địa chỉ. và octet thứ 4 (.1) là phần máy chủ.

Theo mặc định, một địa chỉ IP và mặt nạ mạng con cho địa chỉ Lớp C trông như thế này

IP     192.168.1.1 
Subnet 255.255.255.0

Trong nhị phân như thế này

IP     11000000.10101000.00000001.00000001
Subnet 11111111.11111111.11111111.00000000

Nhìn vào ví dụ nhị phân một lần nữa. Lưu ý cách tôi nói ba octet đầu tiên được sử dụng cho mạng? Chú ý phần mạng là tất cả? Đó là tất cả các lưới phụ là. Hãy mở rộng.

Cho rằng tôi có một octet duy nhất cho phần máy chủ của mình (trong ví dụ trên). Tôi chỉ có thể có 256 máy chủ (256 là giá trị tối đa của một octet, tính từ 0). Nhưng có một mẹo nhỏ khác: bạn cần trừ 2 địa chỉ máy chủ khỏi các địa chỉ có sẵn (hiện là 256). Địa chỉ đầu tiên trong phạm vi sẽ dành cho mạng (192.168.1.0) và địa chỉ cuối cùng trong phạm vi sẽ là quảng bá (192.168.1.255). Vì vậy, bạn thực sự có 254 địa chỉ có sẵn cho các máy chủ trong một mạng.

Một trường hợp nghiên cứu

Hãy nói rằng tôi đã đưa cho bạn mảnh giấy sau đây.

Create 4 networks with 192.168.1.0/24.

Chúng ta hãy xem điều này. / 24 được gọi là ký hiệu CIDR. Thay vì tham chiếu 255.255.255.0, chúng tôi chỉ tham chiếu các bit chúng tôi cần cho mạng. Trong trường hợp này, chúng tôi cần 24 bit (3 * 8) từ địa chỉ 32 bit. Viết ra trong nhị phân

11111111.11111111.11111111.00000000 = 255.255.255.0
8bits   + 8bits  + 8bits  + 0bits   = 24bits

Tiếp theo chúng ta biết chúng ta cần tính xem chúng ta cần bao nhiêu mạng con. Hình như 4. Vì chúng ta cần tạo thêm mạng (hiện tại chúng ta chỉ có một) cho phép lật một số bit

11111111.11111111.11111111.00000000 = 255.255.255.0   = 1 Network OR /24
11111111.11111111.11111111.10000000 = 255.255.255.128 = 2 Networks OR /25
11111111.11111111.11111111.11000000 = 255.255.255.192 = 4 Networks (remember powers of 2!) OR /26

Bây giờ chúng tôi đã quyết định / 26 hãy bắt đầu phân bổ máy chủ. Một bài toán đơn giản:

32(bits) - 26(bits) = 6(bits) for host addresses.

Chúng tôi có 6 bit để phân bổ trong mỗi mạng cho máy chủ. Hãy nhớ rằng chúng ta cần trừ 2 cho mỗi mạng.

h = host bits    
2^h - 2 = hosts available

2^6 - 2 = 62 hosts 

Finally we have 62 hosts in 4 networks, 192.168.1.0/26

Bây giờ chúng ta cần tìm ra nơi mà các máy chủ đi. Quay lại nhị phân!

11111111.11111111.11111111.00,000000 [the comma is the new network/hosts division]

Begin to calculate:

11000000.10101000.00000001.00,000000 = 192.168.1.0 [First IP = Network Adress]
11000000.10101000.00000001.00,000001 = 192.168.1.1 [First Host IP]
11000000.10101000.00000001.00,000010 = 192.168.1.2 [Second Host IP]
11000000.10101000.00000001.00,000011 = 192.168.1.3 [Third Host IP]

And so on ... until ...

11000000.10101000.00000001.00,111110 = 192.168.1.62 [Sixty Second Host IP]
11000000.10101000.00000001.00,111111 = 192.168.1.63 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.01,000000 = 192.168.1.64 [First IP = Network Address]
11000000.10101000.00000001.01,000001 = 192.168.1.65 [First Host IP]
11000000.10101000.00000001.01,000010 = 192.168.1.66 [Second Host IP]

And so on ... until ...

11000000.10101000.00000001.01,111110 = 192.168.1.126 [Sixty Second Host IP]
11000000.10101000.00000001.01,111111 = 192.168.1.127 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.10,000000 = 192.168.1.128 [First IP = Network Address]
11000000.10101000.00000001.10,000001 = 192.168.1.129 [First Host IP]

Etc ...

Bằng cách này, bạn có thể tính toán toàn bộ mạng con.

Thẻ hoang dã Mặt nạ thẻ hoang dã là mặt nạ mạng con đảo ngược.

11111111.11111111.11111111.11000000 = 255.255.255.192 [Subnet]
00000000.00000000.00000000.00111111 = 0.0.0.63 [Wild Card]

Thêm nữa

Google cho các thuật ngữ 'siêu lưới' và 'VLSM (mặt nạ mạng con có độ dài thay đổi)', cho các chủ đề nâng cao hơn.

Bây giờ tôi có thể thấy rằng tôi đã mất quá nhiều thời gian để trả lời ... thở dài


1
"Cho rằng tôi có một octet duy nhất cho phần máy chủ của mình (trong ví dụ trên). Tôi chỉ có thể có 255 máy chủ (255 là giá trị tối đa của một octet). Nhưng có một mẹo nhỏ khác: bạn cần trừ 2 địa chỉ máy chủ từ các địa chỉ khả dụng (hiện là 255). Địa chỉ đầu tiên trong phạm vi sẽ dành cho mạng (192.168.1.0) và địa chỉ cuối cùng trong phạm vi sẽ là quảng bá (192.168.1.255). Vì vậy, bạn thực sự có 253 địa chỉ khả dụng cho lưu trữ trong một mạng. "... Điều này không chính xác.
joeqwerty

1
Có 256 giá trị có thể cho octet: 0 đến 255, với tổng số 256. 256 -2 (địa chỉ mạng và quảng bá) = 254 địa chỉ máy chủ có thể.
joeqwerty

Úi. Cảm ơn! :-) Tắt bởi một, tôi không biết làm thế nào tôi quản lý được kỳ tích cụ thể đó.
Joseph Kern

1
-1 Xin lỗi, nhưng không có "Lớp học" kể từ RFC 1519 năm 1993, không ai nên nói về chúng ngoài bối cảnh lịch sử. Chúng gây nhầm lẫn và gây ra nhiều quan niệm sai lầm.
Chris S

Chris có lẽ bạn đúng, nhưng các lớp học vẫn được dạy vào đầu những năm 2000 trong CCNA và hầu hết các khóa học cấp dưới.
Joseph Kern

34

Một bài học lịch sử ngắn gọn: ban đầu, các địa chỉ IPv4 unicast được chia thành 3 lớp, mỗi lớp có độ dài mặt nạ 'mặc định' được liên kết (được gọi là mặt nạ mạng con đầy đủ)

  • Lớp A: Mọi thứ trong phạm vi 1.0.0.0 -> 127.255.255.255. Mặt nạ mạng con đầy đủ của 255.0.0.0 (/ 8 trong ký hiệu CIDR)
  • Lớp B: Mọi thứ trong phạm vi 128.0.0.0 -> 191.255.255.255. Mặt nạ mạng con đầy đủ của 255.255.0.0 (/ 16 trong ký hiệu CIDR)
  • Lớp C: Mọi thứ trong phạm vi 192.0.0.0 -> 223.255.255.255. Mặt nạ mạng con đầy đủ của 255.255.255.0 (/ 24 trong ký hiệu CIDR)

Ý tưởng là các tổ chức có quy mô khác nhau có thể được phân bổ một loại địa chỉ IP khác nhau, để sử dụng hiệu quả không gian địa chỉ IP.

Tuy nhiên, khi các mạng IP phát triển, rõ ràng phương pháp này có vấn đề. Để đặt tên nhưng ba:

Trong một thế giới đầy đẳng cấp, tất cả các mạng con phải có mặt nạ / 8, / 16 hoặc / 24. Điều này có nghĩa là mạng con nhỏ nhất có thể được cấu hình là / 24, cho phép cho 254 địa chỉ máy chủ (.0 và .5555 được dành riêng làm địa chỉ mạng và địa chỉ quảng bá). Điều này cực kỳ lãng phí, đặc biệt là các liên kết điểm-điểm chỉ có hai bộ định tuyến được gắn vào chúng.

Ngay cả sau khi hạn chế này được nới lỏng, các giao thức định tuyến trước đó (ví dụ RIPv1 ) không quảng cáo độ dài mặt nạ được liên kết với tiền tố IP. Trong trường hợp không có mặt nạ cụ thể, nó sẽ sử dụng mặt nạ của giao diện được kết nối trực tiếp trong cùng một mạng lớp hoặc quay lại sử dụng mặt nạ đẳng cấp. Ví dụ: nếu bạn muốn sử dụng mạng 172.16.0.0 cho các liên kết giữa các bộ định tuyến với / 30 mặt nạ, tất cả các mạng con từ 172.16.0.0 - 172.16.255.255 sẽ phải có / 30 mặt nạ (16384 mạng con, mỗi mạng có 2 IP có thể sử dụng được ).

Các bảng định tuyến của bộ định tuyến internet bắt đầu chiếm nhiều bộ nhớ hơn; đây là / được gọi là 'vụ nổ bảng định tuyến'. Ví dụ, nếu một nhà cung cấp có 16 mạng liên tục / 24 mạng, họ sẽ cần quảng cáo tất cả 16 tiền tố, thay vì một bản tóm tắt duy nhất bao trùm toàn bộ phạm vi.

Hai sàng lọc liên quan cho phép chúng tôi vượt qua các giới hạn trên.

  1. Mặt nạ mạng con có chiều dài thay đổi (VLSM)
  2. CIDR (Định tuyến liên miền không phân loại)

VLSM đề cập đến khả năng của một giao thức định tuyến hỗ trợ các mặt nạ mạng con khác nhau trong cùng một mạng lớp. Ví dụ:

192.168.1.0/24

Có thể được chia thành:

192.168.1.0/25
192.168.1.128/26
192.168.1.192/27
192.168.1.224/27

Cho phép sử dụng không gian địa chỉ hiệu quả hơn nhiều; mạng con có thể được định kích thước chính xác cho số lượng máy chủ / bộ định tuyến sẽ được gắn vào chúng.

CIDR lấy VLSM và mở rộng nó theo cách khác; ngoài việc chia một mạng lớp đơn thành các mạng con nhỏ hơn, CIDR cho phép tổng hợp nhiều mạng lớp thành một bản tóm tắt. Ví dụ: các mạng Lớp B (/ 16) sau:

172.16.0.0/16
172.17.0.0/16
172.18.0.0/16
172.19.0.0/16

Có thể được tổng hợp / tóm tắt với một tiền tố duy nhất:

172.16.0.0/14

Về mặt mạng con: mặt nạ mạng con dài 32 bit. Độ dài mặt nạ biểu thị có bao nhiêu bit xác định phần mạng của địa chỉ. Ví dụ:

10.1.1.0/24
  • Mặt nạ mạng con đầy đủ là / 8
  • Mặt nạ mạng con thực tế là / 24
  • 16 bit (24-8) đã được 'mượn' để sử dụng mạng con.

Điều này có nghĩa là, giả sử toàn bộ mạng 10.0.0.0/8 được chia nhỏ thành / 24 giây, sẽ có 65536 (2 ^ 16) mạng con trong phạm vi này. (Điều này giả định rằng nền tảng bạn đang sử dụng hỗ trợ số mạng con là 0 và 255. Xem mạng con ip của Cisco-zero).

Có 8 bit còn lại trong 'phần lưu trữ' của địa chỉ. Điều này có nghĩa là có 256 địa chỉ IP khả dụng (2 ^ 8), trong đó 2 địa chỉ được bảo lưu (10.1.1.0 là địa chỉ mạng, 10.1.1.255 là địa chỉ quảng bá hướng mạng con). Điều này để lại 254 địa chỉ IP có thể sử dụng trên mạng con này. ((2 ^ 8) - 2)


4
Thực tế có 5 lớp.
dbasnett

5
Đúng, nhưng chúng ta có thực sự cần phải truy cập vào địa chỉ lớp E đa hướng và dành riêng cho câu hỏi 'giới thiệu về mạng con' không? :)
Murali Suriar

2
Bạn đã đưa lịch sử vào một câu hỏi giới thiệu ... Sau đó, nó không đầy đủ. Không chắc cái nào tệ hơn.
Chris S

7

Phạm vi mạng: các mạng luôn được tham chiếu bởi 2 số: một số để xác định mạng và một số khác để xác định máy tính (hoặc máy chủ) nào nằm trên mạng đó. Vì mỗi địa chỉ nertwork dài 32 bit, cả hai số phải khớp với 32 bit này.

Việc đánh số mạng rất quan trọng, vì đây là cách mà ICANN đưa ra khi bạn yêu cầu một dải IP mạng. Nếu chúng tôi không có nó, không ai có thể nói sự khác biệt giữa mạng của tôi và AT & Ts. Vì vậy, trong khi những con số này phải là duy nhất, không ai khác muốn gán số cho các máy chủ lưu trữ trên mạng của tôi. Do đó, phần tách - phần đầu tiên được quản lý bởi người mạng, phần thứ hai là tất cả của tôi để cung cấp cho bất kỳ máy nào tôi muốn.

Số mạng không cố định ở một số bit nhất định - ví dụ: nếu tôi chỉ có 200 máy để tự quản lý, tôi hoàn toàn hài lòng với số mạng sử dụng 24 bit, chỉ để lại cho tôi 8 bit - đủ cho tối đa 255 máy chủ. Vì số mạng sử dụng 24 bit, chúng ta có thể có rất nhiều trong số chúng, có nghĩa là nhiều người có thể có mạng riêng của họ.

Trong quá khứ, điều này được gọi là một mạng lớp C. (lớp B đã sử dụng 16 bit cho số mạng và lớp A sử dụng 8 bit, do đó chỉ tồn tại một vài mạng lớp A).

Ngày nay, quy ước đặt tên này đã bị lỗi mốt. Nó đã được thay thế bằng khái niệm gọi là CIDR. CIDR rõ ràng đặt số bit cho máy chủ của bạn sau dấu gạch chéo. Vì vậy, ví dụ của tôi ở trên (lớp C) hiện được gọi là CIDR / 24.

Điều này giúp chúng tôi linh hoạt hơn một chút, trước đây nếu tôi có 300 máy chủ để quản lý, tôi cần một mạng lớp B! Bây giờ, tôi chỉ có thể nhận được / 23 CIDR, vì vậy tôi có 9 bit cho tôi và 23 bit cho số mạng. ICANN có thể không có các loại mạng này, nhưng nếu tôi có mạng nội bộ hoặc đang thuê một phần mạng từ ISP, điều này giúp quản lý dễ dàng hơn - đặc biệt là tất cả khách hàng của họ có thể được cấp / 29 (để lại cho tôi. . 3 bit hoặc tối đa 8 máy) cho phép nhiều người có một lát nhỏ các địa chỉ IP có sẵn của riêng họ. Cho đến khi chúng tôi nhận được IPv6, điều này khá quan trọng.


Tuy nhiên ... trong khi tôi biết a / 24 CIDR tương đương với mạng Lớp C cũ và a / 16 là lớp B và a / 8 là lớp A ... Tôi vẫn còn bối rối khi cố gắng tính a / 22 trong đầu của tôi. May mắn thay, có những công cụ làm điều này cho tôi :)

Tuy nhiên - nếu bạn biết a / 24 là 8 bit cho máy chủ (và 24 bit cho mạng), thì tôi biết a / 23 cho tôi thêm một bit làm tăng gấp đôi số lượng máy chủ.


-1 Xin lỗi, nhưng việc đề cập đến các lớp học bên ngoài một tài liệu tham khảo "lịch sử" là không phù hợp trong những ngày này. Họ đã không "rơi ra khỏi thời trang", họ đã bị RFC 1519 chính thức phản đối vào năm 1993. Họ bối rối vì tất cả đều h * ll và gây ra một loạt các quan niệm sai lầm.
Chris S

Một số triển khai của các giao thức định tuyến động tóm tắt dọc theo các ranh giới lớp, vì vậy vẫn hữu ích khi biết chúng.
Ben

5

Tôi sẽ đặt ra và trả lời một số câu hỏi liên quan trên đường đi:

  • Tại sao bạn thấy 255.255.255.0thường xuyên như vậy?
  • Tại sao 192.168.0.1?
  • Tại sao 127.0.0.1?

Tại sao những con số kỳ lạ như vậy - 255, 192, 168, 127?


Số thập phân rải rác 8 + 8 + 8 + 8 bit

Các địa chỉ Internet như 194.60,38.10 sử dụng ký hiệu thập phân rải rác để phân chia 32 bit thành 8 + 8 + 8 + 8 bit. Dấu chấm thập phân có nghĩa là chuyển đổi mỗi số thành nhị phân rồi đệm trái với 0's.

Ví dụ .60.→ 60 = 32 + 16 + 8 + 4 → 111100.00111100..

Vì vậy, 194.60,38.10 được chấm thập phân cho địa chỉ 4 × 8 = 32 bit 11000010.00111100.00100110.00001010, kể từ 38 → 100110, 10 → 1010, v.v. 194 yêu cầu tất cả 8 bit; phần còn lại được độn.

đệm

Khi bạn nghĩ về 255, 192 và 127 trong nhị phân 8 bit, bạn có thể dễ dàng hiểu tại sao các số thập phân nhất định lại phổ biến đến vậy:

  • 255 = 11111111
  • 192 = 11000000
  • 127 = _1111111
  • 128 = 10000000

Các số thập phân này xảy ra để biểu thị các khối 8 bit thuận tiện trực quan như ■ * BIỂU TƯỢNG, ■ □ _0_0_0_0_0_0_0, và □ ■ BIỂU TƯỢNG. Vì vậy, bạn chưa bao giờ thấy 256 = 2⁹ vì giới hạn 8 bit và 127 = 128−1 = 2⁸ 1 là lần lật của một hai quyền lực và hai quyền lực đang 10………00000ở trong nhị phân.

  • 168 = 10101000

Mặt nạ mạng con: Cái của tôi là của tôi + Cái của bạn là của bạn

Mặt nạ mạng con sau đó chia từng địa chỉ internet 32 ​​bit thành ID mạng và ID máy chủ. Trong khi các địa chỉ internet có thể có bất kỳ hỗn hợp nào của 1 và 0, mặt nạ mạng con bắt đầu chỉ bằng 1 và kết thúc chỉ bằng 0.

■■□□□□■□|□□■■■■□□|□□■□□■■□|□□□□■□■□ IP
■■■■■■■■|■■■■■■■■|■■■■■■■■|□□□□□□□□ subnet

Bôi đen 8 + 8 + 8 = 24 bit đầu tiên và loại bỏ 8 bit cuối cùng là một cách để phân tách IP ■ ■ □ _0_0_0 ■ □ | □ ___ ■ ■ BIỂU ■ □ | □ _0_0_0 ■ □ ■ □ thành hai mảnh:

■■□□□□■□|□□■■■■□□|□□■□□■■□          network
                             □□□□■□■□ host

Nếu chủ sở hữu mạng con (nói OmniCorp ) muốn có nhiều IP nội bộ hơn, họ có thể mua thêm (giả sử 8 + 8 = 16 bit) ở phía bên phải của mạng, như sau:

■■□□□□■□|□□■■■■□□|□□■□□■■□|□□□□■□■□ IP
■■■■■■■■|■■■■■■■■|□□□□□□□□|□□□□□□□□ subnet
■■□□□□■□ □□■■■■□□                    network
                   □□■□□■■□ □□□□■□■□ host

Rõ ràng có một sự đánh đổi trong không gian địa chỉ tùy chọn 32-bit = 2³² = 4.294.967.296: nếu bạn mua thêm ID mạng (phía bên trái), mạng nội bộ của bạn có nhiều ID máy chủ (bên phải) để gán.

Do đó, người giá rẻ có mặt nạ mạng con

255.255.255.0 = ■ BIỂU TƯỢNG CÂU HỎI THƯỜNG GẶP

Ngay cả những người rẻ hơn có

255.255.255.128 = ■ BIỂU TƯỢNG BIỂU TƯỢNG | ■ BIỂU TƯỢNG

hoặc 255.255.255.192 = ■ BIỂU TƯỢNG CÂU HỎI THƯỜNG GẶP | ■ BIỂU TÌM KIẾM

Theo quan niệm dân gian, đó không phải là Roger Miller, mà là một sysadmin thấp với mặt nạ 255.255.255.254, người ban đầu viết King of the Road , thay vào đó, tôi không có một mạng con lớn nào cho vì tôi không có thuốc lá NÓI.

Tôi hút thuốc lá xuống mông

(Tại sao mặt nạ của những người thấp kém với số lượng cao như vậy? Bởi vì, giống như người kể chuyện của Miller, mặt nạ mạng con đếm tất cả những thứ bạn không có.)


Dấu gạch chéo sau IP có nghĩa là gì? (ví dụ: 194.60,38.10 / 24)

Vì các mặt nạ mạng con (phân chia các nhóm của họ từ từ của chúng tôi, luôn luôn bắt đầu bằng 1và chúng tôi ghét việc tổng hợp sức mạnh của hai người thậm chí nhiều hơn chúng tôi ghét việc tìm ra sức mạnh của hai người ngay từ đầu, nên ai đó đã phát minh ra CIDR (dấu gạch chéo sau IP).

194.60,38.10/24 có nghĩa là "submask có 24 cái, còn lại là số không", vì vậy

■ * BIỂU TƯỢNG BIỂU TƯỢNG ■ ■ BIỂU TƯỢNG thuộc về chúng tôi.

Đảo ngược giai điệu của hobo ở trên,

  • /31 là nhạc sĩ
  • /24là tầng lớp trung lưu ( 255.255.255.0= ■ * BIỂU TƯỢNG BIỂU TƯỢNG (■ BIỂU TƯỢNG
  • /16 rất phong phú ■ BIỂU TƯỢNG ■ BIỂU TƯỢNG TÌM HIỂU
  • /8 là siêu giàu ■ * BIỂU TƯỢNG TUYỆT VỜI | □ _0> _0 |
  • /1hoặc /0sẽ là IANA hoặc một cái gì đó.





Sử dụng bc -l; obase=10; 60ví dụ.


Mối quan hệ với câu trả lời làm những hình ảnh trong đó? Có phải chỉ để tập trung vào câu trả lời? :)
simhumileco

4

Mặc dù những điều trên là chính xác (xin lỗi, TL; DR), việc tính toán các mạng con vẫn khiến nhiều quản trị viên mạng đau buồn. Thực sự có một cách rất dễ dàng để thực hiện tính toán mạng con, bạn có thể thực hiện hầu hết trong số đó và có rất ít bạn phải ghi nhớ. Đối với hầu hết các ứng dụng, thậm chí không cần thiết phải hiểu biểu diễn nhị phân, mặc dù nó rất hữu ích cho sự hiểu biết đầy đủ về mạng con. Ở đây tôi sẽ chỉ thảo luận về IPv4; IPv6 nằm ngoài phạm vi của cuộc thảo luận này.

Nhớ lấy điều này:

Có ba điều quan trọng cần nhớ: tất cả các mạng con đều dựa trên quyền hạn của hai và có hai số chính: 256 và 32. Thêm về điều đó sau.

Đầu tiên, chúng ta hãy nhìn vào một bảng chứa quyền hạn 2:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

Tính toán lũy thừa của 2 là dễ dàng: mỗi số nguyên tăng sức mạnh nhân đôi kết quả. 1 + 1 = 2, 2 + 2 = 4, 4 + 4 = 8, 8 + 8 = 16, v.v. Tổng số địa chỉ trong một mạng con phải luôn là 2 .

Vì mỗi octet của một mạng con IPv4 lên tới 256, 256 là một con số rất quan trọng và là cơ sở cho phần còn lại của toán học.

Định cỡ mạng con

Chúng ta sẽ bắt đầu với một câu hỏi dễ dàng: "có bao nhiêu địa chỉ trong một mạng con nếu mặt nạ là 255.255.255.248?" Chúng tôi sẽ bỏ qua ba octet đầu tiên bây giờ và nhìn vào cuối cùng. Đây là cách dễ dàng: trừ 248 từ 256. 256 trừ 248 bằng 8. Có 8 địa chỉ khả dụng (bao gồm cả địa chỉ mạng và địa chỉ quảng bá). Ngược lại cũng hoạt động: "nếu tôi muốn có một mạng con với 16 địa chỉ, mặt nạ mạng con sẽ là gì?" 256 trừ 16 bằng 240. Mặt nạ mạng con sẽ là 255.255.255.248.

Bây giờ nếu chúng tôi muốn mở rộng ra ngoài 256 địa chỉ (theo lịch sử là "lớp C"), thì nó chỉ phức tạp hơn một chút: nếu octet cuối cùng của chúng tôi là 0 và octet thứ ba của chúng tôi là, 240, (255.255.240.0) chúng tôi làm toán trên octet thứ ba và thấy rằng sẽ có 16 địa chỉ. Vì vậy, chúng tôi nhân 16 với 256 (số lượng địa chỉ trong octet cuối cùng) để có 4.096. Nếu cả hai octet cuối cùng là 0, (ví dụ 255.240.0.0) thì chúng ta sẽ lấy kết quả trừ từ octet thứ hai (chúng ta sẽ nói lại là 16), nhân nhưng 256 (địa chỉ trong octet thứ ba), nhân lại với 256 (địa chỉ trong octet cuối cùng) để có được 1.048.576 địa chỉ. Dễ như thế! (OK, do đó, việc đảo ngược khó khăn hơn một chút. Nếu chúng ta muốn một mạng con có 1.048.576 địa chỉ, chúng ta sẽ phải chia số đó cho 256 một vài lần để có được một số chúng ta có thể trừ đi 256.)

Địa chỉ mạng

Bây giờ chúng ta đã biết cách tính toán mặt nạ mạng con, làm thế nào để chúng ta tìm ra địa chỉ mạng là gì? Điều đó thật dễ dàng: nó luôn là bội số của số địa chỉ trong mạng con của chúng tôi. Vì vậy, nếu chúng tôi có 16 địa chỉ trong mạng con của mình, các địa chỉ mạng có thể sẽ là 0, 16, 32, 48, 64, v.v. lên đến 240. (Lưu ý rằng 0 là bội số hợp lệ của bất kỳ số nào, vì bất kỳ số nào nhân với 0 bằng 0.)

Và, tất nhiên, địa chỉ phát sóng sẽ là địa chỉ cuối cùng trong phạm vi. Vì vậy, nếu chúng tôi có 16 địa chỉ trong mạng con của chúng tôi và chúng tôi đã chọn địa chỉ mạng là 10.3.54.64, địa chỉ quảng bá sẽ là (64 + 16-1 = 79) 10.3.54.79.

Ký hiệu CIDR

Vậy làm thế nào về ký hiệu CIDR? Làm thế nào để dịch nó sang và từ một mặt nạ mạng con kiểu IPv4?

Ghi nhớ sức mạnh của hai chúng ta? Chà, bây giờ chúng ta có một số khóa khác cần nhớ ngoài 256: 32. Hãy nhớ rằng, ký hiệu CIDR mô tả số lượng bit đáng kể trong địa chỉ IPv4 và có 32 bit trong địa chỉ IPv4, 8 cho mỗi octet. Vì vậy, nếu chúng ta có mặt nạ mạng con là 255.255.255.240, thì đó là 16 địa chỉ. Nếu chúng ta nhìn vào bảng "lũy thừa 2" của chúng ta ở trên, chúng ta sẽ thấy rằng 16 là hai đến lũy thừa thứ tư (2 ^ 4). Vì vậy, chúng tôi trừ đi số năng lượng đó - 4 - từ 32 và nhận được 28. Ký hiệu CIDR của chúng tôi cho mặt nạ mạng con là 255.255.255.240, ký hiệu CIDR của chúng tôi là / 28.

Và nếu chúng tôi được cấp CIDR là / 28, chúng tôi sẽ trừ (28) từ 32 để nhận 4; nâng 2 lên (4) sức mạnh đó (2 ^ 4) để nhận 16; sau đó trừ đi (16) từ 256 để lấy 240; hoặc 255.255.255.240.


cảm ơn bạn. Nhưng tôi vẫn còn mơ hồ về cách máy tính sử dụng mặt nạ mạng con. Khi một ứng dụng trên máy tính muốn gửi dữ liệu, nó sẽ đóng gói nó thành một gói. Liệu mặt nạ mạng con xác định cách gói tin được đóng gói? Ví dụ: nếu máy tính muốn gửi một gói trên mạng cục bộ, nó sẽ sử dụng khung ethernet en.wikipedia.org/wiki/Ethernet_frame và nếu muốn bên ngoài mạng, nó sẽ sử dụng gói tcp en.wikipedia.org/wiki / Cạn ?
aquagremlin

Về cơ bản, tôi không biết làm thế nào một máy tính xác định nơi gửi dữ liệu của nó. Mạng ethernet giống như một chiếc xe buýt - nó đi khắp mọi nơi. Việc đưa một gói ra qua giắc ethernet của máy tính là một sự kiện chung - do đó, chính gói phải xác định ai phản hồi với nó. Gói tin được chọn bởi một thiết bị cục bộ (bộ chuyển mạch hoặc máy tính khác trên lan) phải trông khác với gói sẽ được chọn bởi bộ định tuyến.
aquagremlin

Điều này xảy ra trên một lớp bên dưới TCP. Mỗi thiết bị có một địa chỉ phần cứng (MAC) được liên kết với một địa chỉ IP trong bảng ARP của mỗi thiết bị. Điều này được xây dựng thông qua khám phá. Khi một gói được dành cho một máy chủ trên mạng cục bộ, nó được gắn thẻ MAC cho thiết bị đích. Khi một gói được định sẵn cho một máy chủ từ xa, nó được gắn thẻ MAC cho bộ định tuyến trên mạng cục bộ. Khi nó đi qua bộ định tuyến, MAC bị tước và sau đó được gắn thẻ với MAC của bộ định tuyến bước nhảy tiếp theo. Mạng con chỉ xác định phạm vi của mạng cục bộ. (Đó là phiên bản <500 ký tự đơn giản.)
Jonathan J

2

Tôi cũng cảm thấy rằng ít nhất nên có một đề cập đến NAT, bởi vì chúng được sử dụng rất phổ biến trong các mạng hiện đại thay cho Subnets, vì sự cạn kiệt địa chỉ IPv4, trong số những thứ khác. (Ngoài ra, khi tôi lần đầu tiên tìm hiểu về mạng con, tôi đã rất bối rối về việc mạng con liên quan đến các mạng được tạo bởi bộ định tuyến WiFi như thế nào).

NAT (dịch địa chỉ mạng) là một kỹ thuật (thường được sử dụng) để tạo các mạng riêng bằng cách ánh xạ một không gian địa chỉ (IP: Cổng) sang một không gian địa chỉ khác. Phần lớn, điều này được sử dụng để tạo một mạng riêng gồm nhiều IP riêng đằng sau một địa chỉ công cộng, ví dụ, trong các bộ định tuyến Wifi, bởi các tổ chức (như trường đại học hoặc công ty) hoặc đôi khi bởi các ISP.

Việc dịch địa chỉ thực tế được thực hiện trong suốt trong các nút có khả năng NAT, thường là các bộ định tuyến. Nó có thể có nhiều dạng, Full Cone, Địa chỉ bị hạn chế, Cổng bị hạn chế, v.v. hoặc hỗn hợp của chúng, điều này cho thấy cách các kết nối trên nút có thể được bắt đầu.

Chi tiết đầy đủ có thể được tìm thấy trên Wikipedia , nhưng ví dụ, hãy xem xét bộ định tuyến Wifi có 2 thiết bị được kết nối với nó. IP công cộng của router là 10.9.20.21/24, và chỉ IP của thiết bị (IP Private) là A: 192.168.0.2, B: 192.168.0.3và của các bộ định tuyến là R: 192.168.0.1. Do đó, nếu bạn Amuốn kết nối với máy chủ S: 10.9.24.5/24, (thực tế là trên một mạng con khác, hãy đặt bộ định tuyến ở đây):

  1. A gửi một gói IP đến R(sẽ là cổng mặc định) với IP nguồn 192.168.0.2, cổng src (giả sử) 14567và IP đích: 10.9.24.5(Mặc dù cổng thực sự là một phần của tiêu đề TCP).
  2. Bộ định tuyến (có khả năng NAT) ánh xạ cổng 14567tới thiết bị Avà thay đổi nguồn trên gói IP thành 10.9.20.21(là IP công cộng của bộ định tuyến). Điều này trái ngược với mạng con được mô tả ở trên, nơi các gói IP thực sự không bao giờ thay đổi .
  3. Snhận chuỗi các gói TCP (với src IP : 10.9.20.21, src Port 14567:) và gửi các gói phản hồi với các giá trị đó trong các trường đích.
  4. Rkiểm tra cổng đích, đó là 14567và chuyển tiếp gói đến A.
  5. A nhận gói phản hồi.

Trong tình huống trên, nếu Bcố gắng mở một kết nối trên cùng một cổng nguồn ( 14567), nó sẽ được ánh xạ tới một cổng khác bởi R(và cổng trong gói gửi đi đã thay đổi) trước khi gửi đến S. Đó là, cũng sẽ có cổng dịch thay vì chỉ IP.

Hai điều cần lưu ý ở đây:

  1. Do dịch địa chỉ này, thường không thể bắt đầu kết nối với các thiết bị trong mạng riêng mà không sử dụng một số kỹ thuật đặc biệt.
  2. Hạn chế về tổng số kết nối TCP từ cùng một thiết bị đến máy chủ (65536 = 2 ^ 16) hiện áp dụng chung cho tất cả các thiết bị phía sau NAT, ở dạng NAT được sử dụng ở trên.
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.