Bài viết chuyên đề

BGP - FREE CORE

16/11/2017 11:21:49

Bài số 1: TÌM HIỂU VỀ MPLS

MPLS – Multi Protocol Label Switching – chuyển mạch nhãn đa giao thức, đúng như tên gọi, là một kỹ thuật chuyển mạch (switching). Kỹ thuật chuyển mạch này có một tính chất đặc biệt, làm nên ưu điểm tuyệt vời của nó, là tính chất đa giao thức (multi – protocol). Một gói tin khi đi vào hạ tầng MPLS sẽ được dán nhãn tương ứng với một IP nào đó hoặc một giá trị định danh nào đó; các thiết bị chuyển mạch tiếp theo trên đường đi của gói tin không quan tâm đến nội dung của gói tin mà chỉ thực hiện các thao tác chuyển mạch dựa vào nhãn đã dán trên gói tin ấy.

Nhờ tính chất này, một mạng triển khai MPLS có thể thực hiện hợp nhất việc truyền tải nhiều loại dữ liệu khác nhau vào một hạ tầng duy nhất, cung cấp được đến cho khách hàng nhiều gói dịch vụ đa dạng và tối ưu hóa việc sử dụng tài nguyên mạng. Chuỗi bài viết này sẽ giới thiệu đến các bạn một số ứng dụng tiêu biểu của MPLS.

Bài số 1: BGP – Free Core

Các ISP thường xuyên phải chạy định tuyến BGP với các ISP khác trên môi trường Internet để đảm bảo vận chuyển dữ liệu của khách hàng theo những lộ trình tối ưu nhất. Theo phương pháp cũ trong việc triển khai BGP, toàn bộ các Router trong mạng Core của ISP đều phải chạy BGP. Các Router biên chạy eBGP với khách hàng và với các ISP khác, các Router Core còn lại phải chạy iBGP với nhau và với các Router biên. Bản thân giao thức BGP là một loại giao thức rất hao tốn tài nguyên, cộng thêm số lượng route trên môi trường Internet cần lưu giữ là một số lượng khổng lồ nên các Router Core của các ISP sẽ bị sử dụng ở công suất rất cao cho công việc định tuyến.

MPLS ra đời cho phép thực hiện một giải pháp giúp giảm thiểu tối đa số lượng Router chạy BGP. Các ISP sẽ triển khai một hạ tầng Core chạy MPLS, các Router Core chỉ làm nhiệm vụ vận chuyển dữ liệu, không cần phải ghi nhớ thông tin định tuyến BGP cũng như không cần phải chạy BGP, chỉ các Router biên tiếp tục phải chạy BGP với khách hàng. Số lượng Router phải chạy BGP và ghi nhớ các route trên môi trường Internet giảm xuống đáng kể và chỉ còn lại là các Router biên. Ta cùng nhau khảo sát một ví dụ lab để nắm được nguyên lý của giải pháp này.

Sơ đồ bài lab ví dụ:

Hình 1 – Sơ đồ bài lab ví dụ.

Mô tả:

Bài lab sử dụng 5 Router để mô phỏng kịch bản một ISP Core sử dụng MPLS để giảm thiểu số Router phải chạy BGP. Các Router trên sơ đồ lab của hình 1 được chia thành 03 AS chạy BGP với nhau:

  • R1 thuộc về AS 100 và đại diện cho AS 100 chạy BGP với AS 200, Subnet trên Loopback 0 của R1 đại diện cho các subnet của AS 100 và sẽ được quảng bá qua BGP vào AS 200 từ đó lan truyền tới AS 300.
  • R2, R3 và R4 tạo thành AS 200. Trong AS 200, chúng ta sẽ thực hiện chạy MPLS trên tất cả các Router, khi đó, R2 và R4 đóng vai trò là các Router PE (Provider Edge) còn R3 đóng vai trò là Router P (Provider). Các Router PE R2 và R4 sẽ chạy eBGP với các AS khác và chạy iBGP với nhau. Router R3 là một Core router và không chạy BGP. AS 200 chính là AS sử dụng giải pháp tạo BGP – Free Core với MPLS: chỉ hai router biên R2 và R4 là chạy BGP, R3 là core router, không chạy BGP.
  • R5 thuộc về AS 300, chạy BGP với AS 200. R5 quảng bá subnet trên loopback 0 của mình vào BGP, subnet này đại diện cho các subnet thuộc AS 300.

