1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Làm việc với địa chỉ IP pptx

8 551 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Làm việc với địa chỉ IP
Trường học IPMAC Informatic Technology JSC
Thể loại Tài liệu
Định dạng
Số trang 8
Dung lượng 284,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Làm việc với địa chỉ IP Địa chỉ IP, cả IPv4 và IPv6, đều tỏ ra tương đối phức tạp, nhưng thực tế chúng đều có những cấu trúc cơ bản, và sử dụng một số qui luật để có thể tính toán một cá

Trang 1

Làm việc với địa chỉ IP

Địa chỉ IP, cả IPv4 và IPv6, đều tỏ ra tương đối phức tạp, nhưng thực tế chúng đều có những cấu trúc cơ bản, và sử dụng một số qui luật để có thể tính toán một cách nhanh chóng nhất Trong tài liệu này chúng ta sẽ cùng ôn lại một số khái niệm cư bản trong IPv4 và các kỹ thuật được sử dụng

để có thể làm việc với địa chỉ IP một cách đơn giản hơn Cuối cùng chúng ta sẽ cùng đề cập đến cách ứng dụng các kỹ thuật đó trong IPv6

Cơ bản về cách gán địa chỉ

Địa chỉ IPv4 là một số nhị phân 32 bit Để dễ dàng đối với người sử dụng, người ta chia địa chỉ IPv4 ra làm 4 phần, được phân chia bởi dấu chấm (.), và mỗi phần chia đó được gọi là một octet Một octet là một số nguyên 8 bit, còn có thể gọi là một byte Chúng ta không sử dụng từ byte ở đây, vì byte có thể dao động, thay đổi giữa các máy tính, trong khi octet là một số cố định không thay đổi Hình 1 minh họa cấu trúc của một địa chỉ IPv4

Hình 1: Cấu trúc của một địa chỉ IPv4

Vì mỗi octet đại diện cho một số nhị phân (cơ số 2), nằm trong khoảng từ 0 đến 8, nghìa là từ 0 đến 255 Phần này tương đối đơn giản, vậy còn subnet mask thì sao Để hiểu về subnet mask, trước hết ta tìm hiểu cách mà các thiết bị xử lý từ subnet mask để xác định chính xác địa chỉ để gửi gói tin Hình 2 sẽ minh họa điều này

Hình 2: Subnet mask

Trang 2

Nếu host A, với địa chỉ IP local là 10.1.1.2 và subnet mask là 255.255.255.0, muốn gủi một gói tin tới địa chỉ IP 10.1.3.2 của host D, làm sao để host A có thể biết được host D có kết nối trực tiếp

trong cùng một mạng (broadcast domain) hay không? Nếu D nằm trong cùng mạng thì A sẽ căn cứ vào địa chỉ lớp 2 cua D để gửi gói tin đi Nếu D nằm ở khác mạng hay khác broadcast domain thì A

sẽ gửi gói tin đến default gateway của mình

Để tìm hiểu xem D có nằm trong cùng mạng hay không, A sẽ sử dụng địa chỉ IP local của mình thực hiện một thuật toán AND với subnet mask Rồi tiếp đó lại sử dụng địa chỉ IP cùng subnet mask của D, và thực hiện tiếp một thuật toán AND tương tự Nếu hai kết quả thu được, còn gọi là

địa chỉ mạng (network address) hay prefix trùng khớp thì A có thể kết luận A và D nằm trên cùng

một mạng hay một broadcast domain Tiếp đó A sẽ tra trong Address Resolution Protocol (ARP) cache để tìm địa chỉ lớp 2 của D và gửi bản tin đến D dưới dạng bản tin nội bộ Ngược lại, nếu hai kết quả này không trùng khớp, nghĩa là hai thiết bị nằm trên hai mạng khác nhau, thì A sẽ gửi bản tin đến default gateway của mình

Lưu ý: ARP là một giao thức dùng để gán địa chỉ IP và địa chỉ MAC lớp 2 của các thiết bị trong cùng một mạng Các thiết bị gửi một bản tin broadcast trong đó chứa địa chỉ IP của một số thiết bị

mà nó tin là đang kết nối trực tiếp trong mạng, và các thiết bị với địa chỉ IP tương ứng đó sẽ reply lại với địa chỉ lớp 2 của mình, giúp thiết bị ban đầu có thể có một bảng tương ứng giữa địa chỉ IP và địa chỉ lớp 2, thuận lợi trong việc gửi các bản tin nội bộ

