วันพฤหัสบดีที่ 21 มีนาคม พ.ศ. 2562

Cisco ACI Multi-Site Designs (Part 2) - Stretched Fabric Design

Cisco ACI Multi-Site Designs (Part 2) - Stretched Fabric Design

ในตอนที่ 2 จะกล่าวถึงการ Design แบบ Stretched Fabric ซึ่งสามารถอ่านในตอนที่ 1 ตามลิงค์ด้านล่างครับ
Cisco ACI Multi-Site Designs (Part1)


Stretched Fabric Design

Cisco ACI แบบ Stretched fabric คือการเชื่อมต่อแบบ Partial Mesh หรือ Full Mesh ระหว่าง Leaf และ Spine ที่อยู่คนละ Location กัน ให้ทั้ง 2 Sites มองเห็นเป็น Fabric เดียวกัน (Single Fabric) เราสามารถจัดการอุปกรณ์ทั้ง 2 Sites ด้วย APIC Controller ชุดเดียวกัน

Stretched Fabric จะ manage โดยใช้ APIC Cluster ชุดเดียว (Single APIC Cluster) โดยจะประกอบด้วย APIC Controller ทั้งหมด 3 ตัว

  • 2 APICs ติดตั้งที่ไซต์นึง
  • 1 APIC ติดตั้งที่อีกไซต์นึง

APIC Cluster จะทำการเชื่อมทั้ง 2 ไซต์ โดยสามารถแชร์ Endpoint Database Synchronized และแชร์ control plane (IS-IS , COOP และ MP-BGP) เพราะมันจะมองเป็น Fabric เดียวกัน

ปัจจุบัน Cisco ACI รองรับการทำ Stretched Fabric ได้สูงสุด 3 ไซต์ แต่ว่าจะต้องมีอย่างน้อย 2 Leafs ในแต่ละ Location ที่ต้องออกแบบเป็น Transit Leafs โดยมีจุดประสงค์เพื่อให้แต่ละไซต์สามารถเชื่อมต่อถึงกัน โดยที่ไม่จำเป็นต้องต่อแบบ Full Mesh 

โดย Transit Leaf จะเชื่อมต่อกับ Spine ไม่มีความต้องการใดๆเพิ่มเติมสำหรับการเชื่อมต่อ Transit Leaf กับ Spine ระหว่างไซต์

ถ้าเกิดการเชื่อมต่อระหว่างไซต์มีปัญหา หรือ bandwidth ถูกจำกัด จะสามารถ prefer ผ่าน WAN Link ในแต่ละไซต์ ซึ่งตัว Transit Leaf จะต้องทำหน้าที่เป็น Border Leaf ด้วย เพื่อเชื่อมต่อไปหา WAN และตาม Best Practice ก็ควรแยกระหว่าง Transit Leaf กับ Border Leaf ออกจากกัน




Site-to-Site Connectivity Options

ในการเชื่อมต่อระหว่าง Site สำหรับที่มีการออกแบบเป็น Stretched Fabric มีการเชื่อมต่อที่รองรับ ดังนี้
  • Dark Fiber 40G - 40Km
Cisco QSFP
Cable Distance
QSFP-40G-LR4
10 km
QSFP-40GE-LR4
10 km
QSFP-40GLR4L
2 km
QSFP-40G-ER4
30 km
Note   
Starting with ACI release 1.1, QSFP-40G-ER4 supports a distance of 40KM.
  • DWDM 40G - 800Km

  • EoMPLS 10G/40G/100G - 800Km

    สำหรับ EoMPLS ที่มี Low-Speed ควรจะต้องมีการทำ QoS Policy สำหรับ critical control traffic เช่น traffic ที่คุยกันระหว่าง APIC Cluster Controller หรือ traffic control protocol (IS-IS , MP-BGP) ให้เป็น Priority Queue.


ซึ่งทุกการเชื่อมต่อ ต้องการ Round Trip Time (RTT) 10ms


ติดตามต่อในตอน 3 เรื่อง Failure Scenario ของ Stretched Fabric >>>

--------------------------------------------------------------------------------------------------------------------------

English Mode

In part 2 will mention for Stretched Fabric design, you can read in part 1 follow by below link
Cisco ACI Multi-Site Designs (Part1)


