Archive by category "Firewall"

Policy Based Routing บน PaloAlto

ดึกแล้วแต่เรายังไม่นอน – ตอนนี้พยามยามบังคับตัวเองให้เขียน Blog ให้ได้อาทิตย์ละครั้งครับ ><”

อาทิตย์นี้สลับมาทำ Lab ด้วย PaloAlto กันต่อกันอีกสักหนึ่ง Lab ว่ากันด้วยเรื่องของ Policy Based Routing ครับ

ก่อนเริ่มต้นก็ต้องมี Diagram กันก่อนโดยผมจะใช้ Diagram ดังนี้ครับ ใน Lab นี้จะใช้ BGP เป็น routing protocol ใน Internet zone เพื่อความสมจริงส่วนตัวครับ

ต่อมาก็เริ่มสร้าง Lab กันด้วย UnetLab ตามเดิมครับ จะได้ Diagram ตามนี้

โดยอุปกรณ์ที่ใช้ก็จะมีดังนี้

1. PaloAlto – VM

2. IOU-L2 (Core-SW)

3. IOU-L3 (ISP-1, ISP-2 และ Google)

สำหรับ Command ที่ใช้ใน IOU มีดังนี้

=== Core-SW ===
hostname Core-SW
interface Loopback0
ip address 172.16.10.1 255.255.255.0
interface Loopback1
ip address 172.16.20.1 255.255.255.0
interface Ethernet0/0
no switchport
ip address 192.168.50.1 255.255.255.0
no ip http server
ip route 0.0.0.0 0.0.0.0 192.168.50.10

=== ISP-1 ===
hostname ISP-1
interface Loopback100
ip address 1.1.1.1 255.255.255.0
interface Ethernet0/0
ip address 203.111.111.1 255.255.255.240
shutdown
interface Ethernet0/1
ip address 10.1.1.1 255.255.255.0
router bgp 100
bgp router-id 1.1.1.1
bgp log-neighbor-changes
network 203.111.111.0 mask 255.255.255.240
neighbor 10.1.1.2 remote-as 300

=== ISP-2 ===
hostname ISP-2
interface Loopback0
ip address 2.2.2.2 255.255.255.0
interface Ethernet0/0
ip address 202.222.222.1 255.255.255.240
interface Ethernet0/1
ip address 20.1.1.1 255.255.255.0
router bgp 200
bgp router-id 2.2.2.2
bgp log-neighbor-changes
network 202.222.222.0 mask 255.255.255.240
neighbor 20.1.1.2 remote-as 300

=== Google ===
hostname GOOGLE
interface Loopback0
ip address 8.8.8.8 255.255.255.0
interface Loopback1
ip address 8.8.4.4 255.255.255.0
interface Loopback100
ip address 3.3.3.3 255.255.255.0
interface Ethernet0/0
ip address 10.1.1.2 255.255.255.0
interface Ethernet0/1
ip address 20.1.1.2 255.255.255.0
router bgp 300
bgp router-id 3.3.3.3
bgp log-neighbor-changes
network 8.8.4.0 mask 255.255.255.0
network 8.8.8.0 mask 255.255.255.0
neighbor 10.1.1.1 remote-as 100
neighbor 20.1.1.1 remote-as 200

สำหรับการตั้งค่า Policy Based Routing จะมีดังนี้ครับ

1. สร้าง Default route ออกไปที่ Backup interface ที่ต้องการ ในกรณีนี้คือ Interface ethernet1/3 โดยให้มีค่า AD สูงๆ เพื่อให้ Default route นี้ไม่ทำงานจนกว่าจะ Monitor IP ที่ต้องการไม่ได้ ตามรูปครับ

2. สร้าง Security policy เพื่อทำการทดสอบการทำงาน ในกรณีนี้ผมจะใช้ Ping/Traceroute เป็นหลักในการทดสอบ

