28 April 2013

Spanning Tree Protocol part 4


Spanning Tree Protocol part 4

ตามตัวอย่างนี้เพิ่ม Switch  เข้าไปให้ดูยากขึ้นหน่อยครับ หลังจาก ตัวอย่างที่ 1 และ ตัวอย่างที่ 2 ตามโครงสร้าง Network ด้านล่างเลยครับ

เรามาดู Command Show Spanning Tree ของ Switch แต่ละตัวกันก่อนครับ
Switch1 
 Switch#sh span
 VLAN0001
   Spanning tree enabled protocol ieee
   Root ID    Priority    32769
              Address     0000.0C34.0432
              This bridge is the root
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

   Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
              Address     0000.0C34.0432
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
              Aging Time  20

 Interface        Role Sts Cost      Prio.Nbr Type
 ---------------- ---- --- --------- -------- --------------------------------
 Fa0/1            Desg FWD 19        128.1    P2p
 Fa0/2            Desg FWD 19        128.2    P2p

 
 Switch2 (Node)
 Switch#sh span
 VLAN0001
   Spanning tree enabled protocol ieee
   Root ID    Priority    32769
              Address     0000.0C34.0432
              Cost        19
              Port        1(FastEthernet0/1)
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

   Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
              Address     0001.4336.C86E
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
              Aging Time  20

 Interface        Role Sts Cost      Prio.Nbr Type
 ---------------- ---- --- --------- -------- --------------------------------
 Fa0/1            Root FWD 19        128.1    P2p
 Fa0/2            Desg FWD 19        128.2    P2p
 Gi1/1            Desg FWD 4         128.25   P2p


 Switch0 (Node)
 Switch#sh span
 VLAN0001
   Spanning tree enabled protocol ieee
   Root ID    Priority    32769
              Address     0000.0C34.0432
              Cost        19
              Port        1(FastEthernet0/1)
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

   Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
              Address     0060.3E77.2C73
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
              Aging Time  20

 Interface        Role Sts Cost      Prio.Nbr Type
 ---------------- ---- --- --------- -------- --------------------------------
 Fa0/1            Root FWD 19        128.1    P2p
 Fa0/2            Desg FWD 19        128.2    P2p
 Gi1/1            Altn BLK 4         128.25   P2p

 Switch3 (Node)
 Switch#sh span 
 VLAN0001
   Spanning tree enabled protocol ieee
   Root ID    Priority    32769
              Address     0000.0C34.0432
              Cost        38
              Port        2(FastEthernet0/2)
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

   Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
              Address     0050.0FB6.92A9
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
              Aging Time  20

 Interface        Role Sts Cost      Prio.Nbr Type
 ---------------- ---- --- --------- -------- --------------------------------
 Fa0/1            Altn BLK 19        128.1    P2p
 Fa0/2            Root FWD 19        128.2    P2p


1. Selecting Root Bridge
Switch1 
Bridge Priority 32769 (32768+1)
Mac address 0000.0C34.0432
Switch2 
Bridge Priority 32769 (32768+1)
Mac address 0001.4336.C86E
Switch0
Bridge Priority 32769 (32768+1)
Mac address 0060.3E77.2C73
Switch3 
Bridge Priority 32769 (32768+1)
Mac address 0050.0FB6.92A9

Bridge Priority เท่ากันหมด
Mac address
        0000.0C34.0432 < 0001.4336.C86E < 0050.0FB6.92A9 <0060.3E77.2C73

Root Bridage = Switch1 0000.0C34.0432

2. Selecting Root Port  ( Check Root Path Cost ) คือ Port ที่อยู่บน Switch ที่ไม่ใช่ Root Bridge ที่มีค่า Root Path Cost ต่ำที่สุดหรือดีที่สุด เมื่อเทียบกับทุกๆ พอร์ตของ Switch นั้นๆ
Switch1  is Root Port
Switch2
Fa0/1 RPC = 0+19 = 19  (RP)
Gig1/1 RPC = 0+19+4 = 23
Fa0/2 RPC = 0+19+19+19 = 57
Switch0
Fa0/1 RPC = 0+19 = 19  (RP)
Gig1/1 RPC = 0+19+4 = 23
Fa0/2 RPC = 0+19+19+19 = 57
Switch3
Fa0/2 RPC = 0+19+19 = 38  --> Switch2 พิจารณา Bridge ID (Bridge Prioirty + Mac address) = 0001.4336.C86E
Fa0/1 RPC = 0+19+19 = 38  --> Switch0 พิจารณา Bridge ID (Bridge Prioirty + Mac address) = 0060.3E77.2C73
เมื่อ RPC เท่ากัน ให้ทำการเลือกค่า Bridge ID ต่ำสุด ของ Switch ที่ Connect อยู่ แต่ถ้ามีเท่ากันอีกให้เลือกดูที่ Port ID ที่ต่ำที่สุด
0001.4336.C86E < 0060.3E77.2C73
ดังนั้น ให้เลือก Fa0/2 เป็น Root Port

3. Select Designated Port
  Note : กรณีนี้มีการเชื่อมต่อของ Switch ที่มีทั้ง FastEthernet และ GigabitEthernet ซึ่งมีกฎเพิ่มเติมในการเลือก Designated Port อยู่ 2 อย่าง โดยจะต้องผ่านการเลือก Root Bridge และ Root Port มาก่อนแล้ว ดังนี้
