Tải bản đầy đủ (.pdf) (7 trang)

Xử lý sự cố TCP/IP: Phương pháp cấu trúc - Phần 2: Xử lý sự cố bảng định tuyến pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (143.11 KB, 7 trang )

Xử lý sự cố TCP/IP: Phương pháp cấu trúc - Phần 2: Xử lý sự cố bảng
định tuyến
Bài viết này chúng tôi sẽ giải thích cho các bạn về bảng định tuyến làm việc
như thế nào và làm thế nào để xử lý vấn đề xảy ra với việc định tuyến trong
các mạng Windows.

Trong bài trước của loạt bài này, chúng tôi đã phác thảo một phương pháp cấu
trúc cho việc xử lý sự cố vấn đề mạng TCP/IP trên các mạng Windows. Những
điểm chính trong phương pháp cấu trúc này gồm có 3 phần dưới đây:

• Hiểu các kỹ thuật và giao thức mạng là nền tảng của vấn đề.

• Chỉ ra được các thành phần khác nhau của vấn đề và các thuộc tính của
chúng.

• Chỉ ra các bước xử lý sự cố và công cụ cần phải áp dụng để giải quyết vấn đề.

Nền tảng của mạng TCP/IP là bảng định tuyến, dữ liệu được xây dựng trên mỗi
host trên mạng TCP/IP. Bảng định tuyến phục vụ cho các mục đích dưới đây:

• Chúng được sử dụng để lưu trữ thông tin về các mạng con khác trong mạng
và cách bạn có thể đến được các host trên mỗi mạng đó.

• Chúng chỉ ra host nào (được gọi là địa chỉ IP trong bước nhảy tiếp theo) mỗi
gói được chuyển tiếp đến để cuối cùng đến được host đích mà chúng cần đến.

• Được sử dụng để chỉ ra giao diện mạng nào (gọi là giao diện trong bước nhảy
tiếp theo) được sử dụng để chuyến gói này đến được đích của nó.

Hiểu về bảng định tuyến là một vấn đề vô cùng cần thiết nếu bạn muốn xử lý
sự cố các vấn đề định tuyến một cách hiệu quả trong mạng TCP/IP. Hãy xem


xét các bảng định tuyến làm việc như thế nào, chúng như thế nào trong các
kịch bản khác nhau, các bước xử lý sự cố gì và công cụ gì cần phải sử dụng để
giải quyết các vấn đề khác nhau đó. Chúng ta sẽ bắt đầu bằng việc kiểm tra
bảng định tuyến trên một máy chủ (máy chủ với một giao diện mạng độc lập)
có một địa chỉ IP được gán. Chúng tôi chọn ví dụ này vì nó dễ hiểu đối với mọi
người, ở những phần sau chúng tôi sẽ xem xét các kịch bản phức tạp hơn gồm
có máy chủ với nhiều địa chỉ IP (như các máy chủ web) và máy chủ có nhiều
giao diện mạng (như các máy chủ được kết nối đến cả mạng LAN và một
mạng độc lập được sử dụng cho việc chạy backup).

Bảng định tuyến cho máy chủ có một địa chỉ IP

Dưới đây là bảng định tuyến cho một máy chủ có địa chỉ IP là 172.16.11.30
trong mạng 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
Để hiển thị bảng định tuyến, bạn mở cửa sổ lệnh và đánh route print tại dòng
lệnh. Hãy xem xét từng phần của bảng để có thể hiểu được nó làm việc như thế
nào. Mỗi một mục trong bảng định tuyến này gồm có 5 trường:

• Network Destination. Địa chỉ IP hoặc mạng con trình bày địa chỉ đích được
gán để các gói IP có thể được chuyển tiếp đến.

• Netmask. Một bitmask được sử dụng tương xứng với trường đích trong địa
chỉ IP của gói đối với một trong các đích đến có thể ở trên.

• Gateway. Địa chỉ IP trong bước nhảy tiếp theo để gói tin được chuyển tiếp
đến được địa chỉ đích của nó.

• Interface. Giao diện trong bước nhảy tiếp theo được sử dụng để chuyển tiếp
gói tin đến được địa chỉ đích của nó.

• Metric. Sự hao phí trong định tuyến

Ví dụ 1: Đích đến trên mạng con nội bộ


