• Admin

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


กลับสู่ด้านบน

ดู 370 ครั้ง
  • Facebook
  • Twitter
  • YouTube
  • Tumblr Social Icon
  • Instagram

Tel. 087-449-6954, 094-417-8544 | Email : sale@9huatraining.com | Facebook : 9HUA Training