Bài viết chuyên đề

Locator ID Separation Protocol (LISP)

27/03/2019 04:07:37

Locator ID Separation Protocol (LISP)

1. Giới thiệu

 

Locator ID Separation Protocol (LISP) là cách tiếp cận kiến trúc định tuyến mới cho phép việc mở rộng hệ thống định tuyến hiệu quả hơn so với hiện tại, ứng dụng cho cả môi trường doanh nghiệp và ISP, các ứng dụng nổi bật mà LISP mang lại như multihoming, mobility, IPv6 transition.

Khái niệm “Separation Protocol” có thể được hiểu là sự tách biệt định danh của host (endpoint identifier – EID) và vị trí của host (Routing Locator – RLOC), đây là sự khác biệt với kiến trúc định tuyến hiện tại là không có sự phân biệt giữa hai khái niệm này. Hay nói cách khác với kiến trúc định tuyến hiện tại khi thiết kế mạng, chúng ta sẽ phải xây dựng sơ đồ mạng với nhiều vùng và qui hoạch IP Subnet cho mỗi vùng tương ứng, điều này dẫn đến sự hạn chế khi một host cần thay đổi vùng mạng, địa chỉ IP cũng sẽ phải thay đổi theo, đây chính là mobility. Một lợi ích khác đó là LISP không quảng bá thông tin (mô hình push) về mạng mà nó biết như kiến trúc định tuyến hiện tại, mà khi cần gửi gói tin đến vùng mạng bất kỳ nó sẽ gửi yêu cầu (pull) đến hệ thống lưu trữ thông tin chứa ánh xạ giữa EID-RLOC cơ chế này tương tự như tiến trình hoạt động của DNS, điều này cho phép bảng định tuyến sẽ gọn hơn rất nhiều, đặt biệt là các router Core khi chỉ cần duy trì thông tin địa chỉ của RLOC mà không cần quan tâm đến địa chỉ của EID.

 Các thành phần trong kiến trúc LISP

  • EID (Endpoint ID): Là địa chỉ IP của host, địa chỉ dùng nhận diện host trong hệ thống định tuyến,
  • RLOC ( Routing Locator): Là địa chỉ của LISP Router, địa chỉ cho phép xác định vị trí của host trong hệ thống định tuyến
  • ITR (Ingress Tunnel Router): Vai trò của thiết bị sẽ nhận gói từ host bên trong và đóng gói (encapsulate) trước khi gửi đến remote site.
  • ETR (Egress Tunnel Router): Vài trò của thiết bị nhận gói từ remote site sau đó mở đóng gói (de-encapsulate) trước khi gửi đến host bên trong.
  • MS (Map Server): Vai trò nhận thông tin đăng ký từ ETR, xây dựng bảng ánh xạ giữa EID-RLOC.
  • MR (Map Resolver): Vai trò xử lý yêu cầu (Map-Request) từ ITR, chuyển tiếp các yêu cầu đó đến Map Server.

 Thông thường một thiết bị sẽ đóng cả hai vai trò trong triển khai thực tế, như ITR và ETR là XTR hoặc vai trò Map-Server và Map Resolver là MS/MR.

2. Hoạt động

2.1 LISP Control Plane​

Hoạt động Lisp Control Plane

Lisp Control Plane chịu trách nhiệm xây dựng thông tin để cho biết cách thức gói dữ liệu đi đến đích.

Bước 1: ETR gửi đăng ký với MS các subnet của EID thuộc Site quản lý, trong trường hợp này là subnet 10.17.1.0/24, thông điệp đăng ký này sẽ gửi định kỳ mỗi 60 giây.

Bước 2: Khi một host ở Remote Site cần thiết lập kết nối với host thuộc Center Site mà thông tin trong Cache của ITR Remote không tồn tại, nó sẽ gửi Map Request đến MR, sau đó được chuyển tiếp đến MS.

Bước 3: MS chuyển tiếp Map-Request ban đầu đến ETR mà đã đăng ký EID subnet trước đó, trong trường hợp này là ETR ở vị trí 12.1.1.2.

Bước 4: ETR trả lời Remote ITR với thông điệp Map-Reply chứa thông tin ánh xạ được yêu cầu.

