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

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

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

Tuesday, August 19, 2014

การใช้งาน Routing-context บน Cisco IOS


            ในวันนี้ขอเสนอบทความสั้น ๆ โดยเป็นบทความที่มีเนื้อหาต่อเนื่องมาจากบทความเรื่อง VRF Lite คืออะไร? นะครับ โดยปกติแล้วเมื่อเราทำการตั้งค่า VRF เพื่อแบ่งแยกขอบเขตของระบบเครือข่ายแล้ว เมื่อต้องการตรวจสอบการทำงานของอุปกรณ์ด้วยการใช้คำสั่งบน EXEC mode เคยรู้สึกเหมือนกับผมบ้างมั้ยครับ ว่าใช้งานยากและไม่สะดวกเอาเสียเลย เนื่องจากจะต้องทำการเพิ่มคำสั่ง "vrf" ตามด้วยชื่อของ VRF ไปด้วยในทุก ๆ คำสั่งที่ใช้งานบน EXEC mode ในวันนี้ผมจึงจะมาแนะนำให้รู้จักกับคุณสมบัติ routing-context ที่จะช่วยให้สามารถทำการตรวจสอบการทำงานของแต่ละ VRF ด้วยการใช้คำสั่งบน EXEC mode ได้อย่างสะดวกมากยิ่งขึ้นกันครับ

            การใช้งาน routing-context จะช่วยให้สามารถใช้คำสั่งที่เกี่ยวข้องกับ VRF บน EXEC mode ได้อย่างสะดวกมากยิ่งขึ้น โดยสามารถใช้งานได้กับคำสั่งอย่างเช่น ping, traceroute, show และ clear ค่าต่าง ๆ ซึ่งถ้าเป็นการใช้งานโดยปกติที่ไม่ได้เป็นแบบ routing-context ก็จะต้องมีการระบุชื่อ VRF ไปด้วย ในทุก ๆ ครั้งที่ต้องการใช้งานคำสั่งเหล่านี้บน EXEC mode แต่ด้วยการใช้งาน routing-context จะทำให้สามารถใช้งานคำสั่งต่าง ๆ เหล่านี้ ได้เหมือนกับการใช้งานแบบปกติ ซึ่งจะอำนวยความสะดวกในการใช้คำสั่งได้มากยิ่งขึ้นครับ (routing-context จะสามารถใช้งานได้กับคำสั่งบน EXEC mode เท่านั้น ส่วนคำสั่งบน Configuration mode ยังคงใช้งานรูปแบบเดิมนะครับ)

            โดยคุณสมบัติ routing-context นี้จะรองรับอยู่บน Cisco IOS XE Release 3.2S เป็นต้นไป และในบางรุ่นของ Cisco IOS Software Release 15.X เท่านั้นนะครับ

ตัวอย่างการเปรียบเทียบการใช้งานคำสั่งบน EXEC mode ที่ไม่ได้ใช้งาน routing-context และที่ใช้งาน routing-context เช่น

without Routing Context
Routing Context
Router# routing-context vrf red

Router%red#
Router# show ip route vrf red

[Routing table output for VRF red]
Router%red# show ip route

[Routing table output for VRF red]
Router# ping vrf red 10.1.1.1

[Ping result using VRF red]
Router%red# ping 10.1.1.1

[Ping result using VRF red]
Router# telnet 10.1.1.1 /vrf red

[Telnet to 10.1.1.1 in VRF red]
Router%red# telnet 10.1.1.1

[Telnet to 10.1.1.1 in VRF red]
Router# traceroute vrf red 10.1.1.1

[Traceroute output in VRF red]
Router%red# traceroute 10.1.1.1

[Traceroute output in VRF red]

            จะเห็นว่าสามารถใช้งานคำสั่งเพื่อช่วยในการตรวจสอบการทำงานของแต่ละ VRF ได้อย่างสะดวกมากกว่าเดิมเยอะเลยใช่มั้ยครับ เพราะโดยปกติเวลาที่จะตรวจสอบการทำงานต่าง ๆ ส่วนมากจะต้องใช้คำสั่งมากกว่าหนึ่งคำสั่งอยู่แล้ว อย่างเช่น ต้องการตรวจสอบว่าข้อมูลเส้นทางที่ได้รับมาจาก BGP routing protocol ของ VRF นั้นครบถ้วนสมบูรณ์หรือไม่ ก็อาจจะต้องใช้คำสั่งหลาย ๆ คำสั่งอย่างเช่น
  • show ip bgp
  • show ip route
  • ping
  • traceroute
  • telnet
