IPV6 cho localhost và 0.0.0.0 là gì?


100

Như chúng ta đều biết địa chỉ IPv4 cho localhost127.0.0.1(địa chỉ lặp lại). Địa chỉ IPv6 là gì localhost0.0.0.0vì tôi cần chặn một số máy chủ quảng cáo.

Câu trả lời:


120

Như chúng ta đều biết rằng địa chỉ IPv4 cho localhost127.0.0.1(địa chỉ lặp lại).

Trên thực tế, bất kỳ địa chỉ IPv4 nào trong 127.0.0.0/8đều là địa chỉ lặp lại.

Trong IPv6, tương tự trực tiếp của dải lặp lại là ::1/128. Vì vậy ::1(dạng dài 0:0:0:0:0:0:0:1) là địa chỉ lặp lại IPv6 duy nhất.


Trong khi tên máy chủ localhostthông thường sẽ giải quyết thành 127.0.0.1hoặc ::1, tôi đã gặp trường hợp ai đó đã liên kết nó với một địa chỉ IP không phải là địa chỉ lặp lại. Điều này hơi điên rồ ... nhưng đôi khi mọi người vẫn làm.

Tôi nói "điều này thật điên rồ" vì bạn có trách nhiệm phá vỡ các giả định của ứng dụng bằng cách làm điều này; ví dụ: một ứng dụng có thể cố gắng thực hiện tra cứu ngược lại IP loopback và không nhận được kết quả như mong đợi. Trong trường hợp xấu nhất, một ứng dụng có thể vô tình gửi lưu lượng truy cập nhạy cảm qua một mạng không an toàn ... mặc dù bạn có thể cần phải mắc những sai lầm khác để "đạt được" điều đó.


Chặn 0.0.0.0không có ý nghĩa. Trong IPv4, nó không bao giờ được định tuyến. Tương đương trong IPv6 là ::địa chỉ (dạng dài 0:0:0:0:0:0:0:0) ... cũng không bao giờ được định tuyến.

Các 0.0.0.0::địa chỉ được dành riêng để có nghĩa là "bất kỳ địa chỉ nào". Vì vậy, ví dụ, một chương trình đang cung cấp dịch vụ web có thể liên kết với 0.0.0.0cổng 80 để chấp nhận các kết nối HTTP qua bất kỳ địa chỉ IPv4 nào của máy chủ. Các địa chỉ này không hợp lệ làm địa chỉ nguồn hoặc địa chỉ đích cho một gói IP.


Cuối cùng, một số ý kiến ​​đã hỏi về ::/128so ::/0với so với ::.

Sự khác biệt này là gì?

Nói chính xác, hai ký hiệu đầu tiên là ký hiệu CIDR không phải địa chỉ IPv6. Họ thực sự chỉ định một loạt các địa chỉ IP. CIDR bao gồm địa chỉ IP và một số bổ sung chỉ định số bit trong mặt nạ mạng. Cả hai cùng xác định một loạt địa chỉ; tức là tập hợp các địa chỉ được hình thành bằng cách bỏ qua các bit bị che khỏi địa chỉ đã cho.

Vì thế:

  • :: chỉ có nghĩa là địa chỉ IPv6 0:0:0:0:0:0:0:0
  • ::/128nghĩa là 0:0:0:0:0:0:0:0với một mặt nạ mạng bao gồm 128 bit. Điều này cung cấp một phạm vi mạng với chính xác một địa chỉ trong đó.
  • ::/0nghĩa là 0:0:0:0:0:0:0:0với một mặt nạ mạng bao gồm 0 bit. Điều này cung cấp một phạm vi mạng với 2 128 địa chỉ trong đó; tức là nó là toàn bộ không gian địa chỉ IPv6!

Để biết thêm thông tin, hãy đọc các trang Wikipedia về địa chỉ IPv4 & IPv6 và ký hiệu CIDR:




4

Chỉ vì mục đích đầy đủ: có các địa chỉ IPv6 được ánh xạ IPv4 , nơi bạn có thể nhúng địa chỉ IPv4 vào địa chỉ IPv6 (có thể không được hỗ trợ bởi mọi thiết bị IPv6).

Ví dụ: Tôi chạy một máy chủ trên máy của mình, máy chủ này có thể được truy cập qua http://127.0.0.1:19983/solr. Nếu tôi truy cập nó thông qua địa chỉ IPv6 được ánh xạ IPv4 thì tôi truy cập nó qua http://[::ffff:127.0.0.1]:19983/solr(sẽ được chuyển đổi thành http://[::ffff:7f00:1]:19983/solr)


2

Để sử dụng trong một /etc/hoststệp như một kỹ thuật chặn quảng cáo đơn giản để khiến miền không thể phân giải, địa chỉ 0.0.0.0 đã được sử dụng rộng rãi vì nó khiến yêu cầu bị lỗi ngay lập tức mà không cần thử, vì đó không phải là địa chỉ hợp lệ hoặc có thể định tuyến. Điều này so với việc sử dụng 127.0.0.1 ở nơi đó, nơi ít nhất nó sẽ kiểm tra xem máy tính của bạn có đang nghe trên cổng yêu cầu 80 hay không trước khi bị lỗi với 'kết nối bị từ chối'. Một trong hai địa chỉ đó đang được sử dụng trong tệp máy chủ cho miền sẽ ngăn mọi yêu cầu được thực hiện qua mạng thực, nhưng 0.0.0.0 đã được ưu ái vì nó 'tối ưu' hơn vì lý do trên. IP "127" sẽ cố gắng tấn công máy tính của bạn và bất kỳ IP nào khác sẽ tạo ra một yêu cầu được gửi đến bộ định tuyến để tìm cách định tuyến nó, nhưng với 0.0.0.0 ở đó '

Tất cả những gì đang nói, có bất kỳ IP nào được liệt kê trong tệp máy chủ của bạn để miền bị chặn là đủ và bạn sẽ không cần hoặc muốn đặt địa chỉ ipv6 trong tệp máy chủ của mình trừ khi - có thể - bạn không có bật ipv4 không. Tuy nhiên, tôi sẽ thực sự ngạc nhiên nếu đó là trường hợp. Và mặc dù vậy, tôi nghĩ rằng việc máy chủ xuất hiện trong / etc / hosts với địa chỉ ipv4 không hợp lệ khi bạn không bật ipv4 sẽ vẫn cho bạn kết quả mà bạn đang tìm kiếm là nó không thành công, thay vì tìm kiếm giả sử là DNS thực, adserver-example.com và lấy lại IP v4 hoặc v6.

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.