Tình trạng thiếu địa chỉ IPv4
Theo Vint Cerf (cha đẻ của IP), kích thước địa chỉ 32 bit của IPv4 được chọn tùy ý. IP là một thử nghiệm hợp tác giữa chính phủ / học thuật và Internet công cộng hiện tại chưa bao giờ được hình dung. Mô hình IP là mỗi thiết bị được kết nối sẽ có một địa chỉ IP duy nhất (tất cả các gói được gửi giữa các thiết bị IP sẽ được kết nối đầu cuối từ địa chỉ IP nguồn đến địa chỉ IP đích) và nhiều giao thức sử dụng IP phụ thuộc vào từng thiết bị có một địa chỉ IP duy nhất.
Giả sử chúng ta có thể sử dụng mọi địa chỉ IPv4 có thể *, chỉ có 4.294.967.296 địa chỉ IPv4 có thể, nhưng (tính đến tháng 9 năm 2018), dân số thế giới hiện tại là 7.648.290.361. Như bạn có thể thấy, không có đủ địa chỉ IPv4 cho mỗi người để có một, nhưng nhiều người có máy tính, máy in, điện thoại di động, máy tính bảng, máy chơi game, TV thông minh, v.v., mỗi người cần một địa chỉ IP và thậm chí không chạm đến nhu cầu kinh doanh đối với địa chỉ IP. Chúng tôi cũng đang ở trên đỉnh của IoT (Internet of Things), nơi mọi thiết bị đều cần địa chỉ IP: bóng đèn, bộ điều nhiệt, nhiệt kế, đồng hồ đo mưa và hệ thống phun nước, cảm biến báo động, thiết bị, phương tiện, máy mở cửa nhà để xe, hệ thống giải trí, cổ vật nuôi, và ai biết những gì khác.
* Có các khối địa chỉ IPv4 không thể được sử dụng để đánh địa chỉ máy chủ. Ví dụ: multicast có một khối gồm 268.435.456 địa chỉ không thể được sử dụng để đánh địa chỉ máy chủ. IANA duy trì Sổ đăng ký địa chỉ mục đích đặc biệt IANA IPv4 tại https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml để ghi lại tất cả các khối địa chỉ đặc biệt và mục đích của chúng .
IANA (Cơ quan cấp số được gán Internet) đã hết các khối địa chỉ IPv4 để gán cho RIR (Cơ quan đăng ký Internet khu vực) được chỉ định trong các khu vực tương ứng của họ và giờ đây các RIR cũng đã hết địa chỉ IPv4 để gán ở từng khu vực. Các ISP (Nhà cung cấp dịch vụ Internet) và các công ty muốn hoặc cần địa chỉ IPv4 không còn có thể nhận địa chỉ IPv4 từ RIR của họ và giờ phải cố gắng mua địa chỉ IPv4 từ các doanh nghiệp có thể có thêm (vì thiếu địa chỉ IPv4, giá của địa chỉ IPv4 giảm sâu đi lên).
Ngay cả khi tất cả các địa chỉ IPv4 được dành riêng cho các mục đích đặc biệt và không thể được sử dụng cho địa chỉ máy chủ đã được cung cấp để sử dụng, chúng tôi vẫn sẽ ở cùng một vị trí vì đơn giản là không có đủ địa chỉ IPv4 do kích thước hạn chế của địa chỉ IPv4.
Giảm thiểu tình trạng thiếu địa chỉ IPv4
IANA và RIR sẽ hết địa chỉ IPv4 trong nhiều năm trước khi họ làm nếu IANA và IETF (Lực lượng đặc nhiệm kỹ thuật Internet) không áp dụng giảm nhẹ cho tình trạng thiếu địa chỉ IPv4. Một giảm thiểu quan trọng là sự phản đối của các lớp mạng IPv4 có lợi cho CIDR (Định tuyến giữa các miền không phân loại). Địa chỉ lớp chỉ cho phép ba kích thước mạng được chỉ định (16.777.216, 65.536 hoặc 256 tổng địa chỉ máy chủ trên mỗi mạng), có nghĩa là nhiều địa chỉ bị lãng phí (một doanh nghiệp chỉ cần 300 địa chỉ máy chủ sẽ cần được cấp một mạng có thể có 65.536 máy chủ lưu trữ địa chỉ, lãng phí hơn 99% địa chỉ trong mạng đầy đủ),
Cho đến nay, sự giảm thiểu có tác động lớn nhất trong việc kéo dài tuổi thọ của IPv4 là việc sử dụng Địa chỉ riêng và một biến thể của NAT (Dịch địa chỉ mạng) được gọi là NAPT (Dịch thuật cổng địa chỉ mạng), đó là ý nghĩa của hầu hết mọi người khi họ tham khảo NAT hoặc PAT (PAT là một thuật ngữ dành riêng cho nhà cung cấp cho NAPT). Thật không may, NAPT là một cách giải quyết xấu xí phá vỡ mô hình đầu cuối IP và phá vỡ các giao thức phụ thuộc vào địa chỉ IP duy nhất, đòi hỏi các cách giải quyết thậm chí còn xấu hơn.
NAT / NAPT
Khái niệm về NAT khá đơn giản: nó thay thế một hoặc cả hai địa chỉ IPv4 nguồn và đích trong một tiêu đề gói khi gói đi qua thiết bị NAT. Trong thực tế, nó yêu cầu tính toán vì tiêu đề IPv4 có trường được tính toán để kiểm tra tính toàn vẹn của tiêu đề IPv4 và bất kỳ thay đổi nào được thực hiện đối với tiêu đề IPv4 đều yêu cầu tính toán lại trường và một số giao thức vận chuyển trong tải trọng gói cũng được tính toán riêng các trường phải được tính toán lại, sử dụng tài nguyên tính toán trong thiết bị NAT có thể được sử dụng để chuyển tiếp gói.
Trong NAT cơ bản, thiết bị NAT có một nhóm địa chỉ IPv4 mà nó sử dụng để thay thế địa chỉ IPv4 nguồn của các tiêu đề gói cho các gói IPv4 được gửi từ mạng bên trong sang mạng bên ngoài và nó duy trì bảng dịch để dịch địa chỉ IPv4 đích của lưu lượng truy cập trở về từ mạng bên ngoài để phân phối các gói trở lại đúng máy chủ lưu trữ trong mạng bên trong. Điều này cũng đòi hỏi tài nguyên trên thiết bị NAT để xây dựng và duy trì bảng dịch và để thực hiện tra cứu bảng. Việc sử dụng tài nguyên này có thể làm chậm việc chuyển tiếp các gói vì các tài nguyên được sử dụng bởi NAT được lấy từ các tài nguyên có thể được sử dụng để chuyển tiếp gói.
NAPT đưa NAT cơ bản đi xa hơn bằng cách dịch các địa chỉ giao thức vận chuyển (cổng) cho TCP và UDP và ID truy vấn cho ICMP. Bằng cách dịch các địa chỉ lớp vận chuyển, NAPT cho phép sử dụng một địa chỉ IPv4 bên ngoài cho nhiều địa chỉ bên trong máy chủ IPv4. NAPT thậm chí còn tốn nhiều tài nguyên hơn NAT cơ bản vì nó yêu cầu một bảng riêng cho mỗi giao thức tầng vận chuyển và nó cũng phải thực hiện các tính toán toàn vẹn cho các giao thức vận chuyển.
Việc sử dụng địa chỉ IPv4 riêng tư, có thể được sử dụng lại trên nhiều mạng (bạn có thể nhận thấy rằng hầu hết các mạng gia đình / dân cư mặc định sử dụng cùng một mạng 192.168.1.0/24, nằm trong một trong các dải địa chỉ IPv4 riêng được phân bổ của IANA) , cùng với NAPT, cho phép người dùng doanh nghiệp và gia đình mỗi người sử dụng một địa chỉ bên ngoài (công khai) cho một mạng lớn (địa chỉ riêng). Điều này giúp tiết kiệm rất nhiều, rất nhiều địa chỉ IPv4 (gấp nhiều lần tổng số địa chỉ IPv4 có thể) và đã kéo dài tuổi thọ của IPv4 vượt xa điểm mà nó sẽ bị sập nếu không có NAPT. NAPT có một số nhược điểm nghiêm trọng:
- NAPT phá vỡ mô hình đầu cuối IP và nó chỉ hoạt động với TCP, UDP và ICMP, phá vỡ các giao thức vận chuyển khác. Ngoài ra còn có các giao thức tầng ứng dụng sử dụng TCP hoặc UDP bị phá vỡ bởi NAPT, mặc dù TCP và UDP thường hoạt động với NAPT. Các giảm thiểu khác, ví dụ STUN / TURN, có thể có sẵn cho một số giao thức lớp ứng dụng, nhưng chúng có thể thêm chi phí và độ phức tạp.
- NAPT rất tốn tài nguyên, làm chậm chuyển tiếp gói so với những gì có thể mà không cần sử dụng bất kỳ hình thức NAT nào. Một số nhà cung cấp thêm phần cứng chuyên dụng để giảm thiểu nhu cầu đánh cắp tài nguyên từ chuyển tiếp gói, nhưng điều này đi kèm với chi phí, kích thước, độ phức tạp và việc sử dụng năng lượng.
- Khi sử dụng NAPT, lưu lượng được bắt đầu từ bên ngoài mạng NAPT không thể được gửi đến mạng bên trong do không có mục dịch trong bảng dịch, được thêm bởi lưu lượng được khởi tạo bên trong. Địa chỉ bên ngoài (công khai) được định cấu hình trên thiết bị NAT và bất kỳ gói nào có địa chỉ IPv4 đích đó và không có mục nhập cho địa chỉ IPv4 nguồn trong bảng dịch cho giao thức truyền tải, được cho là dành cho thiết bị NAPT, chứ không phải mạng bên trong. Có một giảm thiểu, được gọi là Chuyển tiếp cổng, cho vấn đề này.
- Chuyển tiếp cổng về cơ bản cấu hình, một cách thủ công, một mục nhập vĩnh viễn trong bảng dịch để cho phép lưu lượng truy cập bên ngoài được chuyển đến một giao thức vận chuyển cụ thể và địa chỉ cho giao thức được gửi đến một máy chủ cụ thể. Điều này có nhược điểm là chỉ cho phép một máy chủ bên trong trở thành mục tiêu cho một giao thức và địa chỉ vận chuyển cụ thể. Ví dụ: nếu có nhiều máy chủ web trên mạng bên trong, chỉ một trong số các máy chủ web có thể được hiển thị trên cổng TCP 80 (mặc định cho máy chủ web).
- Do tình trạng thiếu địa chỉ IPv4 rất nghiêm trọng, các ISP (Nhà cung cấp dịch vụ Internet) đang dùng hết địa chỉ công cộng để gán cho khách hàng của họ. Các ISP không còn có thể nhận được bất kỳ địa chỉ công cộng nào nữa, vì vậy họ đã áp dụng một số biện pháp giảm thiểu đặc biệt gây tổn thương cho người dùng gia đình / dân cư. Các ISP muốn dành kho địa chỉ công cộng quý giá của họ cho các khách hàng doanh nghiệp của họ sẵn sàng trả tiền cho đặc quyền nhận địa chỉ công cộng. Để làm điều đó, các ISP hiện đang bắt đầu gán địa chỉ Riêng tư hoặc Chia sẻ cho khách hàng gia đình / dân cư của họ và ISP sử dụng NAPT trên các bộ định tuyến của riêng họ để tạo điều kiện cho việc sử dụng nhiều địa chỉ Riêng tư hoặc Chia sẻ trên một địa chỉ công cộng. Điều đó tạo ra một tình huống trong đó một mạng gia đình / dân cư đứng sau hai bản dịch NAPT (ISP NAPT cho NAPT của khách hàng),
- Nhiều người mắc sai lầm khi đánh đồng NAPT và bảo mật vì các máy chủ bên trong không thể được giải quyết trực tiếp từ bên ngoài. Đây là một cảm giác an toàn sai lầm. Bởi vì tường lửa kết nối mạng với Internet công cộng là nơi thuận tiện để chạy NAPT, điều đó chỉ đơn giản là gây nhầm lẫn tình huống. Nó tạo ra một nhận thức nguy hiểm rằng chính NAPT là tường lửa và tường lửa thực sự là không cần thiết. Bảo mật mạng đến từ tường lửa, chặn tất cả lưu lượng truy cập bên ngoài theo mặc định, chỉ cho phép lưu lượng được cấu hình rõ ràng để cho phép, có thể kiểm tra sâu nội dung gói để giảm tải trọng gói nguy hiểm. Điều mà một số người không nhận ra là, nếu không có tường lửa, dù ở phần cứng hay phần mềm, bên ngoài hoặc được tích hợp vào thiết bị NAPT, để bảo vệ thiết bị NAPT, chính thiết bị NAPT dễ bị tấn công. Nếu thiết bị NAPT bị xâm phạm, thì nó và bằng cách mở rộng kẻ tấn công, có toàn quyền truy cập vào địa chỉ riêng trong mạng. Các gói được khởi tạo bên ngoài không khớp với bảng dịch được dành cho thiết bị NAPT, vì đó là thiết bị thực sự được xử lý bằng địa chỉ bên ngoài, do đó thiết bị NAPT có thể bị tấn công trực tiếp.
Giải pháp cho tình trạng thiếu địa chỉ IPv4
IETF dự đoán sự thiếu hụt địa chỉ IPv4 và nó đã tạo ra giải pháp: IPv6, sử dụng địa chỉ 128 bit, có nghĩa là có 340.282.366.920.938,463,463,374,607,431,768,211,456 địa chỉ IPv6 có thể. Số lượng địa chỉ IPv6 gần như không thể tưởng tượng được sẽ loại bỏ nhu cầu về NAPT (IPv6 không có bất kỳ tiêu chuẩn NAT nào, như cách thức của IPv4 và IPv6 NAT RFC thử nghiệm đặc biệt cấm NAPT), khôi phục mô hình đầu cuối IP gốc. Các giảm thiểu cho tình trạng thiếu địa chỉ IPv4 có nghĩa là kéo dài tuổi thọ của IPv4 cho đến khi IPv6 có mặt ở khắp mọi nơi, tại thời điểm đó, IPv4 sẽ biến mất.
Con người thực sự không thể hiểu được số lượng kích thước được sử dụng cho IPv6. Ví dụ: mạng IPv6 tiêu chuẩn sử dụng 64 bit cho mỗi phần mạng và phần lưu trữ của địa chỉ mạng. Đó là 18.446.744.073.709.551.616 mạng IPv6 tiêu chuẩn / 64 mạng có thể, và cùng một số lượng lớn địa chỉ máy chủ cho mỗi mạng đó. Để cố gắng hiểu một con số lớn như vậy, hãy xem xét các công cụ quét tất cả các địa chỉ có thể có trên mạng. Nếu một công cụ như vậy có thể quét 1.000.000 địa chỉ mỗi giây (không chắc), thì sẽ mất hơn 584.542 năm để thực hiện quét trên một mạng / 64 IPv6. Hiện tại, chỉ có 1/8 tổng không gian địa chỉ IPv6 được phân bổ cho các địa chỉ IPv6 toàn cầu, hoạt động với 2.305.843.009.213.693.952 mạng IPv6 / 64 tiêu chuẩn và nếu dân số thế giới là 21 tỷ vào năm 2100 (một con số hơi thực tế), mỗi một trong số 21 tỷ người đó có thể có 109.802.048 mạng IPv6 / 64 tiêu chuẩn, mỗi mạng có 18.446.744.073.709.551.616 địa chỉ máy chủ có thể. Thật không may, sự thiếu hụt địa chỉ IPv4 (hàng thập kỷ) đã ăn sâu vào việc bảo tồn địa chỉ ở mọi người, đến nỗi nhiều người chỉ đơn giản là không thể để nó đi và họ cố gắng áp dụng nó vào IPv6, điều này là vô nghĩa và thực sự bất lợi. IPv6 thực sự được thiết kế để lãng phí địa chỉ.
IETF cũng có lợi thế về nhận thức muộn và đã cải thiện IP (trong IPv6) bằng cách loại bỏ các tính năng của IPv4 không hoạt động tốt, cải thiện một số tính năng của IPv4 và thêm các tính năng mà IPv4 không có, tạo IP mới và cải tiến . Do IPv6 là một giao thức hoàn toàn tách biệt với IPv4, nên nó có thể được chạy song song với IPv4 vì quá trình chuyển đổi được thực hiện từ IPv4 sang IPv6. Các máy chủ và thiết bị mạng có thể chạy cả IPv4 và IPv6 trên cùng một giao diện cùng một lúc (xếp chồng kép) và mỗi thiết bị đều vô hình với nhau; không có sự can thiệp giữa hai giao thức.
Vấn đề với IPv6 là nó thực sự là một giao thức hoàn toàn khác, không tương thích với IPv4 có mặt ở khắp mọi nơi, và sự giảm thiểu cho tình trạng thiếu địa chỉ IPv4 được nhiều người nhìn thấy là đủ tốt. nhiều năm kể từ khi IPv6 được chuẩn hóa và chúng tôi mới nhận được một lực kéo thực sự trong việc sử dụng IPv6 (báo cáo của Google, tính đến tháng 9 năm 2018, việc áp dụng IPv6 trên toàn thế giới là hơn 20% và tỷ lệ chấp nhận IPv6 ở Mỹ là hơn 35%). Lý do cuối cùng chúng tôi chuyển sang IPv6 là vì đơn giản là không còn địa chỉ IPv4 nào không được sử dụng nữa.
Có những trở ngại khác, tất cả là một phần của văn hóa IPv4, đơn giản là khó để mọi người nhìn qua. Nhiều người cũng sợ IPv6, đã trưởng thành và cảm thấy thoải mái với IPv4, mụn cóc và tất cả. Ví dụ, các địa chỉ IPv6 có vẻ lớn và xấu so với các địa chỉ IPv4 và điều đó dường như khiến nhiều người bỏ qua. Thực tế là IPv6 thường dễ dàng và linh hoạt hơn so với IPv4, đặc biệt là để giải quyết vấn đề và các bài học kinh nghiệm trong IPv4 đã được áp dụng cho IPv6 ngay từ đầu.