IPMAC INFORMATIC TECHNOLOGY JSC
Làm vic vi địa ch IP 1
Làm vic vi địa ch IP
Địa ch IP, c IPv4 và IPv6, đều t ra tương đối phc tp, nhưng thc tế chúng đều có nhng cu
trúc cơ bn, và s dng mt s qui lut để có th tính toán mt cách nhanh chóng nht. Trong tài
liu này chúng ta s cùng ôn li mt s khái nim cư bn trong IPv4 và các k thut được s dng
để có th làm vic vi địa ch IP mt cách đơn gin hơn. Cui cùng chúng ta s cùng đề cp đến
cách ng dng các k thut đó trong IPv6.
Cơ bn v cách gán địa ch
Địa ch IPv4 là mt s nh phân 32 bit. Để d dàng đối vi người s dng, người ta chia địa ch
IPv4 ra làm 4 phn, đưc phân chia bi du chm (.), và mi phn chia đó đưc gi là mt octet.
Mt octet là mt s nguyên 8 bit, còn có th gi là mt byte. Chúng ta không s dng t byte
đây, vì byte có th dao động, thay đổi gia các máy tính, trong khi octet là mt s c định không
thay đổi. Hình 1 minh ha cu trúc ca mt địa ch IPv4.
Hình 1: Cu trúc ca mt địa ch IPv4
Vì mi octet đại din cho mt s nh phân (cơ s 2), nm trong khong t 0 đến 8, nghìa là t 0
đến 255. Phn này tương đối đơn gin, vy còn subnet mask thì sao. Để hiu v subnet mask,
trước hết ta tìm hiu cách mà các thiết b x lý t subnet mask để xác định chính xác địa ch để gi
gói tin. Hình 2 s minh ha điu này.
Hình 2: Subnet mask
IPMAC INFORMATIC TECHNOLOGY JSC
Làm vic vi địa ch IP 2
Nếu host A, vi địa ch IP local là 10.1.1.2 và subnet mask là 255.255.255.0, mun gi mt gói tin
ti địa ch IP 10.1.3.2 ca host D, làm sao để host A có th biết được host D có kết ni trc tiếp
trong cùng mt mng (broadcast domain) hay không? Nếu D nm trong cùng mng thì A s căn c
vào địa ch lp 2 cua D để gi gói tin đi. Nếu D nm khác mng hay khác broadcast domain thì A
s gi gói tin đến default gateway ca mình.
Để tìm hiu xem D có nm trong cùng mng hay không, A s s dng địa ch IP local ca mình
thc hin mt thut toán AND vi subnet mask. Ri tiếp đó li s dng địa ch IP cùng subnet
mask ca D, và thc hin tiếp mt thut toán AND tương t. Nếu hai kết qu thu được, còn gi là
địa ch mng (network address) hay prefix trùng khp thì A có th kết lun A và D nm trên cùng
mt mng hay mt broadcast domain. Tiếp đó A s tra trong Address Resolution Protocol (ARP)
cache để tìm địa ch lp 2 ca D và gi bn tin đến D dưới dng bn tin ni b. Ngược li, nếu hai
kết qu này không trùng khp, nghĩa là hai thiết b nm trên hai mng khác nhau, thì A s gi bn
tin đến default gateway ca mình.
Lưu ý: ARP là mt giao thc dùng để gán địa ch IP và địa ch MAC lp 2 ca các thiết b trong
cùng mt mng. Các thiết b gi mt bn tin broadcast trong đó cha địa ch IP ca mt s thiết b
mà nó tin là đang kết ni trc tiếp trong mng, và các thiết b vi địa ch IP tương ng đó s reply
li vi địa ch lp 2 ca mình, giúp thiết b ban đầu có th có mt bng tương ng gia địa ch IP và
địa ch lp 2, thun li trong vic gi các bn tin ni b.
Nếu subnet mask dng thp phân, vy làm thế nào để xác định prefic length ? Prefix length là
mt dng viết tt ca subnet mask. Prefix length là s lượng các bit được set trong subnet mask.
Ví d mt subnet mask là 255.255.255.0 thì ta nhn thy có 24 bit 1 trong subnet mask, vì vt
prefix length s là 24 bits. Hình 3 s minh ha v network mask và prefix length.
Hình 3: Bng Prefix Length.
Làm vic vi địa ch IPv4
Như vy ta đã biết v cu trúc ca địa ch IPv4, nó được hình thành thế nào, và biết v các khái
nim subnet mask và prefix length. Vy làm vic vi chúng như thế nào ?
IPMAC INFORMATIC TECHNOLOGY JSC
Làm vic vi địa ch IP 3
Các câu hi chún ta thương gp phi khi làm vic vi địa ch IP là:
- Địa ch mng ca prefix là bao nhiêu ?
- Địa ch host là bao nhiêu ?
Có hai cách để gii quyết vn đề này, cách phc tp và đơn gin. Trước hết ta s nói v cách
phc tp, và tiếp sau s đề cp v phương pháp đơn gin.
Cách phc tp
Các phc tp là ta s chuyn đổi địa ch prefix và địa ch host sang dng nh phân và sau đó thc
hin các thut toán AND và NOR gia địa ch đó vi subnet mask và sau đó li chuyn đổi kết qu
tr li dng thp phân. Hình 4 minh ha quá trình chuyn đổi địa ch mt octet đơn trong mt địa
ch IPv4 sang dng nh phân, s được chuyn đổi đây là 192.
Hình 4: Chuyn đổi nh phân.
Quá trình tính toán là tương đối đơn gin. Ta s ly s thp phân ban đầu chia cho 2, ly phn dư
ra, ri li chia tiếp thương s va nhn đưc cho 2, li ly phn dư ra, ti khi bng 0. Các phn dư
được sp xếp theo chiu ngược li chính là s nh phân cn tìm. Thc hin phép tính vi c 4
octet ta s được địa ch IP dưới dng nh phân và sau đó ta có th dùng các thut tóan logic AND
và NOR để tím ra được prefix (network address) và host address. Hình 5 s minh ha mt ví d vi
địa ch 192.168.100.80/26.
IPMAC INFORMATIC TECHNOLOGY JSC
Làm vic vi địa ch IP 4
Hình 5: Ví d v tính toán địa ch.
Cách đơn gin
Tt c vic chuyn đổi t dng thp phân sang nh phân và ngược li, t nh phân sang thp phân
tht phc tp và bun t, vy liu có cách nào đơn gin hơn không ? Câu tr li là .
Trước hết chúng ta quan sát thy rng chúng ta ch làm vic vi các s trong cùng mt octet ti
mt thi đim bt k chiu dài ca prefix là gì. Ta gi đó là octet làm vic (hay working octet). Ta
gi s coi tt cc octet nm trước working octet là thuc v địa ch mng, còn các octet nm sau
working octet là thuc v địa ch host.
Vic đầu tiên chúng ta cn làm là xác định octet làm vic ca mình. Công vic tương đổi đơn gin
đó là ly prefix chia cho 8 ri cng thêm 1. Hình dưới đây minh ha mt s ví d.
Note: Mt cách khác để xác định working octet là ta s loi b s octet được ch ra trong phép chia.
Ví d 192.168.100.80/26, ta ly 26 chia cho 8 được 3. Như vy ta s loi b 3 octet ban đầu, suy ra
octet làm vic là octet th 4. Hai cách đều cho cùng mt kết qu.
Khi ta đã xác định được working octet, vy vic tiếp theo ta s làm là gì? th ta s li làm theo
cách đã ch ra phía trên, chuyn đổi qua li gia địa ch dng nh phân và thp phân, dùng thut
toán logic AND và NOR để tìm ra địa ch mng và địa ch host. Nhưng có mt cách đơn gin hơn
để tìm ra phn mng và phn host trong working octet. Thc hin phép toán tương t trên, nhưng
ln này ta ch quan tâm đến phn dư ch không phi toàn b kết qu.
192.168.100.80/26
26 ÷ 8 = 3 và phn dư là 2.
Ta ly phn dư, và tra theo bng sau để tìm ra bước nhy (jump) trong octet. S này là mt s
dng thp phân, là khong cách gia các địa ch mng trong octet.
IPMAC INFORMATIC TECHNOLOGY JSC
Làm vic vi địa ch IP 5
Trong bng trên, dòng đầu tiên là chiu dài prefix trong octet, dòng th hai là giá tr ca prefix khi
bit này được set bng 1, là s lượng các host trong subnet cho prefix length này là bước nhy gia
các địa ch mng vi prefix length xác định được ch ra.
S 2 tương ng vi 64, có nghĩa là có 64 host trong subnet, tương ng vi bước nhy 64. Điu
này có nghĩa là có mi network địa ch 0, 64, 128, và 192 trong octet này. Vic tiếp theo là ta phi
xác định chính xác địa ch ca ta nm trong network nào trong s các network trên. Công vic cũng
tương đối đơn gin : ch vic ly s network ln nht khp vi s octet làm vic. Trong trường hp
này, s ln nht khp vi 80 là 64, vy địa ch mng chính xác s192.168.100.64/26.
Vy địa ch host s là gì ? Vic này tht đơn gin khi ta đã có địa ch network. Ta ch vic ly địa ch
IP tr đi địa ch network sđịa ch host tương ng nm trong network : 80 – 64 = 16. Công vic
này s đơn gin hơn nếu bn thc hành nhiu.
Trong ví d th hai và th ba, bn nhn thy octet làm vic là octet th ba ch không phi octet
th 4. Để tìm địa ch host trong ví d này, ta s tìm địa ch host trong octet th 3, ri tiếp tc vi
octet th 4, coi đó là thuc phn host, vì ta biết rng phn ca ca octet làm vic và octet sau đó
đều thuc v địa ch host.
Summarizations và subnets
Subnets và supernets thông thường là hai vn đề phc tp nht v địa ch IP khi ta mun hiu và
thao tác mt cách nhanh chóng. Nhưng thc cht c hai đều da trên mt cơ s chung là
aggregation. Hình 6 ch ra Aggregation hot động như thế nào.
Hình 6: Address Aggregation.
Hình minh ha trên cho thy có 4 host vi các địa ch ln lượt là 10.2.0.1, 10.2.0.2, 10.1.0.3, và
10.2.0.4. Router A qung cáo mt prefix 10.1.0.0/24 vi ý nghĩa rng có th định tuyến được ti tt
c các host trong di địa ch t 10.1.0.0 đến 10.1.0.255 thông qua router A. Chú ý rng không phi
tt c các địa ch trong di kia đều tn ti, nhưng nếu có mt host trong di đó có th đến được thì
nht định nó phi đi qua router A. Trong IP, địa ch mà router A qung cáo đi là địa ch mng
(network address), ta có th hiu mt cách đơn gin rng đó là địa ch ca đường dây kết ni các
máy tính và router ch không phi để ch mt thiết b c th nào.
Vn đề thường gây nhm ln din ra sau đó. Khi router B cũng qung cáo mt prefix 10.2.2.0/24.
Và khi các gói tin qung cáo được gi t A và B đến router C thì router C làm công vic kết hp li,
hay gp chung li (aggregation) hai bn tin qung cáo thành mt bn tin duy nht. Router C qung
cáo rng “Tt c các gói tin đến các host địa ch nm trong di t 10.1.0.0 đến 10.1.1.255 đều