Kết quả mong muốn đạt được của bài lab này là hai loopback 0 của R1 và R5 phải đi đến nhau được, dù R3 của AS 200 nằm trên đường di chuyển của các gói tin nhưng không hề chạy BGP và không hề chứa bất cứ thông tin gì về 2 loopback này trong bảng định tuyến của nó.

Thực hiện:

Bước 1: Đặt IP cho các cổng trên các Router theo quy hoạch IP trên sơ đồ hình 1.

Trên R1:

R1(config)#interface FastEthernet0/1

R1(config-if)#no shutdown

R1(config-if)#ip address 192.168.12.1 255.255.255.0

R1(config-if)#interface Loopback0

R1(config-if)#ip address 192.168.1.1 255.255.255.0

Trên R2:

R2(config)#interface FastEthernet0/0

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.12.2 255.255.255.0

R2(config-if)#interface FastEthernet0/1

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.23.2 255.255.255.0

R2(config-if)#interface Loopback0

R2(config-if)#ip address 192.168.2.1 255.255.255.255

Trên R3:

R3(config)#interface FastEthernet0/0

R3(config-if)#no shutdown

R3(config-if)#ip address 192.168.23.3 255.255.255.0

R3(config-if)#interface FastEthernet0/1

R3(config-if)#no shutdown

R3(config-if)#ip address 192.168.34.3 255.255.255.0

R3(config-if)#interface Loopback0

R3(config-if)#ip address 192.168.3.1 255.255.255.255

Trên R4:

R4(config)#interface FastEthernet0/0

R4(config-if)#no shutdown

R4(config-if)#ip address 192.168.34.4 255.255.255.0

R4(config-if)#interface FastEthernet0/1

R4(config-if)#no shutdown

R4(config-if)#ip address 192.168.45.5 255.255.255.0

R4(config-if)#interface Loopback0

R4(config-if)#ip address 192.168.4.1 255.255.255.255

Trên R5:

R1(config)#interface FastEthernet0/0

R1(config-if)#no shutdown

R1(config-if)#ip address 192.168.45.5 255.255.255.0

R1(config-if)#interface Loopback0

R1(config-if)#ip address 192.168.5.1 255.255.255.0

Bước 2: Cấu hình thiết lập core MPLS trên AS 200.

Đầu tiên, ta chạy một giao thức định tuyến trong (IGP) trên các Router thuộc AS 200. Giao thức này đảm bảo mọi địa chỉ của AS 200 có thể đi đến nhau. Ta có thể chọn bất kỳ giao thức IGP nào, hoặc sử dụng định tuyến tĩnh. Trong bài lab này, IGP được chọn là OSPF.

Trên R2:

R2(config)#router ospf 1

R2(config-router)#network 192.168.2.1 0.0.0.0 area 0

R2(config-router)#network 192.168.23.2 0.0.0.0 area 0

Trên R3:

R3(config)#router ospf 1

R3(config-router)#network 192.168.3.1 0.0.0.0 area 0

R3(config-router)#network 192.168.23.3 0.0.0.0 area 0

R3(config-router)#network 192.168.34.3 0.0.0.0 area 0

 Và trên R4:

R4(config)#router ospf 1

R4(config-router)#network 192.168.4.1 0.0.0.0 area 0

R4(config-router)#network 192.168.34.4 0.0.0.0 area 0

Kiểm tra bảng định tuyến của các Router R2, R3 và R4 để chắc chắn rằng mọi địa chỉ trong AS 200 đã đi được đến nhau sau khi chạy OSPF:

R2#sh ip route ospf

     192.168.4.0/32 is subnetted, 1 subnets

O       192.168.4.1 [110/21] via 192.168.23.3, 00:19:22, FastEthernet0/1

O    192.168.34.0/24 [110/20] via 192.168.23.3, 00:19:32, FastEthernet0/1

     192.168.3.0/32 is subnetted, 1 subnets

O       192.168.3.1 [110/11] via 192.168.23.3, 00:19:51, FastEthernet0/1

