Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Redistribute vào OSPF

    Câu chuyện CCIE Lab EI tại Brussels: 20 phút trước giờ nghỉ trưa và bài học nhớ đời về OSPF Redistribution


    Có một bài học mà tôi vẫn thường chia sẻ với các học viên CCIE Enterprise Infrastructure sau mỗi kỳ thi Lab.

    Không phải là EVPN, không phải Segment Routing hay SDA Fabric.

    Mà là... Route Redistribution.

    Đó là một tình huống xảy ra trong buổi thi CCIE Lab kéo dài 8 giờ tại Brussels. Khi đồng hồ chỉ còn khoảng 20 phút nữa là đến giờ nghỉ trưa (Lunch Time), tôi gặp một bài yêu cầu khá quen thuộc: redistribute EIGRP vào OSPF. Đọc đề xong, tôi nghĩ: "Phần này chắc chỉ mất vài phút."

    Nhưng rồi mọi thứ lại không đơn giản như vậy.
    Bước đầu tiên: Đừng nhìn vào lệnh redistribute


    Đây là sai lầm mà rất nhiều người mắc phải.

    Khi route không xuất hiện trong OSPF, phản xạ đầu tiên thường là kiểm tra:
    redistribute eigrp 100 subnets

    hoặc:
    show ip protocols

    Nhưng trong Lab CCIE, nếu đi theo hướng này ngay từ đầu, bạn rất dễ mất hàng chục phút.

    Điều đầu tiên tôi luôn tự hỏi là:
    "Route cần redistribute đã thực sự tồn tại trong Routing Table chưa?"

    Đó là quy luật đầu tiên của Redistribution.

    Redistribution không lấy route trực tiếp từ EIGRP Topology Table hay OSPF LSDB.

    Nó chỉ lấy route từ:
    Routing Protocol


    IP Routing Table


    Routing Protocol

    Nếu route chưa được cài vào IP Routing Table thì Redistribution hoàn toàn không có gì để làm.
    Kiểm tra giao thức nguồn trước


    Tôi bắt đầu với giao thức nguồn.

    Nếu đang redistribute từ EIGRP sang OSPF thì việc đầu tiên là kiểm tra EIGRP đã học route hay chưa.

    Ví dụ:
    show ip eigrp topology

    Nếu là OSPF thì sẽ là:
    show ip ospf database

    Nếu là RIP:
    show ip rip database

    Nếu là BGP:
    show ip bgp

    May mắn là trong bài thi hôm đó, EIGRP đã học đầy đủ các route.

    Vậy vấn đề không nằm ở giao thức nguồn.
    Route đã vào Routing Table chưa?


    Bước tiếp theo:
    show ip route

    hoặc
    show ip route <prefix>

    Đây mới là nơi quyết định Redistribution có diễn ra hay không.

    Trong bài thi hôm đó, route đã nằm trong Routing Table.

    Điều đó đồng nghĩa:
    • Neighbor OK.
    • EIGRP hoạt động bình thường.
    • Administrative Distance không có vấn đề.
    • Route Selection cũng không có vấn đề.

    Đến đây tôi mới bắt đầu kiểm tra phần Redistribution.
    OSPF có rất nhiều tùy chọn và cũng rất nhiều "cái bẫy"


    So với RIP hay EIGRP, OSPF có nhiều tham số hơn trong lệnh redistribute.

    Ví dụ:
    router ospf 1
    redistribute eigrp 100 ?

    Cisco IOS sẽ hiển thị:
    metric
    metric-type
    nssa-only
    route-map
    subnets
    tag

    Mỗi tham số đều có thể là nguyên nhân khiến Redistribution hoạt động không đúng như mong muốn.
    Seed Metric không phải là thủ phạm


    Khác với EIGRP và RIP, OSPF đã có Seed Metric mặc định.

    Giá trị mặc định là:
    20

    Điều đó có nghĩa là nếu bạn quên:
    metric

    thì OSPF vẫn redistribute bình thường.

    Đây là khác biệt rất lớn so với EIGRP.

    Trong bài Lab hôm đó, metric hoàn toàn không phải nguyên nhân.
    Kiểm tra Metric-Type


    OSPF hỗ trợ hai loại External Route. Type 2 (E2)


    Đây là mặc định.

    Ví dụ trong Routing Table:
    O E2 10.1.3.0/24

    Với E2, mọi router đều giữ nguyên Seed Metric.

    Ví dụ Seed Metric bằng 20.

    Dù router cách ASBR một hop hay mười hop thì Metric vẫn là 20.
    Type 1 (E1)


    Nếu cấu hình:
    metric-type 1

    thì Metric cuối cùng sẽ bằng:
    Seed Metric
    +
    Toàn bộ Cost OSPF đến ASBR

    Các router càng xa ASBR thì Cost càng lớn.

    Điều này rất quan trọng trong các mạng có nhiều điểm Redistribution.
    Cái bẫy thật sự: Thiếu từ khóa subnets


    Sau khoảng vài phút kiểm tra, tôi nhìn lại cấu hình và phát hiện đúng một dòng:
    redistribute eigrp 100

    Thiếu đúng một từ.
    subnets

    Đây là một lỗi kinh điển.

    Trong OSPFv2:

    Nếu không có từ khóa:
    subnets

    OSPF chỉ redistribute các mạng classful.

    Ví dụ:
    10.0.0.0/8

    hoặc
    172.16.0.0/16

    hoặc
    192.168.1.0/24

    Trong khi toàn bộ bài Lab đều sử dụng VLSM.

    Ví dụ:
    10.1.3.0/24
    10.1.23.0/24

    Những route này sẽ không bao giờ được redistribute nếu thiếu subnets.

    Chỉ cần thêm đúng một từ:
    redistribute eigrp 100 subnets

    toàn bộ bài bắt đầu hoạt động.

    Đó là một bài học mà tôi không bao giờ quên.
    Kiểm tra bằng show ip protocols


    Sau khi sửa cấu hình, tôi luôn xác nhận bằng:
    show ip protocols

    Kết quả mong muốn là:
    Routing Protocol is "ospf 1"

    Redistributing External Routes from

    eigrp 100, includes subnets

    Nếu không thấy dòng:
    includes subnets

    thì tôi biết mình vẫn còn thiếu cấu hình.
    Kiểm tra LSDB


    Bước tiếp theo:
    show ip ospf database

    Nếu Redistribution thành công thì các route sẽ xuất hiện trong:
    Type-5 AS External Link States

    Ví dụ:
    10.1.3.0
    10.1.23.0

    Nếu là NSSA thì trước tiên chúng sẽ xuất hiện dưới dạng:
    Type-7 LSA

    sau đó được ABR chuyển đổi thành Type-5 LSA khi quảng bá sang các Area khác.
    Kiểm tra trên ASBR


    Một lệnh mà tôi gần như luôn sử dụng trong Lab là:
    show ip route 10.1.3.0

    Tôi muốn nhìn thấy:
    Known via "eigrp 100"

    Redistributing via eigrp 100, ospf 1

    Advertised by ospf 1 subnets

    Ba dòng này xác nhận toàn bộ chuỗi xử lý:
    • Route được học từ EIGRP.
    • Route đang được redistribute vào OSPF.
    • OSPF quảng bá route với tùy chọn subnets.

    Kiểm tra trên router khác


    Trên các router không phải ASBR:
    show ip route

    Tôi mong đợi thấy:
    O E2 10.1.3.0/24 [110/20]

    Nếu dùng:
    metric-type 1

    thì route sẽ hiển thị:
    O E1

    Nếu đi qua NSSA:
    O N1
    O N2

    Nhìn vào ký hiệu trong Routing Table là có thể biết ngay loại External Route đang được sử dụng.
    Với OSPFv3 thì sao?


    Nếu là IPv6, tôi sẽ dùng:
    show ipv6 protocols

    Để kiểm tra:
    • Giao thức nào đang được redistribute.
    • Seed Metric.
    • Có sử dụng:
    include-connected

    hay không.

    Sau đó kiểm tra:
    show ipv6 ospf database

    Các route redistribute sẽ xuất hiện trong:
    Type-5 AS External Link States

    Cuối cùng xác nhận trên router khác bằng:
    show ipv6 route

    với các ký hiệu:
    OE2
    OE1
    ON1
    ON2

    giống như OSPFv2 nhưng áp dụng cho IPv6.
    Một lưu ý rất dễ mất điểm trong Lab


    Nếu redistribute từ BGP vào OSPF, EIGRP hoặc RIP, Cisco chỉ redistribute eBGP routes theo mặc định.

    Các route học từ iBGP sẽ không được redistribute.

    Muốn đưa iBGP vào Redistribution phải cấu hình:
    router bgp <ASN>
    bgp redistribute-internal

    Đây là chi tiết nhỏ nhưng hoàn toàn có thể khiến bạn mất điểm nếu không để ý.
    Kết thúc trước giờ nghỉ trưa


    Tôi sửa lại cấu hình, kiểm tra lại toàn bộ các bước một lần cuối:
    • Giao thức nguồn đã học route.
    • Route đã được cài vào IP Routing Table.
    • Redistribution đã có subnets.
    • show ip protocols xác nhận đang redistribute EIGRP và includes subnets.
    • LSDB đã xuất hiện Type-5 LSA.
    • Router khác học được route với ký hiệu O E2.

    Tất cả hoàn tất trước khi giám thị thông báo nghỉ trưa.

    Sau nhiều năm làm việc và hướng dẫn CCIE, tôi nhận ra rằng những bài Redistribution hiếm khi đánh đố bằng cú pháp. Chúng đánh vào tư duy xử lý sự cố. Người mất nhiều thời gian nhất thường là người bắt đầu từ lệnh redistribute. Còn người giải nhanh thường bắt đầu từ câu hỏi rất đơn giản:
    "Route này đã thực sự đi vào IP Routing Table chưa?"

    Chỉ cần trả lời đúng câu hỏi đó, bạn đã loại bỏ được hơn một nửa các nguyên nhân gây lỗi trong những bài Redistribution của CCIE Lab.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X