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