Stretched Fabric Design

A Cisco ACI stretched fabric is a partially meshed or fully meshed design that connects Cisco ACI leaf and spine switches distributed in separate geographic locations. The stretched fabric is functionally a single Cisco ACI fabric. The interconnected sites are one administrative domain and 
one availability zone with shared fabric control planes (using Intermediate System to Intermediate 
System [IS-IS] protocol, Cooperative Key Server Protocol [COOP], and Multiprotocol Border Gateway Protocol [MP-BGP]).

Administrators can manage the sites as one entity; configuration changes made on any APIC node are applied to devices across the sites.

The stretched fabric is managed by a single APIC cluster, consisting of three Application Policy 
Infrastructure Controllers (APICs), with two APICs deployed at one site and the third deployed at 
the other site. The use of a single APIC cluster stretched across both sites, a shared endpoint 
database synchronized between spines at both sites, and a shared control plane (IS-IS, COOP, and 
MP-BGP) defines and characterizes a Cisco ACI stretched fabric deployment.



At least two leafs at each location will be designated as transit leafs, the purpose of which is to provide connectivity between the locations. The transit leafs allow the sites to be connected to each other without requiring a full mesh.

Transit leaf refers to the leaf switches that provide connectivity between two sites. Transit leaf switches connect to spine switches on both sites. There are no special requirements and no additional configurations required for transit leaf switches. Any leaf switch can be used as transit leaf. At least one transit leaf switch must be provisioned for each site for redundancy reasons.

When bandwidth between sites is limited, it is preferable to have WAN connectivity at each site. While any leaf can be a transit leaf and a transit leaf can also be a border leaf (as well as provide connectivity for compute or service appliance resources), it is best to separate transit and border leaf functions on separate switches



Site-to-Site Connectivity Options

ACI stretched fabric site-to-site connectivity options include dark fiber, dense wavelength 
division multiplexing (DWDM), and Ethernet over MPLS (EoMPLS) pseudowire. The following media types, speeds, and distances are supported:
  • Dark fiber 40G/40km
Cisco QSFP
Cable Distance
QSFP-40G-LR4
10 km
QSFP-40GE-LR4
10 km
QSFP-40GLR4L
2 km
QSFP-40G-ER4
30 km
Note   
Starting with ACI release 1.1, QSFP-40G-ER4 supports a distance of 40KM.
  • DWDM 40G/800km

  • EoMPLS 10G/40G/100G/800km

All configurations require 10ms round trip time (RTT).


To be continued. >>


Reference : https://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/kb/b_kb-aci-stretched-fabric.html

วันจันทร์ที่ 18 มีนาคม พ.ศ. 2562

Cisco ACI Multi-Site Designs (Part 1)

Cisco ACI Multi-Site Designs (ตอนที่ 1)

ปกติแล้วเวลาในองค์กรมีการทำ Data Center ขึ้นมาเพื่อใช้งาน services หรือ applications ต่างๆ ถ้ามีการทำ Data Center เดียว ก็จะทำให้เกิดปัญหากรณีที่ Data Center นั้นล่มไป ทำให้ services หรือ applications ต่างๆที่อยู่บน Data Center นั้น ใช้งานไม่ได้

จึงต้องมีการทำ DR Site ขึ้นมาหรือ Redundant Data Center เพื่อให้ services และ application ใช้งานได้ต่อเนื่องได้

การทำ Active-Active Data Center จะทำให้ services และ applications สามารถใช้งานได้อย่างต่อเนื่อง โดยมีประโยชน์หลายอย่าง เช่น

  • Increase Uptime : เมื่อเราทำ Active-Active แล้ว เมื่อ Site นึง down ไป ระบบยังคงใช้งานได้อย่างต่อเนื่อง
  • Disaster Avoidance : เวลาที่ Site นึงเกิดปัญหาจากไฟฟ้าดับ หรือ ภัยธรรมชาติต่างๆ อีก Site นึงก็ยังสามารถใชงานต่อได้
  • Easier Maintenance : สามารถ maintenance ได้ง่าย เพราะเราสามารถ migrate services หรือ applications ไปยังอีก Site นึงได้
  • Flexible workload placement : สามารถจัดการหรือใช้งาน resource ต่างๆ ได้อย่างเต็มประสิทธิภาพ
  • Extreme low recovery time objective (RTO) : มี recovery time ที่เป็นศูนย์ (0) หรือใกล้เคียงศูนย์ (0) 
