Chuyên đề Software Defined Network - Phần 1: Tiếp cận Software Defined Network qua các trend words

Nguyễn Minh Nhật – TP. GP Mạng HCM, HSI

Mặc dù Software Defined Network(SDN) đã là khái niệm quen thuộc, các hãng công nghệ đã cho ra đời rất nhiều sản phẩm, giải pháp SDN, đã được các doanh nghiệp tiếp cận và ứng dụng thực tế. Tuy thế, không dễ để bạn đọc có thể nắm bắt cặn kẽ trong một sớm một chiều; bởi lẽ SDN không chỉ là những thay đổi đột phá trong công nghệ, mà còn thay đổi trong cách tiếp cận, cách nhìn nhận về một hệ thống mạng từ trước tới nay.

Để bạn đọc trang bị những khái niệm cơ bản trước khi tiếp cận, bài viết dưới đây chưa định nghĩa về SDN, chỉ xin nêu ra những xu hướng mới trong ngành công nghiệp mạng thông qua một số “trend words”, mà những xu hướng ấy rất gần với SDN, theo đó, bạn đọc có thể hình dung ra những thay đổi trong một hệ thống mạng trong thời gian tới.


Abstraction:
Chắc chắn các bạn sẽ được nghe nhiều và rất nhiều về sự trừu tượng hóa trong thời gian tới. Hiểu rõ được xu hướng này không chỉ giúp chúng ta tiếp cận được SDN, mà còn hiểu được xu hướng các giải pháp mới mà các hãng công nghệ đang cung cấp, dù đó là HCI, NSX, ACI, DNA Center…, hay Software defined everything.

Để hiểu được xu hướng trừu tượng hóa này, tạm gác lại các khái niệm về công nghệ. Thay vào đó, bạn hãy nghĩ đến một chiếc xe hơi. Không cần tả cũng biết hệ thống trong một chiếc xe hơi phức tạp như thế nào: Hệ thống phanh, hệ thống điện, xi-lanh, rồi nén, xả, bôi trơn, làm mát… Ấy thế, khi một người tài xế bước lên xe, họ không cần biết đến các cấu tạo chi chít ấy, họ chỉ cần hiểu rõ quy cách sử dụng của một vài công cụ như cần số, chân thắng, chân ga, vô – lăng và màn hình điều khiển, là có thể lái được chiếc xe theo ý muốn. Tại sao họ làm được như vậy? Bởi vì chiếc xe đã “trừu tượng hóa” mọi thứ bên dưới, tất cả thành phần cấu tạo phức tạp bên dưới đã được tóm tắt ngắn gọn thành các công cụ đơn giản bên trên. Chiếc xe hơi là một thực thể đã được trừu tượng hóa!

Quay lại câu chuyện hệ thống mạng hiện tại. Giả sử trong một công ty A, một kỹ sư IT được yêu cầu rằng máy tính của CEO phải được truy cập internet một cách tốt nhất. Để thực hiện yêu cầu này, anh kỹ sư phải kiểm tra xem máy tính của CEO đang kết nối đến thiết bị nào, đang được cấp phát IP bao nhiêu, đi qua các router nào, có firewall policy nào không, công ty có bao nhiêu đường truyền, chính sách định tuyến ra internet, cân bằng tải ra làm sao… Hay nói cách khác, anh kỹ sư phải hiểu rất rõ kết cấu, mô hình mạng thì mới thực thi được yêu cầu đơn giản này.

Nếu như anh tài xế muốn chiếc xe rẽ trái, anh ta chỉ cần tác động nhẹ trên vô – lăng, còn anh kỹ sư muốn “lái” hệ thống mạng của mình, anh ta phải hiểu cặn kẽ về “chiếc xe hạ tầng mạng” thì mới vận hành được. Đây cũng là một thách thức cho việc vận hành hạ tầng công nghệ thông tin từ trước đến nay khi không có một chiếc “vô – lăng” nào để tóm gọn sự phức tạp của hệ thống mạng, hệ thống CNTT cả.