R3#sh ip route ospf

     192.168.4.0/32 is subnetted, 1 subnets

O       192.168.4.1 [110/11] via 192.168.34.4, 00:19:51, FastEthernet0/1

     192.168.2.0/32 is subnetted, 1 subnets

O       192.168.2.1 [110/11] via 192.168.23.2, 00:20:10, FastEthernet0/0

R4#sh ip route ospf

O    192.168.23.0/24 [110/20] via 192.168.34.3, 00:20:12, FastEthernet0/0

     192.168.2.0/32 is subnetted, 1 subnets

O       192.168.2.1 [110/21] via 192.168.34.3, 00:20:12, FastEthernet0/0

     192.168.3.0/32 is subnetted, 1 subnets

O       192.168.3.1 [110/11] via 192.168.34.3, 00:20:12, FastEthernet0/0

Ta thực hiện bật MPLS trên các cổng router thuộc AS 200:

Trên R2:

R2(config-if)#interface FastEthernet0/1

R2(config-if)#mpls ip

Trên R3:

R3(config)#interface FastEthernet0/0

R3(config-if)#mpls ip

R3(config-if)#interface FastEthernet0/1

R3(config-if)#mpls ip

Trên R4:

R4(config-if)#interface FastEthernet0/0

R4(config-if)#mpls ip

Ta thực hiện kiểm tra để chắc chắn các mối quan hệ LDP trao đổi nhãn đã được thiết lập giữa các Router R2, R3 và R4:

R2#sh mpls ldp neighbor

    Peer LDP Ident: 192.168.3.1:0; Local LDP Ident 192.168.2.1:0

        TCP connection: 192.168.3.1.34335 - 192.168.2.1.646

        State: Oper; Msgs sent/rcvd: 64/63; Downstream

        Up time: 00:48:28

        LDP discovery sources:

          FastEthernet0/1, Src IP addr: 192.168.23.3

        Addresses bound to peer LDP Ident:

          192.168.23.3    192.168.3.1     192.168.34.3

R3#sh mpls ldp neighbor

    Peer LDP Ident: 192.168.2.1:0; Local LDP Ident 192.168.3.1:0

        TCP connection: 192.168.2.1.646 - 192.168.3.1.34335

        State: Oper; Msgs sent/rcvd: 63/64; Downstream

        Up time: 00:48:54

        LDP discovery sources:

          FastEthernet0/0, Src IP addr: 192.168.23.2

        Addresses bound to peer LDP Ident:

          192.168.12.2    192.168.23.2    192.168.2.1    

    Peer LDP Ident: 192.168.4.1:0; Local LDP Ident 192.168.3.1:0

        TCP connection: 192.168.4.1.14851 - 192.168.3.1.646

        State: Oper; Msgs sent/rcvd: 63/64; Downstream

        Up time: 00:48:36

        LDP discovery sources:

          FastEthernet0/1, Src IP addr: 192.168.34.4

        Addresses bound to peer LDP Ident:

          192.168.34.4    192.168.4.1     192.168.45.4

R4#sh mpls ldp neighbor

    Peer LDP Ident: 192.168.3.1:0; Local LDP Ident 192.168.4.1:0

        TCP connection: 192.168.3.1.646 - 192.168.4.1.14851

        State: Oper; Msgs sent/rcvd: 64/63; Downstream

        Up time: 00:48:50

        LDP discovery sources:

          FastEthernet0/0, Src IP addr: 192.168.34.3

        Addresses bound to peer LDP Ident:

          192.168.23.3    192.168.3.1     192.168.34.3   

Từ các kết quả show trên các router R2, R3, R4 ở trên, ta thấy các router đã thiết lập được quan hệ láng giềng LDP với nhau, và như vậy có thể trao đổi thông tin về nhãn cho nhau.

Ta thử kiểm tra bảng chuyển mạch nhãn trên các Router của AS 200:

R2#sh mpls forwarding-table

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   

tag    tag or VC   or Tunnel Id      switched   interface             

16     Pop tag     192.168.3.1/32    0          Fa0/1      192.168.23.3

17     Pop tag     192.168.34.0/24   0          Fa0/1      192.168.23.3

