ยินดีต้อนรับสู่ show running-config ครับ

บล็อก show running-config นี้สร้างไว้เพื่อเป็นแหล่งรวบรวมเทคนิคการตั้งค่าอุปกรณ์เครือข่าย Cisco ไม่ว่าจะเป็น Cisco IOS Router, Cisco Catalyst Swtich, Cisco ASA Firewall, Cisco Mars เป็นต้น รวมทั้งอาจจะมีเทคนิคการตั้งค่าอุปกรณ์ในยี่ห้ออื่น ๆ บ้างเล็กน้อยครับ

ซึ่งบทความในบล็อกนี้ก็จะรวบรวมมาจากประสบการณ์ส่วนตัวของกระผมเองครับ (หากมีข้อผิดพลาดก็ขออภัยไว้ล่วงหน้าเลยละกันนะครับ) และก็อยากใช้พื้นที่แห่งนี้เป็นแหล่งในการแลกเปลี่ยนความรู้ รวมไปถึงวิธีการหรือเทคนิคการตั้งค่าอุปกรณ์เครือข่าย กับทุก ๆ คนครับ

Sunday, April 24, 2011

การสำรองเส้นทางด้วยการใช้งาน HSRP ขั้นพื้นฐาน

Basic Configuration HSRP Redundantcy Protocol

HSRP overview

          ถ้าหากว่าเราต้องการที่จะได้ความมั่นใจว่าระบบเครือข่ายของเรา นั้นจะสามารถใช้งานได้อย่างต่อเนื่องไม่ขาดตอน เราก็ควรที่จะต้องมีการใช้งานอุปกรณ์สำรองเอาไว้ใช่มั้ยครับ โดยเฉพาะอุปกรณ์ที่สำคัญ ๆ อย่างเช่น Core Switch หรือ WAN Router เป็นต้น และเมื่อเรามีการใช้งานอุปกรณ์สำรองแล้ว เราก็จะต้องมีโปรโตคอลที่ออกแบบมาสำหรับรองรับทำงานระหว่างอุปกรณ์หลัก และอุปกรณ์สำรองเอาไว้ด้วย ซึ่งในวันนี้ผมจะมาแนะนำหนึ่งในโปรโตคอลที่ว่ามานี้ นั่นก็คือ HSRP (Hot Standby Router Protocol) นั่นเองครับ

          HSRP เป็นโปรโตคอลที่ใช้สำหรับการสำรองเส้นทาง สามารถใช้งานได้ทั้งบนเราเตอร์และสวิตซ์เลเยอร์ 3โดยอุปกรณ์ที่อยู่ในกลุ่มของ HSRP เดียวกัน จะทำการสร้าง Virtual IP Address และ Virtual Mac Address กลางขึ้นมาใช้งาน สำหรับเป็นตัวแทนของอุปกรณ์ทุก ๆ ตัวในกลุ่ม HSRP นี้ โดยในช่วงเวลาหนึ่ง ๆ จะมีอุปกรณ์เพียงตัวเดียวที่นำ Virtual IP Address และ Virtual Mac Address ที่ว่านี้มาใช้งาน เราจะเรียกอุปกรณ์ตัวนี้ว่า Active ส่วนอุปกรณ์ตัวอื่น ๆ ในกลุ่มจะเรียกว่า Standby และ อุปกรณ์ที่ทำหน้าที่ Standby นั้นจะกลายมาเป็น Active ก็ต่อเมื่อ อุปกรณ์ที่ทำหน้าที่ Active อยู่ไม่สามารถใช้งานได้

          ในปัจจุบันนี้ HSRP มีด้วยกัน 2 Version ด้วยกัน แต่อุปกรณ์จะถูกตั้งค่าไว้ให้ใช้งานใน Version 1 ไว้โดย default โดยสิ่งที่ Version 2 พัฒนาขึ้นมาจาก Version 1 ก็มีดังนี้

  • สามารถตั้งค่า timer ได้ในระดับ msec
  • เพิ่มหมายเลขของ group number จาก 0-255 เป็น 0-4095
  • เพิ่มความสามารถในการ trobleshooting ด้วยการเพิ่ม 6 byte identifier ที่จะระบุ Mac Address ของผู้ที่ทำการส่ง message มา (ใน Version 1 ไม่มีการระบุถึงผู้ส่ง message)
  • ใน Version 1 จะใช้งาน Virtual Mac Address ในช่วง 0000.0C07.AC00 ถึง 0000.0C07.ACFF แต่ใน Version 2 จะเปลี่ยนไปใช้ Virtual Mac Address ในช่วง 0000.0C9F.F000 ถึง 0000.0C9F.FFFF แทน
  • ใน Version 1 จะใช้ multicast address เป็น 224.0.0.2 ส่วนใน Version 2 จะใช้ multicast address เป็น 224.0.0.102

          การทำงานสมาชิกในกลุ่มของ HSRP จะมีการแลกเปลี่ยนข้อมูลสถานะของแต่ละตัว ด้วยการส่ง Hello Packet ไปยัง Multicast Address และใช้ UDP Port 1985 ในการทำงาน เพื่อที่จะทำการเลือกว่าจะให้อุปกรณ์ตัวใดที่ทำหน้าที่เป็น Active หรือ Standby โดยจะดูจากค่า priority ของอุปกรณ์แต่ละตัว แต่ถ้ามีค่า priority ที่เท่ากันหรือไม่ได้มีการตั้งค่า priority เอาไว้ มันจะเลือกจากอุปกรณ์ตัวที่มี IP Address ที่สูงสุดในการทำหน้าที่เป็น Active