Nếu subnet mask ở dạng thập phân, vậy làm thế nào để xác định prefic length ? Prefix length là một dạng viết tắt của subnet mask Prefix length là số lượng các bit được set trong subnet mask

Ví dụ một subnet mask là 255.255.255.0 thì ta nhận thấy có 24 bit 1 trong subnet mask, vì vật

prefix length sẽ là 24 bits Hình 3 sẽ minh họa về network mask và prefix length

Trang 3

Các câu hỏi chún ta thương gặp phải khi làm việc với địa chỉ IP là:

- Địa chỉ mạng của prefix là bao nhiêu ?

- Địa chỉ host là bao nhiêu ?

Có hai cách để giải quyết vấn đề này, cách phức tạp và đơn giản Trước hết ta sẽ nói về cách phức tạp, và tiếp sau sẽ đề cập về phương pháp đơn giản

Cách phức tạp

Các phức tạp là ta sẽ chuyển đổi địa chỉ prefix và địa chỉ host sang dạng nhị phân và sau đó thực hiện các thuật toán AND và NOR giữa địa chỉ đó với subnet mask và sau đó lại chuyển đổi kết quả trở lại dạng thập phân Hình 4 minh họa quá trình chuyển đổi địa chỉ một octet đơn trong một địa chỉ IPv4 sang dạng nhị phân, số được chuyển đổi ở đây là 192

Hình 4: Chuyển đổi nhị phân

Quá trình tính toán là tương đối đơn giản Ta sẽ lấy số thập phân ban đầu chia cho 2, lấy phần dư

ra, rối lại chia tiếp thương số vừa nhận được cho 2, lại lấy phần dư ra, tới khi bằng 0 Các phần dư được sắp xếp theo chiều ngược lại chính là số nhị phân cần tìm Thực hiện phép tính với cả 4 octet ta sẽ được địa chỉ IP dưới dạng nhị phân và sau đó ta có thể dùng các thuật tóan logic AND

và NOR để tím ra được prefix (network address) và host address Hình 5 sẽ minh họa một ví dụ với

địa chỉ 192.168.100.80/26

Trang 4

Hình 5: Ví dụ về tính toán địa chỉ

Cách đơn giản

Tất cả việc chuyển đổi từ dạng thập phân sang nhị phân và ngược lại, từ nhị phân sang thập phân

thật phức tạp và buồn tẻ, vậy liệu có cách nào đơn giản hơn không ? Câu trả lời là có

Trước hết chúng ta quan sát thấy rằng chúng ta chỉ làm việc với các số trong cùng một octet tại

một thời điểm bất kể chiều dài của prefix là gì Ta gọi đó là octet làm việc (hay working octet) Ta

giả sử coi tất cả các octet nằm trước working octet là thuộc về địa chỉ mạng, còn các octet nằm sau working octet là thuộc về địa chỉ host

Việc đầu tiên chúng ta cần làm là xác định octet làm việc của mình Công việc tương đổi đơn giản

đó là lấy prefix chia cho 8 rồi cộng thêm 1 Hình dưới đây minh họa một số ví dụ

Note: Một cách khác để xác định working octet là ta sẽ loại bỏ số octet được chỉ ra trong phép chia

Ví dụ 192.168.100.80/26, ta lấy 26 chia cho 8 được 3 Như vậy ta sẽ loại bỏ 3 octet ban đầu, suy ra

octet làm việc là octet thứ 4 Hai cách đều cho cùng một kết quả

Khi ta đã xác định được working octet, vậy việc tiếp theo ta sẽ làm là gì? Có thể ta sẽ lại làm theo cách đã chỉ ra ở phía trên, chuyển đổi qua lại giữa địa chỉ dạng nhị phân và thập phân, dùng thuật toán logic AND và NOR để tìm ra địa chỉ mạng và địa chỉ host Nhưng có một cách đơn giản hơn

để tìm ra phần mạng và phần host trong working octet Thực hiện phép toán tương tự trên, nhưng lần này ta chỉ quan tâm đến phần dư chứ không phải toàn bộ kết quả

192.168.100.80/26

26 ÷ 8 = 3 và phần dư là 2

Trang 5

Trong bảng trên, dòng đầu tiên là chiều dài prefix trong octet, dòng thứ hai là giá trị của prefix khi bit này được set bằng 1, là số lượng các host trong subnet cho prefix length này là bước nhảy giữa các địa chỉ mạng với prefix length xác định được chỉ ra