18     17          192.168.4.1/32    0          Fa0/1      192.168.23.3

R3#sh mpls forwarding-table

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   

tag    tag or VC   or Tunnel Id      switched   interface             

16     Pop tag     192.168.2.1/32    4520       Fa0/0      192.168.23.2

17     Pop tag     192.168.4.1/32    7328       Fa0/1      192.168.34.4

R4#sh mpls forwarding-table

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   

tag    tag or VC   or Tunnel Id      switched   interface              

16     Pop tag     192.168.3.1/32    0          Fa0/0      192.168.34.3

17     16          192.168.2.1/32    0          Fa0/0      192.168.34.3

18     Pop tag     192.168.23.0/24   0          Fa0/0      192.168.34.3

Ta thấy các nhãn phục vụ cho quá trình chuyển mạch đã được trao đổi giữa các router cho mọi subnet IP của AS 200 và xuất hiện đầy đủ trong các bảng chuyển mạch nhãn. Ta đã hoàn tất việc xây dựng core MPLS của AS 200.

Bước 3: Chạy BGP giữa các AS.

Đầu tiên, ta thực hiện cấu hình BGP trên AS 200. Lưu ý rằng, ta chỉ chạy BGP trên các router biên PE, không chạy BGP trên router core P.

Cấu hình iBGP giữa R2 và R4:

Trên R2:

R2(config)#router bgp 200

R2(config-router)#neighbor 192.168.4.1 remote-as 200

R2(config-router)#neighbor 192.168.4.1 update-source Loopback0

R2(config-router)#neighbor 192.168.4.1 next-hop-self

Trên R4:

R4(config)#router bgp 200

R4(config-router)#neighbor 192.168.2.1 remote-as 200

R4(config-router)#neighbor 192.168.2.1 update-source Loopback0

R4(config-router)#neighbor 192.168.2.1 next-hop-self

Theo cách cấu hình ở trên, ta sử dụng các địa chỉ loopback của các router R2 và R4 để thiết lập quan hệ láng giềng BGP. R2 và R4 là các router PE giao tiếp với các AS bên ngoài nên ta cấu hình tính năng “next – hop – self” trên hai router này trỏ đến nhau để đảm bảo các route BGP mà R2 và R4 nhận của nhau là hợp lệ.

Bước tiếp theo, ta thực hiện cấu hình eBGP giữa AS 100 và AS 200, AS 200 và AS 300:

Trên R1:

R1(config)#router bgp 100

R1(config-router)#neighbor 192.168.12.2 remote-as 200

R1(config-router)#network 192.168.1.0 mask 255.255.255.0 <-quảng bá subnet của loopback 0 vào BGP

Trên R2:

R2(config)#router bgp 200

R2(config-router)#neighbor 192.168.12.1 remote-as 100

Trên R4:

R4(config-router)#router bgp 200

R4(config-router)#neighbor 192.168.45.5 remote-as 300

Trên R5:

R5(config)#router bgp 300

R5(config-router)#neighbor 192.168.45.4 remote-as 200

R5(config-router)#network 192.168.5.0 mask 255.255.255.0 <-quảng bá subnet của loopback 0 vào BGP

Kiểm tra sự hội tụ của BGP:

1) Kiểm tra các mối quan hệ láng giềng:

Trên R2:

R2#show ip bgp summary

BGP router identifier 192.168.2.1, local AS number 200

 

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

 

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

192.168.4.1     4   200      95      95        3    0    0 01:30:42        1

192.168.12.1    4   100      96      96        3    0    0 01:32:06        1

Trên R4:

R4#show ip bgp summary

BGP router identifier 192.168.4.1, local AS number 200

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

192.168.2.1     4   200      98      98        3    0    0 01:33:01        1

192.168.45.5    4   300      97      97        3    0    0 01:33:28        1

Trên R1:

R1#show ip bgp summary

BGP router identifier 192.168.1.1, local AS number 100

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

192.168.12.2    4   200     100     100        3    0    0 01:36:53        1

Và trên R5:

R5#show ip bgp summary

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

192.168.45.4    4   200     101     101        3    0    0 01:37:25        1

2) Kiểm tra các bảng BGP trên các router chạy BGP:

Trên R1:

R1#show ip bgp

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

   Network          Next Hop            Metric LocPrf Weight Path

*> 192.168.1.0      0.0.0.0                  0         32768 i

*> 192.168.5.0      192.168.12.2                           0 200 300 i

Trên R5:

R5#show ip bgp

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

   Network          Next Hop            Metric LocPrf Weight Path

*> 192.168.1.0      192.168.45.4                           0 200 100 i

*> 192.168.5.0      0.0.0.0                  0         32768 i

Trên R2 và R4:

R2#show ip bgp

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

   Network          Next Hop            Metric LocPrf Weight Path

*> 192.168.1.0      192.168.12.1             0             0 100 i

*>i192.168.5.0      192.168.4.1              0    100      0 300 i

 

R4#show ip bgp

(đã bỏ qua một số dòng trong kết quả xuất cho gọn)

   Network          Next Hop            Metric LocPrf Weight Path

*>i192.168.1.0      192.168.2.1              0    100      0 100 i

*> 192.168.5.0      192.168.45.5             0             0 300 i

Ta thấy rằng các subnet cần quảng bá qua BGP đều đã xuất hiện trong bảng BGP của các router chạy BGP.

3) Kiểm tra bảng định tuyến của các router BGP:

R1#show ip route bgp

B    192.168.5.0/24 [20/0] via 192.168.12.2, 00:14:29

R2#show ip route bgp

B    192.168.5.0/24 [200/0] via 192.168.4.1, 00:14:50

B    192.168.1.0/24 [20/0] via 192.168.12.1, 00:16:11

R4#show ip route bgp

B    192.168.5.0/24 [20/0] via 192.168.45.5, 00:15:19

B    192.168.1.0/24 [200/0] via 192.168.2.1, 00:15:19

R5#show ip route bgp

B    192.168.1.0/24 [20/0] via 192.168.45.4, 00:15:34

Các route BGP đã xuất hiện trong bảng định tuyến của các Router.

4) Hai mạng của AS 100 và AS 300 đã thấy nhau:

R1#ping 192.168.5.1 source 192.168.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.5.1, timeout is 2 seconds:

Packet sent with a source address of 192.168.1.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 108/129/136 ms

R5#ping 192.168.1.1 source 192.168.5.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:

Packet sent with a source address of 192.168.5.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 116/147/176 ms

Như vậy thông qua định tuyến BGP giữa các AS, các subnet của hai AS 100 và AS 300 đã liên lạc được với nhau. Ta đã hoàn thành cấu hình bài lab ví dụ, tiếp theo chúng ta cùng phân tích kết quả này.

Phân tích kết quả:

Từ kết quả thực hiện bài lab ví dụ ở trên, chúng ta có một vài điểm nhận xét như sau:

  1. Lưu lượng BGP giữa hai subnet của hai AS 100 và AS 300 đã di chuyển được tới nhau thông qua transit AS 200. AS 200 không cấu hình BGP trên tất cả các router mà chỉ cấu hình trên các router biên, các router khác bên trong AS 200 không phải chạy BGP -> ta có một BGP – Free Core. Điều này thực hiện được nhờ sử dụng kỹ thuật chuyển mạch nhãn đa giao thức trên AS 200. Thật vậy, nếu AS 200 không sử dụng MPLS, ta sẽ gặp phải lỗi black hole tại R3 do thiếu thông tin định tuyến BGP trên router này. Chúng ta cùng hiển thị các kết quả định tuyến để phân tích ý này.

Khi R1 muốn gửi gói đến loopback 0 của R5, R1 thực hiện tra cứu thông tin định tuyến cho đích đến này:

R1#show ip route 192.168.5.1

Routing entry for 192.168.5.0/24

  Known via "bgp 100", distance 20, metric 0

  Tag 200, type external

  Last update from 192.168.12.2 00:39:30 ago

  Routing Descriptor Blocks:

  , from 192.168.12.2, 00:39:30 ago

      Route metric is 0, traffic share count is 1

      AS Hops 2

      Route tag 200

R1#show ip route

Routing entry for 192.168.12.0/24

  Known via "connected", distance 0, metric 0 (connected, via interface)

  Routing Descriptor Blocks:

  * directly connected,      

