Với lỗi liên kết một chiều, ta có 2 cách để giải quyết để ngăn chặn tình trạng vòng lặp đó là sử dụng giao thức UDLD hoặc Loop Guard. Trong bài trước ta đã tìm hiểu kỹ về Loop Guard, vì thế hôm nay ta sẽ tìm hiểu kỹ hơn về giao thức UDLD và cách để cấu hình nó!
Giao thức UDLD
UDLD là viết tắt của Unidirectional Link Detection, đây là giao thức độc quyền của Cisco dùng để quan sát cấu trúc liên kết vật lý của cáp và phát hiện các lỗi liên kết một chiều. UDLD là tính năng bổ sung trong giao thức STP để loại bỏ các vòng lặp chuyển mạch như tính năng Loop Guard.
Các liên kết mạng một chiều xảy ra khi dữ liệu chỉ có thể di chuyển một chiều trên liên kết, không thể gửi và nhận dữ liệu ở cả hai đầu của một liên kết. Điều này có thể xảy ra do nhiều nguyên nhân, bao gồm lỗi phần cứng, lỗi cáp mạng, hoặc cấu hình sai lầm. Lỗi này thường xảy ra ở kết nối cáp quang nhưng cũng có thể xảy ra trên cáp đồng.
UDLD hoạt động bằng cách trao đổi các tin nhắn giữa các cặp thiết bị kết nối với nhau, như các switch hoặc các cổng trên cùng một switch. Các tin nhắn này xác định xem liên kết mạng có thể gửi và nhận dữ liệu cả hai chiều hay không.
Khi phát hiện một liên kết mạng một chiều, UDLD có thể thông báo cho hệ thống và thực hiện các biện pháp như tạm dừng hoặc đóng cửa cổng để ngăn chặn lưu lượng dữ liệu không mong muốn hoặc lỗi.
UDLD hoạt động như thế nào?
Giao thức UDLD dùng cơ chế phản hồi để phát hiện các liên kết 1 chiều. Để làm được điều này, nó sẽ thu thập thông tin về các cổng của thiết bị lân cận và lưu trong bảng Cache. Cứ mỗi 15 giây, nó sẽ gửi các gói tin “Hello” trên tất cả các cổng hoạt động để thông báo cho các thiết bị.
Nếu một thiết bị nhận được gói tin “hello” nó sẽ lưu vào Cache và lưu trong RAM trong một khoảng thời gian xác định. Khoảng thời gian này được gọi là thời gian chờ. Hết thời gian thì gói tin sẽ bị coi là đã cũ và không được lưu trữ.
Khi nhận được tin nhắn Hello mới khi mục cũ chưa hết thời gian chờ thì mục cũ sẽ bị loại bỏ và thay thế bằng mục nhập mới và thời gian chờ được đặt lại. Nếu các UDLD không gửi, Switch sẽ cố kết nối lại với trong 8 lần và nếu vẫn không được thì nó sẽ hoạt động dưa trên chế độ hoạt động UDLD.
Khi một cổng bị vô hiệu hóa và UDLD vẫn đang chạy hay UDLD bị tắt trên 1 cổng hoặc thiết bị thì tất cả các mục bộ điệm hiện có cho cổng sẽ bị ảnh hưởng bởi thay đổi cấu hình sẽ bị xóa. UDLD gửi ít nhất 1 tin nhắn để thông báo xóa phần thông tin của nó trên Cache. Điều này giúp cache luôn được liên kết chặt chẽ giữa các thiết bị kết nối.
UDLD phát hiện liên kết 1 chiều thế nào?
Các Switch gửi gói tin UDLD thông báo thông tin ID thiết bị và cổng của nó tới các thiết bị lân cận và cũng nhận các gói tin UDLD từ các thiết bị lân cận để xác định trạng thái liên kết mạng:
- Nếu bộ chuyển mạch không nhận được phản hồi của Switch lân cận trong 1 khoảng thời gian quy định thì nó sẽ coi liên kết có vấn đề và vô hiệu hóa cổng.
- Các gói tin UDLD cho biết 1 cổng có bị lỗi 1 chiều hay không bằng cách so sánh ID của Switch và cổng được gửi và nhận từ các Switch lân cận. Nếu không khớp thì cổng đó sẽ bị vô hiệu hóa.
- Trong trường hợp 1 cổng Switch nhận được gói tin UDLD từ cùng 1 ID thiết bị và ID cổng của chính nó thì đó cũng có cổng tự lặp và là lỗi 1 chiều.
2 chế độ hoạt động UDLD
UDLD có hai chế độ hoạt động:
Chế độ bình thường (Normal Mode):
- Dựa vào thông tin từ tin nhắn UDLD để xác định trạng thái của liên kết mạng.
- Nếu phát hiện liên kết mạng một chiều, cổng sẽ được tắt (err-disabled).
- Nếu không nhận được tin nhắn UDLD từ hàng xóm, cổng vẫn hoạt động và ghi log.
Chế độ tấn công (Aggressive Mode):
- Xem mất tin nhắn UDLD từ hàng xóm là dấu hiệu của vấn đề nghiêm trọng.
- Nếu phát hiện liên kết mạng một chiều, cổng sẽ được tắt.
- Nếu không nhận được tin nhắn UDLD, cổng sẽ bị tắt sau 8 lần thử kết nối lại.
Cách cấu hình UDLD
Theo mặc định, UDLD sẽ bị tắt và ta có thể cấu hình nó ở chế độ Global dành cho các giao diện cáp quang hoặc có thể cấu hình cho từng cổng.
– Kích hoạt UDLD cho tất cả cổng quang:
SW(config)#udld {enable | aggressive} | message-time seconds}
Trong đó:
- Enable: kích hoạt UDLD ở chế độ bình thường
- Aggressive: kích hoạt UDLD ở chế độ tấn công
- Message-time seconds: khoảng thời gian giữa tin nhắn hello thường từ 7 đến 90 giây.
– Kích hoạt UDLD trên 1 cổng cụ thể:
SW(config-if)#udld port [aggressive]
Lựa chọn chế độ Aggressive nếu cần, không thì nó sẽ đặt ở chế độ mặc định.
– Cấu hình khôi phục trạng thái cổng tự động trong UDLD:
- Hẹn thời gian phục hồi:
SW(config)#errdisable recovery cause udld
- Chỉ định thời gian phục hồi:
SW(config)#errdisable recovery interval interval
– Khôi phục trạng thái cổng thủ từ UDLD:
SW#udld reset
– Xác minh UDLD:
- Kiểm tra UDLD cho tất cả các cổng:
SW#show udld
- Kiểm tra UDLD cho 1 cổng cụ thể:
SW#show udld interface-id
Mong rằng qua bài viết này, bạn đã hiểu rõ hơn về tính năng UDLD trong giao thức STP!
Thông Tin Về Tác Giả
Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!