ซึ่งถ้าเป็นการใช้งานโดยปกติที่ไม่ได้ใช้ routing-context ก็จะต้องใช้งานคำสั่งเหล่านี้ พร้อมทั้งระบุ VRF ไปด้วย เช่น
  • show ip bgp vpnv4 vrf front-end
  • show ip route vrf front-end
  • ping vrf front-end 20.20.10.254
  • traceroute vrf front-end 20.20.10.254
  • telnet 20.20.10.254 /vrf front-end
แต่ด้วยการใช้งาน routing-context จะทำให้สามารถใช้งานคำสั่งเหล่านี้ ได้เหมือนกับการใช้งานคำสั่งแบบปกติบน global โดยที่ได้ผลลัพธ์ที่เหมือนกันกับการใช้งานคำสั่งแบบด้านบน

ตัวอย่างการใช้งาน routing-context บน VRF front-end

Router#routing-context vrf front-end

Router%front-end#show ip bgp
BGP table version is 7, local router ID is 20.20.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65000:10 (default for vrf front-end)
 r>  20.20.0.0/24     20.20.0.254              0             0 65001 ?
 *>  20.20.10.0/24    20.20.0.254              0             0 65001 ?
 *>  20.20.20.0/24    20.20.0.254              0             0 65001 ?
 *>  20.20.30.0/24    20.20.0.254              0             0 65001 ?
 *>  20.20.40.0/24    20.20.0.254              0             0 65001 ?
 *>  20.20.50.0/24    20.20.0.254              0             0 65001 ?

Router%front-end#show ip route

Routing Table: front-end
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/24 is subnetted, 5 subnets
O E2+    10.10.10.0 [110/20] via 10.10.0.254 (back-end), 03:00:32, Ethernet0/0
O E2+    10.10.20.0 [110/20] via 10.10.0.254 (back-end), 03:00:32, Ethernet0/0
O E2+    10.10.30.0 [110/20] via 10.10.0.254 (back-end), 03:00:32, Ethernet0/0
O E2+    10.10.40.0 [110/20] via 10.10.0.254 (back-end), 03:00:32, Ethernet0/0
O E2+    10.10.50.0 [110/20] via 10.10.0.254 (back-end), 03:00:32, Ethernet0/0
      20.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
C        20.20.0.0/24 is directly connected, Ethernet0/1
L        20.20.0.1/32 is directly connected, Ethernet0/1
B        20.20.10.0/24 [20/0] via 20.20.0.254, 02:53:07
B        20.20.20.0/24 [20/0] via 20.20.0.254, 02:53:07
B        20.20.30.0/24 [20/0] via 20.20.0.254, 02:53:07
B        20.20.40.0/24 [20/0] via 20.20.0.254, 02:53:07
B        20.20.50.0/24 [20/0] via 20.20.0.254, 02:53:07

Router%front-end#ping 20.20.10.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.20.10.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/5 ms

Router%front-end#traceroute 20.20.10.254
Type escape sequence to abort.
Tracing the route to 20.20.10.254
VRF info: (vrf in name/id, vrf out name/id)
  1 20.20.0.254 0 msec 0 msec *

Router%front-end#telnet 20.20.10.254
Trying 20.20.10.254 ... Open


User Access Verification

Username:

            จากตัวอย่างด้านบน จะเห็นว่าการใช้งาน routing-context จะช่วยอำนวนความสะดวกในการใช้งานคำสั่งเพื่อตรวจสอบการทำงานในแต่ละ VRF ได้ โดยจะช่วยให้สามารถตรวจสอบการทำงานได้อย่างรวดเร็วและลดความสับสนหรือผิดพลาดในการเรียกดูข้อมูลของแต่ละ VRF ลงไปได้อย่างมากนะครับ

No comments:

Post a Comment