Số 2 tương ứng với 64, có nghĩa là có 64 host trong subnet, tương ứng với bước nhảy 64 Điều này có nghĩa là có mỗi network ở địa chỉ 0, 64, 128, và 192 trong octet này Việc tiếp theo là ta phải xác định chính xác địa chỉ của ta nằm trong network nào trong số các network trên Công việc cũng tương đối đơn giản : chỉ việc lấy số network lớn nhất khớp với số octet làm việc Trong trường hợp

này, số lớn nhất khớp với 80 là 64, vậy địa chỉ mạng chính xác sẽ là 192.168.100.64/26

Vậy địa chỉ host sẽ là gì ? Việc này thật đơn giản khi ta đã có địa chỉ network Ta chỉ việc lấy địa chỉ

IP trừ đi địa chỉ network sẽ có địa chỉ host tương ứng nằm trong network : 80 – 64 = 16 Công việc này sẽ đơn giản hơn nếu bạn thực hành nhiều

Trong ví dụ thứ hai và thứ ba, bạn nhận thấy octet làm việc là octet thứ ba chứ không phải octet thứ 4 Để tìm địa chỉ host trong ví dụ này, ta sẽ tìm địa chỉ host trong octet thứ 3, rồi tiếp tục với octet thứ 4, coi đó là thuộc phần host, vì ta biết rằng phần của của octet làm việc và octet sau đó đều thuộc về địa chỉ host

Summarizations và subnets

Subnets và supernets thông thường là hai vấn đề phức tạp nhất về địa chỉ IP khi ta muốn hiểu và thao tác một cách nhanh chóng Nhưng thực chất cả hai đều dựa trên một cơ sở chung là

aggregation Hình 6 chỉ ra Aggregation hoạt động như thế nào

Hình 6: Address Aggregation

Hình minh họa trên cho thấy có 4 host với các địa chỉ lần lượt là 10.2.0.1, 10.2.0.2, 10.1.0.3, và 10.2.0.4 Router A quảng cáo một prefix 10.1.0.0/24 với ý nghĩa rằng có thể định tuyến được tới tất

cả các host trong dải địa chỉ từ 10.1.0.0 đến 10.1.0.255 thông qua router A Chú ý rằng không phải

tất cả các địa chỉ trong dải kia đều tồn tại, nhưng nếu có một host trong dải đó có thể đến được thì nhất định nó phải đi qua router A Trong IP, địa chỉ mà router A quảng cáo đi là địa chỉ mạng (network address), ta có thể hiểu một cách đơn giản rằng đó là địa chỉ của đường dây kết nối các máy tính và router chứ không phải để chỉ một thiết bị cụ thể nào

Vấn đề thường gây nhầm lẫn diễn ra ở sau đó Khi router B cũng quảng cáo một prefix 10.2.2.0/24

Và khi các gói tin quảng cáo được gửi từ A và B đến router C thì router C làm công việc kết hợp lại,

hay gộp chung lại (aggregation) hai bản tin quảng cáo thành một bản tin duy nhất Router C quảng

cáo rằng “Tất cả các gói tin đến các host có địa chỉ nằm trong dải từ 10.1.0.0 đến 10.1.1.255 đều

Trang 6

có thể đi qua tôi” Không có một dây dẫn nào có địa chỉ như vậy nhưng các router ở C ngoài router

C có nhu cầu gửi gói tin không biết điều đó và chúng không quan tâm

Để xử lý tốt hơn đối với các dải địa chỉ được kết hợp, ta định nghĩa hai khái niêmk là subnet và supernet Một subnet là một network được chứa hoàn toàn trong một network khac; còn supernet

là network bản thân nó chứa các network khác Ví dụ 10.1.0.0/24 và 10.1.1.0/24 là hai subnet của network 10.1.0.0/23 trong khi 10.1.0.0/23 là supernet của 10.1.0.0/24 và 10.1.1.0/24

Bây giờ ta nhìn vào dạng nhị phân của các địa chỉ này

Hình 7: Chi tiết về Aggregation

Khi ta nhìn vào dạng nhị phân của hai địa chỉ 10.1.0.0/24 và 10.1.1.0/24 ta nhận thấy chỉ có bit thứ

24 là thay đổi Nếu ta thay đổi chiều dài prefix sang 23 bit, ta có thể hoàn toàn “che lấp” (“masked-out”) bit thay đổi này Lúc này thì dải địa chỉ cỉa 10.1.0.0/23 sẽ trùng với dải địa chỉ kết hợp của hai địa chỉ 10.1.0.0/24 và 10.1.1.0/24