3. สร้าง NAT policy สำหรับออก Internet มาสองอัน โดยอันแรกใช้สำหรับ ISP-1 และอันที่สองใช้สำหรับ ISP-2

4. สร้าง Policy Based Forwarding rule ในกรณีนี้ผมจะใช้ชื่อ PBR-ISP-1 เพราะว่าต้องการ Monitor ISP-1 และเมื่อ IP ของ ISP-1 ไม่สามารถ Ping ได้จะให้ทำการ Fail-over ไปที่ Default route ปกติที่อยู่ใน Default Virtual Router

4.1 ตั้งชื่อให้ PBR

4.2 ใส่ Source zone

4.3 Destination/Application/Service ให้ใช้ค่า Default

4.4 Forwarding ให้ตั้งค่าดังนี้

  • Action                   : Forward
  • Egress Interface : ethernet1/2 (Interface ที่ต่อกับ ISP-1)
  • Next Hop             : 203.111.111.1 (Interface IP Address ของ ISP-1 ที่ต่อกับเรา)
  • Enable                  : Monitor
  • Profile                   : PBR-ISP-1 (การสร้างดูได้จากขั้นตอนที่ 5)
  • Enable                  : Disable this rule if nexthop/monitor ip is unreachable
  • IP Address           : 8.8.8.8

5. สร้าง Monitor profile สำหรับการทำ Fail-over โดยจะต้องทำการเลือก Action เป็น Fail Over เท่านั้น

6. เมื่อจบขั้นตอนทั้งหมดแล้วให้ทำการ Commit เพื่อให้ PaloAlto นำค่าไปใช้งานต่อไป

เมื่อทำการ Configure อุปกรณ์ทั้งหมดแล้วให้ทำการตรวจสอบต่างๆดังนี้

=== Google ===

show ip route

 

เมื่อที่ Google router ได้รับ Routing จาก ISP-1 และ ISP-2 จากนั้นให้ทำการใช้ PaloAlto ping ไปที่ IP Address 8.8.8.8 โดยเปลี่ยน Source IP address เป็น IP Address ต่างๆดังนี้เพื่อทำการทดสอบการทำงาน

=== 203.111.111.2 ===

=== 202.222.222.2 ===

=== 192.168.50.10 ===

ถ้าผ่านทั้งสามขั้นตอนนี้แสดงว่า Routing บน PaloAlto สามารถใช้งานได้ตามที่ต้องการแล้ว ต่อมาให้ทำการใช้ LAN Network ทดสอบ Ping ออกมาที่ IP Address 8.8.8.8 เช่นเดียวกันเพื่อทดสอบ NAT และ Security rule บน PaloAlto

ถึงขั้นตอนนี้แล้วแสดงว่า Rule ที่ตั้งค่าไว้ทำงานได้ตามที่ต้องการแล้วทั้งหมดเหลือแต่ PBR อย่างสุดท้ายแล้ว!!!

ขั้นตอนนี้ให้ทำการ Shutdown interface e0/0 ของ ISP-1 เพื่อทำให้ Monitor profile ของ PaloAlto ทำงานในระหว่างนั้นให้ทำการใช้ Core-SW ping ออกไปที่ IP Address ค้างไว้เพื่อทดสอบการทำงานของ PBR โดยจะได้ผลการทดสอบดังนี้

จะเห็นได้ว่าสามารถ Ping ออกไปที่ IP Address ได้ตลอดถึงแม้จะมี Timeout เกิดขึ้นบ้างเป็นช่วงเนื่องจากเป็นการใช้งาน Emulator แต่ในกรณีที่ใช้งานจริงจะมีความเสถียรมากกว่านี้ ต่อไปให้ทำการเช็ค System Log ของ PaloAlto จะพบว่า Monitor IP down และมีการ Bypass traffic ออกไปได้ตามรูปด้านล่างนี้

 

สำหรับหัวข้อ Policy Based Routing บน PaloAlto ก็จบลงเพียงเท่านี้ครับ ^^