สำหรับการ Design and Deploy Cisco ACI สำหรับ 2 Data Center หรือ มากกว่า 2 Data Center ที่เป็นแบบ Active-Active รองรับ 2 แบบ
  • Stretched Fabric 
    การเชื่อมต่อทั้ง 2 Sites ให้มองเห็นเป็น Fabric เดียวกัน

  • Multiple Fabric
    การเชื่อมต่อทั้ง 2 Sites โดยแยก Fabric กัน


ติดตามต่อในตอน 2 >>>
--------------------------------------------------------------------------------------------------------------------------

วันเสาร์ที่ 29 กรกฎาคม พ.ศ. 2560

Python for Network Engineer : Telnet and Configure Cisco Devices


พอดีได้ลองทำ เลยมาเขียนแปะไว้ เผื่อท่านใดอยากลองเล่น

ผมลองเขียน Python โดยให้ตัวโปรแกรมสามารถ Telnet เข้าไปที่ Router และสั่งตั้งค่าตาม Code ที่เราเขียนไว้เป็นแบบอย่างง่ายๆ เบสิคๆ เลยครับ เพื่อให้ได้เห็นภาพแบบง่ายๆ และได้ไอเดียไปต่อยอดได้

ผมสร้าง Lab บน EVE-NG ขึ้นมา แบบง่ายๆ ผมต่อ Router ออกมาที่เครื่อง Notebook ผม


อย่างแรก ให้ดาวน์โหลด Python Interpreter ที่
https://www.python.org/downloads/



ใช้ Ver 2.x หรือ 3.x ก็ได้ครับ ใช้ได้เหมือนกัน จะต่างกันที่ Code บางตัว
แต่... ไม่ต้องห่วงครับ ในเว็บมี Document ให้ทั้ง Ver 2.x และ 3.x
  • Ver. 3.6 : https://docs.python.org/3.6/contents.html
  • Ver. 2.7 : https://docs.python.org/2.7/contents.html

ถัดมา ผมลงตัว PyCham ซึ่งเป็นตัว Editor มีประโยชน์มากๆ สำหรับใช้เขียนโปรแกรม Python ดาวน์โหลดได้ที่
https://www.jetbrains.com/pycharm/download/#section=windows

ใช้ Community Edition ก็เพียงพอครับ


หลังจากดาวน์โหลดมาแล้ว เปิดโปรแกรม PyCharm ขึ้นมา


ผมจะใช้ Python เพื่อให้ Telnet ไปที่อุปกรณ์ และ ลองสั่งให้ตั้งค่าที่ตัวอุปกรณ์ดูนะครับ

ผมใช้ Code ตามนี้เลย

import getpass
import telnetlib

HOST = "192.168.84.132"
user = input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")if password:
    tn.read_until(b"Password: ")
    tn.write(password.encode('ascii') + b"\n")
tn.write(b"enable\n")
tn.write(b"cisco\n")
tn.write(b"config ter\n")
tn.write(b"inter lo10\n")
tn.write(b"ip add 10.10.10.10 255.255.255.255\n")
tn.write(b"inter lo11\n")
tn.write(b"ip add 11.11.11.11 255.255.255.255\n")
tn.write(b"inter lo12\n")
tn.write(b"ip add 12.12.12.12 255.255.255.255\n")
print(tn.read_all().decode('ascii'))

มีส่วนที่ต้องแก้ไข ก็คือ
  • HOST = "หมายเลข IP address"
  • tn.write(b"ใส่คำสั่งที่ต้องการตั้งค่า\n")
ส่วนที่เหลือผมปรับมาให้บางส่วนละ สามารถลองนำไปใช้ได้เลย ปรับแค่ 2 ส่วนด้านบนก็พอครับ

ซึ่งผมเขียนให้สร้าง Interface Loopback10 , Loopback11 , Loopback12 และตั้งค่า IP address บนแต่ละ Interface Loopback

