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

  • Pbr

    Route map là nền tảng của Policy-Based Routing (PBR)


    Động lực cốt lõi (driving force) của Policy-Based Routing (PBR) chính là route map. Vì vậy, nếu bạn không đọc được route map và không hiểu nó đang thực hiện điều gì thì gần như bạn sẽ không thể troubleshooting PBR.

    Hãy xem Ví dụ 16-3, minh họa một cấu hình PBR dựa trên sơ đồ ở Hình 16-1. Mặc dù đây chỉ là một ví dụ đơn giản, nhưng có thể thấy rằng PBR liên quan đến nhiều thành phần cấu hình khác nhau mà bạn phải kiểm tra khi troubleshooting, bao gồm:
    • Access Control List (ACL)
    • Route map với các điều kiện match và hành động set
    • Interface nơi PBR được áp dụng
    Ví dụ 16-3: Cấu hình PBR

    Branch#

    access-list 100 permit ip 10.1.4.0 0.0.0.255 10.1.1.0 0.0.0.255

    !

    route-map PBR_EXAMPLE permit 10
    match ip address 100
    set ip next-hop 10.1.14.1

    !

    interface GigabitEthernet0/0
    ip policy route-map PBR_EXAMPLE
    Những điểm cần kiểm tra khi troubleshooting PBR

    1. Kiểm tra PBR được áp dụng ở đâu


    PBR chỉ tác động đến:
    • Các gói tin đi vào (inbound) trên một interface.
    • Hoặc các gói tin được router tự sinh ra (locally generated traffic) nếu sử dụng Local Policy Routing.

    Do đó cần xác nhận:
    • Route map đã được gắn đúng interface hay chưa.
    • Hay đã được áp dụng cho local policy của router hay chưa.

    Có thể sử dụng:
    show ip policy

    để xem interface nào đang bật PBR và route map nào được áp dụng.

    Nếu kiểm tra Local Policy Routing thì dùng:
    show ip local policy
    2. Kiểm tra thứ tự xử lý của Route Map


    Route map luôn được xử lý:
    • từ sequence number nhỏ đến lớn.

    Ngay khi một sequence được match:
    • Router dừng kiểm tra các sequence tiếp theo.
    • Thực hiện các hành động trong phần set của sequence đó.

    Do đó, thứ tự các sequence cực kỳ quan trọng.

    Sử dụng:
    show route-map

    để xác nhận thứ tự các sequence.
    3. Hiểu đúng ý nghĩa của Permit và Deny


    Đây là điểm rất nhiều người nhầm.

    Đối với PBR:

    permit

    Không có nghĩa là "cho phép gói tin đi qua".

    Nó có nghĩa là:
    Áp dụng Policy-Based Routing cho gói tin theo các lệnh trong phần set.

    Ví dụ:
    route-map PBR permit 10

    sẽ thực hiện:
    set ip next-hop ...

    deny

    Không có nghĩa là chặn gói tin.

    Nó chỉ đơn giản có nghĩa:
    Không áp dụng PBR.

    Sau đó router sẽ:
    • quay về quy trình định tuyến thông thường (normal routing)
    • tra cứu Routing Table.


    Nếu khi tạo sequence bạn không ghi permit hoặc deny thì mặc định sẽ là:
    permit

    Nếu vô tình cấu hình sai permit thành deny (hoặc ngược lại), PBR sẽ không hoạt động như mong muốn.
    Implicit Deny trong Route Map


    Cuối mọi route map luôn tồn tại:
    implicit deny

    Tuy nhiên với PBR, implicit deny không có nghĩa là drop packet.

    Nó chỉ có nghĩa:
    Không áp dụng PBR.

    Sau đó router vẫn định tuyến theo Routing Table.

    Đây là điểm khác biệt rất lớn giữa:
    • Route Map trong PBR
    • ACL

    ACL:
    implicit deny
    → Drop packet

    PBR:
    implicit deny
    → Route normally
    4. Kiểm tra Traffic nào đang được Match


    PBR có thể match nhiều đối tượng khác nhau, ví dụ:
    • ACL
    • Prefix List
    • Inbound Interface
    • nhiều tiêu chí khác

    Dùng:
    show route-map

    để xem phần Match.

    Sau đó kiểm tra từng thành phần.

    Ví dụ:

    Nếu route map dùng:
    match ip address 100

    thì cần kiểm tra ACL:
    show ip access-lists

    Nếu dùng Prefix List:
    show ip prefix-list

    Một lưu ý rất quan trọng:

    Nếu một sequence không có lệnh match, router hiểu là:
    match all
    5. Kiểm tra hành động Set


    Sau khi packet match một sequence, router sẽ thực hiện các lệnh trong phần:
    set

    Ví dụ:
    set ip next-hop 10.1.14.1

    Đây chính là hành động PBR sẽ áp dụng.

    Kiểm tra bằng:
    show route-map
    Ví dụ show ip policy

    Branch# show ip policy

    Interface Route map
    Gi0/0 PBR_EXAMPLE

    Kết quả cho thấy:
    • Interface Gi0/0 đang áp dụng route map PBR_EXAMPLE.

    Ví dụ show route-map

    Branch# show route-map

    route-map PBR_EXAMPLE, permit, sequence 10

    Match clauses:
    ip address (access-lists): 100

    Set clauses:
    ip next-hop 10.1.14.1

    Policy routing matches: 30 packets, 3420 bytes

    Có thể đọc như sau:
    • Sequence 10
    • permit
    • match ACL 100
    • set next-hop là 10.1.14.1
    • đã có 30 packet được PBR xử lý

    Kiểm tra đường đi bằng Traceroute


    Khi troubleshooting PBR, cần xác minh packet thực sự đi theo đường nào.

    Có thể dùng:

    Trên Windows:
    tracert

    Trên Cisco IOS:
    traceroute

    Ví dụ:
    C:\> tracert 10.1.1.1

    Kết quả:
    10.1.4.4


    10.1.14.1

    Trong khi Routing Table lại cho thấy:
    show ip route 10.1.1.1Next Hop

    10.1.24.2

    Điều này chứng minh:

    Routing Table muốn đi:
    10.1.24.2

    Nhưng vì PBR được áp dụng nên packet lại đi:
    10.1.14.1

    Nếu traceroute tới một địa chỉ khác:
    192.0.2.1

    thì kết quả là:
    10.1.24.2

    vì traffic này không match ACL nên không bị PBR tác động.
    Kiểm tra thống kê PBR

    show route-mapPolicy routing matches:
    36 packets
    3780 bytes

    Con số này tăng lên khi packet thực sự được PBR xử lý.

    Đây là một trong những chỉ số rất hữu ích để xác nhận route map có đang hoạt động hay không.
    Theo dõi PBR theo thời gian thực


    Để quan sát PBR hoạt động realtime:
    debug ip policy

    Ví dụ:
    IP: s=10.1.4.1 (GigabitEthernet0/0),
    d=10.1.1.1,
    policy match

    IP: route map PBR_EXAMPLE,
    item 10,
    permit

    IP: policy routed

    GigabitEthernet0/0


    FastEthernet1/0

    Next-Hop

    10.1.14.1

    Log trên cho biết:
    • Packet đến từ 10.1.4.1.
    • Đi vào GigabitEthernet0/0.
    • Destination là 10.1.1.1.
    • Match route map PBR_EXAMPLE, sequence 10.
    • Sequence là permit, nên PBR được áp dụng.
    • Router chuyển packet từ Gi0/0 sang Fa1/0.
    • Next-hop được ép thành 10.1.14.1 thay vì sử dụng kết quả tra cứu trong Routing Table.

    Tổng kết


    Khi troubleshooting Policy-Based Routing, nên kiểm tra theo trình tự sau:
    1. Xác nhận PBR đã được áp dụng đúng interface hoặc Local Policy bằng show ip policy hoặc show ip local policy.
    2. Kiểm tra thứ tự các sequence trong route map bằng show route-map, vì router xử lý từ sequence thấp đến cao và dừng ngay khi có match.
    3. Xác minh ý nghĩa của permit và deny: permit sẽ áp dụng PBR theo các lệnh set, còn deny hoặc implicit deny sẽ bỏ qua PBR và định tuyến theo Routing Table.
    4. Kiểm tra điều kiện match (ACL, Prefix List, Interface...) và xác minh các đối tượng liên quan bằng các lệnh như show ip access-lists hoặc show ip prefix-list.
    5. Kiểm tra phần set để đảm bảo hành động (ví dụ set ip next-hop) đúng với thiết kế.
    6. Dùng traceroute để xác nhận lưu lượng thực tế đi theo đường PBR mong muốn.
    7. Theo dõi bộ đếm Policy routing matches trong show route-map và sử dụng debug ip policy khi cần phân tích hoạt động của PBR theo thời gian thực.
    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