Bước 5: Remote ITR cài đặt thông tin ánh xạ này vào bảng cache của nó và bắt đầu quá trình trình đóng gói trước khi gửi gói dữ liệu đến host thuộc Center.

2.2 LISP Data Plane

Hoạt động Lisp Data Plane

Bước 1: Host thuộc site remote gửi gói dữ liệu đến 10.17.1.0/24, traffic sẽ được chuyển đến gateway cũng là ITR, thiết bị này sẽ kiểm tra bảng định tuyến trước tiên, tuy nhiên do đây là IP thuộc EID Subnet (nếu không tồn tại route chi tiết), nên sẽ tìm trong bảng cache, trong trường hợp thông tin cache này không tồn tại, sẽ kích hoạt chức năng của Control Plane.

Bước 2: ITR nhận thông tin ánh xạ từ cơ sở dữ liệu mapping và xây dựng bảng map-cache của nó (kết quả của control plane đã mô tả phần trên). Điểm lưu ý ở đây là cách mà Subnet đích của EID ( 10.17.1.0/24) được ánh xạ với RLOC (trong trường hợp có 2 địa chỉ RLOC là 12.1.1.1 và 12.1.1.2), ở đây mỗi ánh xạ kết hợp với giá trị priority và weight, các giá trị này được qui định bởi site đích để tác động đến cách mà traffic đi vào được nhận từ hạ tầng Core. Giá trị ưu tiên được sử dụng để quyết định liệu cả hai thiết bị ETR có đồng thời nhận traffic (kịch bản load-balancing) đến EID của nó hay không. Giá trị Weight cho phép điều chỉnh số lượng traffic được nhận bởi mỗi ETR (giá trị Weight chỉ được dùng khi Priority là bằng nhau).

Bước 3: Với chức năng Data Plane, ITR thực hiện đóng gói của traffic ban đầu và gửi vào hạ tầng Core, được chuyển đến một trong các RLOC của ETR Data Center. Trong trường hợp giá trị Priority và Weight bằng nhau trên các ETR thì tiến trình chọn sẽ được thực hiện theo từng flow dựa vào kết quả hash từ thông tin như địa chỉ IP và Port trong header của gói IP ban đầu. 

Cấu trúc gói tin được đóng gói

Bước 4: ETR nhận gói, mở đóng gói và gửi vào EID bên trong mạng. Tiến trình này tương tự đối với traffic trả về.

3. LAB ví dụ

1. Mô tả

Trong ví dụ này sẽ giải thích 2 vấn đề:

  • Hiểu tiến trình hoạt động của LISP
  • Hiểu hoạt động cân bằng tải và dự phòng.

Mặc dù có thể cấu hình vai trò MS/MR trên router XTR tại Center Site, nhưng việc đặt tại vị trí bên ngoài sẽ dễ hình dung hơn. Lưu ý: cấu hình này được hiện thực trên IOS XE (router ASR 1000 hoặc CSR) nên sẽ khác một chút nếu bạn hiện thực trên IOS thông thường như router 2800, 2900…

2. Cấu hình

Bước 1: Cấu hình LISP thông tin về mạng bên trong và cách mà traffic có thể đến mạng bên trong qua RLOC nào, trong trường này ta có hai địa chỉ RLOC được cấu hình với giá trị Priotiry và Wight giống nhau, điều này cho phép việc cân bằng tải flow theo chiều vào.

router lisp

 locator-set CENTER

  100.1.1.1 priority 1 weight 50

  101.1.1.1 priority 1 weight 50

 

 database-mapping 192.168.1.0/24 locator-set CENTER

Bước 2: Xác định ITR về MR để truy vấn thông tin về EID-RLOC của Site khác. Xác định ETR về MS để thực hiện đăng ký thông tin mapping của nó. Lưu ý xác thực Key là bắt buộc và cần trùng với Map Server. 

router lisp

 ipv4 itr map-resolver 103.1.1.1

 ipv4 etr map-server 103.1.1.1 key cisco

 exit

Bước 3: Kích hoạt dịch vụ ITR và ETR trên cùng một thiết bị. 

router lisp

 ipv4 itr

 ipv4 etr

 exit