จากนั้นเอา Code ลองไป Run ใน PyCharm ดูครับว่าสามารถใช้งานได้ ไม่ติด Error ใดๆ


ในเคสที่ผม Run นี้ ไม่ติด Error ใดๆ แสดงว่า Code น่าจะใช้งานได้ เดี๋ยวต้องไปลองดู อันนี้ Save เป็นไฟล์เก็บไว้ก่อน ผมตั้งชื่อว่า "telnet.py"


ถัดมา ผมตั้งค่า IP address กับเปิด Telnet บน Router ก่อน



Router>enable
Router#configure terminal
Router(config)#enable password cisco
Router(config)#username supakorn password cisco
Router(config)#line vty 0 4
Router(config-line)# login local
Router(config-line)# transport input telnet

ลองทดสอบดูก่อนว่าสามารถ Telnet ได้จริง ผมลอง Telnet หา IP address ของตัวเอง


Router#telnet 192.168.84.132
Trying 192.168.84.132 ...

Open User Access Verification
Username: supakorn
Password:

Router>en
Password:
Router#

แบบนี้ แสดงว่า Telnet ได้ปกติ เดี๋ยวเราลอง Run ผ่าน Python ดูครับ

Code ที่ผมเขียนนี้ คือให้สร้าง Interface Loopback10 , Loopback11 , Loopback12 และตั้งค่า IP address บนแต่ละ Interface Loopback

ผมลอง "show ip interface brief" บน Router ดูก่อน   

Router#sh ip int br
Interface              IP-Address      OK? Method Status                Protocol
Ethernet0/0            unassigned      YES unset  administratively down down    
Ethernet0/1            192.168.84.132  YES DHCP   up                    up      
Ethernet0/2            unassigned      YES unset  administratively down down    
Ethernet0/3            unassigned      YES unset  administratively down down    

สังเกตุว่ายังไม่มี Interface Loopback นะครับ

เดี๋ยวลอง Run Python ที่เขียนเอาไว้ดู เอาแบบง่ายๆ ก็ ดับเบิ้ลคลิก ที่ไฟล์ได้เลยครับ

หลังจาก ดับเบิ้ลคลิก "telnet.py" ก็จะแสดงให้ใส่ username/password สำหรับ Telnet

ทีนี้ลองมาดูฝั่ง Router บ้างครับ (ผมทำการ "debug telnet" ไว้บน Router)

*Jul 29 14:11:54.398: Telnet2: 1 1 251 1
*Jul 29 14:11:54.398: TCP2: Telnet sent WILL ECHO (1)
*Jul 29 14:11:54.398: Telnet2: 2 2 251 3
*Jul 29 14:11:54.398: TCP2: Telnet sent WILL SUPPRESS-GA (3)
*Jul 29 14:11:54.398: Telnet2: 80000 80000 253 24
*Jul 29 14:11:54.398: TCP2: Telnet sent DO TTY-TYPE (24)
*Jul 29 14:11:54.398: Telnet2: 10000000 10000000 253 31
*Jul 29 14:11:54.398: TCP2: Telnet sent DO WINDOW-SIZE (31)
*Jul 29 14:11:54.399: TCP2: Telnet received DONT ECHO (1)
*Jul 29 14:11:54.399: TCP2: Telnet sent WONT ECHO (1)
*Jul 29 14:11:54.400: TCP2: Telnet received DONT SUPPRESS-GA (3)
*Jul 29 14:11:54.400: TCP2: Telnet sent WONT SUPPRESS-GA (3)
*Jul 29 14:11:54.400: TCP2: Telnet received WONT TTY-TYPE (24)
*Jul 29 14:11:54.400: TCP2: Telnet sent DONT TTY-TYPE (24)
*Jul 29 14:11:54.400: TCP2: Telnet received WONT WINDOW-SIZE (31)
*Jul 29 14:11:54.400: TCP2: Telnet sent DONT WINDOW-SIZE (31)
*Jul 29 14:11:54.414: TCP2: Telnet received DONT ECHO (1)
*Jul 29 14:11:54.414: TCP2: Telnet received DONT SUPPRESS-GA (3)
*Jul 29 14:11:54.414: TCP2: Telnet received WONT TTY-TYPE (24)
*Jul 29 14:11:54.414: TCP2: Telnet received WONT WINDOW-SIZE (31)