Hoạt động tra cứu được thực hiện cho đến khi tìm được cổng ra cho gói tin, từ trên ta thấy để đi đến được 192.168.5.1 của R5, gói tin phải được đẩy ra cổng F0/1 đến router kế tiếp có địa chỉ 192.168.12.2, tức là R2.

R2 khi tiếp nhận gói tin đi đến 192.168.5.1 cũng phải tra cứu thông tin định tuyến để quyết định xem sẽ phải đẩy gói tin này theo cổng nào:

R2#show ip route 192.168.5.1

Routing entry for 192.168.5.0/24

  Known via "bgp 200", distance 200, metric 0

  Tag 300, type internal

  Last update from 192.168.4.1 00:46:57 ago

  Routing Descriptor Blocks:

  , from 192.168.4.1, 00:46:57 ago

      Route metric is 0, traffic share count is 1

      AS Hops 1

      Route tag 300

 

R2#show ip route

Routing entry for 192.168.4.1/32

  Known via "ospf 1", distance 110, metric 21, type intra area

  Last update from 192.168.23.3 on FastEthernet0/1, 00:48:08 ago

  Routing Descriptor Blocks:

  , from 192.168.4.1, 00:48:08 ago,

      Route metric is 21, traffic share count is 1

Kết quả tra cứu chỉ ra rằng, R2 cần phải đẩy gói tin ra khỏi cổng F0/1 đến router tiếp theo là 192.168.23.3. Lưu ý rằng việc tra cứu cần phải thực hiện liên tục cho đến khi tìm được cổng ra. Ở kết quả show trên, ta thấy rằng next – hop đầu tiên được chỉ ta là “192.168.4.1”, tuy nhiên vì BGP cho phép thiết lập quan hệ BGP giữa hai router không cần kết nối trực tiếp nên next hop BGP 192.168.4.1 là một địa chỉ ở xa, R2 cần phải tiếp tục tra cứu lần 2 để tìm đường đến next hop 192.168.4.1 này. Lần tra cứu thứ 2 cho thấy cổng ra là F0/1 và next hop thực sự là 192.168.23.3, tức là router R3.

Khi gói tin đi đến R3, R3 cũng thực hiện tra cứu để tìm đường đến 192.168.5.1. Tuy nhiên, vì R3 không chạy BGP với R2 và R4 nên R3 không có thông tin nào về route này.

R3#show ip route 192.168.5.1

% Network not in table

Đến đây, gói tin bị drop vì không có route tương ứng trong bảng định tuyến.

Ta thấy, mọi router trên lộ trình của gói tin đều có route để forward gói tin, riêng router R3 thì không, ta gọi lỗi này là lỗi black hole, R3 là “hố đen” “hút” mất gói tin khi gói tin di chuyển trên đường đi của nó.

Để khắc phục lỗi này, chúng ta cần cho R3 tham gia định tuyến BGP hoặc phải redistribute BGP vào OSPF để R3 nhận được thông tin định tuyến cần thiết. Cả hai cách đều gây tốn tài nguyên mạng, đặc biệt là cách sau (redistribute BGP vào OSPF – cách này không còn được sử dụng trong các hệ thống mạng ngày nay).

  1. Ta trở lại trường hợp có triển khai MPLS trên AS 200 và cũng thực hiện phân tích đường đi của gói tin giống như trên. Khi R1 gửi gói tin đến 192.168.5.1, nó cũng thực hiện tra cứu thông tin và đẩy gói tin giống như đã trình bày. Tuy nhiên, cách thức làm việc của các router sẽ khác đi kể từ R2, khi mà gói tin đi từ miền non – MPLS vào miền MPLS. Tương tự như lần trước, R2 tiếp nhận gói tin đi đến 192.168.5.1, tra cứu thông tin và tìm được next – hop là 192.168.4.1. Tuy nhiên, vì lần này, R2 có bật chuyển mạch nhãn nên nó sẽ tra cứu bảng chuyển mạch để tìm ra xem nhãn tương ứng với địa chỉ next – hop 192.168.4.1 là nhãn nào:

R2#show mpls forwarding-table

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   

tag    tag or VC   or Tunnel Id      switched   interface             

