Đầ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.
48 Bảng 2-1: Bảng cấu hình quy tắc định tuyến Địa chỉ IP miền công cộng Đị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
49
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
Địa chỉ IP public 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
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
50
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
51
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
52
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
53
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
54
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