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

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

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

Friday, March 4, 2011

การสำรองเส้นทางด้วยการใช้ Redundant Interface บน Cisco ASA Firewall

Using Redundant Interface on Cisco ASA Firewall

redundant interface cisco asa firewall

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

          จากที่เคยได้เขียนบทความเรื่อง การใช้งาน Backup Interface บน Cisco IOS Router กันไปแล้ว ซึ่งเป็นการตั้งค่า Backup Interface สำหรับใช้งานกับ Cisco IOS Router แต่ในวันนี้ผมจะมาแนะนำการตั้งค่า Redundant Interface บน Cisco ASA Firewall กันครับ โดยลักษณะการทำงานจะเหมือนกับ Backup Interface บน Cisco IOS Router นั่นเองครับ และสำหรับเพื่อน ๆ ที่ยังไม่รู้จักกับ Cisco ASA Firewall หรือยังไม่เคยทำการตั้งค่าในเบื้องต้นก็ขอให้ติดตามบทความ การตั้งค่า Cisco ASA Firewall ขั้นพื้นฐาน ก่อนนะครับ

          การใช้งานคุณสมบัติ Redundant Interface นั้นจะช่วยเพิ่มระดับความน่าเชื่อถือในการส่งต่อข้อมูลไปยังปลายทางได้ครับ เนื่องจากโดยปกติที่ไม่มีการใช้งาน Redundant Interface นั้น ในการเชื่อมต่อทาง Physical บนอุปกรณ์ Cisco ASA Firewall จะสามารถเชื่อมต่อไปยัง Zone ต่าง ๆ ได้เพียง Zone ละอินเทอร์เฟสเท่านั้น (ยกเว้นรุ่น Cisco ASA 5505) เช่นในฝั่ง inside ก็จะสามารถเชื่อมต่อไปยังสวิตซ์ได้เพียงตัวเดียว แต่ด้วยการใช้งานคุณสมบัติ Redundant Interface ทำให้เราสามารถทำการเชื่อมต่ออินเทอร์เฟสบน Cisco ASA Firewall ไปยังแต่ละ Zone ได้สูงสุด 2 อินเทอร์เฟสต่อหนึ่ง Zone เช่น ในฝั่ง inside ก็จะสามารถเชื่อมต่อไปยังสวิตซ์ 2 ตัวได้ ซึ่งถ้ามีสวิตซ์ตัวใดตัวหนึ่งไม่สามารถใช้งานได้ขึ้นมาก็ยังมีอีกเส้นทางนึงที่สามารถเชื่อมต่อไปยัง Cisco ASA Firewall ได้นั่นเองครับ

          เอาล่ะครับในวันนี้ก็จะไม่เขียนให้มากความ เรามาดูขั้นตอนการตั้งค่า Redundant Interface บน Cisco ASA Firewall กันเลยดีกว่านะครับ

  1. ทำการวางแผนว่าจะให้อินเทอร์เฟสใดเป็นสมาชิกของ Redundant Interface ที่ต้องการ
  2. ทำการตรวจสอบให้แน่ใจว่าอินเทอร์เฟสที่จะกำหนดให้เป็นสมาชิกของ Redundant Interface นั้น ไม่มีการใช้คำสั่ง nameif และไม่อยู่ในสถานะ shutdown
  3. ทำการสร้าง Redundant Interface ขึ้นมา
  4. ทำการกำหนดสมาชิกให้กับ Redundant Interface นี้
  5. ทำการกำหนด nameif และการตั้งค่าอื่น ๆ บน Redundant Interface
  6. ตรวจสอบการทำงาน

          ในขั้นตอนแรกนั้นก็จะเป็นการวางแผนว่าจะเลือกใช้งานอินเทอร์เฟสใด เป็นสมาชิกของ Redundant Interface เช่น เลือกใช้ interface GigabitEthernet 0/1 และ GigabitEthernet 0/2 ให้เป็นสมาชิกของ Redundant Interface หมายเลข 1 โดยใช้ในการเชื่อมต่อไปยัง Zone inside โดยเมือกำหนดอินเทอร์เฟสที่จะนำมาใช้งานเรียบร้อยแล้ว เราก็จะต้องตรวจสอบให้แน่ใจว่าอินเทอร์เฟสนั้น ๆ ไม่ได้มีการตั้งค่า nameif เอาไว้ และไม่ได้อยู่ในสถานะ shutdown

ตัวอย่าง
Running-config(config)# interface GigabitEthernet 0/1
Running-config(config-if)# no nameif
Running-config(config-if)# no shutdown
Running-config(config-if)# interface GigabitEthernet 0/2
Running-config(config-if)# no nameif
Running-config(config-if)# no shutdown
Running-config(config-if)# exit

          จากนั้นก็ให้เราทำการสร้าง Redundant Interface ขึ้นมา ด้วยการใช้คำสั่ง "interface redundant <number>" ใน global-config mode โดยในส่วนของ number นี้จะสามารถกำหนดเป็นหมายเลขได้ตั้งแต่ 1-8