HSRP Addressing
          เมื่อทำการตั้งค่าอุปกรณ์ให้อยู่ในกลุ่มของ HSRP แล้ว อุปกรณ์ตัวนี้ก็จะมีทั้ง HSRP Mac Address ของกลุ่มนั้น และ Mac Address ของมันเองบนอินเทอร์เฟสที่ใช้งาน HSRP โดยอุปกรณ์ตัวนี้จะใช้งาน HSRP Mac Address ก็ต่อเมื่อ มันทำหน้าที่เป็น Active และจะใช้ Mac Address ของตัวเองเมื่อมันไม่ได้ทำหน้าที่เป็น Active

          โดย Mac Address ที่ HSRP นำมาใช้งานเป็น Virtual Mac Address เป็นดังนี้(ยกเว้นการใช้งาน HSRP กับ Token Ring)

          HSRP Version 1
                    0000.0c07.ac**   (เมื่อ ** คือ HSRP Group number 0-255)

          HSRP Version 2
                    0000.0C9F.F*** (เมื่อ *** คือ HSRP Group number 0-4095)

คุณสมบัติอื่น ๆ ของ HSRP

  • Preemption ทำให้อุปกรณ์ที่มีค่า priority สูงสุด ทำหน้าที่เป็น Active เสมอ ซึ่งถ้าไม่เปิดการใช้งาน Preemption นี้ไว้ จะทำให้ในบางกรณี อุปกรณ์ที่มีค่า priority ต่ำกว่าทำงานเป็น Active ได้
  • Interface Tracking ทำให้สามารถเปลี่ยนแปลงค่า priority ของอุปกรณ์ที่ใช้งาน HSRP ได้โดยการตรวจสอบจากสถานะของอินเทอร์เฟสตามที่ระบุบนอุปกรณ์ เช่น ถ้าอินเทอร์เฟส Fa0/0 down ลงไป ก็ให้ลดค่า priority ลงไป 50 ค่า ซึ่งจะทำให้อุปกรณ์ที่ทำหน้าที่ Standby มาทำหน้าที่เป็น Active แทน เป็นต้น

ขั้นตอนการตั้งค่า HSRP ขั้นพื้นฐาน

  1. ทำการตั้งค่า IP Address บนอินเทอร์เฟส ของอุปกรณ์ในกลุ่ม HSRP ให้อยู่ใน subnet เดียวกัน
  2. (ทางเลือก)ทำการตั้งค่า HSRP Version 2 ในกรณีที่ต้องการใช้งาน Version 2
  3. ทำการตั้งค่า Virtual IP Address
  4. (ทางเลือก)ทำการตั้งค่า Priority ซึ่งโดย Default จะมีค่าเท่ากับ 100 และอุปกรณ์ตัวใดที่มีค่า Priority สูงสุด จะได้ทำหน้าที่เป็น Active
  5. (ทางเลือก)ทำการตั้งค่า Preempt
  6. ตรวจสอบการทำงาน

          เรามาดูตัวอย่างการตั้งค่ากันเลยดีกว่านะครับ ในตัวอย่างการตั้งค่าของเราในวันนี้นั้น ก็จะใช้ Topology ตามรูปด้านล่างเลยครับ คือเราจะใช้งานไอ้เจ้า HSRP เนี่ย กับ WAN เราเตอร์ทั้ง 2 ตัวของเรานะครับ โดยให้ตัวนึงทำหน้าที่เป็น Active และอีกตัวนึง ทำหน้าที่เป็น Standby นะครับ โดยเราจะทำการกำหนดให้เราเตอร์ A ใช้ IP Address เป็น 10.0.0.2 ส่วนเราเตอร์ B ใช้ IP Address เป็น 10.0.0.2 และจะใช้ Virtual IP Address เป็น 10.0.0.1 นะครับ

