Lab Configuring BGP & Route Filter

จาก Diagram ให้ทำการตั้งค่า Router ดังต่อไปนี้ 1. ทำการตรวจสอบ Pre-Configure ของ HQ, ISP1 และ ISP2 พร้อมทั้ง Check ความพร้อมต่างๆ 2. ทำการ Configure BGP บน HQ และ ISP routers 3. ทำการ Verify BGP บน routers ทุกตัว 4. ทำการ configure route filter ดาวน์โหลดไฟล์ LAB (Program EVE-NG) 1. ทำการตรวจสอบ Pre-Configure ของ router ISP1, HQ และ ISP2 พร้อมทั้งตรวจสอบความพร้อมต่างๆ 1.1. ที่ Router ISP1 ISP1#show running-config
hostname ISP1
!
interface Loopback0
description ISP1 Internet Network
ip address 10.1.1.1 255.255.255.0
!
interface Ethernet0/0
description ISP1 -> HQ
ip address 10.0.0.1 255.255.255.252
!
end

ISP1#show ip interface brief | i up
Ethernet0/0 10.0.0.1 YES manual up up
Loopback0 10.1.1.1 YES manual up up
ISP1# 1.2. Router HQ HQ#show running-config
hostname HQ
!
interface Loopback0
description Core router network link 1
ip address 192.168.0.1 255.255.255.0
!
interface Loopback1
description Core router network link 2
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0/0
description HQ -> ISP1
ip address 10.0.0.2 255.255.255.252
!
interface Ethernet0/1
description HQ -> ISP2
ip address 172.16.0.2 255.255.255.252
end

HQ#show ip interface brief | i up
Ethernet0/0 10.0.0.2 YES manual up up
Ethernet0/1 172.16.0.2 YES manual up up
Loopback0 192.168.0.1 YES manual up up
Loopback1 192.168.1.1 YES manual up up
HQ# 1.3. ที่ Router ISP2 ISP2#show running-config
!
hostname ISP2
!
interface Loopback0
description ISP2 Internet Network
ip address 172.16.1.1 255.255.255.0
!
interface Ethernet0/1
description ISP2 -> HQ
ip address 172.16.0.1 255.255.255.252
!
end

ISP2#show ip interface brief | i up
Ethernet0/1 172.16.0.1 YES manual up up
Loopback0 172.16.1.1 YES manual up up
ISP2# 2. ทำการ Configure BGP บน ISP และ HQ routers 2.1. บน router ISP1 และ ISP2 ให้ทำการ configure BGP peer ไปยัง HQ router และ ทำการ advertise หรือประกาศ loopback network บน Router ISP1 ISP1(config)#router bgp 200
ISP1(config-router)#neighbor 10.0.0.2 remote-as 100
ISP1(config-router)#network 10.1.1.0 mask 255.255.255.0
ISP1(config-router)# บน Router ISP2 ISP2(config)#router bgp 300
ISP2(config-router)#neighbor 172.16.0.2 remote-as 100
ISP2(config-router)#network 172.16.1.0 mask 255.255.255.0
ISP2(config-router)# 2.2. ทำการ configure HQ router ให้ Run BGP และ peer ไป ทั้งสอง ISP (ISP1, ISP2) HQ(config)#router bgp 100
HQ(config-router)#neighbor 10.0.0.1 remote-as 200
HQ(config-router)#neighbor 172.16.0.1 remote-as 300
HQ(config-router)#network 192.168.0.0
HQ(config-router)#network 192.168.1.0 2.3. ทำการตรวจสอบ configuration โดยตรวจสอบ routing table ของ HQ router ด้วยคำสั่ง show ip route HQ#sh ip route
-------------ตัดบางส่วน------------------------
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0
L 10.0.0.2/32 is directly connected, Ethernet0/0
B 10.1.1.0/24 [20/0] via 10.0.0.1, 00:00:41
172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
C 172.16.0.0/30 is directly connected, Ethernet0/1
L 172.16.0.2/32 is directly connected, Ethernet0/1
B 172.16.1.0/24 [20/0] via 172.16.0.1, 00:00:41
192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.0.0/24 is directly connected, Loopback0
L 192.168.0.1/32 is directly connected, Loopback0
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, Loopback1
L 192.168.1.1/32 is directly connected, Loopback1 จะเห็นได้ว่า HQ Router มี BGP route ไปยัง loopback network สำหรับแต่ละ ISP router เรียบร้อย 2.4.ทำการทดสอบ ping จาก HQ router ไปยัง ip loopback ของ ISP Router HQ#ping 10.1.1.1
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/6 ms

