Xem mẫu
- 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ó.
172.16.11.80
Route Netmask 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:
172.16.10.200
Route Netmask 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.
nguon tai.lieu . vn