HSRP           ในขั้นแรกนี้ ก็จะเป็นการตั้งค่า IP Address ของอินเทอร์เฟส ตามปกตินะครับ ซึ่งการที่จะใช้งาน HSRP ใน Group เดียวกันนั้น ก็จะต้องใช้งาน IP Address ใน Subnet เดียวกันนะครับ

ตัวอย่าง
Router-A
Router-A(config)#interface FastEthernet 0/0
Router-A(config-if)#ip address 10.0.0.2 255.255.255.0
Router-A(config-if)#no shutdown

Router-B
Router-B(config)#interface FastEthernet 0/0
Router-B(config-if)#ip address 10.0.0.3 255.255.255.0
Router-B(config-if)#no shutdown

          และเมื่อทำการตั้งค่า IP Address ของเราเตอร์ทั้งสองตัวแล้ว เพื่อน ๆ ก็ลองทดสอบโดยการ ping ดูนะครับ ว่าเราเตอร์ทั้งสองตัวนี้สามารถติดต่อสื่อสารกันได้หรือยัง ถ้า ping เจอแล้ว เราก็มาทำการตั้งค่าในขั้นต่อไปกันเลยครับ นั้นก็คือการกำหนด Version ของ HSRP ที่เราจะใช้งานนั้นเองครับ ซึ่งในตัวอย่างวันนี้จะขอใช้ HSRP Version 2 ซึ่งสามารถทำได้ด้วยการใช้คำสั่ง standby version 2 ใน interface configuration mode นะครับ

ตัวอย่าง
Router-A
Router-A(config)#interface FastEthernet 0/0
Router-A(config-if)#standby version 2

Router-B
Router-B(config)#interface FastEthernet 0/0
Router-B(config-if)#standby version 2

          ต่อมาก็จะเป็นการตั้งค่า Virtual IP Address ที่เราจะนำมาใช้งานเป็น IP Address กลางสำหรับ HSRP Group นี้นะครับ ซึ่งสามารถได้ด้วยการใช้คำสั่ง "standby <group number> ip <ip address>" ใน interface configuration mode นะครับ

ตัวอย่าง
Router-A
Router-A(config-if)#standby 10 ip 10.0.0.1

Router-B
Router-B(config-if)#standby 10 ip 10.0.0.1

          จากตัวอย่างด้านบน เป็นการสร้าง Virtual IP Address ของ HSRP Group 10 นะครับ โดยใช้ Virtual IP Address เป็น 10.0.0.1 ครับผม

          ในขั้นตอนต่อมา จะเป็นการตั้งค่า Priority นะครับ ซึ่งโดย default จะมีค่ามาเท่ากับ 100 นะครับ และ HSRP จะเลือกเราเตอร์ตัวที่มีค่า Priority สูงสุดในการทำหน้าที่เป็น Active Router นะครับ และในส่วนนี้ถ้าเราไม่ทำการตั้งค่า ก็จะทำให้เราเตอร์ทั้งสองตัวมีค่า priority ที่เท่ากัน HSRP ก็จะเลือกเราเตอร์ตัวที่มี IP Address ที่สูงที่สุดในการทำหน้าที่เป็น Active Router ครับ แต่ถ้าต้องการกำหนดเราเตอร์ที่จะทำหน้าที่ Active เอง ก็สามารถทำได้ด้วยการใช้คำสั่ง "standby <group number> priority <0-255>" บน interface configuration mode นะครับ

ตัวอย่าง
Router-A
Router-A(config-if)#standby 10 priority 200

Router-B
Router-B(config-if)#standby 10 priority 100

          และในขั้นตอนต่อมา จะเป็นการเปิดการทำงานของ preempt นะครับ ซึ่งถึงเราจะไม่ทำการเปิดไอ้เจ้า preempt นี้ ก็สามารถที่จะใช้งาน HSRP ได้แล้วนะครับ เพียงแต่ว่าในการทำงานของ HSRP จะไม่เลือกเอาตัวที่มีค่า Priority สูงสุดมาทำหน้าที่เป็น Active ในบางกรณีนะครับ เช่น กรณีที่เราเตอร์ที่มีค่า Priority สูงกว่า แต่นำมาเชื่อมต่อเข้าระบบในภายหลัง เป็นต้น ซึ่งอันนี้ก็แล้วแต่ความต้องการในการใช้งานของแต่ละองค์กรนะครับ ว่าต้องการแบบใด