HQ#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms 3. ทำการ Verify BGP บน routers ทุกตัว 3.1. ใช้คำสั่ง show ip bgp เพื่อตรวจสอบการทำงานของ BGP table บน HQ router HQ#show ip bgp
BGP table version is 5, local router ID is 192.168.1.1
-------------ตัดบางส่วน------------------------
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.0/24 10.0.0.1 0 0 200 i
*> 172.16.1.0/24 172.16.0.1 0 0 300 i
*> 192.168.0.0 0.0.0.0 0 32768 i
*> 192.168.1.0 0.0.0.0 0 32768 i จะสังเกตผลที่แสดงได้ว่า - Local router ID คือ 192.168.1.1 - เครื่องหมายดอกจัน (*) หมายถึง valid และ เครื่องหมาย > หมายถึง route นี้ เป็น route ที่ถูกเลือกเป็น route ที่ดีที่สุด 3.2. ใช้คำสั่ง show ip bgp เพื่อตรวจสอบการทำงานของ ISP1 ISP1#show ip bgp
BGP table version is 5, local router ID is 10.1.1.1
-------------ตัดบางส่วน------------------------
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.0/24 0.0.0.0 0 32768 i
*> 172.16.1.0/24 10.0.0.2 0 100 300 i
*> 192.168.0.0 10.0.0.2 0 0 100 i
*> 192.168.1.0 10.0.0.2 0 0 100 i
ISP1# จะเห็นจากผลว่า table version เป็น 5 เและ เส้นทางไป network 172.16.1.0/24 คือ path ที่ผ่าน AS 100 (HQ) และ AS 300 (ISP2) 3.3. บน router ISP1 ให้ใช้คำสั่ง shutdown บน loopback0 จากนั้นบน router HQ ให้ใช้คำสั่ง show ip bgp อีกครั้ง ISP1(config)#interface loopback 0
ISP1(config-if)#shutdown