Bước 4: Cấu hình tương tự với REMOTE 

router lisp

 locator-set REMOTE

  102.1.1.1 priority 1 weight 50

  exit

!

 ipv4 itr map-resolver 103.1.1.1

 ipv4 itr

 ipv4 etr map-server 103.1.1.1 key cisco

 ipv4 etr

Bước 5: Cấu hình hình MS/MR thiết bị này sẽ chịu trách nhiệm nhận thông tin đăng ký từ ETR về Subnet cũng như phân giải các yêu cầu truy vấn từ ITR. 

router lisp

 site CENTER

 authentication-key cisco

  eid-prefix 192.168.1.0/24

  exit

!

 site REMOTE

 authentication-key cisco

  eid-prefix 192.168.2.0/24

  exit

!

 ipv4 map-server

 ipv4 map-resolver

Kiểm tra

Các router ETR đăng ký thành thông tin mạng bên trong của nó và sẵn sàn phân giải các yêu cầu từ ITR.

Trước khi thực hiện kiểm tra giao tiếp từ hai mạng bên trong thuộc hai site, ta thấy rằng bảng định tuyến của router không có thông tin về subnet thuộc site khác.

REMOTE#sh ip route 192.168.1.10

% Network not in table

 Bảng map cache cũng chưa được xây dựng:

REMOTE#sh ip lisp map-cache 

LISP IPv4 Mapping Cache for EID-table default (IID 0), 1 entries

0.0.0.0/0, uptime: 02:59:20, expires: never, via static send map-request

Negative cache entry, action: send-map-request

Tiến hành kiểm tra từ Remote Site

Thấy rằng có 2 gói bị mất tại thời điểm này, gói đầu tiên để xây dựng map cache trên router Remote, gói thứ 2 để xây dựng map cache trên router Center.

Thông tin map cache được xây dựng thành công:

REMOTE#sh ip lisp map-cache 

LISP IPv4 Mapping Cache for EID-table default (IID 0), 2 entries

0.0.0.0/0, uptime: 03:12:56, expires: never, via static send map-request

 Negative cache entry, action: send-map-request

192.168.1.0/24, uptime: 00:03:20, expires: 23:56:40, via map-reply, complete

 Locator    Uptime    State     Pri/Wgt

 100.1.1.1  00:03:20  up          1/50 

 101.1.1.1  00:03:20  up          1/50

Thông tin map cache tương tự trên Center:

CENTER#sh ip lisp map-cache 

LISP IPv4 Mapping Cache for EID-table default (IID 0), 2 entries

 

0.0.0.0/0, uptime: 03:16:53, expires: never, via static send map-request

  Negative cache entry, action: send-map-request

192.168.2.0/24, uptime: 00:04:12, expires: 23:55:47, via map-reply, complete

  Locator   Uptime    State      Pri/Wgt

  102.1.1.1 00:04:12  up           1/50

Để kiểm tra về khả năng cân bằng tải, ta có thể thực hiện kiểm tra thông số Input trên cổng G2 và G3 của router Center. Do cân bằng tải theo flow nên cổng G2 đang dùng để nhận gói trong trường hợp này.

CENTER#sh int | i is up|packets input

GigabitEthernet2 is up, line protocol is up 

     60 packets input, 6600 bytes, 0 no buffer

GigabitEthernet3 is up, line protocol is up 

     1 packets input, 142 bytes, 0 no buffer

LISP0 is up, line protocol is up 

     60 packets input, 3600 bytes, 0 no buffer

Để kiểm tra khả năng dự phòng, ta shutdown cổng G2 của router Center. Đồng thời dùng thêm câu lệnh để tăng tốc tiến trình xác định trạng thái.

router lisp

loc-reach-algorithm rloc-probing

Thời điểm này cồng G3 (địa chỉ 101.1.1.1) sẽ chịu trách nhiệm trong việc nhận gói.

REMOTE#sh ip lisp map-cache 

192.168.1.0/24, uptime: 00:23:19, expires: 23:59:24, via map-reply, complete

  Locator   Uptime    State      Pri/Wgt

  100.1.1.1 00:05:51  down         1/50 

  101.1.1.1  00:05:51  up          1/50

TRUNG TÂM WAREN