16     Pop tag     192.168.3.1/32    0          Fa0/1      192.168.23.3

17     Pop tag     192.168.34.0/24   0          Fa0/1      192.168.23.3

18     17          192.168.4.1/32    0          Fa0/1      192.168.23.3

Kết quả hiển thị trên bảng chuyển mạch nhãn chỉ ra rằng, gói tin đi đến next – hop 192.168.4.1 sẽ được đẩy ra khỏi cổng F0/1 đến router kế tiếp 192.168.23.3 và được dãn nhãn là 17 (Outgoing tag17). Bắt đầu từ đây, gói tin sẽ được vận chuyển qua các router dựa trên nhãn đã dán trên nó.

R3 khi tiếp nhận gói tin này là một gói tin có dán nhãn, nó không cần quan tâm đến các thông tin nào khác ngoài nhãn, R3 sẽ thực hiện chuyển gói thích hợp chỉ dựa trên nhãn này. Bảng chuyển mạch nhãn của R3:

R3#show mpls forwarding-table

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   

tag    tag or VC   or Tunnel Id      switched   interface             

16     Pop tag     192.168.2.1/32    15869      Fa0/0      192.168.23.2

17     Pop tag     192.168.4.1/32    10148      Fa0/1      192.168.34.4

Bảng chuyển mạch nhãn của R3 chỉ ra rằng nếu R3 nhận được gói tin có nhãn bằng 17, R3 sẽ gỡ nhãn rồi đẩy gói ra cổng F0/1 (Local tag = 17, Outgoing tag = Pop tag). Gói đi ra khỏi cổng F0/1 sẽ đến tay R4, và như ta biết, R4 có route đi đến 192.168.5.1 trong bảng định tuyến nên R4 sẽ sử dụng route này để đẩy gói tin đến R5

R4#sh ip route

Routing entry for 192.168.5.0/24

  Known via "bgp 200", distance 20, metric 0

  Tag 300, type external

  Last update from 192.168.45.5 01:54:25 ago

  Routing Descriptor Blocks:

  , from 192.168.45.5, 01:54:25 ago

      Route metric is 0, traffic share count is 1

      AS Hops 1

      Route tag 300

R4#sh ip route

Routing entry for 192.168.45.0/24

  Routing Descriptor Blocks:

       

Như vậy, khác với lần trước, lần này nhờ có chuyển mạch nhãn nên R3 có thể chuyển được gói tin đi qua nó mà không cần phải có route trong bảng định tuyến.

Kết luận:

Từ bài lab ở trên ta thấy, khi triển khai MPLS cho một AS, chỉ cần các router biên (PE) phải chạy định tuyến eBGP với các AS khác và chạy iBGP với nhau; các router bên trong core (P) không cần phải chạy BGP.

Kỹ thuật MPLS cho phép mỗi router trong MPLS core lưu tương ứng với mỗi địa chỉ đại diện của một router biên một giá trị nhãn. Một gói tin khi đi vào miền MPLS sẽ được dán nhãn tương ứng với địa chỉ đại diện của router biên mà tại đó nó đi ra khỏi miền MPLS. Gói này khi đi trong miền MPLS sẽ được các router trung gian vận chuyển dựa hoàn toàn vào nhãn mà nó mang mà không cần tham khảo gì thêm bất kỳ thông tin nào khác để đến tay router biên đầu ra (do đó các router trung gian không cần thông tin route BGP). Router biên tại đầu ra này có chạy BGP nên sẽ tiếp tục chuyển gói đi ra khỏi miền MPLS dựa vào thông tin định tuyến BGP mà nó học được.

Giải pháp BGP – Free Core với MPLS làm giảm thiểu tối đa số lượng router phải chạy BGP, từ đó giúp tiết kiệm tài nguyên và tối ưu hóa hiệu suất mạng. Do vậy, giải pháp này ngày càng được ưa chuộng và được sử dụng rộng rãi trong hạ tầng mạng của các ISP ngày nay.

Bài viết trên đây đã giới thiệu đến các bạn ứng dụng BGP – Free Core của MPLS. Các ứng dụng khác của MPLS sẽ lần lượt được review trong các bài viết tiếp theo.

TRUNG TÂM WAREN