Trong ví dụ đầu tiên này, máy chủ trong trường hợp địa chỉ IP (172.16.11.30)
phải gửi một gói tin đến một máy khác có địa chỉ IP là 172.16.11.80 (cùng
trong một mạng con). Vì vậy gói tin này có địa chỉ nguồn là 172.16.11.30 và
địa chỉ đích là 172.16.11.80. Vậy Windows đã sử dụng bảng định tuyến của nó
như thế nào:

1. Trước tiên Windows sử dụng đến các route trong bảng một cách lần lượt và
thực hiện toán tử AND giữa địa chỉ đích đến trong gói (172.16.11.80) và
bitmask (Netmask) của route được chọn. Dưới đây là các kết quả thu được,
mỗi một route trong bảng được phân biệt với nhau bằng đích đến trong mạng
của 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. Với mỗi route, kết quả thu được sau khi thực hiện phép toán AND sẽ được
so sánh với trường địa chỉ đích của route, nếu tương xứng thì điều đó có nghĩa
là route có thể được sử dụng để chuyển tiếp nó tin này đến địa chỉ đích của nó.
Nếu có nhiều route cho kết quả hợp lệ thì Windows sẽ sử dụng route tương
xứng dài nhất (route có mặt nạ mạng có bit 1 cao nhất). Nếu đây không phải là
một kết quả tương xứng duy nhất thì Windows sẽ sử dụng sự tương xứng có
mức hao phí thấp nhất (Metric). Cuối cùng, nếu có nhiều tương xứng có cùng
một mức hao phí thấp nhất thì Windows sẽ chọn một cách ngẫu nhiên một
trong số những route như vậy để sử dụng. Từ bảng định tuyến trên, bạn có thể
thấy được kết quả của phép tính AND cho hai kết quả tương xứng (route 1 và
3) vì vậy Windows sẽ sử dụng route 3 (route có sự tương xứng dài nhất) để
chuyển các gói tin đến được địa chỉ đích của nó. Đây là những gì route này thể
hiện trong bảng đị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ử dụng thuật toán dưới đây để quyết định những gì cần thực
hiện tiếp theo:
a, Nếu trường Gateway của route tương xứng với địa chỉ của một trong những
giao diện mạng trên máy chủ (hoặc nếu Gateway là trống) thì Windows sẽ gửi
gói tin trực tiếp đến địa chỉ đích của nó bằng giao diện được chỉ định trong
route.

b, Nếu trường Gateway của route không tương xứng với địa chỉ của bất kỳ giao
diện mạng nào trên máy chủ thì Windows sẽ gửi gói tin đến địa chỉ trong
trường Gateway của route.
Rõ ràng rằng, điều kiện A là một trường hợp trường Gateway của route field
(172.16.11.30) là địa chỉ được gán cho card mạng của máy chủ. Vì vậy

Windows chỉ ra địa chỉ đích nằm trên mạng con nội bộ và điều đó có nghĩa là
Windows có thể gửi gói tin trực tiếp đến địa chỉ mà không cần chuyển tiếp nó
đến các route khác. Vì vậy trong trường hợp này, Windows chỉ đơn giản gửi
gói tin đến địa chỉ 172.16.11.80 bằng sử dụng giao diện mạng 172.16.11.30
của máy chủ.

Ví dụ 2: Đích đến trên mạng con từ xa

Trong trường hợp này chúng ta cũng trải qua quá trình tương tự nhưng máy
chủ ở đây gửi gói tin đến một host nằm trên mạng con khác có địa chỉ
172.16.10.200. Hay nói cách khác gói tin được truyền tải từ nguồn có địa chỉ
172.16.11.30 đến đích có địa chỉ 172.16.10.200. Ở đây Windows sử dụng bảng
định tuyến của nó để quyết định route nào sử dụng trong thời điểm này:

1. Windows kiểm tra trên tất cả các route có trong bảng và thực hiện phép toán
AND giữa địa chỉ đích đến trong gói (172.16.10.200) và bitmask (Netmask)
của route. Các kết quả thu được được liệt 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. Với mỗi một route, kết quả của phép toán AND được so sánh với trường
Network Destination của route, nếu có sự tương xứng có nghĩa là route có thể
được sử dụng để chuyển tiếp gói tin đến địa chỉ đích của nó. Từ bảng thứ hai
của chúng ta ở trên, bạn có thể thấy được chỉ có một trường hợp tương xứng,
hàng 1, nơi mà trường Network Destination là 0.0.0.0 tương xứng với kết quả
của phép toán AND. Vì vậy route mà Windows sẽ sử dụng để chuyển tiếp gói
tin đến địa chỉ đích của 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ử dụng thuật toán đã được giới thiệu phần trên để quyết
định xem những gì cần làm tiếp theo, và trong trường hợp B này trường
Gateway của route (172.16.11.1) không tương xứng với địa chỉ đã gán cho
card mạng của máy chủ có địa chỉ 172.16.11.30. Chính vì vậy Windows sẽ xác
định địa chỉ đích đến là mạng con từ xa và điều đó có nghĩa rằng Windows sẽ
không gửi gói tin trực tiếp đến đích của nó mà thay vì đó là chuyển tiếp nó đến
một router khác sau đó công việc tiếp theo lại dựa vào xử lý trên router tiếp
theo này. Trong trường hợp này, Windows sẽ gửi gói tin đến địa chỉ được thể
hiện trong trường Gateway của route đã chọn (172.16.11.1) bằng sử dụng giao
diện mạng 172.16.11.30 của máy chủ. Khi router tại địa chỉ 172.16.11.1 nhận
được gói tin nó sẽ xác định hành động tiếp theo cần thiết phải thực hiện là gì để
chuyển tiếp gói tin này đến được địa chỉ đích cuối cùng của nó là

172.16.10.200, rõ ràng điều này phụ thuộc vào mạng 172.16.11.10/24 là một
mạng con lân cận đối với 172.16.11.11/24 (ví dụ được kết nối bởi một router
với nó) hoặc là một mạng từ xa (được kết nối qua một số router trong môi
trường mạng giữa chúng).

Các mẹo nhỏ trong việc xử lý sự cố

Vậy những gì có thể xảy ra trong quá trình trên? Đầu tiên đó là Windows có
thể không chọn được router có trường đích Network Destination tương xứng
với phép toán AND giữa trường Netmask của route và địa chỉ đích của gói.
Nếu điều này xảy ra, bạn sẽ gặp phải một lỗi định tuyến và điều này được chỉ
thị bằng một số ứng dụng mạng đang chạy trên máy chủ. Những gì xảy ra
thường là Windows sử dụng TCP để thông báo cho lớp ở trên của ngăn xếp
mạng mà gói không thể được gửi đến và một thông báo lỗi.

Trong tình huống này, có thể bảng định tuyến của bạn bị hỏng hoặc tuyến liên
tục trong bảng định tuyến không hợp lệ. Các tuyến liên tục là tuyến bạn thêm
một cách thủ công vào bảng bằng việc sử dụng lệnh route -p add và khởi động
lại các giá trị của chúng được lưu trong registry. Nếu bạn thêm các tuyến
không hợp lệ thì chúng có thể sinh ra kết quả lạ, hầu hết các trường hợp như
thế dẫn đến tình trạng mất lưu lượng một cách lạ kỳ.

Cách khác, nếu đích đến nằm trên một mạng con từ xa và Windows chuyển
tiếp gói tin này đến một router (địa chỉ cổng mặc định) và router này không thể
chọn tuyến thì những gì thường xảy ra trong trường hợp này là route trả về một
thông báo ICMP "Destination Unreachable – Host Unreachable" (không đến
được đích) đến host gửi gói tin đi. Trong trường hợp này, TCP sẽ thông báo lên
lớp bên trên và một số kiểu thông báo lỗi sẽ được hiển thị. Trong cả hai giải
pháp, cách hữu dụng nhất để xử lý là kiểm tra các bảng định tuyến trên host
đang gửi tin và router trung gian trên đường đến địa chỉ đích, tìm xem các bảng

định tuyến này có thích hợp hay có lỗi gì không. Một bảng định tuyến lỗi được
lưu lại bằng cách khởi tạo lại ngăn xếp TCP/IP thông qua lệnh netsh int ip
reset. Lưu ý rằng quá trình khởi động lại sẽ không gỡ bỏ các route bạn đã thêm
vào bảng định tuyến của mình.

Kết luận

Qua bài viết này bạn có thể hiểu được một chút ít về các bảng định tuyến và
cách xử lý một số sự cố xảy ra đối với chúng, trong bài tiếp theo chúng tôi sẽ
giới thiệu các ví dụ phức tạp hơn như máy chủ với nhiều địa chỉ và vài card
mạng.

×