Vấn đề khó khăn nhất của thực hiện subnet

Vấn đề khó khăn nhất mà đa số người dùng gặp phải khi muốn thực hiện subnet đó là việc quyết định xem subnet nhỏ nhất là thế nào để có thể đáp ứng đủ số lượng host trên segment và đồng thời khồn gây ra sự lãng phí tài nguyên địa chỉ Vấn đề này thường được nảy sinh dưới dạng như sau:

“Bạn có 5 subnets với số lượng host tương ứng trên mỗi subnet như sau: 58, 14, 29, 49 và 3 Bạn được cấp một dải địa chỉ 10.1.1.0/24 Hãy xác định xem bạn cần phân chia dải địa chỉ trên như thế nào để đáp ứng được nhu cầu sử dụng cho từng subnet trên?”

Vấn đề này ban đầu tỏ ra tương đối phức tạp, nhưng nếu ta sử dụng bảng đã nêu ở phần trước để tìm ra bước nhảy trong mạng thì vấn đề trở nên khá dễ dàng Trước hết ta sẽ tuần tự theo các bước để giải quyết vấn đề trong ví dụ này, từ đó thấy được hoạt động thực sự của nó thế nào

- Sắp xếp các mạng theo thứ tự từ lớn nhất đến nhỏ nhất

- Tìm số nhỏ nhất trong bảng khớp với số host lớn nhất + 2 (chú ý: trừ trường hợp point-to-point ra, còn lại bạn không thể cấu hình địa chỉ với toàn bit 0 hay toàn bit 1 ở phần host; trong point-to-point bạn có thể dùng một địa chỉ prefix dạng /31, là một địa chỉ không kèm địa chỉ broadcast)

- Tiếp tục với các dải khác cho đến khi bạn hết dải địa chỉ hoặc công việc kết thúc

Tuy nhiên liệu thực sự nó có hoạt động không, ta cùng xét trong ví dụ

- Ta sắp xếp các subnet theo chiều giảm dần ta có thứ tự : 58, 49,29,14,3

Trang 7

o Mạng tiếp theo sẽ là 10.1.1.64 + 64, vì vậy ta lại bắt đầu chu trình tiếp theo từ mạng 10.1.1.128

- Block tiếp theo là 29 host

o Số nhỏ nhất lớn hơn (29+2) là 32, 32 tương ứng với 3 bits

o Thêm 3 bit và ta có /27

o Ta bắt đầu block ở network 10.1.1.128, nên địa chỉ mạng sẽ là 10.1.1.128/27

o Mạng tiếp theo sẽ là 10.1.1.128 + 32, vì vậy chu trình tiếp theo sẽ bắt đầu từ địa chỉ 10.1.1.160

- Block tiếp theo là 14

o Số nhỏ nhất tương ứng với (14+2) là 16, 16 tương ứng với 4 bít

o Prefix mới sẽ là /28

o Ta bắt đầu ở network 10.1.1.160, vậy địa chỉ mạng sẽ là 10.1.1.160/28

o Mạng tiếp theo là 10.1.1.160 + 16, vì vậy chu trình tiếp theo sẽ bắt đầu từ địa chỉ 10.1.1.176

- Block cuối cùng là 3 host:

o Số nhỏ nhất lớn hơn (3+2) là 8, 32 tương ứng với 5 bits

o Thêm 5 bit và ta có /29

o Ta bắt đầu block ở network 10.1.1.176, nên địa chỉ mạng sẽ là 10.1.1.176/29

o Đây là block cuối cùng, và công việc đã kết thúc

Trên đây là một ví dụ rất cơ bản về việc xử lý với việc phân nhỏ một dải địa chỉ thành các dải địa

chỉ nhỏ hơn tùy theo nhu cầu sử dụng bằng cách sử dụng bước nhảy (jump) đã nêu ở trên

Hình 8 minh họa kết quả của việc phân chia địa chỉ theo các subnet phân cấp

Hình 8: Sơ đồ phân chia subnet

Trong phần minh họa trên:

- Dòng đầu tiên trong mỗi box chứa octet cuối của địa chỉ mạng ở dạng thập phân và nhị phân

- Dòng thứ hai là chiều dài của prefix

- Dòng thứ ba chỉ ra số host yêu cầu trong mỗi subnet

- Box màu xám chỉ ra các dải địa chỉ chưa dùng đến ở mức này

Trang 8