จะเห็นว่ามี Session Telnet เข้ามาที่ Router ครับ ทีนี้ไปลองดูบน Router ว่า Interface Loopback ได้ถูก configure ไปแล้วหรือไม่

Router#show ip int br
Interface                  IP-Address      OK? Method Status                Protocol
Ethernet0/0                unassigned      YES unset  administratively down down    
Ethernet0/1                192.168.84.132  YES DHCP   up                    up      
Ethernet0/2                unassigned      YES unset  administratively down down    
Ethernet0/3                unassigned      YES unset  administratively down down    
Loopback10                 10.10.10.10     YES manual up                    up      
Loopback11                 11.11.11.11     YES manual up                    up      
Loopback12                 12.12.12.12     YES manual up                    up      

มาแล้วครับ Interface Loopback !!!! 

อาจจะไม่ได้เขียนวิธีการ และ ไม่ได้อธิบายโดยละเอียดไว้นะครับ..
แต่เท่านี้ก็หวังว่าจะเป็นตัวอย่างแบบง่ายๆ ให้ได้ไอเดีย เผื่อใครอยากจะไปลองเล่นดูครับ

เราสามารถค่อยทยอยปรับ หรือ เขียนให้ Advance ขึ้นไปอีกได้ อย่างเช่น... 
เราใส่ Command ไว้เป็น Text File แล้วให้ตัวโปรแกรมไปเอา Command จากใน Text File มาเพื่อตั้งค่าลงบนอุปกรณ์ เป็นต้น

วันพุธที่ 5 เมษายน พ.ศ. 2560

Basic IOS XR Configuration (การตั้งค่า IOS XR พื้นฐาน) ตอนที่ 1



Network Diagram

 

Lab Content
  • LAB-X01 : ตั้งค่า Hostname
  • LAB-X02 : ตั้งค่า IPv4 Address
  • LAB-X03 : ตั้งค่า IPv6 Address
  • LAB-X04 : ตั้งค่า OSPFv2
  • LAB-X05 : ตั้งค่า OSPF Network Type
  • LAB-X06 : ตั้งค่า OSPF Cost

LAB-X01 : ตั้งค่า Hostname

IOS XR

RP/0/0/CPU0:ios#
RP/0/0/CPU0:ios# configure terminal
RP/0/0/CPU0:ios(config)# hostname XR1
RP/0/0/CPU0:ios(config)# commit
Tue Apr  4 13:57:17.310 UTC
RP/0/0/CPU0:XR1(config)#
RP/0/0/CPU0:XR1(config)#

IOS

Router# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)# hostname R1
R1(config)#

LAB-X02 : ตั้งค่า IPv4 Address

IOS XR

RP/0/0/CPU0:XR1#
RP/0/0/CPU0:XR1# configure terminal
RP/0/0/CPU0:XR1(config)# interface Loopback0
RP/0/0/CPU0:XR1(config-if)# ipv4 address 2.2.2.2 255.255.255.255
RP/0/0/CPU0:XR1(config-if)# no shutdown
RP/0/0/CPU0:XR1(config-if)# interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-if)# ipv4 address 172.16.0.2 255.255.255.0
RP/0/0/CPU0:XR1(config-if)# no shutdown
RP/0/0/CPU0:XR1(config-if)# commit

IOS

R1#
R1# configure terminal
R1(config)# interface Loopback0
R1(config-if)# ip address 1.1.1.1 255.255.255.255
R1(config-if)# no shutdown
R1(config-if)# interface GigabitEthernet0/0
R1(config-if)# ip address 172.16.0.1 255.255.255.0
R1(config-if)# no shutdown

ตรวจสอบการตั้งค่า IPv4 Address

IOS XR

RP/0/0/CPU0:XR1# show ipv4 interface brief
Tue Apr  4 13:49:43.691 UTC

Interface                             IP-Address      Status             Protocol Vrf-Name
Loopback0                           2.2.2.2            Up                 Up         default
MgmtEth0/0/CPU0/0            unassigned      Shutdown       Down     default
GigabitEthernet0/0/0/0         172.16.0.2        Up                  Up         default
GigabitEthernet0/0/0/1         unassigned      Shutdown        Down     default
GigabitEthernet0/0/0/2         unassigned      Shutdown        Down     default  