Underlay/Overlay: Cặp từ này vốn rất quen thuộc với các kỹ sư mạng; nhưng giờ đây, càng phổ biến và được
nhắc đến rộng rãi hơn. Bởi càng về sau, những gì chúng ta làm hoặc quan tâm có xu hướng thiên về Overlay hơn là Underlay như trước đây. Đây cũng là keyword khi nhắc về SDN. Underlay là một mạng vật lý (mạng routing/switch ta vẫn thường đang sử dụng), overlay là mạng ảo, sử dụng những công nghệ, giao thức nhất định chạy trên hạ tầng underlay, tạo ra những mạng mới, kết nối mới. Trước nay chúng ta đã có rất nhiều giao thức mạng overlay như GRE, DMVPN, MPLS, CAPWAP…, và nay, những giao thức cho mạng overlay mới hơn như VxLan, LISP, OTV…
Hầu hết các giải pháp SDN đều cần hạ tầng mạng underlay phía dưới, sau đó phủ lên lớp overlay phía trên. Việc này nhằm góp phần “trừu tượng hóa” hệ thống mạng, dễ dàng quản lý vận hành, dễ dàng mở rộng, dễ dàng thực thi chính sách mạng. Và nếu tinh ý có thể nhận ra rằng, các giao thức overlay trước đây mục đích giải quyết một phân khúc nào đó trong hệ thống mạng, nhất là VPN, trong khi các giao thức overlay sau này hướng đến tạo ra một Fabric, cho mạng Campus, Wan hay Data Center.

Fabric: Từ này cũng xuất hiện khá nhiều trong những năm gần đây. Việc hiểu được đầy đủ ý nghĩa từ Fabric cũng khá hữu ích trong việc hiểu được kiến trúc một mạng SDN như thế nào. Từ này được hiểu nhiều nghĩa khác nhau, ở đây tôi xin liệt kê những ý nghĩa của từ này mà có liên quan đến chủ điểm ta bàn luận.
• Thứ nhất, một fabric ý muốn nói đến một hệ thống mạng như một thực thể duy nhất, không phân biệt bên trong cụ thể là router, switch, firewall, hay các chính sách, định tuyến, security… Hiểu nôm na một network fabric giống như một cụm core switch, một mặt phẳng rộng rãi về phạm vị, mạnh mẽ về năng lực, cung cấp kết nối cho hạ tầng tính toán, hạ tầng IoT, các end device và người dùng.
• Ý nghĩa thứ hai của fabric đó là một mạng overlay. Ví dụ, một mạng SD Wan gồm nhiều router kết nối VPN over internet với nhau, tạo ra một mạng fabric.
• Thứ ba, một fabric cũng ám chỉ một hệ thống mạng với năng lực xử lý lớn và đồng bộ về topology. Trong kiến trúc mạng phân cấp ba lớp (Core/Distribution/Access), việc thêm một node mạng sẽ cần cân nhắc về đường dự phòng, về năng lực thiết bị lớp trên, về băng thông đường uplink. Đối với một fabric, việc thêm node mạng lại có thể giúp tăng năng lực xử lý và băng thông cho cả hệ thống. Mô hình Leaf and spine trong Data Center là một ví dụ cho dạng fabric này.

Visibility: Tạm dịch là Độ thị thực, hoặc khả năng nhìn thấy được. Từ này có thể không còn xa lạ với bạn đọc bởi xuất hiện rất nhiều. Nó cũng độc lập với khái niệm SDN ta đang bàn luận. Tuy nhiên, khả năng visibility giúp ích rất nhiều cho việc thực thi các chính sách (policy) trong một mạng SDN.

Giả sử tại công ty A, người dùng đang gặp vấn đề về kết nối, hệ thống mạng kết nối rất chậm chạp. Khi bộ phận IT kiểm tra, test kết nối thì vẫn thông suốt nên họ không biết được nguyên nhân để xử lý. Tại công ty B, họ gặp tình trạng tương tự. Sau khi kiểm tra, bộ phận IT xác định được việc kết nối chậm do đường truyền mạng bị nghẽn, họ còn biết được ứng dụng chiếm băng thông gây nghẽn là ứng dụng X, thêm nữa, ứng dụng này được kết nối từ máy tính 1 đến server 2, vào lúc 3h, do người dùng Y sử dụng…

Như vậy, ta có thể nói, hệ thống mạng tại công ty B có tính visibility rất cao; trong khi đó, mạng công ty A không có tính visibility. Visibility được hiểu là 4W 1H (What, Where, When, Who, How) – Ai, đang làm gì, ở đâu, khi nào, và làm như thế nào trong hệ thống mạng của mình. Tuy nhiên, để hiểu ở mức một giải pháp, không nhất thiết phải đầy đủ 4W 1H ta mới gọi là visibility. Ví dụ một giải pháp về security giúp xác định được ai đang truy cập trong mạng, ta nói giải pháp ấy tăng tính visibility, hay giải pháp giúp nhận diện chính xác ứng dụng (layer 7) đang chạy trên đường truyền, ta nói giải pháp đó tăng tính visibility.
Mặc dù không nằm trong định nghĩa của SDN, nhưng tất cả các mạng SDN đều có khả năng visibility rất cao, bằng cách định nghĩa ra những kỹ thuật mới, giao thức mới, thuộc tính mới nhằm thực thi các policy được dễ dàng, nhanh chóng và bảo mật.

