ÁP DỤNG EPP TRONG QUẢN LÝ TÊN MIỀN THEO MÔ HÌNH SRS

Một phần của tài liệu NGHIÊN CỨU GIAO THỨC EPP (Extensible Provisioning Protocol) VÀ ĐÁNH GIÁ KHẢ NĂNG ÁP DỤNG VÀO CÔNG TÁC QUẢN LÝ TÀI NGUYÊN TÊN MIỀN INTERNET QUỐC GIA TẠI TRUNG TÂM INTERNET VIỆT NAM (Trang 20 - 29)

CHƯƠNG 2. NGHIÊN CỨU GIAO THỨC EPP, ĐÁNH GIÁ KHẢ NĂNG ÁP DỤNG VÀO VIỆC QUẢN LÝ TÀI NGUYÊN

IV. ÁP DỤNG EPP TRONG QUẢN LÝ TÊN MIỀN THEO MÔ HÌNH SRS

IV.1 Sơ đồ cấu trúc hoạt động của hệ thống SRS dựa theo EPP.

Hình 5. Cấu trúc hệ thống EPP client – server.

Hệ thống này gồm các thành phần:

- EPP server của Registry: giao tiếp với các EPP Client ở phía các Registrar.

- EPP client của Registrar: giao tiếp với EPP server của Registry.

- Bộ giao thức EPP phục vụ việc trao đổi thông tin giữa Registrar và Registry (đăng ký, duy trì, hủy, sửa đổi, thay đổi Registrar …)

- Registry database: CSDL của Registry lưu trữ quản lý tập trung tên miền và các thông tin liên quan.

Sơ đồ state machine của EPP.

Hình 6. Sơ đồ state-machine của EPP.

Giao thức truyền tải giữa EPP client và EPP server được sử dụng là TCP. Một phiên làm việc gồm có 3 bước chính và được mô tả như hình dưới đây.

- Thiết lập kết nối: EPP client sẽ kết nối đến EPP server, thực hiện xác thực.

- Trao đổi dữ liệu: EPP client sẽ gửi các lệnh (đăng ký, duy trì, sửa đổi, tạm ngưng, hủy, thu hồi ….) đến EPP server. EPP sẽ tiếp nhận và tiến hành xử lý, trả kết quả về EPP client.

- Đóng kết nối.

Command Processed

Hình 7. Phiên giao dịch EPP.

IV.2 Các đối tượng trong quản lý tên miền ánh xạ vào EPP:

Khi áp dụng EPP vào quản lý tên miền có 3 đối tượng được quản lý là:

- Tên miền (Domain), Tên máy (Host), Thông tin liên hệ (Contact).

EPP cung cấp các lệnh tiêu chuẩn để thao tác trên các đối tượng trên:

- Lệnh truy vấn dữ liệu (Query): check (kiểm tra), info (lấy thông tin), transfer (lấy thông tin transfer).

- Lệnh thay đổi dữ liệu (Transformation): create (tạo mới), delete (xóa), update (cập nhật, thay đổi), renew (duy trì), transfer (thay đổi NĐK).

Ngoài ra EPP còn cung cấp lệnh quản lý phiên (Session Management): login, logout, hello, greeting.

Bộ tiêu chuẩn EPP được trình bày rất chi tiết trong các RFC nêu trên, khi triển khai EPP vào trong mô hình SRS quản lý tên miền, ta có bảng thống kê sau:

Function (Chức năng)

Comma nd (Lệnh)

Domain (tên miền)

Host (máy chủ

DNS)

Contac t (thông tin liên

hệ)

Session Management (Quản lý phiên)

<hello>

N/A

<greetin g>

<login>

<logout

>

Transformation (Thay đổi đối tượng)

<create> √ √ √

<update

>

√ √ √

<delete> √ √ √

<renew>N/A N/A

<transfe r>

N/A

Query (Truy vấn)

<check> √ √ √

<info> √ √ √

<transfe r>

N/A

<poll> N/A N/A N/A

*N/A (not available): Nghiệp vụ không sử dụng.

