Tại sao một địa chỉ mạng không thể là một địa chỉ máy chủ hợp lệ?


18

Vì vậy, ... tôi đã nghiên cứu về CCNA và như vậy và đã làm việc với mạng IP ít nhất 8 năm qua hoặc lâu hơn. Tôi đã luôn thấy và được thông báo rằng địa chỉ mạng cho mạng con không phải là địa chỉ máy chủ hợp lệ. Bây giờ đầu tiên tôi sẽ bắt đầu bằng cách nói tôi biết điều này là đúng. Câu hỏi của tôi là nhiều hơn ... có một lý do kỹ thuật nào đó không thể được sử dụng hoặc nó chỉ được thỏa thuận một cách tùy tiện khi đặc tả được thiết kế? Tôi hiểu lý do tại sao không thể sử dụng địa chỉ quảng bá (vì nó được sử dụng THỰC SỰ). Vấn đề là khi tôi thấy một địa chỉ mạng được sử dụng, thông thường chỉ có trong định tuyến mà cụ thể là sử dụng địa chỉ NETWORK. Đây là trường hợp, (địa chỉ mạng chỉ được sử dụng khi bạn đang mong đợi một địa chỉ mạng) có lý do kỹ thuật nào đó mà họ không thể có địa chỉ mạng là địa chỉ máy chủ hợp lệ thực tế không?

Câu trả lời:


16