1. ถ้าหาก Segment หรือ Connection ระหว่าง Switch มี Port ที่ได้รับการเซตให้เป็น Designated Port อยู่แล้ว พอร์ตนั้นๆ จะทำหน้าที่เป็น Designated Port ไปเลยโดยไม่ต้องมีการแข่งขันกันกับพอร์ตของ Swtich ตัวอื่นๆ  เช่น พอร์ตบน Root Bridge ทุกพอร์ตจะถูกเซตให้เป็น Designated Port อยู่แล้ว โดยที่พอร์ตของ Switch ตัวอื่นบน Segment หรือ Connection นั้น จะไม่สามารถเป็น Designated Port โดยอัตโนมัติ ซึ่งอาจเป็น Root Port อยู่ก่อน หรือ ถ้าไม่ได้เป็น Root Port ก็จะมีสถานะเป็น Blocking state
2. บน Segment หรือ Connection ระหว่าง Switch 2 ตัว หากมีพอร์ตของ Switch ตัวหนึ่งทำหน้าที่เป็น Root Port อยู่แล้ว พอร์ตของ Switch อีกตัวหนึ่งที่เหลือจะได้รับการเลือกให้เป็น Designated port โดยอัตโนมัติ
Spaning Tree Protocol (STP) จะมีเงื่อนไขในการเลือก Root port และ Designated port คือ
1. เลือกพอร์ตที่มี Root Path cost ต่ำที่สุดก่อน ถ้ามีค่าเท่ากันให้ พิจารณาข้อถัดไป
2. สำหรับการเลือก Designated Port ระหว่าง  Switch มากกว่าหนึ่งตัว ให้เลือกพอร์ตของ Switch ที่มี Bridge ID ต่ำที่สุด
   สำหรับการเลือก Root Port บน Switch เดียวกันให้เลือกพอร์ตที่ชี้ไปยัง Switch ที่มีค่าของ Bridge ID ต่ำกว่า
3. เลือกพอร์ตที่มีค่า Port ID ต่ำที่สุด

Switch1  พอร์ตของ Root Bridge ทุกๆ พอร์ตจะเป็น Designated โดยปริยายเนื่องจากพอร์ตที่เชื่อมต่อตรงข้ามนั้นเป็น Root Port