Làm việc với địa chỉ IPv6

Địa chỉ IPv6 tỏ ra khó để thao tác hơn rất nhiều, nhưng thực chất là không phải như vậy Mặc dù lớn hơn, nhưng địa chỉ IPv6 vẫn được cấu tạo từ những thành phần cơ bản và router cũng như các host cũng đều sử dụng một cách tương tự

Điều chúng ta cần lưu ý là một địa chỉ hexa trong địa chỉ IPv6 tương ứng với một octet trong địa chỉ dạng nhị phân Các phương thức để tìm địa chỉ mạng, địa chỉ host cũng như các khái niệm về subnet và supernet là tương đương

Ví du, giả sử ta có địa chỉ IPv6 là 2002:FF10:9876:DD0A:9090:AC56:0E01/63 và ta cần biết địa

chỉ mạng là thế nào (địa chỉ host ít tác dụng trong IPv6 vì IPv6 sử dụng luôn địa chỉ MAC)

- 63 ÷ 8 = 7, dư 7

- Octet làm việc là octet thứ 8, là 0A

- Phần dư là 7, ta tra trong bảng sẽ thấy bước nhảy sẽ là 2, vì vậy các mạng sẽ là 00, 02,

04, 06, 08, 0A, 0C và 0E

- Địa chỉ mạng sẽ là 2002:FF10:9876:DD0A::/63

Địa chỉ lớn hơn, nhưng phương pháp thao tác là như nhau, chỉ có điều ta cần nhớ là mỗi cặp số trong IPv6 tương ứng với 1 octet

Kết luận

Địa chỉ IP tỏ ra tương đối phức tạp khi ta mới làm quen và nhìn vào nó, nhưng thực chất nó có những thành phần và những qui tắc chung Khi nắm được các thành phần ta sẽ biết cách để xé nhỏ vấn đề ra các thành phần nhỏ hơn để dễ dàng xử lý, cũng như khi ta thiết kế một mạng với khả năng mở rộng cao thì đòi hỏi ta phải thiết kế theo hướng module Ip thực sự đơn giản nếu ta nắm vững được cấu trúc của nó cũng như các kỹ thuật thao tác trên nó

Chử Kiên Bình

binhck@ipmac.com.vn

Creative Commons Some Rights Reserved

Ngày đăng: 20/12/2013, 21:15

HÌNH ẢNH LIÊN QUAN

Hình 1: Cấu trúc của một địa chỉ IPv4 - Tài liệu Làm việc với địa chỉ IP pptx
Hình 1 Cấu trúc của một địa chỉ IPv4 (Trang 1)
Hình 2: Subnet mask - Tài liệu Làm việc với địa chỉ IP pptx
Hình 2 Subnet mask (Trang 1)
Hình 4: Chuyển đổi nhị phân. - Tài liệu Làm việc với địa chỉ IP pptx
Hình 4 Chuyển đổi nhị phân (Trang 3)
Hình 5: Ví dụ về tính toán địa chỉ. - Tài liệu Làm việc với địa chỉ IP pptx
Hình 5 Ví dụ về tính toán địa chỉ (Trang 4)
Đó là lấy prefix chia cho 8 rồi cộng thêm 1. Hình dưới đây minh họa một số ví dụ. - Tài liệu Làm việc với địa chỉ IP pptx
l à lấy prefix chia cho 8 rồi cộng thêm 1. Hình dưới đây minh họa một số ví dụ (Trang 4)
Hình minh họa trên cho thấy có 4 host với các địa chỉ lần lượt là 10.2.0.1, 10.2.0.2, 10.1.0.3, và - Tài liệu Làm việc với địa chỉ IP pptx
Hình minh họa trên cho thấy có 4 host với các địa chỉ lần lượt là 10.2.0.1, 10.2.0.2, 10.1.0.3, và (Trang 5)
Hình 7: Chi tiết về Aggregation - Tài liệu Làm việc với địa chỉ IP pptx
Hình 7 Chi tiết về Aggregation (Trang 6)
Hình 8: Sơ đồ phân chia subnet. - Tài liệu Làm việc với địa chỉ IP pptx
Hình 8 Sơ đồ phân chia subnet (Trang 7)
Hình 8 minh họa kết quả của việc phân chia địa chỉ theo các subnet phân cấp - Tài liệu Làm việc với địa chỉ IP pptx
Hình 8 minh họa kết quả của việc phân chia địa chỉ theo các subnet phân cấp (Trang 7)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w