Tại sao chúng ta cần cung cấp địa chỉ IP cho mỗi giao diện? Sẽ không cung cấp một cho mỗi thiết bị là đủ?
Tại sao chúng ta cần cung cấp địa chỉ IP cho mỗi giao diện? Sẽ không cung cấp một cho mỗi thiết bị là đủ?
Câu trả lời:
Kết nối một giao diện với một mạng làm cho nó trở thành một phần của mạng đó. Do đó, địa chỉ IP là một thuộc tính của kết nối, không phải máy chủ lưu trữ.
Tương tự, một máy chủ có thể có nhiều kết nối mạng và theo đó là địa chỉ IP. Các giao diện khác nhau thường có các chức năng khác nhau, do đó, điều quan trọng là phải phân biệt giữa chúng (ví dụ: bảng điều khiển nội bộ, dịch vụ công cộng, iSCSI).
Bộ định tuyến yêu cầu nhiều địa chỉ IP cho giao diện của họ.
Không.
Điều đó nói rằng, hãy xem một ví dụ đơn giản:
Tôi có một máy tính với ba giao diện: eth0
(Ethernet có dây), wlan0
(wifi) và vboxnet0
(hộp ảo). Một trong các giao diện được kết nối với mạng nội bộ, một giao diện được kết nối với internet và giao diện cuối cùng được kết nối với mạng máy tính ảo. Giả sử tôi chỉ có một địa chỉ, 10.1.2.3 và muốn gửi toàn bộ gói đến 192.168.1.2, có thể truy cập được trên một trong những mạng đó - tôi gửi chúng đến đâu? Không thể gửi chúng ở mọi nơi, hành vi như vậy sẽ tràn ngập tất cả các mạng theo thứ tự ngắn.
Nhưng nếu giao diện eth0 có 192.168.1.3, wlan0 có 10.1.2.3 và vboxnet0 có 172.0.0.1, thì bảng định tuyến mặc định có thể sẽ nói "gửi nó ra eth0". (Điều này rõ ràng có thể trở nên phức tạp hơn nhiều với các quy tắc định tuyến phức tạp hơn).
Và ngược lại, tôi có thể chỉ muốn chạy một dịch vụ trên giao diện mở cho mạng riêng - vì vậy khi một yêu cầu xuất hiện trên một giao diện khác, nó hoàn toàn không được xử lý.
Trường hợp 1: Bộ định tuyến
Về mặt lý thuyết điều này sẽ có thể.
Tuy nhiên, thông thường một gói IP được gửi "trực tiếp" đến đích khi địa chỉ IP "khớp" với mặt nạ mạng nhất định (ví dụ: 10.0.0.0/28); nếu không thì gói được gửi qua bộ định tuyến.
Điều này có nghĩa là:
Các gói được gửi từ máy tính này sang máy tính khác trong một trong hai mạng không vượt qua bộ định tuyến.
Điều này có nghĩa là địa chỉ IP của mỗi máy tính khớp với mặt nạ mạng của mạng mà chúng được kết nối.
Các gói được gửi đến bộ định tuyến (bao gồm các gói được định tuyến bởi bộ định tuyến!) Không được gửi từ máy tính đến bộ định tuyến qua bộ định tuyến thứ hai.
Điều này có nghĩa là địa chỉ IP của bộ định tuyến phải khớp với mặt nạ mạng của cả hai mạng.
Tuy nhiên, các gói IP được gửi từ một máy tính trong một mạng tới một máy tính trong mạng khác được gửi qua bộ định tuyến.
Điều này có nghĩa là địa chỉ IP của các máy tính trong một mạng không được khớp với mặt nạ mạng của mạng khác.
Gần như không thể chọn một địa chỉ IP và hai mặt nạ mạng theo cách một địa chỉ IP khớp với cả hai mặt nạ mạng nhưng rất nhiều địa chỉ IP chỉ khớp với một mặt nạ mạng.
Trường hợp 2: Mạng riêng khác nhau
Chúng ta có thể có trường hợp một máy tính được kết nối với hai mạng riêng không thể trao đổi dữ liệu giữa nhau.
Trong trường hợp này, một máy tính có thể có cùng một địa chỉ IP trong cả hai mạng.
Trong trường hợp của IPv4, hầu hết các HĐH sẽ không hỗ trợ điều này vì các HĐH sử dụng mặt nạ mạng của hai mạng để phân biệt giữa chúng. Các mạng cần phải có mặt nạ mạng khác nhau ...
Trong trường hợp IPv6 (sử dụng địa chỉ "liên kết cục bộ"), một máy tính có thể có cùng một địa chỉ IP (liên kết cục bộ) trong hai mạng khác nhau - và do đó hai thẻ mạng có thể có cùng một địa chỉ IP!
Tôi đã tự hỏi, tại sao chúng ta cần cung cấp địa chỉ IP cho mỗi giao diện? Sẽ không cung cấp cho mỗi thiết bị đủ?
Hãy để tôi bắt đầu bằng cách thách thức giả định của bạn. Tại sao bạn nói đây không phải là cách máy móc hoạt động? Nói rằng tôi gán 192.168.1.1/24 cho eth1 và 192.168.2.1/24 cho eth2. Khác với việc cài đặt tuyến đường cho 192.168.1.0/24 ra eth1 và 192.168.2.0/24 ra eth2 và xác định địa chỉ IP nguồn ưa thích cho các gói được gửi dọc theo tuyến đường đó, tôi thực sự giao diện địa chỉ IP nào cho giao diện? Điều gì thực sự thay đổi? Theo nghĩa nào thì máy không hoạt động như thể tất cả các địa chỉ IP được gán cho giao diện trên máy thuộc về máy?
Cả hai phương pháp đều được sử dụng. Cách tiếp cận phổ biến nhất thực sự là sự kết hợp của hai cách tiếp cận này.
Trên thái cực "cung cấp cho thiết bị một địa chỉ IP", bạn có thể tưởng tượng một thiết bị hoạt động như thể tất cả các giao diện của thiết bị được kết nối với một cầu lọc có một địa chỉ IP được gán cho cầu.
Trên thái cực "cung cấp cho mỗi giao diện một địa chỉ IP", bạn có thể tưởng tượng một thiết bị hoạt động như thể mỗi giao diện mà nó có giống như một máy riêng biệt. (Xem tại đây nếu bạn nghĩ đó là cách các thiết bị hiện đang hoạt động hoặc nghĩ về ai đó kết nối với địa chỉ IP được gán cho một giao diện nhưng các gói đến và được gửi đi một giao diện khác.)
Trong thực tế, hầu hết các máy hoạt động ở một nơi nào đó ở giữa. Chúng hoạt động như thể tất cả các địa chỉ IP được sở hữu bởi máy. Việc gán IP cho một thiết bị cụ thể thực sự không làm được gì nhiều ngoài việc yêu cầu HĐH cài đặt tuyến mặc định ra giao diện đó và đặt địa chỉ IP nguồn mặc định cho các gói được gửi ra giao diện nơi địa chỉ IP nguồn không ' t buộc.
Mặt khác, chúng hoạt động như thể tất cả các địa chỉ IP thuộc về máy. Cách một gói được xử lý không phụ thuộc nhiều vào giao diện được nhận trên đó - các gói có địa chỉ IP nguồn được gán cho một giao diện nhận trên giao diện khác là thông lệ. Giao diện nào được gán cho địa chỉ không có ảnh hưởng trực tiếp đến giao diện mà gói tin được gửi đi, bảng định tuyến xác định điều đó.
Một thiết bị có địa chỉ IP tồn tại trong một mạng.
Bộ định tuyến là thiết bị có mục đích chính là truyền lưu lượng giữa các mạng .
Để Bộ định tuyến truyền các gói giữa hai mạng, nó phải tồn tại trong cả hai mạng.
Bộ định tuyến sẽ có một "cánh tay" bên trong mỗi mạng - hoặc như chúng ta gọi, một giao diện . Và cách một giao diện tồn tại trong một mạng là bằng cách gán cho nó một địa chỉ IP trong mạng.
Do đó, khi cấu hình một router, mỗi giao diện nhận được một địa chỉ IP để xác định mạng mà rằng Router thuộc trong .
Tuyên bố từ chối trách nhiệm: Liên kết ở trên là vào blog của tôi. Blog của tôi không được kiếm tiền. Tôi không kiếm được lợi nhuận từ việc bạn đọc nó. Tôi đang cung cấp một liên kết đơn giản vì lợi ích của bạn (và bất kỳ độc giả nào khác).
Trong trường hợp chung, bạn cần một IP cho mỗi mạng cục bộ mà bạn kết nối và đây chỉ là cách TCP / IP được xác định: mỗi máy chủ trên một mạng cục bộ nhất định có một địa chỉ IP, cho phép:
Miễn là bạn có các mạng cục bộ có nhiều thiết bị được kết nối với nó (hầu hết các mạng cục bộ 802.x, bao gồm Ethernet, Wi-Fi), sẽ rất khó để giải quyết vấn đề đó trừ khi bạn thay đổi cơ bản cách thức hoạt động của TCP / IP.
Tuy nhiên, thực sự có thể tránh điều đó, mặc dù nó khá cụ thể.
Hãy xem xét một mạng chỉ có các liên kết điểm-điểm (Ethernet điểm-điểm giữa hai thiết bị không có bộ chuyển mạch hoặc trung tâm, liên kết DSL, liên kết SONET / SDH, Frame Relay hoặc ATM ATM ...).
Quy ước thông thường là sử dụng a / 30 cho mỗi liên kết, vì vậy thiết bị ở mỗi đầu có địa chỉ IP trên liên kết đó.
Nhưng bạn có thể sử dụng "IP không bị đánh số" và không liên kết bất kỳ địa chỉ IP nào với các liên kết đó. Bây giờ, bạn gán IP cho giao diện loopback của thiết bị (thực sự là bất kỳ giao diện nào, nhưng loopback là giao diện dễ nhất cho mục đích này) và bạn sử dụng giao thức định tuyến động (IS-IS, OSPF, EIGRP ...). Giao thức định tuyến này sẽ quảng cáo cách định tuyến lưu lượng truy cập đến địa chỉ IP đó thông qua các liên kết không được đánh số khác nhau.
Địa chỉ IP bao gồm thông tin định tuyến. Một địa chỉ IP được chia thành hai thành phần, số mạng và số máy chủ , dựa trên độ dài tiền tố được chỉ định (ban đầu được biểu thị dưới dạng mặt nạ mạng và đây vẫn thường là cách nó được triển khai trong các ngăn xếp mạng).
Để định tuyến hoạt động chính xác, tất cả các thiết bị được kết nối với một mạng cụ thể phải có địa chỉ có cùng số mạng. Người gửi xác định xem người nhận ở trên cùng một mạng hay khác bằng cách so sánh số mạng của họ với địa chỉ của người nhận. Nếu họ ở trong cùng một mạng, họ sẽ gửi trực tiếp; mặt khác, họ gửi đến một bộ định tuyến có nhiệm vụ là đưa thông điệp đến gần đích hơn.
Vì vậy, nếu một thiết bị được kết nối với nhiều mạng, nó cần một địa chỉ trên mỗi mạng đó để các thiết bị trên mạng đó có thể truy cập được.
Điều đó nói rằng, không thực sự cần thiết cho các địa chỉ được chỉ định cụ thể cho các giao diện mạng cụ thể. Thiết bị chỉ có thể có một danh sách tất cả các IP mà nó sở hữu trong một bảng duy nhất. Nhưng các giao diện vẫn cần thông tin về mạng mà chúng được kết nối. Bằng cách chỉ định một IP và mặt nạ mạng cho mỗi giao diện, chúng tôi đặt thông tin này ở một nơi, đơn giản hóa thiết kế. Không cần thêm mã để giữ danh sách IP phù hợp với danh sách các mạng mà giao diện được kết nối.
Nó có thể là đủ để có một IP trong trường hợp tiêu chuẩn, nhưng như được nhấn mạnh bởi các câu trả lời khác, có nhiều trường hợp không.
Các câu trả lời khác đã đề cập đến trường hợp của một bộ định tuyến. Một đề cập đến hộp ảo, đó là trường hợp của các máy ảo: bạn có thể đang chạy trên một thiết bị vật lý duy nhất một số thiết bị ảo. Một trường hợp khác là Vlan, bạn thực sự có thể đã kết nối với một card mạng duy nhất, một số mạng LAN ảo khác nhau, với các địa chỉ IP khác nhau. Và thậm chí vì một số lý do, bạn có thể có giao diện với nhiều IP, vì bạn muốn chạy một số máy chủ web trên cổng TCP 80. Cấu hình như vậy không phổ biến đối với máy chủ, phần cứng bạn thuê có thể có một thẻ giao diện mạng duy nhất , nhưng bạn sẽ có một số địa chỉ IP được cấu hình.