Theo như tôi hiểu, "địa chỉ mạng" là một địa chỉ đặc biệt là một vật phẩm từ các mạng IP đẳng cấp từ xưa. Ngày nay, chúng tôi sử dụng Định tuyến liên miền không phân loại ( CIDR ) trên Internet, không có khái niệm về địa chỉ mạng (nếu bạn nhìn vào RFC 4632 được liên kết ở trên, bạn sẽ thấy rằng nó liệt kê 256 địa chỉ IP có thể có trên mỗi di sản Khối "C", ví dụ: không có địa chỉ dành riêng cho cả địa chỉ mạng hoặc địa chỉ quảng bá (mặc dù các chương trình phát sóng được xác định là thiết yếu trong các RFC khác).

Điều này đang được nói, bạn vẫn không nên chỉ định một địa chỉ mạng cho bất kỳ máy chủ cụ thể nào trong mạng: Địa chỉ mạng là điều cần thiết để định tuyến. Khái niệm này được sử dụng rộng rãi trong RFC ( RFC 1812 ). Chỉ cần nhìn vào các bảng định tuyến ( routelệnh), bạn sẽ thấy địa chỉ mạng cục bộ của bạn được sử dụng để tách lưu lượng mạng cục bộ của bạn khỏi những gì phải đi qua bộ định tuyến. Nếu địa chỉ mạng cục bộ đó được gán cho một số máy chủ thì sao?

Thậm chí tệ hơn: tốt hơn là không gán địa chỉ IP kết thúc bằng 0 ngay cả khi địa chỉ này không phải là địa chỉ mạng. Ví dụ: nếu mạng của bạn là 10.10.0.0/255.255.0.0, địa chỉ IP 10.10.5.0 không phải là địa chỉ mạng của bạn, nhưng tốt hơn hết bạn không nên gán IP đó mặc dù nó hoàn toàn hợp lệ ngay cả trên các mạng IP đẳng cấp. Một số ngăn xếp phần mềm / IP kế thừa có thể có vấn đề với nó.

CẬP NHẬT: bởi goblinlord

Theo RFC 1812 (Mục 5.3.5.2), cái mà chúng ta gọi là địa chỉ mạng ban đầu được sử dụng cho "phát sóng có hướng" sẽ gửi một gói phát đến mạng mong muốn. Chức năng này đã bị lỗi thời vì các cuộc tấn công SMURF. Chức năng đã được thay đổi chính thức trong RFC 2644 . Sau đó, việc triển khai tiếp theo sẽ âm thầm thả các gói có địa chỉ nguồn như được mô tả (địa chỉ mạng). Trong khi đây là những gì sẽ xảy ra, tôi tò mò về việc có bao nhiêu triển khai thực sự làm như vậy.

Điều này được thêm vào trong RFC 3021 khi / 31 mạng con được giải quyết.


5
@grawity: Không phải lúc nào. Chỉ trong một mạng lớn hơn / 31. Ví dụ P2P có thể có hai địa chỉ và không có địa chỉ quảng bá.
haimg

3
Hmmm ... tôi thích phần đầu tiên của câu trả lời ... rằng đó là một tạo tác từ các mạng IP đẳng cấp. Vấn đề của tôi một lần nữa với phần thứ hai là các bảng định tuyến được sử dụng cụ thể để định tuyến đến mạng. Theo tôi hiểu, bảng định tuyến chỉ được xem xét để định tuyến đến một mạng mà máy thu không được bật (định mệnh IP không phải là một phần của mạng con / mạng của bạn). Đây là trường hợp ... khi nhìn vào bảng định tuyến, rõ ràng các địa chỉ trong đó là địa chỉ mạng và không phải là địa chỉ máy chủ do đó tách biệt điều này từ một gói máy chủ IP. Trong lưu lượng truy cập thực tế, IP định mệnh của một địa chỉ mạng không bao giờ được sử dụng.
Yêu tinh

1
Vì vậy, ... có bất kỳ lý do nào để bảo lưu cụ thể nếu 2 trường hợp này đã tách biệt (địa chỉ mạng trong bảng định tuyến và định IP khi xác định xem bạn có cần xem bảng định tuyến không).
Yêu tinh

1
@Goblinlord: Không có lý do chính thức nào mà tôi có thể tìm thấy (RFC gần đây, v.v.). Tuy nhiên, rất nhiều phần mềm được xây dựng với giả định rằng địa chỉ mạng là "đặc biệt", trong thực tế, tốt hơn hết bạn không nên sử dụng nó làm địa chỉ IP máy chủ.
haimg

1
Có một mục cấu hình cisco cho phép địa chỉ mạng cũng là máy chủ lưu trữ, đã tồn tại ít nhất 10 năm ... Tôi chưa bao giờ sử dụng nó, hoặc thậm chí đã kiểm tra nó, và do các vấn đề ngăn xếp có thể xảy ra như đã đề cập, cụ thể là sẽ không cho phép các máy chủ kết thúc bằng 0 hoặc 0,52 trên các mạng mà tôi chịu trách nhiệm, mặc dù tôi đã không bắt gặp các địa chỉ mạng hoặc quảng bá khác được sử dụng cho nhỏ hơn / 24, tại @Home và trong khi CoreOS muốn phát hành giữa .0 và .255 với tư cách là máy chủ lưu trữ trong sanbrunocable's / 23 và / 21s, tôi đã bảo lưu chúng theo cách thủ công.
Nevin Williams

5

Vì vậy, câu trả lời thực tế là: Nó thực sự phụ thuộc. Nó phụ thuộc vào:

  • Địa chỉ chính xác và ý nghĩa của nó trong nhiều RFC
  • Phiên bản và sửa đổi hệ điều hành của bạn
  • ... Và bộ định tuyến của bạn và mọi bộ định tuyến ngược dòng khác
  • ... Và sự thông minh và tinh tế của tất cả các quản trị viên mạng của các bộ định tuyến đó ...

Tôi không gặp phải bất kỳ vấn đề nào khi truy cập bất kỳ trang web nào trong việc kiểm tra điều này; có vẻ như cuối cùng tất cả đều phụ thuộc vào ý thích của quản trị viên mạng. Thông thường không có cách nào để một thiết bị ngược dòng cho biết địa chỉ là một phần của mạng hoặc địa chỉ quảng bá hay không, vì nó chỉ là một địa chỉ trong một khối lớn hơn đối với họ ... Vì vậy, không ISP nào sẽ chặn bạn gán và sử dụng địa chỉ mạng của bạn, trừ khi họ gán nó cho bạn và quản trị viên mạng của họ đã chặn nó một cách rõ ràng.

Tôi chắc chắn có những nhà phân tích bảo mật và tin tặc có những số liệu thống kê cực kỳ chi tiết về chính xác có bao nhiêu biến thể của việc triển khai ngăn xếp TCP-IP ngoài kia và những gì làm và không phù hợp hoặc cho phép và chính xác cách thức và nơi chúng bỏ lỡ dấu hiệu của chúng .

Vấn đề thực tế, tôi đang duyệt và đăng bài này từ địa chỉ mạng của tôi.

Đừng gọi tôi là một cư dân mạng tồi trừ khi bạn có giải pháp tốt hơn để sửa chữa ngôi nhà thẻ này: thực tế là nếu có thể, nó sẽ xảy ra. Thực tế là không ai thực sự đủ thông minh ngồi xuống và nghĩ toàn bộ điều này trong tất cả các lần lặp có thể của nó để đưa ra một thiết kế hoàn toàn không bị lừa, trước khi mọi người bắt đầu sử dụng nó - như với hầu hết mọi thứ trong cuộc sống. Kết quả? Các tiêu chuẩn trong đó rất nhiều thứ không được thêm vào và / hoặc bị lạc trong bản dịch.

Chào mừng đến với thế giới thực. Đừng để điều đó ngăn cản bạn theo đuổi những lý tưởng tối ưu khó nắm bắt ... Chỉ cần đừng mong đợi sự hỗ trợ từ các kênh hoặc diễn đàn "chính thức" trừ khi bạn sẵn sàng để bẩn tay và dành thời gian và cuộc sống của mình cho nó, xây dựng sự đồng thuận cần thiết, và điều hướng chính trị xung quanh đó.

Vì vậy, tôi nghĩ những gì các áp phích khác đang cố gắng nói: Nếu bạn muốn đưa ra chính sách chính thức này và sử dụng nó trong sản xuất, bạn phải tự mình làm. (Nhưng dù sao bạn cũng không?) Có lẽ chúng ta sẽ gặp may mắn và có một trí thông minh máy tính thiết kế cho chúng tôi một IPv8 tương thích ngược với IPv4 và IPv6 và tất cả các triển khai bị hỏng của chúng.


Tất nhiên - khi bạn đang sử dụng địa chỉ mạng của mình, thiết bị được chỉ định có thể nhận tất cả các loại lưu lượng phát sóng vì một số ngăn xếp mạng coi nó như một chương trình phát sóng. Tuy nhiên, những thứ này thường không can thiệp nhiều vì chúng chỉ âm thầm rơi. Tôi tò mò có bao nhiêu khai thác mạng dựa vào những đặc thù xung quanh việc này tuy nhiên ...
Dagelf

2

Tôi mới tham gia mạng nhưng tôi cũng sẽ cho tôi 2 xu.

Nếu tôi có một mạng con / 28 từ xxx0 - xxx15 Theo các quy tắc được xác định trước, chúng tôi sẽ có 14 máy chủ có thể sử dụng và 2 máy chủ còn lại. phần còn lại dành cho mạng và phát sóng.

Cho phép, thay vì tuân theo quy tắc trên, thực sự sử dụng tất cả 16 máy chủ. Sau đó, trong trường hợp đó tất cả sẽ ổn, không có vấn đề. Nhưng nếu việc truyền thông là cần thiết bên ngoài mạng thì điều đó là không thể vì thiếu tài nguyên để gửi hoặc nhận thông tin.

Tôi không giỏi giải thích nhưng nói cách khác.

Nếu tôi sống trong một ngôi nhà trên một con phố và đường phố có 14 ngôi nhà. Một làn đường vào và ra để truy cập vào đường chính.

Địa chỉ gửi thư của tôi sẽ nằm trong khoảng từ 1-14 Đường cá nhân, Đường ngoài mạng.

Điều đó sẽ không có vấn đề gì với người đàn ông thư. Bây giờ, giả sử các nhà phát triển đã tham lam và thêm 2 nhà nữa và thoát khỏi các làn đường.

Sau đó, địa chỉ gửi thư mới của tôi sẽ nằm trong khoảng từ 1-16 Đường cá nhân

Trong trường hợp này, người đàn ông thư sẽ gặp rắc rối.

Đây là một phỏng đoán, cho tôi biết nếu tôi đang nói chuyện.


0

Địa chỉ mạng cho phép bạn xây dựng các bảng định tuyến với cột đích có kích thước cố định (4 byte IPv4) và các hoạt động nhị phân có kích thước cố định để định tuyến máy chủ và định tuyến mạng thực sự giống nhau.

Hãy tưởng tượng một bảng định tuyến như thế này: (PC này có kết nối song song với PC khác và card mạng)

Dest           Mask    Dev
192.168.0.123  /32     plip0   # This is a single host
192.168.0.0    /24     eth0    # This is a network

AND giữa địa chỉ IP và netmask cung cấp cho bạn chính xác những gì bạn cần, một số 4 byte có thể được so sánh với từng dòng mà không cần tính toán thêm.

Vì vậy, số máy chủ không đặc biệt theo nghĩa là sau khi hoạt động AND, địa chỉ của nó tự nhiên đại diện cho toàn bộ mạng.

Nếu bạn quyết định sử dụng số mạng làm số máy chủ thì sẽ dẫn đến một bảng như thế này:

Dest           Mask    Dev
192.168.0.0    /32     eth0    # This is the host (it's a redundant line)
192.168.0.0    /24     eth0    # This is the network

Điều này có vẻ hợp pháp, vì vậy tôi cho rằng khái niệm địa chỉ mạng được sử dụng cho các lý do định tuyến và do đó nó được quyết định tùy ý đánh dấu nó là một địa chỉ đặc biệt và cấm sử dụng làm địa chỉ máy chủ.

Chà ... thực ra nó không đơn giản. Tôi đã quyết định là sẽ cố gắng với nó (!!!):

# route add -net 192.168.0.0/32 eth0
# ping 192.168.0.0
Do you want to ping broadcast? Then -b
# telnet 192.168.0.0
Trying 192.168.0.0...
telnet: connect to address 192.168.0.0: Network is unreachable

Hiện tại các chương trình mạng không cho phép tôi sử dụng số mạng làm địa chỉ bình thường.


Xem xét ví dụ về bảng định tuyến đầu tiên của bạn Tôi nghĩ rằng đó là một cách thực sự tồi tệ ... nếu bạn có các máy chủ khác trên mạng con .0.0, làm thế nào để chúng giao tiếp đúng với nhau cũng như máy chủ .0.123 mà không cài đặt tuyến đường tĩnh mỗi máy chủ duy nhất? Đó thực sự không giống như cách thích hợp để làm việc.
Yêu tinh

Đó chỉ là một ví dụ hư cấu, tôi sẽ không bao giờ thiết lập một bảng như thế :-) Máy chủ .123 được kết nối với kết nối điểm tới điểm trong khi phần còn lại là mạng ethernet thông thường. Nếu bạn muốn các máy khác truy cập vào máy chủ .123, bạn cần thực hiện thêm công việc, nhưng không phải là không thể.
David Costa