IOS 

R1# show ip interface brief
Interface                      IP-Address      OK? Method     Status                Protocol
GigabitEthernet0/0         172.16.0.1       YES manual     up                    up     
GigabitEthernet0/1         unassigned      YES NVRAM    up                    up     
GigabitEthernet0/2         unassigned      YES NVRAM    administratively down down   
GigabitEthernet0/3         unassigned      YES NVRAM    administratively down down   
Loopback0                     1.1.1.1            YES manual     up                    up      



LAB-X03 : ตั้งค่า IPv6 Address

IOS XR

RP/0/0/CPU0:XR1#
RP/0/0/CPU0:XR1# configure terminal
RP/0/0/CPU0:XR1(config)# interface Loopback0
RP/0/0/CPU0:XR1(config-if)# ipv6 address 2001::2/128
RP/0/0/CPU0:XR1(config-if)# no shutdown
RP/0/0/CPU0:XR1(config-if)# interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-if)# ipv6 address 2001:172:16::2/64
RP/0/0/CPU0:XR1(config-if)# no shutdown
RP/0/0/CPU0:XR1(config-if)# commit

IOS

R1#
R1# configure terminal
R1(config)# interface Loopback0
R1(config-if)# ipv6 address 2001::1/128
R1(config-if)# no shutdown
R1(config-if)# interface GigabitEthernet0/0
R1(config-if)# ipv6 address 2001:172:16::1/64
R1(config-if)# no shutdown

ตรวจสอบการตั้งค่า IPv6 Address

IOS XR

RP/0/0/CPU0:XR1# show ipv6 interface brief
Tue Apr  4 14:05:59.564 UTC
Loopback0              [Up/Up]
    fe80::64d2:cbff:fed0:ae91                    
    2001::2  
                                    
MgmtEth0/0/CPU0/0      [Shutdown/Down]
    unassigned                                   
GigabitEthernet0/0/0/0 [Up/Up]
    fe80::5200:ff:fe01:1                         
    2001:172:16::2  
                             
GigabitEthernet0/0/0/1 [Shutdown/Down]
    unassigned                                   
GigabitEthernet0/0/0/2 [Shutdown/Down]
    unassigned                        


IOS 

R1# show ipv6 interface brief
GigabitEthernet0/0     [up/up]
    FE80::5200:FF:FE02:0
    2001:172:16::1

GigabitEthernet0/1     [up/up]
    unassigned
GigabitEthernet0/2     [administratively down/down]
    unassigned
GigabitEthernet0/3     [administratively down/down]
    unassigned
Loopback0              [up/up]
    FE80::5200:FF:FE02:0
    2001::1


LAB-X04 : ตั้งค่า OSPFv2

IOS XR

RP/0/0/CPU0:XR1(config)# router ospf 1
RP/0/0/CPU0:XR1(config-ospf)# router-id 2.2.2.2
RP/0/0/CPU0:XR1(config-ospf)# area 0
RP/0/0/CPU0:XR1(config-ospf-ar)#  interface Loopback0
RP/0/0/CPU0:XR1(config-ospf-ar-if)#  exit
RP/0/0/CPU0:XR1(config-ospf-ar)#  interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-ospf-ar-if)# commit

IOS

R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 1.1.1.1 0.0.0.0 area 0
R1(config-router)# network 172.16.0.1 0.0.0.0 area 0

ตรวจสอบ OSPFv2

IOS XR

RP/0/0/CPU0:XR1# show ospf neighbor
Tue Apr  4 14:16:49.610 UTC

* Indicates MADJ interface
# Indicates Neighbor awaiting BFD session up

Neighbors for OSPF 1
Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1         1     FULL/ DR        00:00:36    172.16.0.1      GigabitEthernet0/0/0/0
    Neighbor is up for 08:57:30   



RP/0/0/CPU0:XR1# show ospf database
Tue Apr  4 14:18:54.651 UTC
            OSPF Router with ID (2.2.2.2) (Process ID 1)
                Router Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         347         0x8000001a 0x00bf84 3
2.2.2.2         2.2.2.2         230         0x8000001a 0x005ddd 3



