X lý s c TCP/IP: Phương pháp cu trúc - Phn 2: X lý s c bng
định tuyến
Bài viết này chúng tôi s gii thích cho các bn v bng
định tuyến làm vic như thế nào và làm thế nào để x
vn đề xy ra vi vic định tuyến trong các mng
Windows.
Trong bài trước ca lot bài này, chúng tôi đã phác tho
mt phương pháp cu trúc cho vic x lý s c vn đề
mng TCP/IP trên các mng Windows. Nhng đim
chính trong phương pháp cu trúc này gm có 3 phn
dưới đây:
• Hiu các k thut và giao thc mng là nn tng ca vn đề.
• Ch ra được các thành phn khác nhau ca vn đề và các thuc tính ca chúng.
• Ch ra các bước x lý s c và công c cn phi áp dng để gii quyết vn đề.
Nn tng ca mng TCP/IP là bng định tuyến, d liu được xây dng trên mi host trên mng
TCP/IP. Bng định tuyến phc v cho các mc đích dưới đây:
• Chúng được s dng để lưu tr thông tin v các mng con khác trong mng và cách bn có th
đến được các host trên mi mng đó.
• Chúng ch ra host nào (được gi là địa ch IP trong bước nhy tiếp theo) mi gói được chuyn
tiếp đến để cui cùng đến được host đích mà chúng cn đến.
Được s dng để ch ra giao din mng nào (gi là giao din trong bước nhy tiếp theo) được
s dng để chuyến gói này đến được đích ca nó.
Hiu v bng định tuyến là mt vn đề vô cùng cn thiết nếu bn mun x lý s c các vn đề
định tuyến mt cách hiu qu trong mng TCP/IP. Hãy xem xét các bng định tuyến làm vic
như thế nào, chúng như thế nào trong các kch bn khác nhau, các bước x lý s c gì và công c
gì cn phi s dng để gii quyết các vn đề khác nhau đó. Chúng ta s bt đầu bng vic kim
tra bng định tuyến trên mt máy ch (máy ch vi mt giao din mng độc lp) có mt địa ch
IP được gán. Chúng tôi chn ví d này vì nó d hiu đối vi mi người, nhng phn sau chúng
tôi s xem xét các kch bn phc tp hơn gm có máy ch vi nhiu địa ch IP (như các máy ch
web) và máy ch có nhiu giao din mng (như các máy ch được kết ni đến c mng LAN và
mt mng độc lp được s dng cho vic chy backup).
Bng định tuyến cho máy ch có mt địa ch IP
Dưới đây là bng định tuyến cho mt máy chđịa ch IP là 172.16.11.30 trong mng
172.16.11.0/24:
C:\>route print
IPv4 Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 03 ff 25 88 8c ...... Intel 21140-Based PCI Fast Ethernet Adapter
(Generic)
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.11.1 172.16.11.30 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
172.16.11.0 255.255.255.0 172.16.11.30 172.16.11.30 20
172.16.11.30 255.255.255.255 127.0.0.1 127.0.0.1 20
172.16.255.255 255.255.255.255 172.16.11.30 172.16.11.30 20
224.0.0.0 240.0.0.0 172.16.11.30 172.16.11.30 20
255.255.255.255 255.255.255.255 172.16.11.30 172.16.11.30 1
Default Gateway: 172.16.11.1
===========================================================================
Persistent Routes:
None
Để hin th bng định tuyến, bn m ca s lnh và đánh route print ti dòng lnh. Hãy xem xét
tng phn ca bng để có th hiu được nó làm vic như thế nào. Mi mt mc trong bng định
tuyến này gm có 5 trường:
Network Destination. Địa ch IP hoc mng con trình bày địa ch đích được gán để các gói IP
có th được chuyn tiếp đến.
Netmask. Mt bitmask được s dng tương xng vi trường đích trong địa ch IP ca gói đối
vi mt trong các đích đến có th trên.
Gateway. Địa ch IP trong bước nhy tiếp theo để gói tin được chuyn tiếp đến được địa ch
đích ca nó.
Interface. Giao din trong bước nhy tiếp theo được s dng để chuyn tiếp gói tin đến được
địa ch đích ca nó.
Metric. S hao phí trong định tuyến
Ví d 1: Đích đến trên mng con ni b
Trong ví d đầu tiên này, máy ch trong trường hp địa ch IP (172.16.11.30) phi gi mt gói
tin đến mt máy khác có địa ch IP là 172.16.11.80 (cùng trong mt mng con). Vì vy gói tin
này có địa ch ngun là 172.16.11.30 và địa ch đích là 172.16.11.80. Vy Windows đã s dng
bng định tuyến ca nó như thế nào:
1. Trước tiên Windows s dng đến các route trong bng mt cách ln lượt và thc hin toán t
AND gia địa ch đích đến trong gói (172.16.11.80) và bitmask (Netmask) ca route được chn.
Dưới đây là các kết qu thu được, mi mt route trong bng được phân bit vi nhau bng đích
đến trong mng ca nó.
Route Netmask 172.16.11.80 AND
Netmask
0.0.0.0 0.0.0.0 0.0.0.0
127.0.0.0 255.0.0.0 172.0.0.0
172.16.11.0 255.255.255.0 172.16.11.0
172.16.11.30 255.255.255.255 172.16.11.80
172.16.255.255 255.255.255.255 172.16.11.80
224.0.0.0 224.0.0.0 160.0.0.0
255.255.255.255 255.255.255.255 172.16.11.80
2. Vi mi route, kết qu thu được sau khi thc hin phép toán AND s được so sánh vi trường
địa ch đích ca route, nếu tương xng thì điu đó có nghĩa là route có th được s dng để
chuyn tiếp nó tin này đến địa ch đích ca nó. Nếu có nhiu route cho kết qu hp l thì
Windows s s dng route tương xng dài nht (route có mt n mng có bit 1 cao nht). Nếu
đây không phi là mt kết qu tương xng duy nht thì Windows s s dng s tương xng có
mc hao phí thp nht (Metric). Cui cùng, nếu có nhiu tương xng có cùng mt mc hao phí
thp nht thì Windows s chn mt cách ngu nhiên mt trong s nhng route như vy để s
dng. T bng định tuyến trên, bn có th thy được kết qu ca phép tính AND cho hai kết qu
tương xng (route 1 và 3) vì vy Windows s s dng route 3 (route có s tương xng dài nht)
để chuyn các gói tin đến được địa ch đích ca nó. Đây là nhng gì route này th hin trong
bng định tuyến.
Network Destination Netmask Gateway Interface Metric
172.16.11.0 255.255.255.0 172.16.11.30 172.16.11.30 20
3. Windows s s dng thut toán dưới đây để quyết định nhng gì cn thc hin tiếp theo:
a, Nếu trường Gateway ca route tương xng vi địa ch ca mt trong nhng giao din mng
trên máy ch (hoc nếu Gateway là trng) thì Windows s gi gói tin trc tiếp đến địa ch đích
ca nó bng giao din được ch định trong route.
b, Nếu trường Gateway ca route không tương xng vi địa ch ca bt k giao din mng nào
trên máy ch thì Windows s gi gói tin đến địa ch trong trường Gateway ca route.
Rõ ràng rng, điu kin A là mt trường hp trường Gateway ca route field (172.16.11.30) là
địa ch được gán cho card mng ca máy ch. Vì vy Windows ch ra địa ch đích nm trên
mng con ni bđiu đó có nghĩa là Windows có th gi gói tin trc tiếp đến địa ch
không cn chuyn tiếp nó đến các route khác. Vì vy trong trường hp này, Windows ch đơn
gin gi gói tin đến địa ch 172.16.11.80 bng s dng giao din mng 172.16.11.30 ca máy
ch.
Ví d 2: Đích đến trên mng con t xa
Trong trường hp này chúng ta cũng tri qua quá trình tương t nhưng máy ch đây gi gói tin
đến mt host nm trên mng con khác có địa ch 172.16.10.200. Hay nói cách khác gói tin được
truyn ti t ngun có địa ch 172.16.11.30 đến đích có địa ch 172.16.10.200. đây Windows
s dng bng định tuyến ca nó để quyết định route nào s dng trong thi đim này:
1. Windows kim tra trên tt c các route có trong bng và thc hin phép toán AND gia địa ch
đích đến trong gói (172.16.10.200) và bitmask (Netmask) ca route. Các kết qu thu được được
lit kê dưới đây:
Route Netmask 172.16.10.200 AND
Netmask
0.0.0.0 0.0.0.0 0.0.0.0
127.0.0.0 255.0.0.0 172.0.0.0
172.16.11.0 255.255.255.0 172.16.10.0
172.16.11.30 255.255.255.255 172.16.10.200
172.16.255.255 255.255.255.255 172.16.10.200
224.0.0.0 224.0.0.0 160.0.0.0
255.255.255.255 255.255.255.255 172.16.10.200
2. Vi mi mt route, kết qu ca phép toán AND được so sánh vi trường Network Destination
ca route, nếu có s tương xng có nghĩa là route có th được s dng để chuyn tiếp gói tin đến
địa ch đích ca nó. T bng th hai ca chúng ta trên, bn có th thy được ch có mt trường
hp tương xng, hàng 1, nơi mà trường Network Destination là 0.0.0.0 tương xng vi kết qu
ca phép toán AND. Vì vy route mà Windows s s dng để chuyn tiếp gói tin đến địa ch
đích ca nó s là route dưới đây:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.11.1 172.16.11.30 20
3. Sau khi Windows s dng thut toán đã được gii thiu phn trên để quyết định xem nhng gì
cn làm tiếp theo, và trong trường hp B này trường Gateway ca route (172.16.11.1) không
tương xng vi địa ch đã gán cho card mng ca máy chđịa ch 172.16.11.30. Chính vì vy
Windows s xác định địa ch đích đến là mng con t xa và điu đó có nghĩa rng Windows s
không gi gói tin trc tiếp đến đích ca nó mà thay vì đó là chuyn tiếp nó đến mt router khác
sau đó công vic tiếp theo li da vào x lý trên router tiếp theo này. Trong trường hp này,
Windows s gi gói tin đến địa ch được th hin trong trường Gateway ca route đã chn
(172.16.11.1) bng s dng giao din mng 172.16.11.30 ca máy ch. Khi router ti địa ch
172.16.11.1 nhn được gói tin nó s xác định hành động tiếp theo cn thiết phi thc hin là gì
để chuyn tiếp gói tin này đến được địa ch đích cui cùng ca nó là 172.16.10.200, rõ ràng điu
này ph thuc vào mng 172.16.11.10/24 là mt mng con lân cn đối vi 172.16.11.11/24 (ví
d được kết ni bi mt router vi nó) hoc là mt mng t xa (được kết ni qua mt s router
trong môi trường mng gia chúng).
Các mo nh trong vic x lý s c
Vy nhng gì có th xy ra trong quá trình trên? Đầu tiên đó là Windows có th không chn
được router có trường đích Network Destination tương xng vi phép toán AND gia trường
Netmask ca route và địa ch đích ca gói. Nếu điu này xy ra, bn s gp phi mt li định
tuyến và điu này được ch th bng mt s ng dng mng đang chy trên máy ch. Nhng gì
xy ra thường là Windows s dng TCP để thông báo cho lp trên ca ngăn xếp mng mà gói
không th được gi đến và mt thông báo li.
Trong tình hung này, có th bng định tuyến ca bn b hng hoc tuyến liên tc trong bng
định tuyến không hp l. Các tuyến liên tc là tuyến bn thêm mt cách th công vào bng bng
vic s dng lnh route -p add và khi động li các giá tr ca chúng được lưu trong registry.
Nếu bn thêm các tuyến không hp l thì chúng có th sinh ra kết qu l, hu hết các trường hp
như thế dn đến tình trng mt lưu lượng mt cách l k.
Cách khác, nếu đích đến nm trên mt mng con t xa và Windows chuyn tiếp gói tin này đến
mt router (địa ch cng mc định) và router này không th chn tuyến thì nhng gì thường xy
ra trong trường hp này là route tr v mt thông báo ICMP "Destination Unreachable – Host
Unreachable" (không đến được đích) đến host gi gói tin đi. Trong trường hp này, TCP s
thông báo lên lp bên trên và mt s kiu thông báo li s được hin th. Trong c hai gii pháp,
cách hu dng nht để x lý là kim tra các bng định tuyến trên host đang gi tin và router
trung gian trên đường đến địa ch đích, tìm xem các bng định tuyến này có thích hp hay có li
gì không. Mt bng định tuyến li được lưu li bng cách khi to li ngăn xếp TCP/IP thông
qua lnh netsh int ip reset. Lưu ý rng quá trình khi động li s không g b các route bn đã
thêm vào bng định tuyến ca mình.
Kết lun
Qua bài viết này bn có th hiu được mt chút ít v các bng định tuyến và cách x lý mt s s
c xy ra đối vi chúng, trong bài tiếp theo chúng tôi s gii thiu các ví d phc tp hơn như
máy ch vi nhiu địa ch và vài card mng