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.

Announcement

Collapse
No announcement yet.

CCNP Encor Lab 3 - Tinh chỉnh STP và kỹ thuật Root Guard, BPDU Guard, BBDU filer, Loop Guard

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • CCNP Encor Lab 3 - Tinh chỉnh STP và kỹ thuật Root Guard, BPDU Guard, BBDU filer, Loop Guard

    SƠ ĐỒ
    MỤC TIÊU

    Phần 1: Cấu hình cơ bản

    Phần 2: Tinh chỉnh Root Bridge trên từng VLAN, Tinh chỉnh Cost và Port Priority trên interface thể chọn lại Root Port
    Phần 3: Kỹ thuật Root Guard, BPDU Guard, BPDU filer, Loop Guard

    NGỮ CẢNH
    Khi tất cả các VLAN đều chọn 1 Root bridge duy nhất dẫn đến tất cả các VLAN đề thông qua Switch này, điều này dẫn đến quá tải cho Root Bridge. Khi đó ta nên chỉnh mỗi VLAN sẽ có 1 Root bridge khác nhau để tối ưu việc truyền data trên từng VLAN. Cần bảo vệ cây STP của hệ thống không bị thay đổi khi có thiết bị gắn mới gắn vào hệ thống (Bảo vệ root bridge). Cần ngăn chặn 1 switch lạ tham gia vào cây STP và chống loop bằng cơ chế Loop Guard.



    THỰC HIỆN LAB

    1. Phần 1: Kết nối và cấu hình cơ bản các thiết bị
    1.1. Kết nối thiết bị như sơ đồ hình vẽ
    1.2. Cấu hình cơ bản cho từng switch
    Code:
    Switch(config)#hostname D1
    D1(config)#spanning-tree mode rapid-pvst
    D1(config)#banner motd # D1, STP Tuning and Protection #
    D1(config)#line con 0
    D1(config-line)#exec-timeout 0 0
    D1(config-line)#logging synchronous
    D1(config-line)#exit
    D1(config)#interface range E0/0-2
    D1(config-if-range)# switchport trunk encapsulation dot1q
    D1(config-if-range)# switchport mode trunk
    D1(config-if-range)# no shutdown
    D1(config-if-range)# exit
    D1(config)#vlan 2
    D1(config-vlan)# name SecondVLAN
    D1(config-vlan)# exit
    Code:
    Switch(config)#hostname D2
    D2(config)#spanning-tree mode rapid-pvst
    D2(config)#banner motd # D2, STP Tuning and Protection#
    D2(config)#line con 0
    D2(config-line)#exec-timeout 0 0
    D2(config-line)#logging synchronous
    D2(config-line)#exit
    D2(config)#interface range E0/0-2
    D2(config-if-range)# switchport trunk encapsulation dot1q
    D2(config-if-range)# switchport mode trunk
    D2(config-if-range)# no shutdown
    D2(config-if-range)# exit
    D2(config)#vlan 2
    D2(config-vlan)# name SecondVLAN
    D2(config-vlan)# exit
    Code:
    A1(config)#hostname A1
    A1(config)#banner motd # A1, STP Tuning and Protection #
    A1(config)#spanning-tree mode rapid-pvst
    A1(config)#line con 0
    A1(config-line)# exec-timeout 0 0
    A1(config-line)# logging synchronous
    A1(config-line)# exit
    A1(config)#interface range E0/0-3
    A1(config-if-range)# switchport trunk encapsulation dot1q
    A1(config-if-range)# switchport mode trunk
    A1(config-if-range)# no shutdown
    A1(config-if-range)# exit
    A1(config)#vlan 2
    A1(config-vlan)# name SecondVLAN
    A1(config-vlan)# exit
    Kết quả của STP mặc định:


    Phần 2: Tinh chỉnh Root Bridge trên từng VLAN, Tinh chỉnh Cost và Port Priority trên interface
    2.1. Cấu hình D1 làm root bridge cho VLAN 1, D2 làm root bridge cho VLAN 2. Đồng thời, D2 là secordary root bridge cho VLAN 1, D1 là secondary root bridge cho VLAN 2

    Code:
    [FONT=Courier New]D1(config)# [B]spanning-tree vlan 1 root primary[/B][/FONT]
    [FONT=Courier New]D1(config)# [B]spanning-tree vlan 2 root secondary[/B][/FONT]
    Code:
    [FONT=Courier New]D2(config)# [B]spanning-tree vlan 1 root secondary[/B][/FONT]
    [FONT=Courier New]D2(config)# [B]spanning-tree vlan 2 root primary[/B][/FONT]
    Kiểm tra lại trên Switch access:



    2.2. Thay đổi root port từ A1 về D1
    Cách 1: Trên A1, Thay đổi cost trên cổng E0/1 từ 100 thành 90, lúc này cost của cổng E0/0 =100 lớn hơn cost 90 trên cổng E0/1

    Code:
    A1(config)#int range e0/0-3
    A1(config-if-range)#shutdown
    A1(config-if-range)#int e0/1
    [B]A1(config-if)#spanning-tree cost 90[/B]
    A1(config-if)#int range e0/0-3
    A1(config-if-range)#no shut
    Xem kết quả thay đổi trên A1:

    Cách 2: Trên D1, Thay đổi port priority trên cổng E0/2 từ 128.2 thành 64.2. Lúc này đứng từ A1, ta có sender portID nhận được trên E0/1 nhỏ hơn nên trở thành root port
    Trên A1, Khôi phục cách 1 thành mặc định ban đầu, ta chỉnh cost E0/1 về lại 100
    Code:
    A1(config)#int range e0/0-3
    A1(config-if-range)#shutdown
    A1(config-if-range)#int e0/1
    [B]A1(config-if)#no spanning-tree cost[/B]
    A1(config-if)#int range e0/0-3
    A1(config-if-range)#no shut
    Trên D1, Chỉnh priority của port E0/2 thành 64
    Code:
    D1(config)#int range e0/0-3
    D1(config-if-range)#shutdown
    D1(config-if-range)#int e0/2
    [B]D1(config-if)#spanning-tree port-priority 64[/B]
    D1(config-if)#int range e0/0-3
    D1(config-if-range)#no shut
    Xem kết quả thay đổi trên A1:


    Phần 3: Kỹ thuật Root Guard, BPDU Guard, BPDU filer, Loop Guard
    3.1. Root Guard: Bảo vệ cây STP bằng cách ngăn chặn 1 Switch có priority tốt hơn ( Nhỏ hơn) trở thành root bridge

    Bật tính năng Root Guard trên 2 interface kết nối với A1
    Code:
    D2(config)#int range e0/1-2
    [B]D2(config-if-range)#spanning-tree guard root[/B]
    D2(config-if-range)#exit
    Trên A1, vào VLAN 2 cấu hình A1 trở thành root bridge bằng câu lệnh:
    Code:
    [FONT=Courier New]A1(config)# [B]spanning-tree vlan 2 priority 16384[/B][/FONT]
    Sau đó show kết quả: Do A1 cố gắng gửi BPDU để trở thành root bridge trên VLAN với priority nhỏ hơn. Trên D2, sẽ bị block 2 cổng kết nối với A1 này


    3.2. BPDU Guard: Ngăn chặn 1 Switch tham gia vào Spanning tree, khi switch cắm vào hệ thống, có gửi BPDU thì sẽ ngay lập tức đưa port vào trạng thái err-disable.
    Trên interface E0/1, sử dụng lệnh spanning-tree bpduguard enable. Sau đó, cổng này sẽ vào trạng thái Err-disable.
    Code:
    A1(config)# [B]interface E0/1[/B]
    A1(config-if)# [B]spanning-tree bpduguard enable[/B]
    Lúc này Syslog sẽ thông báo:
    Code:
    *Jul 5 13:23:18.914: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Et0/1 with BPDU Guard enabled. Disabling port.
    A1(config-if)#
    *Jul 5 13:23:18.914: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/1, putting Et0/1 in err-disable state
    *Jul 5 13:23:19.920: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
    A1(config-if)#
    *Jul 5 13:23:20.919: %LINK-3-UPDOWN: Interface Ethernet0/1, changed state to down
    Để làm cổng up lại, ta cần shutdown cổng và No spanning-tree bpduguard enable trên E0/1. Sau đó no shutdown cổng E0/1.

    3.3. BPDU filter:
    - Cách 1:
    Nếu cấu hình trên mode interface "spanning-tree bpdufilter enable" port sẽ ngưng gởi và nhận BPDU.
    - Cách 2:Nếu cấu hình trên mode global thì BPDU filter sẽ chỉ ảnh hưởng đến những portfast. Khi port up nó chỉ gửi 11 gói BPDU và ngừng. Nếu interface nằm trong cấu hình BPDU filter + portfast nhận BPDU nhiều lần, thì BPDU filter và portfast sẽ bị "deactivated" trên cổng đó và biến nó thành 1 cổng chạy spanning tree bình thường. Khi cấu hình BPDU filter ở mode global, nó sẽ không ngăn chặn port nhận và xử lý BPDU mà chỉ ngăn chặn gửi BPDU thôi.
    Ví dụ ta có Interface E0/5 nào đó:
    Code:
    A1(config)#Interface E0/5
    [B]A1(config-if)# [/B][B][B]spanning-tree bpdufilter enable[/B]
    hoặc và global:[/B]
    [B]A1(config)#[FONT=Arial]spanning-tree portfast bpdufilter default[/FONT][/B]
    3.4. Loop Guard:
    Khi Root Port và Alternate port ngưng nhận BPDU, Loop Guard sẽ ngăn chặn 2 port này trở thành designated port.Thông thường, các port bao gồm cả blocking port vẫn phải nhận và xử lý BPDU, Khi vô tình không nhận được BPDU, các port này nghĩ rằng kết nối đối diện của mình bị vấn đề mà nó sẽ bật lên là Designated port. Lúc này vòng tròn giữa các switch hình thành và gây loop hệ thống.
    - Cách 1: Để bật tính năng Loop guard chúng ta vào mode global và dùng lệnh: spanning-tree loopguard default global
    - Cách 2: Để bật tính năng Loop guard trên interface, chúng ta vào interface và dùng lệnh: spanning-tree guard loop

    Thực hiện bật tính năng Loop guard trên E0/1

    Code:
    A1(config)#int e0/1
    [B]A1(config-if)#spanning-tree guard loop[/B]
    A1(config-if)#exit
    Trên D1, Ta ngưng không cho cổng E0/2 gửi và nhận BPDU bằng cách bật BPDU filter:
    Code:
    D1(config)#int e0/2
    D1(config-if)#spanning-tree bpdufilter enable
    Lúc này ta nhận được syslog cảnh báo:
    *Jul 5 14:28:14.545: %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port Ethernet0/1 on VLAN0001.


    Tác giả,

    Võ Văn Kết
    VnPro's Instructor.

    Last edited by topeka; 06-07-2020, 06:05 PM.

  • #2
    Em cám ơn thớt, bài viết hay quá. Thớt giải thích thêm cho em là tại sao là mình bật những tính năng như Root Guard, loop guard trên những cổng đó mà không phải ở cổng khác không?

    cái hình như dưới này đúng không thớt ơi?
    Click image for larger version  Name:	E1D6D235-BD6E-4029-B6E7-D470F8FE0856.jpeg Views:	0 Size:	44.8 KB ID:	422402
    Last edited by tranvoluong; 24-07-2020, 10:42 AM.

    Comment


    • #3
      Chào bạn,

      - Ở ví dụ trên mình muốn bảo vệ D2 luôn là root cho VLAN 2, thì mình cần bật tính năng root guard cho 2 cổng kết nối với SW A1. Tuy nhiên nếu topology D2 có kết nối với nhiều switch khác thì ta cần bật root guard trên cổng có kết nối với các switch khác nữa. (Cổng kết nối với D1 không cần bật vì nó là secondary cho D2 nên priority của D2 luôn tốt hơn D1)
      - Tương tự Loop guard mình cũng sẽ bật trên các cổng kết nối các switch với nhau. ( Vì giữa các switch mới gửi BPDU, các cổng gắn với enduser không gửi BPDU nên không cần bật)
      --> Hình bạn gửi là đúng rồi nhé.

      Thân,
      Văn Kết.

      Comment


      • #4
        Originally posted by topeka View Post
        Chào bạn,

        - Ở ví dụ trên mình muốn bảo vệ D2 luôn là root cho VLAN 2, thì mình cần bật tính năng root guard cho 2 cổng kết nối với SW A1. Tuy nhiên nếu topology D2 có kết nối với nhiều switch khác thì ta cần bật root guard trên cổng có kết nối với các switch khác nữa. (Cổng kết nối với D1 không cần bật vì nó là secondary cho D2 nên priority của D2 luôn tốt hơn D1)
        - Tương tự Loop guard mình cũng sẽ bật trên các cổng kết nối các switch với nhau. ( Vì giữa các switch mới gửi BPDU, các cổng gắn với enduser không gửi BPDU nên không cần bật)
        --> Hình bạn gửi là đúng rồi nhé.

        Thân,
        Văn Kết.
        thớt ơi, cho em hỏi những công cụ bảo vệ cây STP này có đúng với MST không? Trong câu lệnh debug spanning-tree events nó sẽ hiện ra logs khi có sự kiện xảy ra với STP nhưng MST thì không, thớt biết câu nào có tính năng tương tự cho MST không?

        Comment


        • #5
          thớt biết trạng thái dispute như trên hình là gì không?

          Click image for larger version  Name:	mst_dispute.jpg Views:	0 Size:	123.7 KB ID:	422574

          Đối với MST thì mình sử dụng công cụ nào trong bài lap này để bảo vệ cây STP? hình như không cần dùng uplinkfast, em có thử shut int e0/0 trên SW R3 thấy nó switch qua liền

          - backbonefast cũng không cần dùng đúng không?
          Last edited by tranvoluong; 16-08-2020, 07:44 PM.

          Comment


          • #6
            trong hình bên dưới em cấu hình bpduguard cho port e0/3 (SW R3), thiết bị gắn vào port e0/3 là 1 SW có thể phát ra BPDU => nên port đó sẽ bị đưa vào trạng thái err-disable

            >> có cách nào biết được port đó rơi vào tình trạng err-disable do nguyên nhân gì không? (không được xem log, vì trên thực tế em gặp khách hàng không có logs server, logs trên switch bị ghi đè rồi nên không biết nguyên nhân)

            Click image for larger version

Name:	err-disable.jpg
Views:	586
Size:	179.1 KB
ID:	422576

            Comment

            Working...
            X