III- Các giải pháp Internet Mail cho ISP
1- Tính năngchung của các giải pháp Internet Mail cho ISP
Có rất nhiều các giải pháp phần mềm mail server hiện nay, tuy nhiên chỉ có một số ít được sử dụng rộng rãi ở các ISP; việc lựa chọn sản phẩm nào phụ thuộc vào kích thước của ISP và các yêu cầu cho việc mở rộng tới một lượng khách hàng nào đó. Các ISP phải lựa chọn các Mail server software cẩn thận do khả năng mở rộng để phục vụ một lượng khách hàng lớn trong tương lai rất khác nhau giữa các sản phẩm.
Để có thể hỗ trợ tới hàng trăm ngàn khách hàng, các ISP phải tự customize các sản phẩm e- mail hoặc sử dụng các sản phẩm thương mại. Các sản phẩm có thể tham khảo gồm có InterMail của Openware, iPlanet Messaging Server của liên minh Sun-Netscape, Communigate Pro của Stalker, Mirapoint, InScribe Messaging Server của CriticalPath... InterMail là sản phẩm dẫn đầu (market leader) dành cho các ISP cần hỗ trợ tới hơn 500,000 users, thực tế nó có thị trường chiếm khoảng 50 triệu mailboxe, và chiếm trên 65% thị trường các ISP e-mail. Tuy nhiên, rõ ràng có thể thấy các hãng như HotMail và AOL hỗ trợ một môi trường đơn lớn hơn bất kỳ một hệ thống Openware nào, cả 2 hãng này đều sử dụng phần mềm riêng, không dùng các bản thương mại.
Dưới đây là các yêu cầu chung của hệ thống mail chuyên nghiệp:
* Kiến trúc
+ Tính khả mở – Scalability: Hệ thống cần đáp ứng tốt việc mở rộng cả theo chiều dọc và chiều ngang, dễ dàng bổ sung các thành phần để tăng năng lực phục vụ. Việc mở rộng hệ thống phải trong suốt đối với người sử dụng.
+ Các giải pháp nói chung hoạt động theo hướng cân bằng tải các thành phần như SMTP, POP/IMAP Server...
+ Chọn phần mềm MAIL hỗ trợ cho việc authenticate và định vị mailbox với cơ sở dữ liệu người dùng bên ngoài như LDAP, DATABASE.
* Năng lực
+ Hệ thống hỗ trợ kiến trúc lưu trữ messge đơn (single-copy architecture), đảm bảo khi một message gửi cho nhiều account trên cùng 1 messages-store thì chỉ được lưu 1 bản .
- Multi-process, multi-thread: nâng cao khả năng xử lý, tốc độ và số kết nối đồng thời - Multi-procesors: hỗ trợ kiến trúc phần cứng nhiều CPU
- Multi-server cluster: hỗ trợ khả năng mở rộng nhiều server theo cả chiều dọc và chiều ngang - Message store: lưu trữ message theo mô hình phân cấp, có chỉ mục hỗ trợ việc truy xuất, tìm kiếm nhanh chóng, dễ dàng mở rộng, nâng cao dung lượng.
- Directory service: hỗ trợ quản lý user tập trung dựa trên LDAP an toàn, chính xác, đồng bộ và dễ mở rộng. Có cơ chế cache cho phép nâng cao hiệu suất và tốc độ truy xuất đến các thông tin trên LDAP server.
* Độ tin cậy
+ Messages store: lưu trữ message đảm bảo an toàn cao trong các tác vụ gửi-nhận-xử lý, hỗ trợ NFS với hệ thống file lớn
+ Queue management: đảm bảo việc gửi-nhận-xử lý các message đúng, không bị thất lạc + Message access: không bị mất message khi quá trình nhận bị gián đoạn, hoặc bị treo.
* Tính sẵn sàng cao
- Online mangement: các thao tác quản trị được thực hiện online, không ảnh hưởng đến hệ thống đang vận hành, không cần ngừng hệ thống
- Monitoring and failure detect: hỗ trợ việc theo dõi và phát hiện sự cố gây ngừng trệ hệ thống, các hư hỏng về phần cứng cũng như phần mềm, sử dụng server backup đảm bảo hoạt động liên tục của hệ thống
- Backup and recovery: hỗ trợ việc backup và phục hồi hệ thống khi có sự cố xảy ra cũng như quá trình bảo trì, nâng cấp.
- Maibox Migration: Dễ dàng di chuyển mailbox giữa các Server với nhau.
* Hỗ trợ các chuẩn Internet
+Message format: hỗ trợ đầy đủ các format chuẩn theo RFC 822, 1123, MIME format theo RFC 2017, 2045-9.
+ Message routing & access: hỗ trợ các giao thức SMTP, ESMTP, APOP, POP3, IMAP4, Web
+ Universal Maibox Storage: Hỗ trợ nhiều loại e-mail, Voice mail, Fax.. trong cùng một mailbox storage.
+ Hỗ trợ nhiều loại mail client
* An toàn (Security)
- SSL support: hỗ trợ kết nối an toàn cho các giao thức SMTP, POP, IMAP qua SSL.
- SMTP authentication: cho phép hạn chế sự lạm dụng SMTP server bằng cơ chế gửi có kiểm tra password
- Anti-Spam, Anti-Spoof và DoS: hỗ trợ ngăn chặn các địa chỉ spam, kiểm tra địa chỉ nguồn và đích, hạn chế relay, giới hạn số kết nối đồng thời từ một địa chỉ...
* Độ linh hoạt (Flexibility)
- Message routing and addressing: phân phối message theo một không gian địa chỉ duy nhất dựa trên LDAP, cho phép can thiệp sửa đổi (rewrite) địa chỉ cũng như các header
- Multi domain, virtual domain, List Support: nhận mail cho nhiều domain, hỗ trợ domain ảo, định hướng cho tất cả message thuộc domain cho trước vào một mailbox duy nhất.
- Component Architecture: hỗ trợ kiến trúc module cho phép tạo sự linh hoạt, độc lập dễ liên kết trong vận hành.
* Quản trị tập trung - đơn giản (Simplicity Management)
- Central management: hỗ trợ quản trị tập trung tài nguyên và thông tin về domain, user, thông qua LDAP
- SNMP management.
- Remote administration: hỗ trợ quản trị từ xa thông qua giao diện
- Server configuration: cấu hình đơn giản, rõ ràng, hỗ trợ mạnh các yêu cầu về quản trị - Quota management: tối ưu việc quản lý quota giới hạn cho user.
- Policy-base Management: Hỗ trợ đặt trước các luật về chính sách với từng loại user.
- Các chức năng quản trị của người sử dụng: người sử dụng có thể tự thực hiện một số chức năng về mailbox của mình mà không cần phải nhờ tới quản trị mạng. Đó là các chức năng như đổi mật khẩu POP/IMAP, định nghĩa một số bộ lọc, reply message...
2- Kiến trúc hệ thống
Dịch vụ Internet Mail là dịch vụ rất quan trọng của nhà cung cấp dịch vụ, với một số lượng khách hàng, số lượng domain rất lớn và mức độ tăng trưởng nhanh, do vậy hầu hết các giải pháp hiện có trên thị trường đều tổ chức thành nhiều lớp (n-tier) để dễ dàng mở rộng, có tính chịu lỗi cao, có tính khả mở cao.
Nhiều nhà sản xuất sử dụng thuật ngữ Cluster đơn giản chỉ cho cấu hình fail-over hay hot stand-by, tuy nhiên các cấu hình như vậy không được xem như là cấu hình Cluster.
a) Kiến trúc Failover Hot-Standby
Kiến trúc Cluster Failover là một giải pháp có tính sẵn có cao, đảm bảo thời gian hoạt động liên tục của dịch vụ E-Mail. Chúng ta sẽ xem xét kiến trúc Failover của Mirapoint: Hệ thống Cluster chạy trên các node là các Messaging Server, bao gồm 2 node hoạt động dùng chung ổ đĩa (shared storage) và kết nối mạng. Tính năng Redundancy đạt được nhờ Message Router và Message Switch layers.
Hệ thống Cluster Failover chạy trên cặp Active/standby. Bình thường, Node Active điều khiển lưu lượng email trong khi Node dự phòng nóng sẵn sàng nhận tải trong trường hợp node active có sự cố. Nếu Node Active gặp sự cố, node standby sẽ tự động phát hiện và giành lấy địa chỉ IP mạng, tiếp quản hệ thống mail store, và khởi động lại ứng dụng messaging.
Hệ thống cluster được cấu hình có độ dự phòng đầy đủ các thành phần. Mỗi node đều có một kết nối mạng và chúng đều được kết nối tới hệ thống đĩa RAID. Bản thân mỗi node cũng có các tính chống lỗi như sử dụng 2 nguồn nuôi, dự phòng quạt, và ECC memory. Như vậy, một node active có thể tiếp tục hoạt động ngay cả khi bị hỏng một ổ đĩa, nguồn nuôi, quạt.... Trường hợp các lỗi nghiêm trọng, server dự phòng nóng sẽ tiếp quản hoạt động. Hệ thống chống lỗi Cluster failover chạy với một node hoạt động (active) và một node dự phòng nóng (hot standby). Trong khi cả 2 node đang chạy, chúng sẽ giám sát trạng thái hoạt động của nhau sử dụng một cơ chế là
disk heartbeat. Cả 2 node cũng giám sát trạng thái của card mạng chính của chúng.
Khi các node trong hệ thống cluster khởi động, mỗi node đều chạy một giao thức kết hợp để xác định xem node nào là node active. Nếu đã có một node active, node đang khởi động sẽ trở thành node standby. Nếu không có node active nào, node khởi động sẽ tìm cách trở thành active node thông qua shared disk block. Nếu cả 2 node đều thực hiện đồng thời thì chỉ có một node được trở thành active.
b) Kiến trúc Clustering
Các hệ thống Mail được tổ chức thành các lớp Frontend và Backend; Frontend server nhận các kết nối TCP cho giao thức mail tới và liên lạc với Backend server là nơi lưu và xử lý mail. Sử dụng cân bằng tải cho truy nhập và bảo vệ các backend server khỏi mọi sự tấn công. Các Backend server lưu trữ các mail account, message, thư mục... và chúng quản lý các dịch vụ mail
filtering, directory service.... Các Frontend server tập trung chính thông lượng mạng, trong khi các backend chủ yếu là xử lý mail.
Việc tách biệt các chức năng cho phép dễ dàng tinh chỉnh thành cấu hình cluster cho các hệ thống mail server dung lượng lớn. Có thể lập cấu hình cluster cho một số mail servers như là một domain duy nhất, hoặc trên backend để cho failover, hoặc trên frontend để cân tải.
Có 2 loại cấu hình Cluster chính là: Static and Dynamic. Cả 2 loại đều hỗ trợ các tính năng và giao thức như POP3, IMAP, SMTP, POP password administration, WebUser...:
+ Static cluster: Mỗi server lưu giữ tập hợp các thông tin về các account, khi một mail user kết nối tới hệ thống cluster sẽ được định hướng tới node server chứa mailbox của account đó, ngay cả khi user cố kết nối tới một node khác. Kiến trúc này cho phép sử dụng các đĩa cứng cục bộ của các server làm MessageStore. Static clusters dễ xây dựng và rẻ tiền hơn dynamic cluster. Tuy nhiên, do các account phụ thuộc vào các node cụ thể nên nếu có một node bị lỗi, tất cả các users trên node đó sẽ không thể truy cập được.
+ Dynamic cluster: Các Server chia sẻ chung một hệ thống lưu trữ như Storage Area Network. User có thể kết nối tới bất kỳ server server nào để truy cập mail của họ. Kiến trúc này cho tính sẵn có cao nhất (tất cả các account đều có thể truy cập vào mailbox khi có ít nhất một server đang hoạt động).
Nhiều hệ thống mail server sử dụng các file server để lưu trữ account. Các server này nói chung thường là các máy chủ đa xử lý chạy UNIX, chúng dùng cùng một phương pháp đồng bộ trong cả hai môi trường đơn server và multi-serverlà cơ chế file locks thực hiện trên mức Hệ điều hành/Hệ thống File. Phương pháp này có các vấn đề tồn tại như sau:
Mỗi hoạt động với dữ liệu của account/mailbox đều được thực hiện quanh hoạt động khoá/mở khoá file, và hệ thống file truyền thống cần đảm bảo được tính toàn vẹn (consistency) của dữ liệu. Như vậy, số lượng hoạt động của File System tăng lên từ 3-5 lần, và hiệu năng của hệ thống giảm rất nhiều. Khi 1 server bị trục trặc có thể làm toàn bộ hệ thống bị treo (do deadlock), và thực hiện khôi phục lỗi khá vất vả. Các truy nhập đồng thời tới cùng một account/mailbox từ một vài người dùng có thể không thực hiện được hoặc không đáng tin cậy.
Để làm giảm các ảnh hưởng không tốt của cơ chế file-locking, một số mail server chỉ hỗ trợ định dạng MailDir mailbox (lưu mỗi message một file), và chúng không dựa vào cơ chế file- level lock. Về mặt lý thuyết điều này có thể giải quyết một số vấn đề trên (thực tế triển khai rất khó), nhưng kết quả làm hệ thống đĩa bị phân mảnh, dư thừa nhiều: Nhiều file server cao cấp sử dụng các block 64Kbyte cho file, trong khi các mail message trung bình có kích thước khoảng 4Kb, lưu trữ mỗi message trong một file riêng biệt làm khoảng 90% đĩa cứng của file server không sử dụng, và làm quá tải bảng cấp phát file. Hiệu năng của File Servers giảm xuống khi một ứng dụng dùng nhiều file nhỏ thay vì sử dụng 1 file lớn hơn.
Cấu hình đầy đủ Frontend-Backend Dynamic Cluster sử dụng Load Balancer
Để giải quyết vấn đề này, một số hãng (như CommuniGate Pro) sử dụng cấu hình Dynamic Cluster không dùng cơ chế file-lock để đồng bộ các hoạt động truy cập. Giống như Static cluster, chỉ một server trong Dynamic Cluster được truy cập tới một Account tại một thời điểm. Kiến trúc này cho thời gian hoạt động cao nhất: nếu một Backend Server lỗi, mọi account đều có thể truy cập tới các backend server khác mà không bị gián đoạn.
Một Backend server trong Dynamic Cluster hoạt động như Cluster Controller. Nó đồng bộ mọi Server khác trong Cluster và thực hiện các nhiệm vụ khác, cung cấp chức năng cho phép không chỉ người dùng mà cả người quản trị có thể kết nối tới bất kỳ server nào trong hệ thống Dynamic Cluster và thực hiện các thao tác với account, mọi thay đổi sẽ được cập nhật tự động tới các server khác trong Cluster Servers.
Khi Dynamic Cluster có ít nhất 2 Backend Servers, Cluster Controller gán trách nhiệm Controller Backup cho một backend Server. Mọi thành viên khác trong Cluster duy trì kết nối tới Backup Controller. Nếu Backup Controller lỗi, một Backend Server khác được chọn làm Backup Controller. Nếu Controller chính bị lỗi, Backup Controller sẽ hoạt động như Cluster Controller.
c- Kiến trúc cân bằng tải (Static Cluster)
Một số sản phẩm như iPlanet Messaging Multiplexor (MMP) hoạt động như một điểm kết nối tới nhiều Messaging server, sử dụng MMP có thể phân tán các mailbox POP và IMAP trên nhiều Server để tăng dung lượng và hiệu năng của hệ thống. Mọi user kết nối tới MMP được chuyển hướng các kết nối tới các messaging server tương ứng. MMP có lợi ích như:
+ Quản lý user đơn giản: Có thể sử dụng nhiều Multiplexhoặc server và quản lý các kết nối tới chúng thông qua DNS round robin hoặc sử dụng các chương trình load-balancing như Cisco LocalDirector. Vì MMP sử dụng thông tin trong LDAP directory để xác định Messaging Server của mỗi user, nên di chuyển một user tới một server mới rất đơn giản và trong suốt với người dùng. Vì vậy có thể di chuyển một mailbox từ một Messaging Server tới server khác, sau đó chỉ cần cập nhật trong LDAP directory, địa chỉ mail address, mailbox access, và các thuộc tính khác của người dùng vẫn giữ nguyên như cũ.
+ Tăng hiệu năng: Việc lưu giữ các hộp thư của user ở nhiều message store server và sử dụng MMP để cân bằng tải sẽ làm tăng hiệu năng của toàn bộ hệ thống.
+ Giảm chi phí: Vì có thể quản lý nhiều Messaging Servers với MMP nên có thể giảm chi phí do việc mua một vài Server nhỏ sẽ rẻ hơn mua một server rất lớn.
+ Tính khả mở tốt hơn.: Có thể mở rộng cấu hình rất dễ dàng nếu sử dụng MMP bằng cách tăng thêm các server và ổ đĩa khi cần mà không ảnh hưởng đến thiết bị ban đầu.
+ Giảm thời gian chết: Sử dụng MMP để chia nhỏ các mailbox sang các máy chủ nhỏ hơn, khi một server bị lỗi, chỉ có các mailbox tại server đó bị ảnh hưởng.
+ Tăng độ bảo mật: Có thể sử dụng máy chủ MMP như là firewall; bằng cách định tuyến các kết nối thông qua server này, có thể giới hạn được các truy nhập vào messagestore server
Chương V Dịch vụ thư mục ldap
Trong môi trường mạng ngày nay, khả năng thêm các server mới và chia nhỏ các máy chủ tạo cho mạng có tính khả mở cao; tuy nhiên việc quản trị hàng chục ngàn khách hàng và nhiều máy chủ là một vấn đề lớn. Hầu hết các ứng dụng Client/Server đều có các kế hoạch quản lý truy nhập, các chính sách bảo mật riêng của riêng chúng; vì vậy, việc hình thành một hệ thống lưu trữ tập trung CSDL về khách hàng là một yêu cầu tất yếu.
Các ứng dụng mạng như RADIUS server, Mail Server... có thể xác thực dựa vào các dữ liệu trên các file cấu hình của chúng, trong 1 CSDL, trong file /etc/passwd của UNIX, thông qua gọi tới một Kerberos server, câu lệnh SQL tới CSDL Oracle hoặc thông qua lời gọi LDAP tới một