Cờ định tuyến:
Xác định việc định tuyến gói tin, có 2 cơ chế: định tuyến xoay vòng (round robin), và định tuyến đến địa chỉ đầu tiên.
Đổi port tại cổng biên dịch:
Hệ thống cho phép hai cơ chế xử lý tại cổng biên dịch, cơ chế giữ nguyên số cổng khi giao tiếp qua cổng biên dịch và cơ chế thay đổi cổng biên dịch khi gói tin gửi qua. Với cơ chế thay đổi số cổng thì hệ thống sẽ quản lý bảng dữ liệu định tuyến được cập nhật theo dữ liệu ứng dụng xử lý, với cấu trúc như sau:
Bảng 2-2: Bảng lưu trữ dữ liệu ánh xạ cổng dịch chuyển
Số cổng public | Địa chỉ IP Local | Số cổng local | |
200.100.10.1 | 20000 | 10.0.0.1 | 15000 |
200.100.10.1 | 20001 | 10.0.0.1 | 15001 |
200.100.10.1 | 30001 | 10.0.0.2 | 15000 |
200.100.10.1 | 30002 | 10.0.0.2 | 15001 |
Có thể bạn quan tâm!
- 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
- Phương Pháp Định Tuyến Và Biên Dịch Địa Chỉ Mạng
- 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
- 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 - 10
Xem toàn bộ 93 trang tài liệu này.
Số lượng địa chỉ IP miền nội bộ:
Số lượng địa chỉ IP máy sẽ nhận/gửi gói tin theo quy tắc này.
Danh sách địa chỉ IP mạng nội bộ:
Danh sách địa chỉ IP các máy mạng nội bộ sẽ nhận/gửi gói tin tương tác với Hệ thống cổng biên dịch theo quy tắc định tuyến được khai báo này. Việc này giúp cho các gói tin sẽ được phân tải xử lý cho cùng một luồng nghiệp vụ khi được gửi qua Hệ thống cổng biên dịch.
Giao thức gói tin sử dụng:
Hệ thống hỗ trợ xử lý các gói tin dùng một trong các giao thức TCP/UDP/SCTP.
Với bảng định tuyến Bảng 2-1, hệ thống cho phép tiến hành cập nhật, bổ sung dữ liệu cho bảng định tuyến theo yêu cầu điều chỉnh, mở rộng của các hệ thống ứng dụng, với tương tác cập nhật theo thời gian thực (chi tiết các tập lệnh để cập nhật bảng định tuyến được trình bày trong mục 3.3).
Cập nhật bảng cấu hình thông tin định tuyến và biên dịch địa chỉ mạng khi cần thay đổi, bổ sung, mở rộng năng lực của các ứng dụng.
Để mở rộng năng lực xử lý của hệ thống, chẳng hạn mở rộng năng lực của các thành phần xử lý nghiệp vụ cho các giao thức nền TCP/UDP/SCTP (vì hầu hết các ứng dụng hiện nay thì đều sử dụng giao thức nền là TCP/UDP/SCTP), hệ thống có thể triển khai các ứng dụng của mình trên nhiều máy khác nhau.
Tại bước này, hệ thống cung cấp kết nối qua giao thức telnet, cho phép thực hiện lệnh telnet để kết nối vào hệ thống, sau đó thực hiện các lệnh để cập nhật bảng thông tin cấu hình định tuyến và biên dịch địa chỉ mạng. Hệ thống cho phép thực hiện các lệnh sau (chi tiết tập lệnh trên hệ thống được trình bày ở mục 3.3):
Thêm mới một quy tắc cấu hình định tuyến và biên dịch địa chỉ mạng: Tương ứng với việc thêm mới một dòng trong Bảng 2-1.
Xóa bỏ một quy tắc cấu hình định tuyến: Tương ứng với việc xóa một dòng trong Bảng 2-1.
Khi cần sửa đổi một quy tắc cấu hình định tuyến đang có: Để làm việc này thì ta sẽ thực hiện hai bước là xóa cấu hình định tuyến cần sửa đổi, sau đó thêm mới một quy tắc cấu hình định tuyến theo yêu cầu.
Kết thúc bước này, dữ liệu trong bảng cấu hình thông tin định tuyến và biên dịch địa chỉ mạng được cập nhật theo yêu cầu cập nhật nghiệp vụ định tuyến của hệ thống để tương tác với các hệ thống bên ngoài.
2.2.4. Bước 4: xác định địa chỉ MAC cho các địa chỉ IP tương tác với Hệ thống (updateMAC)
Để hệ thống gửi được gói tin đi đến đúng máy đích thì:
Với trường hợp hai máy gửi/nhận nằm trong cùng một dải mạng kết nối trực tiếp thông qua một thiết bị định tuyến như switch, khi đó để bản tin định tuyến được đến đích qua switch thì khi bản tin được gửi đến switch thì switch sẽ định tuyến gói tin đến đích dựa trên thông tin MAC máy đích tại lớp liên kết (link layer).
Với trường hợp máy máy gửi/nhận không nằm trong cùng một dải mạng, các dải mạng sẽ được kết nối thông qua các gateway. Khi đó để gói tin định tuyến được đến đúng máy đích ở dải mạng khác thì máy gửi sẽ phải đóng gói thông tin địa chỉ MAC của gateway
mà nó kết nối trực tiếp đến, từ đó gói tin sẽ được gửi đến gateway để tiếp đó sẽ được gateway định tuyến tiếp đến các nút trong chu trình đường đi cần thiết của nó để đến đích.
Do vậy việc xác định thông tin địa chỉ MAC cho các địa chỉ IP của các máy tương tác với hệ thống có ý nghĩa rất quan trọng trong việc định tuyến được gói tin đến đích. Để xác định địa chỉ MAC cho các máy, hệ thống sử dụng giao thức phân giải địa chỉ mạng ARP. Hệ thống sẽ gửi các gói tin ARP (loại bản tin là yêu cầu) cho các địa chỉ IP máy sẽ giao tiếp để lấy thông tin địa chỉ MAC của chúng. Trong quá trình chạy, hệ thống định kỳ gửi gói tin ARP (với trường loại hành động là yêu cầu (request)) đến các địa chỉ IP các máy tương tác, với danh sách được cập nhật theo số lượng trao đổi của hệ thống để cập nhật thông tin địa chỉ MAC của chúng (vì với cùng một địa chỉ IP thì địa chỉ MAC có thể thay đổi trong quá trình hoạt động).
Khi nhận được gói tin ARP gửi đến, hệ thống kiểm tra:
Nếu là gói tin ARP với trường loại hành động là yêu cầu (request), tức là các nút mạng tương tác đầu xa muốn lấy thông tin địa chỉ MAC của hệ thống cổng biên dịch địa chỉ mạng theo IP tương tác của cạc mạng tương ứng, thì hệ thống gửi lại gói tin ARP với trường loại hành động là phản hồi (reply) cho nút mạng đầu xa yêu cầu để cung cấp thông tin địa chỉ MAC của hệ thống cổng biên dịch địa chỉ mạng tương ứng với IP được yêu cầu trong gói tin.
Nếu gói tin là ARP với trường loại hành động là phản hồi, tức là máy đầu xa đã gửi lại bản tin ARP phản hồi cho bản tin ARP mà hệ thống yêu cầu trước đó để cung cấp cho thông tin địa chỉ MAC tương ứng với địa chỉ IP của chúng, khi đó hệ thống sẽ cập nhật thông tin địa chỉ MAC cho địa chỉ IP máy đầu xa tương ứng.
Đầu ra của bước này là dữ liệu địa chỉ MAC cho các địa chỉ IP của các nút mạng trao đổi với hệ thống được cập nhật.
2.2.5. Bước 5: xử lý gói tin nhận được để định tuyến và biên dịch địa chỉ mạng (natProcessing)
Đầu vào của bước này là các gói tin nghiệp vụ sử dụng bộ giao thức TCP/UDP/SCTP gửi đến hệ thống từ các ứng dụng miền công cộng và miền nội bộ trao đổi với nhau.
Tại bước này, khi hệ thống nhận được các gói tin nghiệp vụ trao đổi giữa các ứng dụng miền công cộng và ứng dụng miền nội bộ sử dụng các giao thức TCP/UDP và SCTP, hệ thống thực hiện các nghiệp vụ để biên dịch địa chỉ mạng và định tuyến gói tin, cụ thể:
Khi nhận được gói tin từ ứng dụng miền công cộng gửi tới, để thực hiện nghiệp vụ biên dịch địa chỉ mạng và định tuyến đến nút nghiệp vụ miền nội bộ thì hệ thống thực hiện các chức năng:
Hệ thống phải tìm được quy tắc định tuyến cho gói tin, từ dữ liệu đầu vào của gói tin mà hệ thống nhận được gồm: Địa chỉ IP nguồn, địa chỉ IP tại cổng biên dịch cổng đích. Hệ thống sẽ xác định được quy tắc định tuyến, tương ứng là tìm được một dòng trong Bảng 2-1 phù hợp để biên dịch và định tuyến cho gói tin.
Cập nhật lại địa chỉ MAC tại tầng liên kết dữ liệu, với địa chỉ MAC nguồn là địa chỉ MAC của cổng biên dịch địa chỉ mạng giao tiếp trong miền nội bộ, địa chỉ MAC đích là địa chỉ nút ứng dụng nội bộ cần định tuyến đến.
Cập nhật lại địa chỉ IP tại tầng mạng với địa chỉ IP đích là địa chỉ IP nút ứng dụng nội bộ cần định tuyến đến.
Giữ nguyên địa chỉ nguồn tại tầng mạng là IP của nút nguồn tại miền công cộng.
Với giao thức TCP/UDP: Từ dữ liệu trong bảng quản lý cổng dịch chuyển (Bảng 2- 2), ta lấy được thông tin số cổng của ứng dụng địa chỉ nội bộ, kiểm tra số cổng đích của nó tin có trong Bảng 2-2 hay không, nếu có thì lấy thông tin số cổng được ánh xạ lại và cập nhật cho số cổng đích của gói tin tại lớp TCP/UDP tương ứng. Nếu không có thì loại bỏ gói tin.
Khi nhận được gói tin từ miền nội bộ gửi tới, để thực hiện nghiệp vụ biên dịch địa chỉ mạng và định tuyến đến nút nghiệp vụ miền công cộng thì hệ thống thực hiện các chức năng:
Lấy thông tin quy tắc biên dịch địa chỉ mạng, căn cứ vào các thông tin trong bảng cấu hình định tuyến (Bảng 2-1), với dữ liệu đầu để lấy gồm: địa chỉ IP nguồn, địa chỉ IP tại cổng biên dịch cổng đích.
Với nghiệp vụ sử dụng giao thức TCP/UDP:
Cập nhật lại địa chỉ MAC tại tầng liên kết dữ liệu, với địa chỉ MAC nguồn là địa chỉ MAC của cổng biên dịch địa chỉ mạng giao tiếp trong miền công cộng, địa chỉ MAC đích là địa chỉ nút ứng dụng miền công cộng cần định tuyến đến.
Cập nhật lại địa chỉ IP nguồn tại tầng mạng là địa chỉ IP của cổng biên dịch địa chỉ mạng giao tiếp với nút đích ở miền công cộng.
Giữ nguyên địa chỉ IP đích tại tầng mạng là IP của nút đích của miền công cộng.
Từ dữ liệu trong bảng quản lý cổng dịch chuyển (Bảng 2-2), nếu số cổng nguồn trong gói tin này đã có trong Bảng 2-2 ta lấy được thông tin số cổng cần dịch chuyển đã được cấp phát trong Bảng 2-2 để cập nhật cho số cổng nguồn của gói tin tại lớp TCP/UDP. Nếu không có trong Bảng 2-2 thì ta cấp phát số cổng mới trong dải quy hoạch theo quy tắc biên dịch đã lấy được, sau đó cập nhật thông số cổng này vào Bảng 2-2 và sửa đổi lại số cổng nguồn của gói tin tại lớp TCP/UDP.
Với nghiệp vụ sử dụng giao thức SCTP:
Cập nhật lại địa chỉ MAC tại tầng liên kết dữ liệu và địa chỉ IP tại tầng mạng giống với nghiệp vụ sử dụng giao thức TCP/UDP khi nhận gói tin từ miền nội bộ.
Với gói tin khởi tạo liên kết của giao thức SCTP, trong gói tin này có thông tin về các địa chỉ IP của nút nội bộ để khởi tạo liên kết SCTP, thường sẽ là cặp hai địa chỉ IP chạy theo cơ chế đường dẫn đa đường (Multi-homing) của liên kết SCTP, các thông tin địa chỉ IP của liên kết SCTP nằm ở tầng SCTP. Hệ thống cổng biên dịch địa chỉ mạng sử dụng thuật toán KMP (Knuth–Morris–Pratt) để tìm kiếm các thông tin địa chỉ IP của nút ứng dụng miền nội bộ tại tầng SCTP và thay thế bằng 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 trong miền công cộng.
Việc tìm kiếm theo thuật toán sẽ dừng lại khi tìm được chuỗi địa chỉ IP trùng khớp đầu tiên, việc này giúp cho thuật toán KPM sử dụng được tối ưu hơn. Không gian tìm kiếm là độ dài chuỗi ký tự tại tầng SCTP của gói tin khởi tạo liên kết và số lượng địa chỉ cần tìm cho giao thức SCTP nằm trong giới hạn theo số lượng nút ứng dụng nội bộ giao tiếp với hệ thống mà sử dụng giao thức SCTP.
Tính toán lại giá trị tổng kiểm (checksum) cho gói tin.
Tại bước này, giá trị tổng kiểm là trường dữ liệu có từ tầng mạng trong các giao thức TCP/UDP và SCTP, hệ thống thực hiện tính toán lại giá trị tổng kiểm tại các tầng của giao thức nghiệp vụ trong gói tin đã được thay đổi địa chỉ IP trong bước 6. Cụ thể:
Tại tầng mạng, sau khi cập nhật địa chỉ IP cho gói tin, hệ thống tính toán lại giá trị tổng kiểm của tầng mạng này bằng cách đặt giá trị cho trường tổng kiểm tại tầng mạng bằng 0, sau đó gọi hàm trong thư viện dpdk hỗ trợ cho việc tính giá trị tổng kiểm cho khối
dữ liệu tại tầng mạng, sau đó đặt giá trị được tính toán lại này là giá trị tổng kiểm mới cho trường tổng kiểm tại tầng mạng của gói tin.
Tại tầng giao vận, với gói tin khởi tạo liên kết của giao thức SCTP, sau khi cập nhật các địa chỉ IP cho liên kết tại tầng SCTP, hệ thống tính toán lại giá trị tổng kiểm tại tầng SCTP này bằng cách đặt giá trị cho trường tổng kiểm tại tầng SCTP bằng 0, sau đó sử dụng thuật toán CRC32 để tính giá trị tổng kiểm tại tầng SCTP này, sau đó đặt giá trị được tính toán lại là giá trị tổng kiểm mới cho trường tổng kiểm tại tầng SCTP của gói tin.
Thực hiện gửi gói tin đến nút đích.
Tại bước này, sau khi thực hiện các nghiệp vụ để cập nhật lại các địa chỉ MAC, địa chỉ IP tại các tầng của giao thức mạng cho gói tin, hệ thống thực hiện gửi gói tin này đến địa chỉ đích của nó là ứng dụng thuộc miền nộ bộ hay miền công cộng tương ứng.
CHƯƠNG 3: ÁP DỤNG THỰC TẾ VÀ KẾT QUẢ ĐẠT ĐƯỢC
Trong chương này tôi sẽ trình bày thực tế một hệ thống tại Viettel có sử dụng Hệ thống cổng biên dịch được trình bày ở đây, đó là hệ thống 5G Core, hiện tại hệ thống này đang trong giai đoạn chạy thử nghiệm và đã sẵn sàng để triển khai trong mạng thực tế cho người dùng sử dụng.
3.1. Hệ thống thử nghiệm 5G Core được áp dụng
Hệ thống 5G Core là thành phần xử lý lõi của hệ thống mạng 5G tiên tiến nhất hiện nay. Mạng 5G được thiết kế để kết nối mạng hầu như tất cả mọi người và mọi vật với nhau bao gồm máy móc, đồ vật và các thiết bị. Công nghệ mạng 5G không dây cho phép cung cấp tốc độ dữ liệu tối đa lên đến nhiều Gbps, độ trễ cực thấp, độ tin cậy cao, dung lượng mạng lớn, tăng tính khả dụng và trải nghiệm người dùng đồng nhất hơn cho nhiều người dùng hơn. Mạng 5G cho phép triển khai các ứng dụng thời gian thực được áp dụng rộng rãi trong các lĩnh vực của xã hội như giáo dục, y tế, giải trí,.. nó cho phép thực hiện các ứng dụng hội thảo video từ xa trên Internet với hình ảnh mượt mà và trôi chảy hầu như không cảm nhận có độ trễ. Mô hình triển khai mạng 5G do Viettel phát triển được thể hiện trong Hình 3-1.
IPNAT
IoT
GnodeB
AMF
SMF
UPF
...
Worder 1 Worder 2
Worder n
5GC Viettel
5GC Ericsson
AMF
SMF
UPF
OCS
Hình 3-1: Mô hình mạng 5G
Hiện tại hệ thống đang trong giai đoạn chạy thử nghiệm trong lab, với các thành phần mạng vô tuyến và các nút mạng tương tác khác được giả lập bởi một ứng dụng giả lập tập trung phục vụ kiểm nghiệm các chứng năng của hệ thống 5G Core. Các thành phần của hệ thống 5G Core ở đây sẽ gồm: Hệ thống cổng biên dịch địa chỉ mạng, có vai trò cung cấp một địa chỉ IP duy nhất với mỗi thành phần trong hệ thống 5G Core để giúp các thành phần này tương tác với nút mạng giả lập bên ngoài; các thành phần xử lý nghiệp vụ của hệ thống 5G Core. Mô hình triển khai trong lab được thể hiện như Hình 3-2.