HQ#show ip bgp
BGP table version is 6, local router ID is 192.168.1.1
-------------ตัดบางส่วน------------------------
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 172.16.0.1 0 0 300 i
*> 192.168.0.0 0.0.0.0 0 32768 i
*> 192.168.1.0 0.0.0.0 0 32768 i ซึ่งเมื่อใช้คำสั่งดังกล่าว เราจะเห็นว่า table version ที่แสดงคือ 6 ซึ่งเพิ่มมาจากครั้งที่แล้ว เนื่องจากคำสั่ง shutdown ทำให้มีการ update ของ routing table เกิดขึ้น สำหรับ network 10.1.1.0/24 ซึ่งเราจะไม่เห็นบน BGP table แล้วเนื่องจาก interface Lo0 บน ISP1 ได้ down ไปแล้ว 3.4. ใช้คำสั่ง no shutdown บน ISP1 ISP1(config)#interface loopback 0
ISP1(config-if)#no shutdown 4. ทำการ configure route filter 4.1. ทำการตรวจสอบ routing table ของ ISP2 โดยใช้คำสั่ง show ip route ซึ่ง router ISP2 จะมี route ที่เป็นของ ISP1 คือ network 10.1.1.0 ISP2#show ip route
-------------ตัดบางส่วน------------------------
10.0.0.0/24 is subnetted, 1 subnets
B 10.1.1.0 [20/0] via 172.16.0.2, 00:01:53
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks
C 172.16.0.0/30 is directly connected, Ethernet0/1
L 172.16.0.1/32 is directly connected, Ethernet0/1
C 172.16.1.0/24 is directly connected, Loopback0
L 172.16.1.1/32 is directly connected, Loopback0
B 192.168.0.0/24 [20/0] via 172.16.0.2, 00:09:04
B 192.168.1.0/24 [20/0] via 172.16.0.2, 00:09:04
ISP2# 4.2. ทำการ traceroute ไปยัง Lo0 interface ของ ISP1 ISP2#traceroute 10.1.1.1
Type escape sequence to abort.
Tracing the route to 10.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.16.0.2 6 msec 5 msec 5 msec
2 * * *
3 * * *
4 * * * <control-shift-6 to break> พบว่า traceroute 10.1.1.1 fail เนื่องจาก ISP1 ไม่มี route ที่จะไป source IPv4 address ของ 170.16.0.1 ซึ่งเป็นปกติของ BGP ที่จะไม่ advertise link ระหว่าง provider ใน BGP แต่การ traceroute โดยที่ใช้ source ipv4 address ของ Lo0 interface ของ ISP2 จะทำได้ปกติ ISP2#traceroute 10.1.1.1 source loopback0
Type escape sequence to abort.
Tracing the route to 10.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.16.0.2 8 msec 1 msec 5 msec
2 10.0.0.1 6 msec 2 msec *
ISP2# 4.3. ทำการ configure access list บน HQ router เพื่อให้ advertise เฉพาะ HQ network 192.168.0.0 และ 192.168.1.0 ไปยังทั้งสอง ISP HQ#conf t
Enter configuration commands, one per line. End with CNTL/Z.
HQ(config)#access-list 1 permit 192.168.0.0 0.0.1.255
HQ(config)# 4.4. ใช้ keyword distribute-list ให้กับคำสั่ง neighbor ของ BGP เพื่อทำให้ access list นี้เป็นตัว filter HQ(config)#router bgp 100
HQ(config-router)#neighbor 10.0.0.1 distribute-list 1 out
HQ(config-router)#neighbor 172.16.0.1 distribute-list 1 out
HQ(config-router)# ทำการตรวจสอบ routing table ของ ISP2 อีกครั้ง พบว่ายังมี route 10.1.1.0 อยู่ใน table ยังไม่ถูก Clear ออกไป ISP2#show ip route
-------------ตัดบางส่วน------------------------
10.0.0.0/24 is subnetted, 1 subnets
B 10.1.1.0 [20/0] via 172.16.0.2, 00:42:51
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks
C 172.16.0.0/30 is directly connected, Ethernet0/1
L 172.16.0.1/32 is directly connected, Ethernet0/1
C 172.16.1.0/24 is directly connected, Loopback0
L 172.16.1.1/32 is directly connected, Loopback0
B 192.168.0.0/24 [20/0] via 172.16.0.2, 00:50:02
B 192.168.1.0/24 [20/0] via 172.16.0.2, 00:50:02
ISP2# 4.5. ใช้คำสั่ง clear ip bgp * บน router HQ แล้วรอจนกว่า bgp จะมีสถานะเป็น established state ซึ่ง established state เป็นสถานะที่ถูกสร้างความสัมพันธ์กันเรียบร้อยแล้ว จากนั้นให้ทำการตรวจสอบ routing table ของ ISP2 อีกครั้ง โดยเราไม่ควรจะเห็น route 10.1.1.0 ไปที่ไปยัง ISP1 บน routing table ของ ISP2 และไม่ควรจะเห็น route 172.16.1.0 ที่ไปยัง ISP2 บน routing table ของ ISP1 แล้ว HQ#clear ip bgp *
HQ#
*Nov 6 05:39:29.581: %BGP-3-NOTIFICATION_ALL: sent to all sessions 6/4 (Administrative Reset)
HQ#
*Nov 6 05:39:29.594: %BGP-5-ADJCHANGE: neighbor 10.0.0.1 Down User reset
*Nov 6 05:39:29.594: %BGP_SESSION-5-ADJCHANGE: neighbor 10.0.0.1 IPv4 Unicast topology base removed from session User reset
*Nov 6 05:39:29.594: %BGP-5-ADJCHANGE: neighbor 172.16.0.1 Down User reset
*Nov 6 05:39:29.594: %BGP_SESSION-5-ADJCHANGE: neighbor 172.16.0.1 IPv4 Unicast topology base removed from session User reset
HQ# คำสั่ง clear ip bgp * จะ reset ความสัมพันธ์ระหว่าง router ทุกตัวที่ run BGP โดยเราใช้คำสั่งนี้ใน Lab แต่ไม่ควรนำไปใช้บน production จริงๆ เพราะทำให้เกิดปัญหาได้ ทั้งนี้ เราสามารถใช้คำสั่ง clear ip bgp * in หรือ clear ip bgp * out สำหรับ Clear เฉพาะในส่วนของ inbound routing หรือ outbound routing policy ได้ (มีคำสั่ง Clear แบบอื่นๆเพิ่มเติม ไว้จะกล่าวในบทความต่อไปนะครับ) ISP2#show ip route
-------------ตัดบางส่วน------------------------
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks
C 172.16.0.0/30 is directly connected, Ethernet0/1
L 172.16.0.1/32 is directly connected, Ethernet0/1
C 172.16.1.0/24 is directly connected, Loopback0
L 172.16.1.1/32 is directly connected, Loopback0
B 192.168.0.0/24 [20/0] via 172.16.0.2, 00:00:20
B 192.168.1.0/24 [20/0] via 172.16.0.2, 00:00:20
ISP2# ISP1#show ip route
-------------ตัดบางส่วน------------------------
10.0.0.0/8 is variably subnetted, 4 subnets, 3 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0
L 10.0.0.1/32 is directly connected, Ethernet0/0
C 10.1.1.0/24 is directly connected, Loopback0
L 10.1.1.1/32 is directly connected, Loopback0
B 192.168.0.0/24 [20/0] via 10.0.0.2, 00:01:14
B 192.168.1.0/24 [20/0] via 10.0.0.2, 00:01:14
ISP1# จะพบว่าบน ISP2 router จะไม่เห็น route 10.1.1.0 ที่ไปยัง ISP1 และบน ISP1 router จะไม่เห็น route 172.16.1.0 ที่ไปยัง ISP2 เรียบร้อยแล้ว Final Configure Router ISP1 ISP1#show running-config
!
hostname ISP1