ตัวอย่าง
Running-config(config)# interface redundant 1

          เมื่อทำการสร้าง Redundant Interface ขึ้นมาแล้ว ในขั้นตอนต่อมา ก็จะเป็นการกำหนดสมาชิกให้กับ Redundant Interface ที่สร้างขึ้นมานี้ โดยสามารถทำได้โดยการใช้คำสั่ง "member-interface <interface>" ใน redundant interface config mode โดยการกำหนดสมาชิกนี้จะสามารถกำหนดได้สูงสุด 2 Physical Interface ต่อหนึ่ง Redundant Interface เท่านั้น

ตัวอย่าง
Running-config(config)# interface redundant 1
Running-config(config-if)# member-interface GigabitEthernet 0/1
INFO: security-level and IP address are cleared on GigabitEthernet0/1.
Running-config(config-if)# member-interface GigabitEthernet 0/2
INFO: security-level and IP address are cleared on GigabitEthernet0/2.

          เมื่อทำการกำหนดสมาชิกให้กับ Redundant Interface แล้ว ก็จะสามารถใช้คำสั่ง nameif ในการตั้งชื่อให้กับอินเทอร์เฟสนี้ได้ และในการตั้งค่าอื่น ๆ เช่น IP Address ก็ให้ทำการตั้งค่าใน Redundant Interface นี้เพียงที่เดียว ไม่จำเป็นที่จะต้องไปทำการตั้งค่าบน Physical Interface และในการใช้งานอื่น ๆ ก็จะเหมือนกับการใช้งาน Physical Interface ที่จะอ้างถึง nameif ที่กำหนดไว้เสมอ

ตัวอย่าง
Running-config(config)# interface redundant 1
Running-config(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
Running-config(config-if)# ip address 10.0.0.1 255.255.255.0
Running-config(config-if)# no shutdown
Running-config(config-if)# exit

          เมื่อทำการตั้งค่าเสร็จเรียบร้อยแล้ว ก็ให้ทำการเชื่อมต่ออินเทอร์เฟสนี้ไปยังสวิตซ์ตามต้องการ (ซึ่งควรจะเชื่อมต่อแต่ละอินเทอร์เฟสไปยังสวิตซ์คนละตัว) โดยสามารถตรวจสอบการตั้งค่าได้ด้วยการใช้คำสั่ง "show interface redundant 1"

ตัวอย่าง
Running-config(config)# show interface redundant 1
Interface Redundant1 "inside", is down, line protocol is down
  Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec
        Auto-Duplex, Auto-Speed
        MAC address 0027.0df9.7209, MTU 1500
        IP address 10.0.0.1, subnet mask 255.255.255.0
        0 packets input, 0 bytes, 0 no buffer
        Received 0 broadcasts, 0 runts, 0 giants
        0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
        0 L2 decode drops
        0 packets output, 0 bytes, 0 underruns
        0 output errors, 0 collisions, 0 interface resets
        0 late collisions, 0 deferred
        0 input reset drops, 0 output reset drops, 0 tx hangs
        input queue (blocks free curr/low): hardware (510/255)
        output queue (blocks free curr/low): hardware (510/255)
  Traffic Statistics for "inside":
        0 packets input, 0 bytes
        0 packets output, 0 bytes
        0 packets dropped
      1 minute input rate 0 pkts/sec,  0 bytes/sec
      1 minute output rate 0 pkts/sec,  0 bytes/sec
      1 minute drop rate, 0 pkts/sec
      5 minute input rate 0 pkts/sec,  0 bytes/sec
      5 minute output rate 0 pkts/sec,  0 bytes/sec
      5 minute drop rate, 0 pkts/sec
  Redundancy Information:
        Member GigabitEthernet0/1(Active), GigabitEthernet0/2
        Last switchover at 10:34:33 UTC Mar 3 2011

          ซึ่งจากการ show interface redundant 1 ตามตัวอย่างด้านบนนี้ จะเห็นว่า Redundant Interface นี้มีสมาชิกอยู่ 2 อินเทอร์เฟสด้วยกัน คือ GigabitEthernet0/1, GigabitEthernet0/2 โดยอินเทอร์เฟสที่อยู่ในสถานะ Active ก็คือ GigabitEthernet0/1 โดยเราสามารถเลือกอินเทอร์เฟสที่จะให้อยู่ในสถานะ Active ได้ด้วยการใช้คำสั่ง "redundant-interface redundant <number> active-member <interface>"

ตัวอย่าง
Running-config# show interface redundant 1 | grep Member
        Member GigabitEthernet0/1(Active), GigabitEthernet0/2

Running-config# redundant-interface redundant 1 active-member GigabitEthernet 0/2

Running-config# show interface redundant 1 | grep Member
        Member GigabitEthernet0/2(Active), GigabitEthernet0/1

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

1 comment :

  1. เห็นภาพ ในการนำไปใช้งานขึ้นเยอะเลย แต่มีคำถามเพิ่มเิตม เพื่อให้กระจ่าง มันคือ concept เดียวกับ Ether Channel ของ Switch ใช่ป่ะครับ

    ReplyDelete