0

Trong khi tìm kiếm câu trả lời cho câu hỏi này, tôi đã xem bài viết này của Cisco. Các trích dẫn sau đây từ bài viết đó tổng hợp độc đáo tôi nghĩ.

[...] Xem xét địa chỉ IP 172.16.1.10. Nếu bạn tính toán địa chỉ mạng con tương ứng với địa chỉ IP này, câu trả lời bạn đến là mạng con 172.16.0.0 (mạng con số 0). Lưu ý rằng địa chỉ mạng con này giống hệt với địa chỉ mạng 172.16.0.0, được đặt ở vị trí đầu tiên, do đó, bất cứ khi nào bạn thực hiện mạng con, bạn sẽ nhận được một mạng và một mạng con (mạng con số 0) với các địa chỉ không thể phân biệt được. Đây trước đây là một nguồn gây nhầm lẫn lớn .

Tránh nhầm lẫn là một lý do đủ tốt cho tôi.


Tôi biết câu hỏi này đã được đặt ra từ lâu nhưng tôi chỉ đang xem lại những thứ này. Bài báo bạn trích dẫn đang nói về "mạng con số 0" hoặc mạng con đầu tiên trong địa chỉ mạng. Đây là một cái gì đó hoàn toàn khác biệt và trong bất kỳ mạng hiện đại nào tôi đã làm việc trên mọi thiết bị chuyển mạch đều có tính năng "ip subnet-zero" được bật. Nó cũng đề cập rằng những ngày này, nó được bật theo mặc định trên tất cả các công tắc của họ (kể từ phiên bản 12 được phát hành vào khoảng năm 2003).
Yêu tinh

0

RFC 1122 ("Yêu cầu đối với máy chủ Internet - Lớp giao tiếp") nghiêm cấm:

Địa chỉ IP không được phép có giá trị 0 hoặc -1 cho bất kỳ trường nào <Số máy chủ>, <Số mạng> hoặc <Số mạng con>


0

Địa chỉ mạng không được coi là địa chỉ máy chủ nhưng nó chỉ là một số. Trong các khu vực giới hạn địa chỉ như mạng điểm-điểm, mặt nạ / 30 được sử dụng thường xuyên, nhưng vẫn sử dụng các địa chỉ máy chủ. Một thực tế ít hơn, nhưng đạt được cùng một nguyên tắc là sử dụng mặt nạ / 31 và sử dụng một đầu làm địa chỉ mạng và đầu kia là phát sóng.

Ví dụ.

Router(config)#int gi0/0
Router(config-if)#ip add 10.0.0.0 255.255.255.254
Router(config-if)#no shut


Router2(config)#int gi0/0
Router2(config-if)#ip add 10.0.0.1 255.255.255.254
Router2(config-if)#no shut


        .0        .1
[Router]-----------[Router2]
   network      broadcast
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.