Cisco IPSec Tunnel Site2Site Implementation

Pao Payungsak Klinchampa
Next-Hop Co., Ltd.
Published in
3 min readSep 9, 2019

บทความนี้จะพูดถึงเรื่องการเอา Cisco Router 2 ตัวมาต่อ IPSec VPN ถึงกันแบบ Site2Site นะครับ เนื้อหาจะพ้น CCNA Level ไปหน่อย เเละอาจมี Config ที่ค่อนข้างซับซ้อนนิดนึงนะครับ

ในตัวอย่างจะใช้ Topology ตามภาพนี้

Router ตัวอื่นไม่ต้องไปสนใจมันนะครับ บทความนี้เราจะสนใจเฉพาะ R3 กับ R5 ในรูป ที่มีท่อสีเหลืองเชื่อมเข้าหากันเท่านั้น พวก ISP Network ทั้งหลายข้างบนผมใส่ลงไปเพื่อความ เวอร์วัง เท่านั้นเอง ฮ้าๆๆ

ก่อนอื่นต้อง Make Sure ก่อนนะครับว่า Router ทั้งสองตัวสามารถติดต่อสื่อสารถึงกันได้ โดยถ้าเทสเเบบบ้านๆสุดคือ Ping หากันเจอ (แต่ถ้ามี Policy / Firewall Rule อื่นๆไป Drop ICMP ทิ้งก็คงใช้ไม่ได้)

และ Port 500/UDP ต้องไม่ถูก Block นะครับ ถ้าใครมี Firewall วางขวางเอาไว้ด้านหน้า VPN Router ก็ Alllow Forward ให้มันด้วย

ส่วนในภาพไม่มี firewall นะครับ ใช้ได้เลย

มาดุ Public IP ของ VPN Router ทั้ง 2 ตัวกันก่อน

R3 : 105.105.11.2 (ตัวด้านซ้าย)

R5: 105.105.12.2 (ตัวด้านขวา)

และ Private Network ของทั้งสองฝั่ง :

172.16.0.0/16 (ตัวด้านซ้าย)

172.17.0.0/16 (ตัวด้านขวา)

ก่อนอื่นเราก็ต้องตั้งค่า IP Address ลง Interface เเละตั้งค่า Default Route กันก่อน อันนี้ขอไม่พูดถึง ผ่านเลยเเล้วกัน

อันนี้ที่ R3 , VPN Router ตัวด้านซ้ายตามภาพนะครับ

เราจะเริ่มกันที่การสร้าง Crypto isakmp policy กันก่อน ซึ่งค่า Config นี้จะเป็นการ define ว่าจะคุยกับ Peer ยังไง

!
crypto isakmp policy 5
hash sha
authentication pre-share
group 2
lifetime 86400
encryption 3des
!
crypto isakmp key xyz@123 address 105.105.12.2

ในที่นี้จะใช้ Polucy เบอร์ 5 ใช้ hash เเบบ sha , authen ด้วย PSK , ใช้ 3des ในการทำ Encrypt และก็กำหนด Pre-Share-Key ให้กับ Peer ของเราด้วย

หลังจากนั้นก็มาจัดการ Define transform-set กัน ซึ่งเจ้านี่จะเป็นตัวบ่งบอกว่าเราจะทำ IPSec เเบบ ESP กัน ก็คือการจับ Packet เเล้ว Encapsulation นั่นเอง ในที่นี้ผมตั้งชื่อว่า XYZ-SET

!
crypto ipsec transform-set XYZ-SET esp-aes 128 esp-md5-hmac
crypto ipsec security-association lifetime seconds 3600
!

ต่อมาก็สร้าง ACL กัน

!
ip access-list extended VPN-TRAFFIC
permit ip 172.16.0.0 0.0.255.255 172.17.0.0 0.0.255.255
!

โดยในที่นี้เราจะให้ Network วง 172.16.0.0/16 คุยกับ 172.17.0.0/16 ได้ โดยที่

172.16.0.0/16 คือ Network หลังบ้านของ XYZ-Corp ด้านซ้าย ตามในภาพ และ