interface Loopback0
description ISP1 Internet Network
ip address 10.1.1.1 255.255.255.0
!
interface Ethernet0/0
description ISP1 -> HQ
ip address 10.0.0.1 255.255.255.252
!
router bgp 200
bgp log-neighbor-changes
network 10.1.1.0 mask 255.255.255.0
neighbor 10.0.0.2 remote-as 100
!
end Router HQ HQ#show running-config
Building configuration...
!
hostname HQ
!
interface Loopback0
description Core router network link 1
ip address 192.168.0.1 255.255.255.0
!
interface Loopback1
description Core router network link 2
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0/0
description HQ -> ISP1
ip address 10.0.0.2 255.255.255.252
!
interface Ethernet0/1
description HQ -> ISP2
ip address 172.16.0.2 255.255.255.252
!
!
router bgp 100
bgp log-neighbor-changes
network 192.168.0.0
network 192.168.1.0
neighbor 10.0.0.1 remote-as 200
neighbor 10.0.0.1 distribute-list 1 out
neighbor 172.16.0.1 remote-as 300
neighbor 172.16.0.1 distribute-list 1 out
!
access-list 1 permit 192.168.0.0 0.0.1.255
!
end Router ISP2 ISP2#show running-config
hostname ISP2
!
interface Loopback0
description ISP2 Internet Network
ip address 172.16.1.1 255.255.255.0
!
interface Ethernet0/1
description ISP2 -> HQ
ip address 172.16.0.1 255.255.255.252
!
router bgp 300
bgp log-neighbor-changes
network 172.16.1.0 mask 255.255.255.0
neighbor 172.16.0.2 remote-as 100
!

end หวังว่าน่าจะได้ความรู้ในส่วนของการตั้งค่า BGP เบื้องต้น, การทำ Router Filter เบื้องต้น พร้อมทั้งการตรวจสอบการทำงานของ BGP กันไปนะครับ แล้วเจอกันบทความต่อไปครับ ขอบคุณแหล่งที่มา www.cisco.com, www.ine.com, และ เอกสาร LAB Cisco Networking Academy กลับสู่ด้านบน

Lab Configuring BGP & Route Filter