Gồm 12 byte đầu tiên, bao gồm các thông tin:
Cổng nguồn (Source port): Trường này xác định cổng máy gửi.
Cổng đích (Destination port): Trường này xác định cổng nhận mà máy chủ sử dụng để định tuyến gói tin đến ứng dụng đích có sử dụng giao thức SCTP để trao đổi các gói tin.
Thẻ xác minh (Verification tag): Một giá trị ngẫu nhiên 32 bit được tạo ra trong quá trình khởi tạo để xác minh các gói tin trong cùng một kết nối.
Tổng kiểm tra (Checksum): Lưu trữ giá trị để kiểm tra tính toán vẹn của gói tin, trường này được tính toán dựa trên phần tiêu đề và phần dữ liệu.
Các khối dữ liệu (data chunks)
Chiếm phần còn lại của gói. Mỗi gói SCTP, ngoài phần tiêu đề chung, còn bao gồm các khối, được gọi là chunk. Mỗi khối có một định dạng chung được định nghĩa trong RFC 4960, nhưng nội dung có thể khác nhau. Mỗi khối bao gồm các trường thông tin sau:
Loại khối (Chunk type): Giá trị 8 bit để xác định loại dữ liệu của gói tin.
Các cờ khối (Chunk flags): Tám bit cờ có định nghĩa thay đổi theo loại khối (Chunk type). Giá trị mặc định là số không.
Chiều dài khối (Chunk length): Giá trị không dấu 16 bit chỉ định tổng độ dài của khối tính bằng byte (không bao gồm bất kỳ phần đệm nào) bao gồm loại khối, cờ, độ dài và các trường giá trị.
Dữ liệu phân khối (Chunk data): Phần dữ liệu của khối có định nghĩa thay đổi theo loại khối (Chunk type).
Nếu độ dài khối không tương đương với bội số của 4 byte thì giao thức sẽ bổ sung phần đệm khối bằng các số không ở cuối.
Cơ chế Multi homing của giao thức SCTP
SCTP cung cấp các đường dẫn dự phòng để tăng độ tin cậy cho mỗi liên kết SCTP giữa hai nút điểm xử lý đầu cuối.
Mỗi điểm đầu cuối xử lý SCTP cần kiểm tra khả năng truy cập của các địa chỉ chính và địa chỉ dự phòng của điểm cuối từ xa bằng cách sử dụng các bản tin kiểm tra định kỳ (heartbeat). Mỗi điểm đầu cuối xử lý SCTP cần xác nhận cho bản tin kiểm tra định kỳ mà nó nhận được từ điểm cuối từ xa.
Theo mặc định, tất cả dữ liệu sẽ được gửi trên một đường dẫn chính, khi đường dẫn chính bị lỗi, máy gửi sẽ chọn một đường dẫn thay thế cho đến khi đường dẫn chính được khôi phục.
Hình 1-17: Cơ chế Multihoming
1.4. Các vấn đề mà luận văn nghiên cứu và giải quyết
Trong phạm vi luận văn, tôi đã thực hiện nghiên cứu, giải quyết các vấn đề sau, chi tiết giải pháp kỹ thuật sẽ được trình bày trong chương 2:
1. Thay đổi địa chỉ MAC tại lớp liên kết khi gói tin được gửi giữa ứng dụng nội bộ (mạng LAN) với các ứng dụng bên ngoài thông qua hệ thống cổng biên dịch địa chỉ mạng.
2. Thay đổi địa chỉ IP của gói tin tại lớp Internet khi gói tin được gửi giữa các ứng dụng nội bộ với các ứng dụng bên ngoài thông qua hệ thống cổng biên dịch địa chỉ mạng đảm bảo các hệ thống phần mềm khi tích hợp chỉ cần cung cấp một địa chỉ IP duy nhất trong các tương tác với bên ngoài.
3. Thay đổi địa chỉ IP của gói tin tại lớp giao vận với giao thức SCTP, với bản tin khởi tạo liên kết để thiết lập liên kết theo cơ chế multi-homing khi gói tin được gửi từ ứng dụng nội bộ ra ứng dụng bên ngoài thông qua hệ thống cổng biên dịch địa chỉ mạng.
4. Thay đổi số cổng tại lớp giao vận khi gói tin cần đổi số cổng trong trường hợp các ứng dụng nội bộ mở chung số cổng để trao đổi bản tin tại lớp giao vận.
5. Tính toán giá trị tổng kiểm tại lớp Internet (với IPv4) và giá trị tổng kiểm tại lớp giao vận.
Các nội dung nghiên cứu trong luận văn được đã được áp dụng và định hướng áp dụng thực tế với các hệ thống đang được phát triển và triển khai tại tập đoàn Viettel, như hệ thống IMS, EPC và hệ thống 5G Core sắp triển khai. Như với hệ thống 5G Core đang áp dụng triển khai hệ thống biên dịch địa chỉ mạng, các tính năng mà hệ thống cung cấp chính bao gồm: Là cổng biên dịch địa chỉ mạng cho các giao thức ứng dụng: PFCP, GTPv2 với giao thức sử dụng phía dưới là UDP, HTTP với giao thức sử dụng phía dưới là TCP và NGAP với giao thức sử dụng phía dưới là SCTP.
CHƯƠNG 2: PHƯƠNG PHÁP ĐỊNH TUYẾN VÀ BIÊN DỊCH ĐỊA CHỈ MẠNG
2.1. Giới thiệu phương pháp
Hệ thống cổng biên dịch địa chỉ mạng (hệ thống mà phương pháp được đề xuất áp dụng, để đơn giản ta sẽ gọi là Hệ thống cổng biên dịch) là một hệ thống phần mềm được sử dụng để cung cấp một nút mạng xử lý tập trung giúp các thành phần ứng dụng nội bộ giao tiếp với các hệ thống bên ngoài thông qua địa chỉ IP tại nút mạng tập trung đó. Mô hình hoạt động của hệ thống được thể hiện như Hình 2-1. [11][17][18]
Các hệ thống tương tác
Mạng công
cộng
HỆ THỐNG PHẦN MỀM SỬ DỤNG CỔNG BIÊN DỊCH ĐỊA CHỈ MẠNG
Các ứng dụng miền nội bộ
Mạng nội bộ
Cổng biên dịch địa chỉ mạng
10.0.0.1
150.50.0.1
200.100.10.1
Ứng dụng nội bộ gửi gói tin
Biên dịch cập nhật địa chỉ IP
...
200.100.10.1
10.0.0.1
...
Địa chỉ IP đích
Địa chỉ IP nguồn
Địa chỉ IP đích
Địa chỉ IP nguồn
... | 200.100.10.1 | 150.50.0.1 | ... | |
Có thể bạn quan tâm!
- Giải pháp cổng biên dịch địa chỉ mạng cho các giao thức giao vận dùng cho ứng dụng hội thảo video từ xa trên internet - 3
- Sự Phân Rã Của Biểu Diễn Địa Chỉ Ipv4
- Thứ Tự Tiêu Đề Tiện Ích Mở Rộng Ipv6 Trong Một Gói Tin
- Bảng Lưu Trữ Dữ Liệu Ánh Xạ Cổng Dịch Chuyển
- Thư Mục Hệ Thống Cổng Biên Dịch Địa Chỉ Mạng
- Luồng Xử Lý Khi Hệ Thống Nội Bộ Có Vai Trò Là Máy Khách
Xem toàn bộ 93 trang tài liệu này.
Địa chỉ IP nguồn
Địa chỉ IP đích
Địa chỉ IP nguồn
Địa chỉ IP đích
... | 200.100.10.1 | 150.50.0.1 | ... | |
... | 200.100.10.1 | 10.0.0.1 | ... | |
Các ứng dụng tương tác gửi gói tin
Hình 2-1: Mô hình tổng quan hệ thống cổng biên dịch địa chỉ mạng
Để thực hiện tính năng định tuyến và biên dịch địa chỉ IP khi nhận được gói tin từ các thành phần ứng dụng nội bộ và từ các ứng dụng bên ngoài mà hệ thống tương tác thì hệ thống sẽ thực hiện cập nhật lại các thông tin sau:
Hệ thống cập nhật lại địa chỉ MAC tại tầng liên kết dữ liệu theo các địa chỉ MAC nguồn mới là địa chỉ MAC của cổng biên dịch địa chỉ mạng và địa chỉ MAC đích mới là địa chỉ MAC của nút ứng dụng cần định tuyến tới.
Khi gói tin (các bản tin TCP/UDP và SCTP) nhận từ ứng dụng miền công cộng, hệ thống cập nhật lại địa chỉ IP đích tại tầng mạng thành địa chỉ IP đích của nút ứng dụng miền nội bộ tương ứng cần gửi đến.
Khi gói tin (các bản tin TCP/UDP và SCTP) nhận từ ứng dụng miền nội bộ, hệ thống cập nhật lại địa chỉ IP nguồn tại tầng mạng và các địa chỉ IP của link liên kết cho giao thức SCTP tại tầng giao vận của gói tin khởi tạo liên kết trong giao thức SCTP thành các địa chỉ IP của cổng biên dịch địa chỉ mạng giao tiếp với các ứng dụng miền công cộng.
Hệ thống thay đổi số cổng tại lớp giao vận khi gói tin cần đổi số cổng trong trường hợp các ứng dụng nội bộ mở chung số cổng để trao đổi bản tin tại lớp giao vận.
Hệ thống tính toán giá trị tổng kiểm tại lớp Internet (với IPv4) và giá trị tổng kiểm tại lớp giao vận để đảm bảo giá trị này đúng sau khi các dữ liệu đã được thay đổi.
2.2. Áp dụng phương pháp
Phương pháp được thực hiện qua các bước như trình bày trên Hình 2-2.
:Public
applications
:IP NAT
:Local
applications
InitProcessSystem()
initNatIP()
establishNatCfg()
loop
updateMAC()
TCP/UDP/SCTP message
natProcessing()
TCP/UDP/SCTP message TCP/UDP/SCTP message
natProcessing()
TCP/UDP/SCTP message
Hình 2-2: Cơ chế hoạt động của hệ thống cổng biên dịch địa chỉ mạng
2.2.1. Bước 1: Khởi tạo tài nguyên xử lý hệ thống (initProcessSystem)
Tại bước này, các tài nguyên được đề cập bao gồm khai báo để gán các các lõi CPU sử dụng để chạy các luồng xử lý của hệ thống, gồm các luồng xử lý nhận gói tin, các luồng xử lý gói tin, các luồng gửi gói tin. Quản lý các bộ nhớ hàng đợi dùng để lưu trữ các gói tin để cung cấp cho các luồng xử lý tương ứng. Quản lý nhóm bộ nhớ để cấp phát tài nguyên
bộ nhớ lưu trữ các gói tin. Cung cấp các thư viện giúp nhận và gửi gói tin xuống/từ cạc mạng, các thư viện giúp đọc, xử lý các thành phần trong cấu trúc gói tin. Theo đó, nền tảng dpdk được sử dụng để quản lý và xử lý các tài nguyên nêu trên.
Đầu ra của bước này là các luồng để xử lý các gói tin nhận được từ cạc mạng, các luồng xử lý nghiệp vụ biên dịch và định tuyến cho gói tin, các luồng gửi gói tin ra cạc mạng để gửi đến nút nghiệp vụ đích.
2.2.2. Bước 2: Thiết lập địa chỉ IP của cổng biên dịch địa chỉ mạng (initNatIP)
Đầu vào của bước này là thông tin địa chỉ cạc mạng của hệ thống để hệ thống thiết lập các địa chỉ IP tương tác với các ứng dụng miền công cộng và miền nội bộ.
Tại bước này, hệ thống thiết lập địa chỉ IP cho cổng biên dịch địa chỉ mạng trên cạc mạng giao tiếp với ứng dụng bên ngoài và cạc mạng giao tiếp với các thành phần ứng dụng nội bộ. Thông tin để thiết lập địa chỉ IP bao gồm:
Thông tin các địa chỉ MAC, thực hiện khai báo nhiều địa chỉ MAC nếu muốn chạy cạc mạng theo cơ chế bond.
Hệ thống cho phép khai báo nhiều địa chỉ IP cho một cạc mạng, mỗi địa chỉ IP khai báo thì bao gồm các thông tin liên quan sau:
o Địa chỉ IP;
o Thông tin mặt nạ mạng con (subnet mask) của địa chỉ IP;
o Thông tin cổng mạng mặc định (Default Gateway) của địa chỉ IP.
Kết thúc bước này, hệ thống thiết lập được các địa chỉ IP tại cổng biên dịch địa chỉ mạng, bao gồm địa chỉ IP giao tiếp với các ứng dụng bên ngoài và địa chỉ IP để giao tiếp với các thành phần ứng dụng nội bộ của hệ thống.
2.2.3. Bước 3: Thiết lập bảng cấu hình thông tin định tuyến và biên dịch địa chỉ mạng (establishNatCfg)
Đầu vào của bước này là các thông tin cấu hình để thiết lập các địa chỉ IP giúp hệ thống xử lý nghiệp vụ định tuyến và biên dịch địa chỉ mạng cho các gói tin trao đổi giữa các ứng dụng miền công cộng với các ứng dụng miền nội bộ. Các thông tin chi tiết được liệt kê trong bảng cấu hình, như minh họa ở Bảng 2-1. Bảng cấu hình này là một ví dụ khai báo một số thông tin định tuyến và biên dịch địa chỉ mạng cho các giao thức TCP/UDP/SCTP.
Bảng 2-1: Bảng cấu hình quy tắc định tuyến
Địa chỉ IP của cổng biên dịch địa chỉ mạng miền công cộng | Số cổng để định tuyến | Cờ định tuyến | Đổi port tại cổng biên dịch | Số lượng IP miền nội bộ | Danh sách địa chỉ IP miền nội bộ | Giao thức gói tin sử dụng | |
200.100.10.1/24 | 150.50.0.1 | 20000:30000 | 1 | 1 | 1 | 10.0.0.1 | UDP |
200.100.10.1/24 | 150.50.0.1 | 30001:40000 | 1 | 1 | 1 | 10.0.0.2 | UDP |
200.100.10.1 | 150.50.0.1 | 0 | 1 | 1 | 1 | 10.0.0.2 | TCP |
200.100.10.1 | 150.50.0.1 | 2905 | 1 | 0 | 1 | 10.0.0.10 | SCTP |
200.100.10.1 | 150.50.0.1 | 2906 | 1 | 0 | 1 | 10.0.0.11 | SCTP |
Trong đó:
Địa chỉ IP miền công cộng:
Để khai báo các địa chỉ IP của các ứng dụng trong miền công cộng của hệ thống giao tiếp với hệ thống cổng biên dịch địa chỉ mạng. Hệ thống cổng biên dịch cho phép khai báo cả dải địa chỉ IP.
Địa chỉ IP của cổng biên dịch địa chỉ mạng miền công cộng:
đây là địa chỉ IP được thiết lập tại cổng biên dịch địa chỉ mạng giao tiếp với các ứng dụng trong miền công cộng.
Số cổng để định tuyến:
Thông tin số cổng tại tầng giao vận của gói tin mà hệ thống sẽ xử lý, khi gói tin được nhận từ ứng dụng miền công cộng gửi đến cổng biên dịch với số cổng đích của gói tin tại tầng giao vận sẽ được so sánh với số cổng này, khi cổng biên dịch nhận gói tin từ ứng dụng nội bộ, trường thông tin số cổng nguồn của gói tin tại tầng giao vận sẽ là trường thông tin liên quan để xử lý so sánh với số cổng này để tìm luật định tuyến cho gói tin. Hệ thống cho phép khai báo thông tin số cổng để so sánh theo các quy tắc tùy biến sau:
Khai báo là 0 nếu định tuyến cho tất cả các số cổng.
Khai báo theo dải số cổng, ví dụ: 22,80,1000:9999
Khai báo cụ thể số cổng cần định tuyến.
.....