Switch2
Fa0/1 ได้เป็น Root Port ไปแล้ว
Fa0/2   ได้เชื่อมต่ออยู่กับ Fa0/1 บน Switch0
         1. พิจารณาว่า Switch ตัวไหนที่มีค่า Root Path cost ต่ำที่สุดก่อน  ซึ่งในที่นี้เท่ากัน
                                     คือ 19 ครับ (#show spanning-tree)
         2. พิจาณาต่อ Bridge ID ของ Switch ตัวไหนต่ำที่สุด

          Switch2
          Bridge Priority 32769 (32768+1)
          Mac address 0001.4336.C86E

          Switch0
          Bridge Priority 32769 (32768+1)
          Mac address 0060.3E77.2C73

      Bridge ID = Bridge Priority + Ext-Sys-ID + Mac address ผน
      เนื่องจาก Bridge Priority ทั้งสอง Switch มีค่าเท่ากันดังนั้นให้พิจารณาที่ Mac address
      0001.4336.C86E < 0060.3E77.2C73

ดังนั้น พอร์ตของ Switch2 จะได้รับเลือกเป็น Designated Port ซึ่งทางกลับกันทางฝั่งพอร์ต
                        Fa0/1 บน Switch0 แพ้การเลือกตั้ง (elect) จะมีสถานะเป็น Blocking state ทันที.

       Gig1/1
พอร์ตจะเป็น Designated Port ได้อัตโนมัติเนื่องจาก พอร์ตที่เชื่อมต่ออยู่ตรงข้ามคือ
                        Fa0/2 บน Switch3 ซึ่งเป็น Root Port
(ถ้าสังเกตุหลักการ Root Port คือ ? มันคือ Root Port ที่ต้องการให้เป็นเส้นทางในการ
                         เชื่อมต่อไปยัง Root Bridge ซึ่งถ้าฝั่งตรงข้ามเป็น Blocking state ก็งานเข้าซิครับพี่น้อง)


Switch0
Fa0/1 เป็น Root Port ตามการเลือกข้างต้น
Gig1/1 ฝั่งตรงข้ามที่เชื่อมต่อคือ Gig1/1 บน Switch2 เป็น Designated Port ซึ่งทำให้ Gig1/1
                                บน Switch0 จะเป็น Blocking state
         ตามหลักการคือ พอร์ตที่โดยรับเลือกเป็น Designated Port โดยพอร์ตตรงข้ามถ้าไม่ได้เป็น Root Port อยู่แล้ว ก็จะมีสถานะเป็น Blocking state ทันที

Fa0/2 ได้เชื่อมต่ออยู่กับ Fa0/2 บน Switch3
        1. พิจารณาว่า Switch ตัวไหนที่มีค่า Root Path cost ต่ำที่สุดก่อน
Switch0 Cost ไปยัง Root Bridge = 19 (0+19)
Switch3 Cost ไปยัง Root Bridge = 38 (0+19+19)

ดังนั้น พอร์ต Fa0/2 ของ Switch0 จะได้รับเลือกเป็น Designated Port ซึ่งทางกลับกันทางฝั่งพอร์ต Fa0/1 บน Switch3 แพ้การเลือกตั้ง (elect) จะมีสถานะเป็น Blocking state ทันทีเช่นกัน
ซึ่งก็จะได้ รูปนี้ครับ
จากทฤษฎีบทใน บทความนี้ Spanning Tree Protocol ภาค 1 จะทำให้เห็นตัวอย่างที่เข้าใจได้ดียิ่งขึ้นครับ

ถ้าต้องการศึกษา Configuration โหลดจากที่นี้ได้ครับ
Download File STP_Ex03.pkt
ผมใช้ Cisco Packet Tracer v5.3.3

Good lock ...... strumjub.





25 April 2013

Spanning Tree Protocol part 3

Spanning Tree Protocol part 3

ตัวอย่างที่ 2

สรุปกระบวนการของ Spanning Tree Protocol ดังนี้

1. Selecting Root Bridge :  Bridge ID = Bridge Priority + Mac Address
1.1 Bridge Priority  เท่ากันทุกตัว Bridge ID Priority = Bridge Priority+VLANID
Bridge Priority= 32768 (2^15)
VLAN ID = 10
Bridge ID Priority  = 32768+10 = 32778
Note: STP ต่อ VLAN

1.2 Mac address 
090.2BD3.1E18< 00D0.BC1B.9B88 < 00D0.FFE3.5895
Root Bridge = 0090.2BD3.1E18 (Switch1) 

2. Selecting Root Port ( พอร์ตที่มีเส้นทางไปยังพอร์ต Root Bridge ที่มี Root path Cost น้อยที่สุด มีการกำหนดค่าตามมาตรฐานจาก IEEE )
ค่า Root Path Cost (Cumulative path cost)  คือผลร่วมจาก Root Bridge Port (Port เริ่มต้น มีค่าเป็น 0 เพราะต่อโดยตรงกับ Root Bridge) ไปถึง Port บน Switch นั้นๆ

บน Multilayer Switch0
พิจารณา Root Port  จาก Root Path Cost 
Gig0/1 มี Root Path Cost = 23
เส้นทาง = Fa0/24 บน Root Bridge (0) > Gig1/1 บน Switch0 (+19) > Gig0/1 บน Multilayer Switch0 (+4) = 23 (0+19+4)  
Gig0/2 มี Root Path Cost = 4
เส้นทาง =Gig1/1 บน Root Bridge (0) > Gig0/2 บน Multilayer Switch0 (+4) =4 (0+4) 

บน Switch0
พิจารณา Root Port  จาก Root Path Cost
Fa0/24 มี Root Path Cost  = 19
เส้นทาง = Fa0/24 บน Root Bridge (0) > Gig1/1 บน Switch0 (+19) =19 (0+19)   \
Gig1/1 มี Root Path Cost = 8
เส้นทาง = Gig1/1 บน Root Bridge (0) > Gig0/2 บน Multilayer Switch0 (+4) > Gig1/1 บน Switch0 (+4) = 8 (0+4+4) 

Root Port บน Multilayer Switch0 คือ Gig0/2 , บน Switch0 คือ Gig1/1 เพราะว่าค่า Cost ต่ำที่สุดเมื่อเทียบกับ port ทั้งหมดบน Switch นั้นๆ


3. Selecting Designated Port แต่ละ Segment (การพิจารณาว่าพอร์ตไหนมี Root Path Cost ที่ดีกว่า เพราะว่าจะแสดงถึงความเร็วในการส่งข้อมูลมาถึง Root Bridge เมื่อเทียบกับพอร์ตอื่นๆ ใน Segment เดียวกัน  เพียง Port เดียวเท่านั้น )

Note: กรณีนี้มีการเชื่อมต่อของ Switch ที่มีทั้ง FastEthernet และ GigabitEthernet ซึ่งมีกฎเพิ่มเติมในการเลือก Designated Port อยู่ 2 อย่าง โดยจะต้องผ่านการเลือก Root Bridge และ Root Port มาก่อนแล้ว ดังนี้
     1. ถ้าหาก Segment หรือ Connection ระหว่าง Switch มี Port ที่ได้รับการเซตให้เป็น Designated Port อยู่แล้ว พอร์ตนั้นๆ จะทำหน้าที่เป็น Designated Port ไปเลยโดยไม่ต้องมีการแข่งขันกันกับพอร์ตของ Swtich ตัวอื่นๆ  เช่น พอร์ตบน Root Bridge ทุกพอร์ตจะถูกเซตให้เป็น Designated Port อยู่แล้ว โดยที่พอร์ตของ Switch ตัวอื่นบน Segment หรือ Connection นั้น จะไม่สามารถเป็น Designated Port โดยอัตโนมัติ ซึ่งอาจเป็น Root Port อยู่ก่อน หรือ ถ้าไม่ได้เป็น Root Port ก็จะมีสถานะเป็น Blocking state
     2. บน Segment หรือ Connection ระหว่าง Switch 2 ตัว หากมีพอร์ตของ Switch ตัวหนึ่งทำหน้าที่เป็น Root Port อยู่แล้ว พอร์ตของ Switch อีกตัวหนึ่งที่เหลือจะได้รับการเลือกให้เป็น Designated port โดยอัตโนมัติ
ซึ่งมาจากบทความ Spanning Tree Protocol ภาค 1 

บน Segment 1 : 
พอร์ตของ Root Bridge คือ พอร์ต Fa0/24 ทำหน้าที่เป็น Designated Port ของ Segment 1 โดยปกติอยู่แล้วทำให้  Port Connection พอร์ต Fa0/24 บน Switch0 ทำงานในสถานะ Blocking state ตามกฎข้อ 1
บน Segment 2 : 
พอร์ต  Gig1/1 บน Switch0 ทำหน้าที่เป็น Root Port อยู่แล้ว ซึ่งทำให้ Port Gig0/1 บน Multilayer Switch0 ที่เชื่อมต่ออยู่นั้นกลายเป็น Designated Port ของ Segment โดยปริยายตามกฎข้อ 2
Designated Port คือ 
Fa0/24 , Gig1/1 บน Root Bridge
Gig0/1 บน Multilayer Switch0



4. Selecting Blocking Port (เป็น Port ที่นอกเหนือจากการถูกเลือกให้เป็น Root Port และ Designated Port )
Fa0/24 บน Switch0 ทำงานในสถานะ Blocking state 

ถ้าต้องการศึกษา Configuration โหลดจากที่นี้ได้ครับ
Download File STP_Ex02.pkt

ผมใช้ Cisco Packet Tracer v5.3.3

Good lock ...... strumjub.

Spanning Tree Protocol part 2

Spanning Tree Protocol part 2

จากบทความที่แล้วเรากล่าวถึง ทฤษฎีบท แล้วจาก Spanning Tree Protocol ภาค 1 มาต่อกันเลยครับ

ตัวอย่างที่ 1

                 จากรูปโครงสร้างของ Network ที่เป็น Switch นะครับ

DP=Designated Port
RP = Root Port
กากบาท = BLK Port (Blocking State)

สรุปเป็นขั้นตอนดังนี้
 1. Selecting Root Bridge :  ( Bridge ID = Bridge Priority + Mac Address )
1.1 พิจาณา Bridge Priority หาค่าน้อยที่สุด ปรากฎว่าเท่ากันหมดทุกตัว
                                Bridge ID Priority = Bridge Priority+VLANID
Bridge Priority= 32768 ( by default )
VLANID = 1  ( ยังไม่มีการสร้าง VLAN เพิ่มเติม)
Bridge ID Priority  = 32768+1 = 32769
1.2 พิจารณา Mac address หาตัวที่น้อยสุด
                                0001.649C.E579 < 0001.969D.12BD < 0006.2AC2.C730
0001.649C.E579  (น้อยสุด) Mac address นี้ได้เป็น Root Bridge ครับ

2. Selecting Root Port ( พอร์ตที่มีเส้นทางไปยังพอร์ต Root Bridge ที่มี Root path Cost น้อยที่สุด มีการกำหนดค่าตามมาตรฐานจาก IEEE ถ้าจำไม่ได้ ก็ต้องกลับไปดู ที่บทความ Spanning Tree Protocol อีกรอบครับ  ) ค่า Root Path Cost (Cumulative path cost)  คือ ผลร่วมจาก Root Bridge Port (Port เริ่มต้น มีค่าเป็น 0 เพราะต่อโดยตรงกับ Root Bridge) ไปถึง Port บน Switch นั้นๆ ซึ่งจะได้ Root Port ดังนี้ครับ
Node01 Bridge ( Switch0 )   =  Fa0/1 ( Root Path Cost =0+19)
Node02 Bridge ( Switch1 )  =  Fa0/1 ( Root Path Cost =0+19)

3. Selecting Designated Port (การพิจารณาว่าพอร์ตไหนมี Root Path Cost ที่ดีกว่า เพราะว่าจะแสดงถึงความเร็วในการส่งข้อมูลมาถึง Root Bridge เมื่อเทียบกับพอร์ตอื่นๆ ใน Segment เดียวกัน  เพียง Port เดียวเท่านั้น )
Root Bridge ( Switch2 ) = Fa0/2 , Fa0/1
Node01 Bridge ( Switch0 )  =  Fa0/2
TIP : ถ้าฝั่งตรงข้ามเป็น Root Port แล้ว Port นั้นจะเป็น Designated Port เสมอ

4. Selecting Blocking Port  (เป็น Port ที่นอกเหนือจากการถูกเลือกให้เป็น Root Port และ Designated Port)
Node02 Bridge ( Switch1 )  =  Fa0/2 (เพราะไม่ได้ถูกเลือกให้เป็น Root Port และ Designated Port เลย)

จากนั้นมากดู คำสั่ง Show spanning-tree บน Switch แต่ล่ะตัวนะครับ
Root Bridge  ( Switch2 ) 
Switch#sh spanning-tree
VLAN0001
  Spanning tree enabled protocol ieee
                 ข้อมูของ Root Bridge
  Root ID    Priority    32769
              Address     0001.649C.E579
              This bridge is the root
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
              Address     0001.649C.E579
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
              Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2            Desg FWD 19        128.2    P2p
Fa0/1            Desg FWD 19        128.1    P2p

Multilayer Switch0 
Switch#show spanning-tree 
VLAN0001
  Spanning tree enabled protocol ieee
                ข้อมูของ Root Bridge
  Root ID    Priority    32769              
              Address     0001.649C.E579   
            Cost        19
            Port        1(FastEthernet0/1)
            Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

                ข้อมูลของ ตัว Switch เอง
Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
            Address     0001.969D.12BD      
            Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
            Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2            Desg FWD 19        128.2    P2p
Fa0/1            Root FWD 19        128.1    P2p


Multilayer Switch1  
Switch#sh spanning-tree 
VLAN0001
  Spanning tree enabled protocol ieee
                ข้อมูลของ Root Bridge
  Root ID    Priority    32769
              Address     0001.649C.E579
              Cost        19
              Port        1(FastEthernet0/1)
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

                ข้อมูลของ ตัว Switch เอง
  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
              Address     0006.2AC2.C730
              Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
              Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2            Altn BLK 19        128.2    P2p
Fa0/1            Root FWD 19        128.1    P2p

Role
Root = Root Port
Desg = Designated Port
Altn = Alternate ( รอการเป็น Root Port)

จากตัวอย่างที่ 1 น่าจะเริ่มมองเห็นชายฝั่งตะคุ่มๆ แล้วใช่ไหมครับ  ลองอีกสักตัวอย่างน่าจะเด่นชัดขึ้นนะ
ถ้าต้องการศึกษา Configuration โหลดจากที่นี้ได้ครับ
Download File STP_Ex01.pkt

ผมใช้ Cisco Packet Tracer v5.3.3

บทความต่อไป เป็นตัวย่างที่จะเห็นภาพชัดขึ้นครับ >> Spanning Tree Protocol part 3
Good lock ...... strumjub.

Spanning Tree Protocol


Spanning Tree Protocol

สาเหตุของการมี Spanning Tree 
อุปกรณ์ต่างๆ มีโอกาสที่จะชำรุดเสียหายหรือใช้ไม่ได้  พวก Switch/Bridge ก็เช่นกัน เราเลยต้องการความสามารถทนทานต่อความผิดพลาด (fault tolerance) เหล่านั้น จึงได้มีแนวคิดว่าควรต้องทำการเพิ่มอุปกรณ์เข้าไป เพื่อให้สามารถทำงานแทนได้ เมื่อเกิดปัญหาความผิดพลาด ซึ่งการเพิ่ม Switch เข้าไปนั้น เป็นเสมือนเป็นการมีเส้นทางสำรองให้ Network ที่ใช้ Switch แต่การเพิ่มก็มีข้อดีและผลกระทบข้างเคียงบางอย่างตามมา ก็คือการเกิด Bridge Loop  โดย Bridge Loop คือการเรียนรู้ที่ผิดพลาดของ Switch เนื่องจากธรรมชาติของการเรียนรู้ของ Switch นั้นเอง ผลกระทบทำให้ Network ของ Switch เกิดล้ม และทำให้ CPU Switch 100% จากนั้นจึงได้มีการคิดค้น Spanning Tree Algorithm มาแก้ปัญหาดังกล่าวครับ

การเกิด Bridge Loop บน Network Switch


แนวคิดการแก้ปัญหา Bridge Loop บน Switch 
      การใช้ Spanning Tree Protocol (STP) เป็นการป้องกันไม่ให้ทางสำรองย้อนกลับมากลายเป็นเส้นทางที่ทำให้เกิดลูปได้ โดยสถานกรณ์ปกติจะเป็นการ "block" บาง Port ของ switch ไม่ให้ทำการรับส่งเฟรมได้ชั่วคราว จนกว่าจะมีการเปลี่ยนแปลง Topology Network จะมีการคำนวณใหม่ว่าจะให้ยกเลิกการ "block" Port นั้นออกไปและให้ Port ดังกล่าวสามารถรับส่งเฟรมได้หรือไม่

สรุปจุดประสงค์หลักของโปรโตคอล Spanning Tree 
      ก็คือ การสร้างเส้นทาง (path) เพียงเส้นทางเดียวที่ปราศจากลูป (loop free path) โดยเริ่มต้นเส้นทางจากสวิตซ์ที่ถูกเลือกให้ทำหน้าที่เป็นศูนย์กลางหลักของ Network (Root bridge) ผ่านจะไปยัง Switch ตัวที่เป็นอื่นๆ ที่เชื่อมต่ออยู่ ซึ่งเส้นทางที่ปราศจากลูป (loop free path) จะถูกสร้างขึ้นมาโดยการคำนวณอัลการิทึมของ Spanning Tree เพื่อเลือกเฟ้นหาว่า Switch ตัวใดตัวหนึ่งที่ทำหน้าที่เป็น Root bridge และพิจารณาตัดสินว่าทุกๆ Port ของ Switch ควรจะเป็น blocking state หรือไม่ก็ forwarding state อย่างใดอย่างหนึ่ง

Note: Switch ของ Cisco จะ Enable ฟังก์ชัน Spanning Tree Protocol เป็นปกติอยู่แล้ว (by Default) โดยจะทำงานอัตโนมัติเมื่อตรวจพบว่ามีเส้นทางสำรองที่อาจก่อให้เกิด Bridge loop ใน Network ได้

หลักการทำงานของ Spanning Tree
     STP เป็นมาตรฐาน IEEE802.1d  ซึ่ง SpanningTree Algorithm คือเริ่มจากการค้นหา Root Bridge (Root Switch) เพื่อทำหน้าที่เป็นศูนย์กลางหลักของ Network (Root Bridge) จากนั้นก็จะพิจารณา port Switch แต่ละตัวควรได้รับการเซตให้เป็น Forwarding state ส่วน Port นอกเหนือจะการถูกเลือก ก็จะเป็น Blocking state โดยอัตโนมัติ (ส่วนของกระบวนการหา Minimum Spanning Tree Algorithm ขอเว้นไม่พูดในที่นี้นะครับ)

19 April 2013

How to Configure InterVLAN with Router (Route-on-Stick)

            ความเดิมตอนที่แล้ว ผมได้ทำการ Configure เรื่อง VTP ไว้แต่ปัญหาคือถ้าผมต้องการ ให้ VLAN ที่ได้ทำการสร้างขึ้นสามารถที่จะเชื่อมต่อกันได้ระหว่าง VLAN 10 และ VLAN 20 ล่ะ จะทำยังไงดี ?
           ทางเลือกในการทำให้ VLAN สามารถติดต่อกันได้ มี 2 ทางเลือกครับ

           1. นำเอา L3 Switch มา Enable Feature Routing และสร้าง Virtual Interface ขึ้นมาแล้วกำหนด IP address ให้แต่ละ VLAN เพื่อทำให้เป็น Gateway ซะเลย ตามบทความนี้ครับ  How to configure InterVLAN with L3 Switch (Switched virtual interface:SVI) and VTP Option  ผมได้ผนวกเรื่อง VTP เข้าไปด้วยนะครับ

           2. เป็นสิ่งที่ผมจะกล่าวต่อจากนี้ คือการนำเอา Router มาทำหน้าที่ Route เส้นทาง VLAN ซึ่งจะทำให้ VLAN สามารถติดต่อกันได้ ดังนี้ครับ


การ Route โดยใช้ Router (External router) เรียกว่า Route-on-stick
เป็นการนำเอา Router มา Route traffic ระหว่าง VLAN โดยอาศัยการทำ Sub-interface ย่อยใน Router ซึ่งแต่ละ Sub-interface จะต้องกำหนด IP address ซึ่งทำการเหมือนกับ physical ปกติ ซึ่งส่วนมากจะใช้กับ Network ที่ไม่มี L3SW โดยที่ต้องมีการนำ Trunk port L2 Switch ต่อไปยัง Router ที่ทำหน้าที่ InterVLAN

สรุปง่ายๆ คือ
Interface ของ Router ที่ต่อเข้ากับ Trunk port L2 Switch จะต้องได้รับการแบ่งออกเป็น sub-Interface ย่อยๆ เพื่อรองรับ Traffic ในแต่ละ VLAN จากนั้นแต่ละ Sub-interface จะต้องกำหนดให้
มี Encapsulation ให้เป็น isl หรือ dot1q ให้ตรงกันกับ Encapsulation ของ Trunk port L2 Switch และสุดท้าย Ip address บน Sub-interface ต่างๆ ใน VLAN หนึ่งๆ จะเป็น Gateway ของ Client บน VLAN นั้นๆ

                ทดสอบทำการ config InterVLAN with Router / Route-on-stick   ซึ่งผมจะทำการต่อยอดจากงาน VTP Server โดยการทำให้บาง  VLAN สามารถเชื่อมต่อกันได้  บทความเดิมเรื่อง Virtual Trunking protocol (VTP)  





                บน Router ให้ Create Sub-interface on int f0/0 
Router(config)#interface FastEthernet 3/0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface FastEthernet 3/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.10.254 255.255.255.0
Router(config-subif)#exit
Router(config)#interface FastEthernet 3/0.200
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip address 192.168.10.254 255.255.255.0
Router(config-subif)#exit
Router#show ip interface brief
FastEthernet3/0        unassigned      YES unset  up                    up
FastEthernet3/0.10     192.168.10.254  YES manual up                    up
FastEthernet3/0.20     192.168.20.254  YES manual up                    up

บน Switch ที่เชื่อมต่อกับ Router อยู่
configure trunk port 
Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport mode trunk 
Switch#sh int trunk 
Port        Mode         Encapsulation  Status        Native vlan
Fa0/1       on           802.1q         trunking      1
Gig1/1      on           802.1q         trunking      1
Gig1/2      on           802.1q         trunking      1
...........................
บน PC ทุกเครื่อง ต้องกำหนด ให้ Gateway เป็น IP address ของ Sub-interface แต่ล่ะ VLAN 
ตัวอย่างเช่น
PC2 อยู่ใน VLAN 10 ต้องกำหนด Default Gateway ไปที่ 192.168.10.254 


PC5 อยู่ใน VLAN 20 ต้องกำหนด Default Gateway ไปที่ 192.168.20.254


จากนั้นให้ทำการ ทดสอบ Ping จากเครื่อง PC2 ไป PC5 ก็จะสามารถติดต่อได้ 


ถ้าต้องการศึกษา Configuration โหลดจากที่นี้ได้ครับ
Download File Router-on-Stick.pkt

ผมใช้ Cisco Packet Tracer v5.3.3


Good luck ..... \m/..


Virtual Trunking protocol (VTP)


    เป็น Protocol ที่ช่วยในการบริหารจัดการ(เพิ่ม ลบ แก้ไข) VLAN โดยผ่าน Trunk port โดยเป็นลักษณะ Client-Server

TIP : ควรสร้าง VTP ก่อนการสร้าง VLAN และใน switch จะต้องมีการทำ Trunk port เพราะ vtp advertisement  ที่ส่งผ่าน Trunk port (port ที่ยอมให้ VLAN หลายๆ VLAN ผ่านได้ นอกจาก VLAN 1 หรือ Native VLAN)  ซึ่งจะไม่ได้จัดการ การ Mapping Interface port ใน Switch ว่าอยู่ใน VLAN ใดๆ ทางผู้ติดตั้งระบบจะต้อง Manual Configure เอง โดย VTP จะจัดการเฉพาะ VLAN ให้เท่านั้น

สิ่งที่ต้องรู้


1. VTP Domain คือ ชื่อกลุ่มของ vtp เพราะว่าในการสื้อสารหรือส่ง information กันได้จะต้องมีชื่อ vtp domain ที่ตรงกัน

2. VTP Mode 
2.1 VTP Server คือ เป็นตัวจัดการ VLAN ใน Domain นั้นๆ โดยจะมีกระบวนการ vtp advertisement ไปยัง vtp client ใน Domain เดียวกัน ผ่าน trunk port ซึ่งมี VTP Server มากกว่า 1 ได้.
2.2 VTP Client คือ เป็นตัวรับข้อมูล VLAN จาก VTP Server โดยจะคอยปรับปรุง VLAN ของตนให้เหมือนกันกับ VTP Server เสมอ
2.3 VTP Transparent คือ จะไม่มีการรับข้อมูล VLAN จาก VTP Server ใดๆ โดยผู้ติดตั้งระบบจะสามารถจัดการ VLAN ได้เอง ซึ่ง VTP version 1 จะไม่มีการส่งต่อ vtp advertisement ไปให้ Switch ตัวอื่นๆ ต่อ  แต่ VTP version 2 จะสามารถส่งต่อข้อมูล VLAN ให้ switch ตัวอื่นได้ ซึ่งควร มี Domain เดียวกัน

3. Configuration Revision Number
by Default จะมีค่าเท่ากับ 0 ซึ่งเมื่อใดก็ตามที่มีการแก้ไข VLAN ค่านี้จะเพิ่มขึ้นทีละหนึ่งการแก้ไขนั้นครวบคุมไม่ว่าจะเป็น การเพิ่ม ลบ หรือการเปลี่ยนชื่อ VLAN ก็ตาม ถือว่านับเป็น 1
เมื่อ Switch ได้รับ advertisement มาจาก Switch ตัวอื่นๆ สิ่งแรกที่ทำคือการตรวจสอบค่าของ Confiugration Revision number โดยการเปรียบเทียบว่ามีค่ามากกว่า ค่าของตัวเองหรือเปล่าถ้ามากกว่า
ก็จะทำการ update database VLAN แต่ถ้าน้อยกว่าก็จะทำการ Drop กระบวนการ Update ทิ้ง

4. VTP Password
โดยปกติแล้วในการส่ง vtp advertisement ออกไปจะเป็นลักษณะ Clear text แต่เราสามารถทำการเพิ่มความปลอดภัยได้โดยการตั้งรหัสผ่าน ซึ่งใน Domain หนึ่งๆ จะต้องตั้ง vtp password ใน Switch เป็นตัวเดียวกันทั้งหมด

ลองมาทดสอบ config ง่ายๆ กันดูครับเพื่อความเข้าใจ






โดยสรุปขั้นตอนดังนี้

บน VTP Server (Switch0)
1. กำหนด Trunk port บน Switch 0 (VTP Server)
Switch0#conf t
Switch0(config)#interface range gigabitEthernet 0/1-2
Switch0(config-if)#switchport mode trunk
2. กำหนด VTP configuration
Switch0#vlan database
Switch0(vlan)#vtp server
Switch0(vlan)#vtp domain strumjub.blogspot.com
Switch0(vlan)#vtp password passw0rd
Switch0(vlan)#exit
ตรวจสอบ vtp configuration ค่าต่างๆ ว่าถูกต้องหรือไม่
Switch#sh vtp status
Switch#sh vtp counter
3 สร้าง VLAN on VTP Server
Switch0(config)#vlan 10
Switch0(config-vlan)#name SALE
Switch0(config-vlan)#exit
Switch0(config)#vlan 20
Switch0(config-vlan)#name ENGINEER
Switch0(config-vlan)#exit
บน VTP Client (Switch1,Switch4)
1. กำหนด Trunk port
Switch#conf t
Switch(config)#interface range gigabitEthernet 0/1-2
Switch(config-if)#switchport mode trunk
2. กำหนด VTP configuration
Switch#vlan database
Switch(vlan)#vtp client
Switch(vlan)#vtp domain strumjub.blogspot.com
Switch(vlan)#vtp password passw0rd
Switch(vlan)#exit
3. mapping VLAN กับ access port
Switch(config)#int fa0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#exit
Switch(config)#int fa0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#exit
ตรวจสอบว่ามีการ mapping VLAN กับ Interface ถูกต้อง
Switch#sh vlan br
บน VTP Transparent (Switch3,Switch2)
1. กำหนด Trunk port บน
### Switch3 ###
Switch#conf t
Switch(config)#interface gigabitEthernet 0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#exit

### Switch 2 ###
Switch#conf t
Switch(config)#interface range gigabitEthernet 0/1-2
Switch(config-if)#switchport mode trunk
Switch(config-if)#exit
2. Create VLAN on switch 3 and switch2
Switch(config)#vlan 80
Switch(config-vlan)#name server
Switch(config-vlan)#exit
3. mapping VLAN กับ access port
Switch(config)#int fa0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 80
Switch(config-if)#exit
ตรวจสอบว่ามีการ mapping VLAN กับ Interface ถูกต้อง
Switch#sh vlan br

บน PC ทั้งหมด ให้ทำการกำหนด IP address ดังรูปข้างต้น ซึ่งในการทดสอบให้ทำการ Ping ไปยัง PC เครื่องที่อยู่ใน VLAN เดียวกัน โดยสังเกตว่าจะอยู่ Switch คนละตัวดังภาพด้านล่าง

ทำการ Ping จากเครื่อง PC0 (192.168.80.1) ไปยัง PC1(192.168.80.2) ซึ่งอยู่ใน VLAN 80 (SERVER)

 ทำการ Ping จากเครื่อง PC4 (192.168.20.1) ไปยัง PC5(192.168.20.2) ซึ่งอยู่ใน VLAN 80 (ENGINEER)

ถ้าต้องการศึกษา Configuration โหลดจากที่นี้ได้ครับ
Download File VTP.pkt

ผมใช้ Cisco Packet Tracer v5.3.3


Good luck ..... \m/..

How to configure InterVLAN with L3 Switch (Switched virtual interface:SVI) and VTP Option.


 SVI (Switched virtual interface)
การใช้ความสามารถ L3SW โดยการสร้าง Virtual Interface แบบพิเศษขึ้นมา ( คำสั่ง interface vlan <vlan number> ใน Global configuration)  เพื่อทำหน้าที่เป็น Gateway ให้กับเครื่องที่อยู่ใน Vlan นั้น interface สามารถถูกสร้างขึ้นมาเรื่อยๆ สิ่งที่สำคัญคือ ต้องหมายเลขของ Interface ตรงกับหมายเลข VLAN ที่ port นั้นเป็นสมาชิกอยู่ หลังจากที่มีการสร้าง virtual interface ขึ้นมาแล้วมันจะทำงานเหมือนกับ interface ของ Router จริงๆ และรองรับคำสั่งใน ลักษณะเดียวกัน by default virtaul ineterface ที่สร้างขึ้นมาจะมี status เป็น shutdown อยู่เราต้อง no shutdown เพื่อให้ทำงาน

ในการสร้าง L3SW ให้สามารถ Route traffic ระหว่าง VLAN 

1. สร้างหมายเลข VLAN ขึ้นมาบน SW (ใช้โปรโตคอล VTP)
1.1 Create Virtual Interface on L3SW 
Core-sw#config t 
Core-sw(config)#interface vlan10
Core-sw(config)#ip address 192.168.10.254 255.255.255.0
Core-sw(config)#no shutdown
Core-sw(config)#interface vlan20
Core-sw(config)#ip address 192.168.20.254 255.255.255.0
Core-sw(config)#no shutdown
Core-sw#sh ip int br
Virtual interface จะยังมี status down อยู่เพราะว่ายังไม่ได้สร้าง vlan 10,20 
1.2 Create VTP Server  L3SW(Core-sw)
Core-sw(config)#vtp domain eibot
Core-sw(config)#exit
Core-sw#vlan database
Core-sw(vlan)#vtp server
Core-sw(vlan)#exit
1.3 Create VLAN on L3SW
Core-sw(config)#vlan 10
Core-sw(config-vlan)#name SALE
Core-sw(config-vlan)#exit
Core-sw(config)#vlan 20
Core-sw(config-vlan)#name ENGINEER
Core-sw(config-vlan)#exit
1.4 Set Client to VTP Server L2SW (Access-sw)
Access-sw(config)#vtp domain eibot
Access-sw#vlan database
Access-sw(vlan)#vtp client
Access-sw(vlan)#exit
Access-sw#show vlan br

จะสังเกตเห็นว่ามี VLAN 10,20 อยู่บน sw1 และ sw2 ซึ่งในการเพิ่ม ลบ หรือแก้ไข จะต้องทำที่ VTP Server (core-sw) 

2. Set Trunk Port ระหว่าง sw1, sw2 และ L3SW
2.1 Trunk port sw1,sw2
Access-sw(config)#interface gigabitEthernet 1/1
Access-sw(config-if)#switchport mode trunk
2.2 Trunk port L3SW
Core-sw(config)#interface range gigabitEthernet 0/1-2
Core-sw(config-if-range)#switchport
Core-sw(config-if-range)#switchport trunk encapsulation dot1q
   Core-sw(config-if-range)#switchport mode trunk
Core-sw#show interfaces trunk 
3. Mapping VLAN 10,20 เข้ากับ port ที่ต้องการให้เป็นสมาชิกของ VLAN บน sw1 และ sw2
Access-sw(config)#int fa0/1
Access-sw(config-if)#switchport mode access 
Access-sw(config-if)#switchport access vlan 10
Access-sw(config-if)#exit
Access-sw(config)#int fa0/2
Access-sw(config-if)#switchport mode access 
Access-sw(config-if)#switchport access vlan 20
Access-sw(config-if)#exit

4. เมื่อทำตาม ข้อ 1-3 จะให้เครื่อง PC ที่อยู่ใน VLAN เดียวกัน สามารถเชื่อมต่อกันได้ แต่ไม่สามารถ เชื่อมต่อข้าม VLAN ได้ 


ดังนั้นจะต้อง ทำการ Enable Routing ใน L3SW โดย
Core-sw(config)#ip routing

หลังจากนั้นให้ทำการ ทดสอบด้วยการ ping ข้าม VLAN จะสามารถเชื่อมต่อได้


ถ้าต้องการศึกษา Configuration โหลดจากที่นี้ได้ครับ
Download File interVLAN&VTP.pkt

ผมใช้ Cisco Packet Tracer v5.3.3


Good luck ..... \m/..