Xin chào,
Chào mừng các bạn đã đến với bài 5 phần 2 của series Mạng Căn Bản. Hôm nay chúng ta sẽ tìm hiểu những chủ đề liên quan còn lại của IPv4 và sơ lược về IPv6 nhé.
Trước khi vào bài chúng ta cũng cần làm rõ những nội dung mà series này không bao gồm:
- Series này sẽ không dạy các kiến thức để thi CCNA hoặc MSCA cũng như các kiến thức về quản trị mạng ví dụ như cách thiết lập DHCP, DNS, Routing protocols, vâng vâng.
- Series Mạng Căn Bản sẽ không bao gồm phần lab xây dựng mạng mà chỉ đơn thuần lý thuyết và một vài thực hành nhỏ.
- Series Mạng Căn Bản sẽ chỉ có kiến thức căn bản và sẽ không đi quá sâu vào bất kỳ một chủ đề nào. Mục đích chính là để tránh series này bị kéo dài một cách không cần thiết. Tuy nhiên, với những bạn muốn nghiên cứu thêm, mình sẽ đính kèm tài liệu tự nghiên cứu trong bài nhé.
Các bạn cũng lưu ý là những nội dung quan trọng sẽ được mình highlight như thế này nhé
1/ IPv4
1a/ Unicast, multicast và broadcast
Chúng ta có 3 hình thức mà một host có thể chọn để truyền dữ liệu đó là unicast, multicast và broadcast, trong đó chữ ‘cast’ ở cuối của mỗi từ dùng để chỉ dữ liệu có thể được truyền tới một hoặc nhiều người nhận từ một hoặc nhiều người gửi.
1a-1/ Unicast
Unicast là hình thức truyền dữ liệu 1 – 1. Nghĩa là một người gửi dữ liệu và một người nhận dữ liệu được gửi. Đây là hình thức truyền dữ liệu phổ biến nhất trong mạng Internet.
Ví dụ: Bạn muốn vào trang tuhocnetworksecurity, bạn sẽ gửi truy vấn đến server chứa trang tuhocnetworksecurity, server của trang sẽ gửi ngược lại nội dung trang web đến bạn.
1a-2/ Broadcast
Broadcast là hình thức truyền dữ liệu 1 – all. Nghĩa là máy của bạn sẽ gửi một dữ liệu tới tất cả các máy trong cùng một mạng.
Các hackers rất hay sử dụng hình thức truyền dữ liệu này để kiểm tra xem trong mạng hiện đang có những máy nào đang hoạt động; hình thức thu thập thông tin này được gọi là host discovery.
Thực hiện bằng cách, hackers sẽ gửi ICMP ping tới địa chỉ 255.255.255.255, vốn là địa chỉ IPv4 broadcast mặc định của mỗi mạng. Sau khi gói tin đã được gửi, hacker có thể dùng lệnh arp để gọi giao thức Address Resolution Protocol, nhằm liệt kê tất cả địa chỉ IP và địa chỉ MAC của các thiết bị trong cùng mạng.
1a-3/ Multicast
Multicast là hình thức truyền dữ liệu từ một hoặc nhiều người gửi tới một hoặc nhiều người nhận.
Livestream hay họp trực tuyến là hai ví dụ của hình thức truyền dữ liệu này.
1b/ Phân lớp địa chỉ IPv4
Vào thời kỳ đầu của thời đại Internet, khi địa chỉ IPv4 ra đời, những người tạo ra IPv4 đã sớm nhận ra rằng nhu cầu sử dụng địa chỉ IPv4 của các thành phần trong xã hội ví dụ doanh nghiệp, hộ gia đình, v.v là khác nhau. Nếu họ thiết kế phần mạng và phần host của địa chỉ IPv4 đứng yên, nó có thể gây ra tình trạng một số doanh nghiệp không dùng hết địa chỉ IP gây ra lãng phí, một số khác lại không đủ địa chỉ IP để dùng.
Ví dụ như nếu ta địa chỉ IPv4 có 2 bytes phần mạng (16 bits) và 2 bytes phần host (16 bits), và số byte cho phần mạng và phần host không đổi, ta sẽ có thể có 65 536 địa chỉ IP. Vậy nếu một mạng chỉ có 1000 máy kết nối, sẽ dẫn đến tình trạng hơn 64 000 địa chỉ IP không được sử dụng và gây ra lãng phí.
Để tránh viễn cảnh đó có thể xảy ra, phần mạng và phần host đã được thiết kế linh động và được phân lớp để tùy theo quy mô cũng như số thiết bị mạng dự định kết nối vào mạng mà ISP sẽ cung cấp địa chỉ IPv4 ở cấp độ phù hợp nhằm giảm hao phí địa chỉ IPv4 đến mức thấp nhất.
Dựa vào giá trị của octet đầu của địa chỉ IPv4 và subnet mask, địa chỉ IPv4 được chia ra thành các cấp như sau:
| Lớp | Giá trị octet đầu | Subnet mask mặc định | Hình thức host truyền dữ liệu |
| A | 1 – 126 | /8 | Unicast |
| B | 128 – 191 | /16 | Unicast |
| C | 192 – 223 | /24 | Unicast |
| D | 224 – 239 | Multicast | |
| E | 240 – 255 |
1b-1/ Địa chỉ IPv4 lớp A
Giá trị octet đầu 1 – 126 với subnet mặc định là /8.
Hình thức truyền dữ liệu: Unicast
Ví dụ địa chỉ lớp A: 10.0.2.3/8, 5.5.4.7/8, 1.1.5.6/8
Địa chỉ lớp A được thiết kế dành cho những mạng siêu lớn với số lượng host lên tới hàng triệu máy. Do địa chỉ lớp A có 8 bits phần mạng và 24 bits phần host nên số lượng mạng và host mà địa chỉ lớp này có thể có là 2^7 – 2 = 126 mạng và 2^24 = 16 777 214 hosts.
Lí do mà số lượng mạng phải trừ đi 2 là vì mạng bắt đầu bằng 0 và 127 là 2 mạng đặc biệt và không được public (mình sẽ nói rõ hơn ở phần sau).
Hiện tại chỉ có khoản tầm 40 địa chỉ lớp A đang được sử dụng. Một vài công ty đang sử dụng địa chỉ lớp A có thể kể đến như IBM, AT&T Bell Laboratories, General Electric Company (GE), MIT, Apple Computer, Inc,… Những địa chỉ lớp A còn lại được quản lý bởi IANA (Internet Assigned Numbers Authority), tổ chức quản lý việc cấp địa chỉ IP trên toàn thế giới có trụ sở chính tại Mỹ, hoặc đang được sử dụng bởi các tổ chức có nghĩa vụ cấp địa chỉ IP tại các châu lục như Á, Âu, Mỹ Latin, v.v.
1b-2/ Địa chỉ IPv4 lớp B
Giá trị octet đầu 128 – 191 với subnet mặc định là /16
Hình thức truyền dữ liệu: Unicast
Ví dụ địa chỉ lớp B: 128.10.12.156/16, 180.56.42.78/16
Địa chỉ lớp B được thiết kế dành cho những mạng lớn với số lượng host lên đến hàng chục nghìn. Do địa chỉ lớp B có 16 bits phần mạng và 16 bits phần host nên số lượng mạng và host mà địa chỉ mà lớp này có thể có là 2^14 = 16 384 mạng và 2^16 = 65 534 hosts.
1b-3/ Địa chỉ IPv4 lớp C
Giá trị octet đầu 192 – 223 với subnet mặc định là /24
Hình thức truyền dữ liệu: Unicast
Ví dụ địa chỉ lớp C: 192.168.10.1/24, 198.22.56.14/24
Địa chỉ lớp C được thiết kế cho những mạng nhỏ như hộ gia đình với số lượng host dưới 254. Do địa chỉ lớp C có 24 bits phần mạng và 8 bits phần host nên số lượng mạng và host mà địa chỉ lớp C có thể có là 2^ 21 = 2 097 152 và 2^8 = 254 hosts.
1b-4/ Địa chỉ IPv4 lớp D
Giá trị octet đầu 224 – 239
Hình thức truyền dữ liệu: Multicast
Khác với địa chỉ lớp A, B và C, địa chỉ lớp D không được dùng để cấp cho các thiết bị kết nối mạng như máy tính hay điện thoại của bạn, mà được dùng cho những ứng dụng multicast như livestream hoặc hợp trực tuyến. Để sử dụng địa chỉ lớp D, bạn cần phải đăng ký và được cấp phép bởi IANA.
1b-5/ Địa chỉ IPv4 lớp E
Giá trị octet đầu 240-255
Địa chỉ lớp E chủ yếu được dùng cho mục đích nghiên cứu và sẽ không được dùng để cấp cho các thiết bị kết nối mạng.
Lưu ý:
Khi phân lớp địa chỉ IPv4, bạn nên chú ý vào phần subnet hơn là giá trị của octet đầu. Vì phần phân lớp ở trên là theo lí thuyết, thực tế bạn hoàn toàn có thể gặp những địa chỉ như 77.56.128.45/16 vậy với 2 octet cho phần mạng và 2 octet cho phần host, dù giá trị octet đầu nằm trong lớp A, nhưng địa chỉ IPv4 này là địa chỉ lớp B.
1c/ Những địa chỉ IPv4 đặc biệt
Mình sẽ liệt kê một vài địa chỉ IPv4 đặc biệt thường gặp nhé.
255.255.255.255: Địa chỉ broadcast, được dùng để gửi gói tin đến tất cả các máy trong mạng
0.0.0.0 – 0.255.255.255: Địa chỉ IP bắt đầu bằng 0 là những địa chỉ IP không thể truy cập được dùng để gán cho những thiết bị không hợp lệ, không thể xác định.
127.0.0.0 – 127.255.255.255: Được gọi là địa chỉ loopback hay địa chỉ localhost. Địa chỉ loopback là một địa chỉ đặc biệt, khi bạn gửi gói tin đến nó, nó sẽ luôn trả lại gói tin đó cho bạn. Mỗi máy tính khi kết nối mạng, đều sẽ được gán một địa chỉ looback thường là 127.0.0.1. Nói một cách dễ hiểu, khi bạn gửi gói tin đến địa chỉ loopback, bạn đang gửi gói tin cho chính bạn. Địa chỉ looback thường được dùng để sửa lỗi hoặc thử phần mềm. Ví dụ bạn xây dựng một website và host website đó trên máy của bạn, để có thể trải nghiệm website đó như một người xem bình thường, bạn có thể truy cập vào địa chỉ localhost của chính bạn để làm điều đó.
2/ IPv6
Vì địa chỉ IPv6 sẽ không gặp trong series basic pentest của chúng ta, nên mình sẽ chỉ nói sơ qua thôi. Bạn nào muốn đi sâu tìm hiểu có thể tham khảo link sau nhé.
Hầu hết các thiết bị hiện tại đang sử dụng địa chỉ IPv4, và trong 30 năm qua IPv4 đã làm rất tốt công việc mà nó được giao cho. Tuy nhiên, với sự phát triển quá nhanh của Internet sớm muộn gì, số lượng địa chỉ IPv4 trong một mạng sẽ không đủ để cung cấp cho tất cả các thiết bị có nhu cầu kết nối mạng.
Bạn hãy nhìn lại xem, 10 năm trước chúng ta chỉ mới bắt đầu làm quen với việc ngoài máy tính, thì chiếc smartphone của chúng ta cũng có thể kết nối mạng, thì ngày nay chúng ta có thể thấy những chiếc smart tivi, smart tủ lạnh, smart máy giặt,, smart car, smart home, v.v những thứ mà tầm 10 năm trước chúng ta chỉ thấy trong phim, nay đã dần dần được hiện thực ra trước mắt chúng ta. Vậy chuyện gì sẽ xảy ra trong 10 năm nữa? khi hiện nay các thành phố lớn trên thế giới đang bắt đầu xây dựng smart city, hứa hẹn sẽ có nhiều thiết bị mới được nối mạng hơn nữa?
Vì lí do trên, các nhà khoa học đã tạo ra địa chỉ IPv6.
Có thể các bạn sẽ hỏi có v4, v6 vậy còn v1, v2, v3 và v5 đâu?
Thì theo như mình tìm thì IPv1 tới IPv3 được dùng vào cho mục đích thử nghiệm và IPv4 là sản phẩm hoàn thiện sau khi đã thử nghiệm qua v1, v2 và 3. IPv5 cũng là một bản thử nghiệm, nhưng do gặp vấn đề khi phát triển, nên người ta đã nhảy lên IPv6 luôn.
2a/ Cấu trúc của IPv6
Khác với IPv4 chỉ có 32 bit nhị phân, địa chỉ IPv6 có chiều dài 128 bits cho khả năng cung cấp 2^128 = 3.4 x 10^38 = 340 282 366 920 938 000 000 000 000 000 000 000 000 địa chỉ IP khác nhau trong cùng 1 mạng. So với 2^32 = 4 294 967 296 của IPv4, địa chỉ IPv6 lớn hơn IPv4 rất nhiều lần.
Địa chỉ IPv4 được cấu tạo từ số nhị phân và thường được biểu diễn bằng số thập phân. Địa chỉ IPv6 được cấu tạo từ số nhị phân và được biểu diễn mặc định bởi số hex (cơ số 16).
Ví dụ địa chỉ IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Như bạn thấy trong ví dụ trên, địa IPv6 bao gồm 128 bits được chia thành 8 cụm, cách nhau bởi dấu hai chấm ‘:’. Mỗi cụm bao gồm 16 bits nhị phân được biểu diễn bởi 4 số hex, chạy từ 0000 đến FFFF.
Có thể bạn sẽ hỏi tại sao không dùng số thập phân để biểu diễn IPv6 như IPv4? theo mình là do nếu dùng số thập phân, địa chỉ IPv6 sẽ dài hơn và khó nhớ hơn. Ví dụ như giá trị lớn nhất của một cụm là FFFF tương đương 65 535 trong hệ thập phân. Nếu chúng ta có 8 cụm chỉ toàn số từ 0 đến 9 với giá trị từ 0 đến 65 535 như vậy thì khả năng bạn nhập sai là khá cao. Chưa kể, tăng chiều dài của địa chỉ IP sẽ làm tăng kích thước bộ nhớ dùng để chứa địa chỉ IP đó, so sánh giữa số hex và số thập phân, rõ ràng số hex cho ra địa chỉ ngắn hơn, nên sẽ tiết kiệm dung lượng bộ nhớ hơn. Theo mình đó là 2 lí do mà người ta chọn số hex để biểu diễn địa chỉ IPv6.
2b/ Khi nào việc chuyển đổi giữa IPv4 và IPv6 xảy ra?
Quá trình chuyển đổi từ địa chỉ IPv4 lên địa chỉ IPv6 không xảy ra chỉ trong 1, 2 ngày, 1, 2 tháng hay 1, 2 năm mà nó sẽ diễn ra một cách từ từ và không có thời hạn cuối.
Hiện nay một vài quốc gia, cơ quan chính phủ, công ty xuyên quốc gia đã bắt đầu sử dụng địa chỉ IPv6 hoặc bắt buộc sử dụng địa chỉ IPv6 cho hệ thống mạng và các sản phẩm phần mềm của họ.
Vì IPv6 được thiết kế để sống chung với IPv4 cho đến khi thay thế hoàn toàn IPv4 nên một máy sử dụng IPv4 hoàn toàn có thể giao tiếp với một server sử dụng IPv6.
Cám ơn các bạn đã theo dõi nhé.
Sources:
https://www.geeksforgeeks.org/difference-between-unicast-broadcast-and-multicast-in-computer-network/#:~:text=In%20multicasting%2C%20one%2Fmore%20senders,one%2Dto%2Dall).
https://www.dummies.com/programming/networking/cisco/network-basics-ip-network-classes/
https://www.cisco.com/c/en/us/td/docs/interfaces_modules/services_modules/ace/vA5_1_0/configuration/rtg_brdg/guide/rtbrgdgd/ipv6.html