ตัวอย่าง
Router-A
Router-A(config-if)#standby 10 preempt

Router-B
Router-B(config-if)#standby 10 preempt

          เพียงเท่านี้ ก็จะสามารถใช้งาน HSRP ในเบื้องต้นได้แล้วนะครับ แต่ในการใช้งานจริง ๆ ยังมีลูกเล่นอีกมากครับ เช่น การ Tracking การทำ Authentication การปรับ Timer เป็นต้น ในขั้นตอนต่อมา ก็จะเป็นการตรวจสอบการทำงานของ HSRP นะครับ ซึ่งสามารถทำได้ด้วยการใช้คำสั่ง ดังนี้ครับ

  • show standby brief
  • show standby
  • show arp เมื่อลอง show arp ดูจะเห็นว่ามีการใช้ Virtual Mac Address ตามรูปแบบที่บอกไว้ด้านบนนะครับ

ตัวอย่าง
Router-A#show standby brief
                     P indicates configured to preempt.
                     |
Interface   Grp Prio P State    Active          Standby         Virtual IP    
Fa0/0       10  200  P Active   local           10.0.0.3        10.0.0.1      

 

Router-A#show standby
FastEthernet0/0 - Group 10 (version 2)
  State is Active
    2 state changes, last state change 00:04:58
  Virtual IP address is 10.0.0.1
  Active virtual MAC address is 0000.0c9f.f00a
    Local virtual MAC address is 0000.0c9f.f00a (v2 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 1.420 secs
  Preemption enabled
  Active router is local
  Standby router is 10.0.0.3, priority 100 (expires in 9.500 sec)
  Priority 200 (configured 200)
  IP redundancy name is "hsrp-Fa0/0-10" (default)

 

Router-A#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.0.0.2                -   c200.0ecc.0000  ARPA   FastEthernet0/0
Internet  10.0.0.3               19   c201.0ecc.0000  ARPA   FastEthernet0/0
Internet  10.0.0.1                -   0000.0c9f.f00a  ARPA   FastEthernet0/0

          เพื่อน ๆ ก็สามารถทดสอบการทำงานได้ โดยการลอง shutdown อินเทอร์เฟสหรือ shutdown เราเตอร์ที่ทำหน้าที่ Active ดูก็ได้นะครับ ว่ายังสามารถส่งต่อ packet ไปถึงปลายทางได้หรือไม่ครับ

สรุปคำสั่งที่ใช้งาน
Router-A
Router-A(config)#interface FastEthernet 0/0
Router-A(config-if)#standby version 2
Router-A(config-if)#standby 10 ip 10.0.0.1
Router-A(config-if)#standby 10 priority 200
Router-A(config-if)#standby 10 preempt

Router-B
Router-B(config)#interface FastEthernet 0/0
Router-B(config-if)#standby version 2
Router-B(config-if)#standby 10 ip 10.0.0.1
Router-B(config-if)#standby 10 priority 100
Router-B(config-if)#standby 10 preempt

10 comments :

  1. ขอบคุณมากครับ อธิบายเข้าใจง่ายดีครับ กะลังหาเนื้อหาเกี่ยวกับhsrpอยู่พอดีเรย อยากให้มีเนื้อการใช้คำสั่งแบบนี้อีกเรื่อยๆอ่ะครับ

    ReplyDelete
  2. ขอบคุณครับพี่

    ReplyDelete
  3. แจ่มแมวเลยครับ

    ReplyDelete
  4. สุดครับพี่

    ReplyDelete
  5. Very nice explanation

    ReplyDelete
  6. I have 2 cisco routers are cisco router 7200 vr and I configure it be sub interface (int g0/1.10 .......int g0/1.50)and each interface is defferent IP configure So, I would like to know that for standby IP Do I have to create for each interfce ? or not.

    thanks for your help.

    ReplyDelete
  7. ผมลองทำใน packet tracert 6.0 ที่รองรับ HSRP แล้วแต่ไม่รู้ยัง Bug ไหมผม down link แรกแล้วมันส่ง packet ไม่ได้เลย

    อีกเรื่องคือ มันเปลี่ยนค่า priority ไม่ได้ Default เป็น 100 แล้วตั้งต่ำกว่านี้ได้ไหมครับ

    ReplyDelete
  8. สุดๆครับ บอร์ดนี้มีประโยชน์จริงๆ

    ReplyDelete
  9. ขอบคุณครับ
    สุดยอดครับ

    ReplyDelete
  10. สุดยอดเลยครับ

    ReplyDelete