172.17.0.0/16 คือ Network หลังบ้านของ XYZ-Corp ด้านขวา

ถ้ามี Network อื่นๆอีก ก็เพิ่มเข้ามาได้ เเละถ้า Network วงไหน Sum ได้ก็จัดการ Sum มันให้เรียบร้อย จะได้ไม่ต้องมา Add Network เยอะๆนะครับ

หลังจากนั้นก็สร้าง Crypto Map กัน ตามด้านล่างนี้

!
crypto map IPSEC-SITE-TO-SITE-VPN 10 ipsec-isakmp
match address VPN-TRAFFIC
set peer 105.105.12.2
set transform-set XYZ-SET
!

ในที่นี่ผมสร้าง Crypto Map ชื่อ IPSEC-SITE-TO-SITE-VPN โดยเจ้า Crypto Map ก็คือส่วนที่จัดการดึง Transform-Set , Peer , ACL ที่เรา Define ไว้ในขั้นตอนก่อนหน้านี้เอามาใช้

จากนั้นก็จัดการ Apply Crypto Map ที่สร้างเอาไว้กับ Interface ทางออกที่จะวิ่งไปหา Peer กัน ซึ่งในที่นี้คือ eth0/0

!
int eth0/0
crypto map IPSEC-SITE-TO-SITE-VPN
!

และถ้า Network หลังบ้าน วง 172.16.0.0/16 มีการทำ NAT เพื่อให้ออกเน็ตได้ เราก็ต้องจัดการ deny ip โดยให้ destination เป็น Network วงหลังบ้านของ Peer ซึ่งพูดง่ายๆก็คือถ้าวิ่งหากันระหว่าง Peer ไม่ต้องทำ NAT นั่นเอง ตัวอย่างตามนี้

!
ip access-list extended NAT
deny ip 172.16.0.0 0.0.255.255 172.17.0.0 0.0.255.255
permit ip 172.16.0.0 0.0.255.255 any
remart NAT-All-Client-to-Internet
!
ip nat inside source list NAT interface eth0/0 overload
!

หลังจากนั้น เราก็ไปจัดการ Config ที่ VPN Router อีกตัวนึง ในตัวอย่างก็ตัวด้านขวาโดย Config เหมือนกันเลย จะต่างกันเเค่พวกเลข IP การสร้าง ACL VPN-TRAFFIC โดยให้ระบุ Source / Dest IP ให้ถูกต้อง

หากการตั้งค่าเสร็จสมบูรณ์ เราก็สามารถที่จะติดต่อกันไปมาหาสู่ได้ โดยอาจทดสอบด้วยการ Ping ตามตัวอย่างนี้

From VPN Router 1 (R3 ตัวด้านซ้าย)

ping 172.17.1.1 source 172.16.1.1

ซึ่งก็ควรจะ Ping ได้ และหากต้องการทดสอบในทางกลับกัน ก็

From VPN Router 2 (R5 ตัวด้านขวา)

ping 172.16.1.1 source 172.17.1.1

เป็นอย่างไรกันบ้างครับ ไม่ยากกันเลยใช่มั๊ย

ส่วนการ Implement ใช้จริง ให้พิจารณาเรื่องของ Algorithm ในการทำ Encrypt ด้วย หากอ่อนไปก็ไม่ Secure ซับซ้อนเกินก็อาจใช้ Resource บน VPN Router เยอะหน่อย ทั้งนี้ก็พิจารณาตามความเหมาะสมก็เเล้วกันนะครับ

แต่เดี๋ยวนี้ก็คงไป SD-WAN กันหมดเเล้วมั๊ย 555 เเต่อันนี้ก็เป็นพื้นฐานที่ดีครับ การที่เราจะไปทำอะไรได้สูงขึ้น ถ้ามีพื้นฐานเเน่นๆเข้าไว้ จะอะไรที่ดีมากๆ

สุดท้ายนี้ก็ขอบคุณทุกท่านที่เข้ามาอ่านกัน ใครจะเตรียมตัวสอบ Cisco Cert ก็ฝึกฝนตัวเองให้ช่ำชอง ขออวยพรให้ทุกคนโชคดีครับ

--

--