RP/0/0/CPU0:XR1# show route ospf
Tue Apr  4 14:22:30.396 UTC
O    1.1.1.1/32 [110/2] via 172.16.0.1, 00:00:04, GigabitEthernet0/0/0/0



RP/0/0/CPU0:XR1# show ospf interface g0/0/0/0
Tue Apr  4 14:27:42.205 UTC

GigabitEthernet0/0/0/0 is up, line protocol is up
  Internet Address 172.16.0.2/24, Area 0
  Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1, MTU 1500, MaxPktSz 1500
  Designated Router (ID) 2.2.2.2, Interface address 172.16.0.2
  Backup Designated router (ID) 1.1.1.1, Interface address 172.16.0.1
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:03:762
  Index 2/2, flood queue length 0
  Next 0(0)/0(0)
  Last flood scan length is 1, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  LS Ack List: current length 0, high water mark 2
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 1.1.1.1  (Backup Designated Router)
  Suppress hello for 0 neighbor(s)
  Multi-area interface Count is 0


IOS 

R1# show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   FULL/  BDR        00:00:39    172.16.0.2      GigabitEthernet0/0



R1# show ip ospf database
            OSPF Router with ID (1.1.1.1) (Process ID 1)
                Router Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         126         0x8000001D 0x006815 2
2.2.2.2         2.2.2.2         128         0x8000001C 0x005A17 2

                Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
172.16.0.2      2.2.2.2         128         0x80000001 0x005017



R1# show ip route ospf

Gateway of last resort is not set
      2.0.0.0/32 is subnetted, 1 subnets
O        2.2.2.2 [110/2] via 172.16.0.2, 00:03:03, GigabitEthernet0/0



R1# show ip ospf interface gi0/0
GigabitEthernet0/0 is up, line protocol is up
  Internet Address 172.16.0.1/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 2.2.2.2, Interface address 172.16.0.2
  Backup Designated router (ID) 1.1.1.1, Interface address 172.16.0.1
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:02
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 2/2, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 2.2.2.2  (Designated Router)
  Suppress hello for 0 neighbor(s)



LAB-X05 : ตั้งค่า OSPF Network Type

IOS XR

RP/0/0/CPU0:XR1(config)# router ospf 1
RP/0/0/CPU0:XR1(config-ospf)# area 0
RP/0/0/CPU0:XR1(config-ospf-ar)# interface gigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-ospf-ar-if)# network point-to-point
RP/0/0/CPU0:XR1(config-ospf-ar-if)# commit

IOS

R1(config)# interface gigabitEthernet 0/0
R1(config-if)# ip ospf network point-to-point

ตรวจสอบการตั้งค่า IPv4 Address

IOS XR

RP/0/0/CPU0:XR1# show ospf interface gigabitEthernet 0/0/0/0 | inc Network
Tue Apr  4 14:37:40.664 UTC
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 1


IOS 

R1# show ip ospf interface gigabitEthernet 0/0 | inc Network
  Internet Address 172.16.0.1/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 1



LAB-X06 : ตั้งค่า OSPF Cost

ตรวจสอบค่า OSPF Cost เดิมก่อนปรับค่า

IOS XR

RP/0/0/CPU0:XR1# show ospf interface gigabitEthernet 0/0/0/0 | inc Network
Tue Apr  4 14:37:40.664 UTC
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 1


IOS 

R1# show ip ospf interface gigabitEthernet 0/0 | inc Network
  Internet Address 172.16.0.1/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 1



ตั้งค่า OSPF Cost

IOS XR

RP/0/0/CPU0:XR1(config)# router ospf 1
RP/0/0/CPU0:XR1(config-ospf)# area 0
RP/0/0/CPU0:XR1(config-ospf-ar)# interface gigabitEthernet 0/0/0/0
RP/0/0/CPU0:XR1(config-ospf-ar-if)# cost 10
RP/0/0/CPU0:XR1(config-ospf-ar-if)# commit
IOS

R1(config)# interface gigabitEthernet 0/0
R1(config-if)# ip ospf cost 10

ตรวจสอบค่า OSPF Cost

IOS XR

RP/0/0/CPU0:XR1# show ospf interface gigabitEthernet 0/0/0/0 | inc Network
Tue Apr  4 14:37:40.664 UTC
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 10