Vì các đối tượng được lưu tập trung và chia sẻ nên cần có các thuộc tính và trạng thái để tránh xung đột:

- Thuộc tính bảo vệ: phải xác thực mới có thể thay đổi các đối tượng này, điều này đảm bảo các đối tượng được bảo vệ ở mức an toàn cao.

- Thuộc tính trạng thái: các đối tượng được gán mức trạng thái khác nhau, mỗi trạng thái đều có các ràng buộc. Một lệnh khi tác động vào đối tượng này phải được kiểm tra không vi phạm các trạng thái đang gán vào đối tượng.

Các trạng thái của đối tượng trong EPP: Các trạng thái gán bởi EPP client được gán tiền tố “client”, các thuộc tính gán bởi server được gán tiền tố “server”, trạng thái không bắt đầu bằng “client” hoặc “server” là trạng thái được server thiết lập để quản lý khác.

Các thuộc tính và ý nghĩa:

- clientDeleteProhibited, serverDeleteProhibited: yêu cầu xóa đối tượng này sẽ không được chấp nhận.

- clientHold, serverHold: yêu cầu xóa thông tin tên miền trên hệ thống DNS, hoặc tên miền sẽ không được cài đặt trên hệ thống DNS.

- clientRenewProhibited, serverRenewProhibited: yêu cầu gia hạn bị từ chối.

- clientTransferProhibited, serverTransferProhibited: yêu cầu transfer bị từ chối.

- clientUpdateProhibited, serverUpdateProhibited: yêu cầu cập nhật bị cấm.

- inactive: đối tượng Domain không có DNS nào chuyển giao hoặc đối tượng Host, Contact không tham chiếu đến bất kỳ tên miền nào.