Network Programmability: Từ này được hiểu với nhiều nghĩa khác nhau cho cả Network Engineer và Developer.
Tuy nhiên mục tiêu cuối cùng vẫn khá giống nhau là hướng đến một hệ thống mạng có thể tương tác được như một phần mềm.
Hãy xét một ví dụ sau: Có một doanh nghiệp A có hệ thống mạng rất lớn nhưng đã hoạt động khá lâu, phòng IT cần rà soát và xóa bỏ các cấu hình dư thừa phát sinh trong quá trình vận hành hệ thống. Theo đó, một kỹ sư mạng được yêu cầu thực hiện: “ Hãy tắt (disable) các cổng (interface) trên thiết bị switch mà hơn một tháng không hoạt động”. Nếu hệ thống mạng có hàng trăm thiết bị switch thì công việc sẽ mất rất nhiều thời gian và có thể sai sót.

Công việc của anh kỹ sư mạng sẽ thực hiện có thể gồm các bước như sau:
• Thống kê tất cả các Switch trong hệ thống.
• Đăng nhập (login) vào từng switch, show trạng thái từng interface để kiểm tra.
• Nếu một interface đang down và hơn 1 tháng không có log cảnh báo nào liên quan thì thực hiện:
» Disable (shutdown) port
» Ghi chú lại port (Description)
• Thực hiện như vậy liên tục cho tất cả các port trên một switch, và cho tất cả các switch trong mạng của mình.
Nếu dùng mindset của lập trình, công việc trên có thể được biểu thị bởi một vòng lặp như sau

for switch in my_network:

for interface in switch:

if interface.is_down() and interface.last_change() > thirty_days:

interface.shutdown()

interface.set_description(“Interface disabled per Policy”)

Great! Như vậy, chỉ cần một đoạn lệnh ngắn đã giải quyết xong công việc vốn mất rất nhiều thời gian, quan trọng hơn là chính xác tuyệt đối, không có lỗi thiếu sót do con người. Thế nhưng, vấn đề ở đây là, với các thiết bị mạng hiện nay, kiến trúc mạng hiện nay, chúng ta có thực thi được việc này không? Chắc chắn là không; hoặc nếu có cũng không đồng nhất. Như vậy, để thực hiện được việc như trên (và rất nhiều công việc tự động khác), chúng ta cần thay đổi kiến trúc mạng, tạo ra một hệ thống mạng có khả năng tương tác, có khả năng lập trình được các tác vụ, được tổ chức một cách thống nhất (giữa các hãng công nghệ). Hệ thống mạng của chúng ta đang và sẽ phát triển như thế. Và đó là cũng là lý do các networker ngày nay hay bàn luận về API, Python, hay automation…

Một trong những mục tiêu để thiết lập nên mạng SDN là network programmability. Mạng SDN được tái kiến trúc theo một cách tiếp cận mới, được quản trị và ra quyết định tập trung trên controller, được tổ chức một cách thống nhất để đáp ứng được khả năng programmability, hướng đến network automation.
Như vậy, bằng cách giải thích một số trend words, hy vọng bạn đọc sẽ có hình dung sơ bộ về xu hướng của ngành networking. Xin nhấn mạnh lại rằng, những thuật ngữ này không phải là định nghĩa về mạng SDN, mà chỉ là những gì đang diễn ra trong ngành công nghiệp mạng; mà theo đó, hiểu được những thuật ngữ này sẽ dễ dàng tiếp cận với xu hướng SDN hơn. Tất cả chúng ta đang hướng đến một hệ thống mạng dễ dàng sử dụng, quản lý, vận hành (thông qua sự trừu tượng hóa), một hệ thống mạng có năng lực xử lý lớn và mở rộng dễ dàng (thông qua kiến trúc fabric), hệ thống mạng cũng đem lại sự tự động cho tác vụ quản trị hằng ngày, dễ dàng cho việc việc thực thi các chính sách, troubleshooting, và tăng cường bảo mật.

Vậy mạng SDN là gì? Tại sao phải có SDN? Xin hẹn bạn đọc ở số tiếp theo, SDN – Từ cảm hứng đến bản chất!