IOS 

R1# show ip ospf interface gigabitEthernet 0/0 | inc Network
  Internet Address 172.16.0.1/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 10 



วันอาทิตย์ที่ 30 ตุลาคม พ.ศ. 2559

การตั้งค่า Cisco WLC โดยใช้ Local Web Authentication (LWA) ด้วย Local Users

สวัสดีครับ วันนี้ ผมจะมาแบ่งปันวิธีการตั้งค่า Cisco Wireless LAN Controller (WLC) แบบ Local Web Authentication (LWA) โดยใช้ Local Users กันครับ

จุดประสงค์
  1. เมื่อเชื่อมต่อ SSID แล้ว ให้แสดงหน้า Web Authentication ขึ้นมา
  2. Username/Password ที่ใช้งาน Login ผ่าน Web ให้ใช้ Local User ที่สร้างไว้บน Cisco WLC
เราลองมาดูวิธีการตั้งค่ากันครับ


1. สร้าง SSID สำหรับ Web Authen



2. ตั้งค่า SSID 
  • ในหน้า General
    • Status : ติ๊กถูก Enabled
    • Interface/Interface Group(G) : เลือก Interface ที่ต้องการใช้งาน (ในตัวอย่างนี้ผมใช้เป็น Interface Management ซึ่งจะต้องตั้งค่า Interface ของ WLC ก่อนนะครับ)
    • Broadcast SSID : ติ๊กถูก Enabled

  • ในหน้า Security > Layer 2
    •  เลือก Layer 2 Security เป็น "None"
  • ในหน้า Security > Layer 3
    • เลือก Layer 3 Security เป็น "Web Policy"
    • เลือก "Authentication"
  •  ในหน้า Security > AAA Servers
    • เลื่อนลงมาด้านล่างสุด ตรงหัวข้อ "Authentication priority order for web-auth user" ให้สังเกตุตรง "Order Used For Authentication" เลือก "LOCAL" มาอยู่บนสุด เพื่อใช้งาน User ที่สร้างบน Cisco WLC

 3. ตั้งค่า Web Authentication
  • ในหน้า Security ด้านบน
    • ไปที่เมนู "Web Auth" ด้านซ้าย แล้วเลือก "Web Login Page" 
    • ตรงหัวข้อ "Web Authentication Type" เลือกใช้เป็น "Internal (Default)"
    • สามารถปรับแต่งหัวข้อและข้อความตามต้องการได้
      • เมื่อปรับแต่งข้อความเสร็จแล้ว ให้กด "Apply" และ ดู "Preview"
      •  กดดู "Preview"
  

 4. สร้าง Username / Password บน Cisco WLC
  •  ในหน้า Security ด้านบน
    • ไปที่เมนู "Local Net Users" ด้านซ้าย แล้วเลือก "New"
    • สร้าง Username / Password ให้เรียบร้อย
    • เลือก WLAN Profile เป็น SSID ชื่อ "Web" (ที่เราสร้างขึ้นมาตอนแรก เพื่อให้ User นี้ใช้งานกับ SSID ชื่อ Web ได้เพียง SSID เดียว)
    • จากนั้นกด "Apply"


5. ทดสอบการใช้งาน
  • เชื่อมต่อ SSID : Web
  • Cisco WLC จะทำการ redirect web authentication ขึ้นมาให้ (ให้ทำการกด continue ไปได้เลย)
  •  ทำการใส่ Username / Password ที่สร้างไว้ก่อนหน้านี้ แล้วกด "Submit"
  •  ถ้า Username / Password ถูกต้อง และ สามารถใช้งานได้ ก็จะแสดงหน้า Login Successful
  •  สามารถใช้งานได้ตามปกติ


ก็จบไปแล้ว สำหรับการตั้งค่า Cisco WLC โดยใช้ Local Web Authentication ด้วย Local Users นะครับ ก็หวังว่าน่าจะเป็นประโยชน์กับผู้ที่กำลังศึกษาอยู่นะครับ แล้วไว้รอบหน้าจะทยอยมาเขียนเพิ่มให้เรื่อยๆอีกนะครับ

ขอบคุณครับ
By ReFeeL