- ok: chỉ ra tình trạng hoạt động bình thường của đối tượng (không phải là đang đợi xử lý-pending hoặc cấm (prohibitions). Thuộc tính này được thiết lập bởi server.

- linked: đối tượng được liên kết với một đối tượng khác. Ví dụ: đối tượng contact/host được liên kết với đối tượng domain.

- pendingCreate, pendingDelete, pendingRenew, pendingTransfer, pendingUpdate : các lệnh transform đã được xử lý trên đối tượng, nhưng chưa được hoàn thành.

Yêu cầu bị dừng lại phía server để xử lý vì một lý do nào đó, mã lệnh trả về cho trường hợp này là 1001. Các lệnh transform sẽ bị từ chối khi đối tượng được thiết lập thuộc tính này, tuy nhiên có trường hợp loại trừ là lệnh transfer (chấp nhận-approve, từ chối-reject, hủy-cancel ) vẫn được thực hiện khi đối tượng nằm trong trạng thái "pendingTransfer".

Khi yêu cầu đã được xử lý xong thì các trạng thái đang chờ xử lý (pending) ở trên phải được gỡ bỏ. Tất cả các client tham gia vào quá trình này phải được thông báo

bằng các bản tin dịch vụ (service message) chứa nội dung: yêu cầu đã hoàn thành &

thuộc tính đối tượng đã được thay đổi.

Một số ràng buộc của các thuộc tính:

- "ok" không kết hợp với bất kỳ thuộc tính nào khác.

- “linked” có thể kết hợp với bất kỳ thuộc tính nào.

- "pendingDelete" không kết hợp với "clientDeleteProhibited" hoặc

"serverDeleteProhibited".

- "pendingRenew" không kết hợp với "clientRenewProhibited" hoặc

"serverRenewProhibited".

- "pendingTransfer" không kết hợp với "clientTransferProhibited" hoặc

"serverTransferProhibited".

- "pendingUpdate" không kết hợp với "clientUpdateProhibited" hoặc

"serverUpdateProhibited”.

- pendingCreate, pendingDelete, pendingRenew, pendingTransfer, pendingUpdate không kết hợp với bất kỳ thuộc tính nào khác.

- Các tổ hợp trạng thái khác không được đề cập là cấm thì có thể được sử dụng.

IV.3 Cấu trúc bản tin EPP:

EPP sử dụng bản tin dưới dạng XML và dữ liệu được mã hóa Unicode dưới dạng UTF-8, với ưu điểm này thì toàn bộ các ngôn ngữ sẽ được hỗ trợ, bao gồm bảng mã tiếng Việt theo tiêu chuẩn quốc gia TCVN 6909:2001. Phần mã hóa ký tự được khai báo như sau:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<?xml version="1.0" standalone="no"?>

<?xml version="1.0" encoding="UTF-8"?>

<?xml version="1.0"?>

Phần đầu và kết thúc của bản tin EPP được khai báo như sau:

<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

</epp>

Cấu trúc bản tin EPP yêu cầu (Request command):

EPP client và server tương tác với nhau qua các lệnh được thể hiện dưới dạng XML, ngoài các thành phần tiêu chuẩn ở trên thì EPP bao gồm các thành phần sau:

- Một lệnh và phần mở rộng có thể chứa các thông tin xác định giao thức hoặc xác định đối tượng cần được tham chiếu.

- Một thành phần mở rộng không bắt buộc (OPTIONAL) được sử dụng cho các thành phần mở rộng <extension> được server định nghĩa.

- Một thành phần mở rộng không bắt buộc (OPTIONAL): <clTRID> (client transaction identifier) được sử dụng để định danh duy nhất lênh với client.

Client chịu trách nhiệm các số nhận dạng giao dịch là duy nhất.

C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>

C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

C: <command>

C: <info>

C: <obj:info xmlns:obj="urn:ietf:params:xml:ns:obj">

C: <obj:name>example</obj:name>

C: </obj:info>

C: </info>

C: <clTRID>ABC-12345</clTRID>

C: </command>

C:</epp>

Cấu trúc bản tin trả về (Response):

EPP server sử dụng các bản tin phản hồi (response-S) cho EPP client, ngoài các thành phần tiêu chuẩn ở trên thì EPP bao gồm các thành phần sau:

a. Một hoặc nhiểu thành phần <result> miêu tả lệnh đã được tiến hành thành công hoặc không thành công.Nếu câu lệnh được xử lý thành công thì chỉ có duy nhất một thành phần <result> được trả vể. Nếu lệnh xử lý không thành công thì nhiều thành phần <result> có thể được trả về.

b. Một thành phần tùy chọn <msgQ> miêu tả thông điệp trong hàng đợi để client lấy về, thành phần này chỉ xuất hiện khi có bản tin trong hàng đợi.

c. Một thành phần tùy chọn <resData> chứa các thành phần cấp dưới xác định một lệnh hoặc đối tương được kết hợp.

d. Một thành phần mở rộng <extension> có thể được sử dụng cho phần mở rộng chothông điệp phản hồi của server.

e. Một <trID> số nhận dạng giao dịch được gán bởi server tương ứng với lệnh mà câu phản hồi được trả về. <trID> bao gồm <ctTRID> (client) và

<svTRID> (server).

Câu lệnh trả về không sử dụng <value> và <resData>:

S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>

S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

S: <response>

S: <result code="1000">

S: <msg lang="en">Command completed successfully</msg>

S: </result>

S: <trID>

S: <clTRID>ABC-12345</clTRID>

S: <svTRID>54321-XYZ</svTRID>

S: </trID>

S: </response>

S:</epp>

Câu lệnh trả về với <resData>:

S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>

S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

S: <response>

S: <result code="1000">

S: <msg>Command completed successfully</msg>

S: </result>

S: <resData>

S: <obj:creData xmlns:obj="urn:ietf:params:xml:ns:obj">

S: <obj:name>example</obj:name>

S: </obj:creData>

S: </resData>

S: <trID>

S: <clTRID>ABC-12345</clTRID>

S: <svTRID>54321-XYZ</svTRID>

S: </trID>

S: </response>

S:</epp>

Câu lệnh trả về với thành phần báo lỗi:

S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>

S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

S: <response>

S: <result code="2004">

S: <msg>Parameter value range error</msg>

S: <value xmlns:obj="urn:ietf:params:xml:ns:obj">

S: <obj:elem1>2525</obj:elem1>

S: </value>

S: </result>

S: <result code="2005">

S: <msg>Parameter value syntax error</msg>

S: <value xmlns:obj="urn:ietf:params:xml:ns:obj">

S: <obj:elem2>ex(ample</obj:elem2>

S: </value>

S: <extValue>

S: <value xmlns:obj="urn:ietf:params:xml:ns:obj">

S: <obj:elem3>abc.ex(ample</obj:elem3>

S: </value>

S: <reason>Invalid character found.</reason>

S: </extValue>

S: </result>

S: <trID>

S: <clTRID>ABC-12345</clTRID>

S: <svTRID>54321-XYZ</svTRID>

S: </trID>

S: </response>

S:</epp>

Câu lệnh trả về với thông báo có bản tin trong hàng đợi:

S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>

S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">

S: <response>

S: <result code="1000">

S: <msg>Command completed successfully</msg>

S: </result>

S: <msgQ count="5" id="12345"/>

S: <trID>

S: <clTRID>ABC-12345</clTRID>

S: <svTRID>54321-XYZ</svTRID>

S: </trID>

S: </response>

S:</epp>

IV.4 Cơ chế mở rộng của EPP.

EPP không bị giới hạn bởi tập lệnh có sẵn mà EPP cung cấp cơ chế mở rộng cho phép thêm ở mức giao thức, đối tượng và lệnh trả về.

Mở rộng giao thức Protocol Extension:

Để mở rộng giao thức EPP cung cấp thành phần <extension>. Ví dụ.

C:<epp>

C: <extension>

C: <!-- One or more extension elements. -->

C: <ext:foo xmlns:ext="urn:ietf:params:xml:ns:ext">

C: <!-- One or more extension child elements. -->

C: </ext:foo>

C: </extension>

C:</epp>

Mở rộng đối tượng - Object Extension:

EPP cung cấp khả năng mở rộng đối tượng, định nghĩa cú pháp và ngữ nghĩa các tác động của giao thức lên đối tượng. Ví dụ:

Đối tượng trong câu lệnh yêu cầu được mở rộng

C:<EPPCommandName>

C: <object:command xmlns:object="urn:ietf:params:xml:ns:object">

C: <!-- One or more object-specific command elements. -->

C: </object:command>

C:</EPPCommandName>

Đối tượng trong câu lệnh trả về được mở rộng:

S:<resData>

S: <object:resData xmlns:object="urn:ietf:params:xml:ns:object">

S: <!-- One or more object-specific response elements. -->

S: </object:resData>

S:</resData>

Mở rộng câu lệnh yêu cầu và câu lệnh trả về - Command-Response Extension:

Có thể sử dụng thành phần <extension> để mở rộng câu lệnh.

Mở rộng câu lệnh yêu cầu:

C:<command>

C: <!-- EPPCommandName can be "create", "update", etc. -->

C: <EPPCommandName>

C: <object:command xmlns:object="urn:ietf:params:xml:ns:object">

C: <!-- One or more object-specific command elements. -->

C: </object:command>

C: </EPPCommandName>

C: <extension>

C: <!-- One or more server-defined elements. -->

C: </extension>

C:</command>

Mở rộng câu lệnh phản hồi

S:<response>

S: <result code="1000">

S: <msg lang="en">Command completed successfully</msg>

S: </result>

S: <extension>

S: <!-- One or more server-defined elements. -->

S: </extension>

S: <trID>

S: <clTRID>ABC-12345</clTRID>

S: <svTRID>54321-XYZ</svTRID>

S: </trID>

S:</response>

Một phần của tài liệu NGHIÊN CỨU GIAO THỨC EPP (Extensible Provisioning Protocol) VÀ ĐÁNH GIÁ KHẢ NĂNG ÁP DỤNG VÀO CÔNG TÁC QUẢN LÝ TÀI NGUYÊN TÊN MIỀN INTERNET QUỐC GIA TẠI TRUNG TÂM INTERNET VIỆT NAM (Trang 20 - 29)

Tải bản đầy đủ (DOCX)

(94 trang)
w