Giai đoạn 4 - Mạng máy tính
Chào mừng mọi người đến với chặng tiếp theo của hành trình 90 ngày cùng DevOps, và chào mừng đến với điểm dừng chân mới của chúng ta - Mạng máy tính. Ở đó sẽ có rất nhiều những câu chuyện thú vị, cũng như những hoạt động hấp dẫn đang chờ bạn khám phá.
Hãy xách ba lô lên và đi thôi! 🎒
Nguồn: QuoteFancy
Ngày 21 - Bức tranh Mạng
Tại sao là Mạng máy tính?
Để trả lời câu hỏi này, cần phải hỏi ngược lại: Thế rốt cuộc chúng ta dựng lên tất cả những máy ảo rồi Docker các kiểu có cần Mạng hay không? Tất nhiên, là có. Vì thế, việc hiểu rõ những gì liên quan đến Mạng máy tính không chỉ giúp chúng ta làm việc với DevOps dễ dàng hơn mà quan trọng hơn hết, là việc hiểu kiến trúc Mạng góp phần không nhỏ vào việc làm giàu kho tàng kiến thức của chúng ta (cũng như làm giàu cái ví tiền của chính chúng ta nữa) 🤣
NetDevOps?
Network DevOps là một thuật ngữ tuy lạ mà quen - Đó là DevOps cho hệ thống mạng, tức là sử dụng các thực hành của DevOps trong quá trình phát triển và vận hành mạng máy tính. Điều quan trọng của DevOps như đã đề cập ở các giai đoạn trước chính là tính tự động hóa - nghĩa là chúng ta phá vỡ những rào cản giữa Dev và Ops trong quá trình xây dựng mạng để không biến hai nhóm này trở thành những điểm nghẽn gây thất bại, tăng tốc độ triển khai cũng như đảm bảo tính ổn định và cải tiến liên tục cho hệ thống tỷ đô của chúng ta. Mà tự động hóa là all-code, tức là chỉ có mã nguồn mà thôi, không làm bằng tay.
Nếu bạn muốn tìm hiểu thêm, xin vui lòng xem tại đây.
Phủ sóng chuyên sâu
Dưới đây là hai đường dẫn video để giúp bạn theo dõi cụ thể hơn.
Còn dưới đây là các định nghĩa đơn giản nhất về Mạng máy tính.
Nguồn: GeeksForGeeks
Host (Máy chủ)
Là bất kỳ thiết bị nào có khả năng gửi hoặc nhận dữ liệu.
Địa chỉ IP
Hãy xem mỗi nhà có một số nhà, số nhà đó dùng để định vị căn nhà nằm ở đâu. Địa chỉ IP cũng làm nhiệm vụ tương tự, nhưng trên không gian mạng toàn cầu.
Mạng
Một hệ thống chuyển dữ liệu giữa các host với nhau, có các kết nối được thực hiện dưới những phương pháp giống nhau.
Chuyển mạch (Switch)
Thiết bị giao tiếp trong mạng, dùng trong chuyển tiếp các gói tin đến các host khi được kết nối tới. Đối với Switch, gói tin khi đến switch sẽ được broadcast (phát sóng) đi khắp mạng trước khi xác định được vị trí chính xác của host cần nhận gói tin.
Định tuyến (Router)
Thiết bị giao tiếp liên mạng, dùng trong chuyển tiếp các gói tin giữa các mạng với nhau. Trên router có một bảng chứa thông tin về đường đi mà gói tin sẽ thực hiện trong vận chuyển, người ta gọi đó là Bảng định tuyến. Mỗi router cũng sẽ có một địa chỉ thường được gọi là Default Gateway - đây là địa chỉ giao tiếp giữa bên trong và bên ngoài mạng.
Gói tin (Packet)
Là một gói (pack) chứa dữ liệu truyền đi. Gói tin có kích thước giới hạn. Một lượng dữ liệu bất kỳ có thể được chia nhỏ thành nhiều gói tin khác nhau.
So sánh giữa Router và Switch
Router và Switch có vai trò tương đối giống nhau nhưng phạm vi hoạt động khác nhau: Switch dùng trong một mạng (để chuyển tiếp) còn Router dùng trong giao tiếp liên mạng (để truyền tin).
Hơn thế nữa…
Chúng ta vẫn còn đó rất nhiều những thiết bị khác chưa được kể ở đây, đều có những tính năng như chuyển mạch hay định tuyến.
- Access Points (Các điểm truy cập)
- Firewalls (Tường lửa)
- Load Balancers (Thiết bị cân bằng tải)
- Layer 3 Switches (Chuyển mạch cấp 3)
- IDS / IPS (Hệ thống nhận diện/ngăn ngừa xâm nhập)
- Proxies (Máy chủ proxy)
- Virtual Switches (Chuyển mạch ảo)
- Virtual Routers (Bộ định tuyến ảo)
Và chúng ta cũng sẽ tìm hiểu thêm về những phần như sau vào những ngày tiếp theo.
- Mô hình OSI
- Các giao thức mạng
- DNS (Hệ thống phân giải tên miền)
- Giao thức NAT
- Giao thức DHCP
- Mạng con (Subnets)
Còn bây giờ, chúng ta kết thúc ngày 21 ở đây.
Ngày 22 - Mô hình OSI
Xin chào, đây là ngày thứ 22 của hành trình 90 ngày. Và đây là lúc chúng ta sẽ điểm qua mô hình OSI - mô hình 7 tầng cho tất cả hệ thống mạng toàn cầu. Chúng ta có hai giải pháp lưa chọn ở đây.
Nếu bạn chọn giải pháp video, dưới đây là hai video để bạn theo dõi.
- The OSI Model: A Practical Perspective - Layers 1/2/3
- The OSI Model: A Practical Perspective - Layers 4/5+
Nếu bạn chọn giải pháp tiếp theo, hãy sẵn sàng để tham quan cùng mình nào!!! ⛺
Câu chuyện đầu tiên…
Ở thời điểm chưa có mạng máy tính, để có thể trao đổi dữ liệu giữa hai máy tính với nhau, người ta thường gắn một thiết bị lưu trữ vào một máy, sao chép dữ liệu rồi chuyển sang máy còn lại. Mạng máy tính xuất hiện, như một cách loại bỏ hoàn toàn thiết bị sao chép này, và tất nhiên việc sao chép dữ liệu qua Mạng cũng phải có một bộ quy tắc cụ thể. Bộ quy tắc này được gọi là mô hình OSI.
Mô hình OSI gồm có bảy tầng khác nhau, đi từ dưới lên trên, cụ thể như sau.
- Tầng Vật lý (Physical): Chứa thông tin về mặt vật lý (dây cáp, sóng không dây) của thiết bị giúp chúng ta truyền dữ liệu. Một số thiết bị hoạt động ở đây là hub hoặc bộ lặp (repeater).
- Tầng Liên kết dữ liệu (Data Link): Tầng này giúp đóng gói dữ liệu dưới dạng các khung (frame) để truyền đi. Tầng này sửa lỗi liên quan đến tầng vật lý, và địa chỉ MAC (định danh thiết bị mạng) được đưa vào ở tầng này. Bộ chuyển mạch (Switch) hoạt động ở đây.
- Tầng Mạng (Network): Vào hôm trước, ta nhắc đến Bộ chuyển mạch cấp 3, Bộ định tuyến (Router) hay máy tính (Host) - các thiết bị đó hoạt động ở tầng này. Tầng này có nhiệm vụ phân phối dữ liệu từ điểm đầu đến điểm cuối. Đây cũng là nơi địa chỉ IP hoạt động.
- Tầng Giao vận (Transport): Tầng này phân biệt các luồng dữ liệu, vận chuyển dữ liệu giữa các dịch vụ của các máy tính khác nhau. Tầng này thường sẽ có các cổng (SSH như đã từng nói nằm ở cổng số 22).
- Tầng Phiên (Session)
- Tầng Biểu diễn (Presentation)
- Tầng Ứng dụng (Application)
Đối với ba tầng còn lại, hãy xem bài viết này để hiểu rõ hơn.
MAC và IP
Tại sao vừa có MAC vừa có IP? Lý do đơn giản là vì địa chỉ MAC chỉ có tác dụng trong việc liên lạc giữa các thiết bị kết nối trực tiếp với nhau. Cứ tưởng tượng MAC nó giống cách gọi nhà dân gian: Ngã tư thứ 3, nhà thứ 2 dãy bên trái chẳng hạn.
IP thì nó lại gắn liền với gói dữ liệu đó, định danh từ đầu đến cuối. IP thì trông nó y như cách gọi số nhà sau: 123/24/25 Đường A, Phường 5, Quận 8, Thành phố Hồ Chí Minh chẳng hạn.
Chúng ta cũng sẽ tìm hiểu về Giao thức phân giải địa chỉ (ARP) trong chặng tiếp theo.
Hành trình bất tận
Dưới đây là cách mà gói tin được gửi đi từ máy A đến máy B.
- Đầu tiên dữ liệu sẽ được đóng gói lại từ tầng 7 xuống tầng 5.
- Dữ liệu chuyển xuống tầng 4 (Giao vận). Một header chứa thông tin giao thức (TCP/UDP) và cổng (nguồn/đích) sẽ được thêm vào. Thông tin dữ liệu và cổng bây giờ gọi là phân đoạn (segment).
- Phân đoạn chuyển xuống tầng 3 (Mạng). Một header chứa thông tin địa chỉ IP (nguồn/đích) sẽ được thêm vào. Phân đoạn trở thành gói tin (packet).
- Gói tin chuyển xuống tầng 2 (Liên kết dữ liệu). Một header chứa thông tin MAC (nguồn/đích) sẽ được thêm vào. Gói tin trở thành khuôn (frame)
- Khuôn thông tin được chuyển đổi thành tín hiệu nhị phân (0 - 1) và truyền đi bằng cáp/không dây.
- Gói tin khi đến máy còn lại, thực hiện mở gói từ bước 5 quay về bước 1 của quá trình này và so khớp dữ liệu.
Đó là tất cả những nội dung trong ngày 22.
Ngày 23 - Các giao thức mạng
Hello, xin chào mọi người, đã rất lâu rồi mình mới lại có dịp thực hiện trở lại hành trình 90 ngày cùng DevOps này. Và tất nhiên, sự trở lại này còn mang nhiều ý nghĩa, khi những kiến thức mới toanh với cách thể hiện mới cũng sẽ xuất hiện. Mọi người đã sẵn sàng cùng mình lăn bánh tiếp chưa?
Nếu thích phiên bản video, hãy chọn vào đây để tiếp tục nha.
Nào, hãy đi cùng chúng tôi! 🚗
Các giao thức thân thuộc nhất
Để mà nói hết về các giao thức như phạm vi bài gốc thì đúng là chắc viết không kịp mất, do đó ở bản Việt, mình sẽ chỉ đề cập đến những giao thức có thể nói là gần gũi nhất với chúng ta.
Liệt kê một vòng quanh các giao thức nha.
ARP - Giao thức phân giải địa chỉ
Một giao thức có thể nói là sống còn của Mạng máy tính. Mỗi máy tính, cũng giống như mỗi căn nhà, đều có một địa chỉ. Để các máy tính liên lạc được với nhau, người ta sẽ dùng IP (Giao thức Internet). Mỗi địa chỉ IP sẽ lại đước gán với địa chỉ gốc của chính máy tính đó (tức là địa chỉ MAC). Việc phân giải từ IP sang MAC để hiểu và trao đổi giữa máy tính với nhau phải sử dụng giao thức phân giải địa chỉ, gọi là ARP (Address Resolution Protocol).
DNS - Giao thức phân giải tên miền
Hãy nhìn vào địa chỉ này. Mọi người còn nhớ câu chuyện về địa chỉ mà mình đề cập ở đầu giai đoạn này không?
Nếu còn nhớ, hãy tưởng tượng nha, giữa việc đi tìm tọa độ nhà bạn bằng vĩ độ/kinh độ và tìm theo địa chỉ bình thường (có số nhà, tên đường đầy đủ) thì mọi người sẽ chọn cách nào? Tất nhiên cũng tùy thời điểm, nhưng hầu như chẳng ai lại đi trả lời địa chỉ bằng cách nêu ra một con số kiểu 10 độ vĩ Bắc, 100 độ kinh Đông bao giờ cả.
Mạng máy tính cũng như vậy. Trên môi trường Mạng, bản chất như đã nói phía trên, để liên lạc với nhau thường người ta dùng IP. Mà IP lại có hai loại là bản 4 (kiểu 192.168.1.1) và bản 6 (bản 6 quá dài để viết vào đây), thế chả lẽ muốn truy cập Google tìm kiếm gì đó lại phải đi tìm số như ngày xưa (kiểu Những trang vàng à)??? 🤣
DNS (Domain Name System) - Giao thức phân giải tên miền sẽ giúp bạn quên đi cảnh phải tìm kiếm địa chỉ đau khổ mà phải nhớ nhiều số như vậy nữa. Bây giờ, khi mở bất kỳ trình duyệt lên, chỉ cần gõ google.com thì ngay lập tức, DNS sẽ làm nhiệm vụ đi tìm con số này cho mọi người và truy cập vào đúng hệ thống mọi người cần.
HTTP/HTTPS - Giao thức truyền tải siêu văn bản
Sự khác nhau giữa HTTP và HTTPS chính là chữ S - Secure (Bảo mật). Điều này có nghĩa là, đối với HTTPS, các kết nối sẽ được mã hóa bằng TLS giữa máy khách và máy chủ, giúp tăng tính tối mật, toàn vẹn và khả dụng về quyền riêng tư. Tất nhiên, hầu hết các kết nối vào các trang mạng đều là HTTPS, chỉ rất ít trang sử dụng HTTP và thường là các trang có địa chỉ kiểu IP bản 4 (lại IP bản 4, mình quá mệt mỏi với nó rồi 🤣 ).
Vẫn còn đó rất nhiều giao thức khác mà mọi người có thể tìm hiểu thêm. Nhưng mà khoan, dừng khoảng chừng hai giây! Ủa rồi có ai để ý rằng chúng ta đang nhắc đến IP bản 4 hơi bị nhiều không? Để mình kể cho mọi người nghe liền câu chuyện về loại IP này nhỉ…
Tản mạn về IP bản 4 và Mạng con
IP bản 4 (IPv4) là một phiên bản mà ở đó, địa chỉ sẽ được đánh theo dạng 32 bits nhị phân (nhị phân là chỉ có 0 và 1 thôi - máy tính không đủ thông minh để hiểu nhiều hơn hai số này), và được chia thành 4 cụm (octets), tức là 8 bits * 4 cụm.
Đây là một số nhị phân: 0000 0011, và đây là số thập phân tương ứng với nó: 3. Với một số nhị phân độ dài 8 bits, chúng ta có thể viết được đến tối đa là 256 số thập phân (0 - 255) tương ứng. Như vậy, 1 cụm chỉ có thể viết được đến 255 là cùng.
Với 4 cụm, dãy địa chỉ IP tương ứng sẽ là 0.0.0.0 - 255.255.255.255. Nhưng không phải địa chỉ nào cũng có thể sử dụng được.
Số lượng địa chỉ tối đa có thể sử dụng trong IP bản 4 là 2^32 (2 lũy thừa 32), cỡ hơn 4 tỷ địa chỉ. Dân số thế giới gấp đôi. Số lượng không đáp ứng nhu cầu. Bắt buộc phải tái sử dụng bằng cách chia nhỏ. Việc chia nhỏ sẽ làm thành các mạng con.
Chia mạng con, tức là chia địa chỉ lớn thành những cụm địa chỉ nhỏ hơn, có cùng mặt nạ (mask) giữa các thiết bị cùng mạng con để phục vụ giao tiếp liên tục. Điều này có hai lợi thế: Dễ quản lý và dễ xử lý khi có sự cố xảy ra.
- Dễ quản lý nghĩa là giảm tắc nghẽn mạng, tăng hiệu quả sử dụng mạng hơn thông qua giới hạn số lượng địa chỉ trong mạng con.
- Dễ xử lý khi có sự cố nghĩa là ngay khi bị tấn công, vùng tấn công sẽ bị cô lập, đảm bảo sự việc không bị lan rộng, gây nguy hiểm cho toàn hệ thống.
Câu hỏi đặt ra là ai sẽ giúp quản lý mạng con? Bộ định tuyến (router) làm việc này chứ còn ai vào đây nữa! 🖥
Đấy là cách tiết kiệm dân gian mà ai cũng biết về IP, cũng là kết thúc cho ngày thứ 23 của hành trình. ✅
Ngày 24 - Dựng mô hình mạng của riêng bạn
Xin chào, đây là ngày thứ 24 của hành trình, thời điểm chúng ta tìm hiểu sơ nét về những câu chuyện liên quan đến cách chúng ta xây dựng hệ thống mạng ngoài đời thực.
Hãy sẵn sàng để bắt đầu khám phá thôi! 🏕
Cấu hình mạng - Chuyên muôn thuở
Có thể nói, câu chuyện làm sao để dựng được một hệ thống mạng vận hành trơn tru phục vụ các tổ chức, doanh nghiệp hiển nhiên không phải là một việc gì đó đơn giản. Nhất là trong bối cảnh, đang có rất nhiều tin tặc nhắm đến các hệ thống mạng như một đối tượng tấn công, uy hiếp sự an toàn cho toàn vẹn dữ liệu.
Chính vì lẽ đó, một hệ thống mạng được mô phỏng trên mô hình sẽ giúp hình dung ra những vấn đề phát sinh, từ đó đưa ra những giải pháp phù hợp cho những thời điểm khác nhau.
Hiện tại, có rất nhiều phần mềm có thể được dùng để mô phỏng hệ thống mạng. Trong phạm vi của bài viết này, mình sẽ đi sâu vào Cisco Packet Tracer - một trong những phần mềm được rất nhiều kỹ sư mạng sử dụng ngày nay.
Các câu lệnh quen thuộc
Cisco là một trong những đơn vị cung cấp các giải pháp mạng hàng đầu thế giới, và với Packet Tracer, một việc đơn giản mà các bạn cần làm trước khi có thể sử dụng nó là tạo một tài khoản hệ thống. Hướng dẫn tạo sẽ có khi các bạn mở ứng dụng lần đầu tiên (lưu ý: nó nằm ở dưới chân màn hình).
Sau khi mở ứng dụng và đăng nhập, hãy dựng thử mô hình sau đây.
Chọn đúp vào bộ định tuyến R0.
Đặt địa chỉ IP
Đợi khỏi động, rồi đặt địa chỉ IP cho cổng fa0/0 bằng chùm lệnh sau.
Lệnh no shutdown
là lệnh yêu cầu mở cổng fa0/0. Không có lệnh này, cổng sẽ không
tự mở lên.
Thiết lập cấp địa chỉ tư động - DHCP
Sau đó, chúng ta sẽ tiến hành một yêu cầu là cấp địa chỉ IP tự động theo giao thức DHCP. Thực hiện các câu lệnh sau trên bộ đinh tuyến.
Kiểm tra
Chọn vào từng thiết bị, vào Thiết lập IP (IP Configuration) và ở mục IPv4, chuyển sang chế độ tự động (DHCP) để lấy địa chỉ từ bộ đinh tuyến cấp.
Đó là những gì mà ngày 24 này mang đến và tất nhiên, vẫn còn 1 ngày 25 cho Giai đoạn 4 này để phục vụ mọi người.
Ngày 25 - Nâng cấp hơn với định tuyến hệ thống
Xin chào, đây là đoạn cuối của giai đoạn 4 chuyến hành trình “bất ổn” 90 ngày cùng DevOps, và đây là lúc mà chúng ta sẽ đi sâu vào vai trò chính của bộ định tuyến - điều phối đường đi của các gói tin kết nối trong Mạng máy tính.
Hãy sẵn sàng lấy giấy bút ra, và bắt đầu chuyến hành trình ngay thôi nào! 🚕
Định tuyến hệ thống mạng
Chúng ta bắt đầu bằng một sơ đồ như sau.
Lệnh định tuyến
Câu lệnh định tuyến tương ứng thường được sử dụng để đánh trên các cổng như sau (ví dụ như trên bộ định tuyến R0)
Câu lệnh ip route
có ba tham số.
- Địa chỉ cần đến: Ở đây không phải địa chỉ cổng cần đến mà là địa chỉ đích mà gói tin gửi tới.
- Mặt nạ mạng con. Có thể xem lại ở Ngày 23.
- Địa chỉ cổng đến (next hop): Đây mới là địa chỉ cổng mà gói tin cần đến để chuyển tới đích.
Kiểm tra
Sau khi cấu hình xong ở các cổng và các máy thì việc kiểm tra chỉ cần thực hiện đơn giản bằng cách gọi đến máy còn lại bằng câu lệnh sau.
Lưu ý
Có một lưu ý không hề nhỏ dành cho những ai đang học về Mạng máy tính: Việc định tuyến cần phải thực hiện hai chiều. Điều này là một trong ba nguyên tắc cơ bản của bảng định tuyến.
Có rất nhiều câu lệnh khác mà chúng ta có thể dùng cả năm chỉ để tìm hiểu, tuy nhiên đây là những gì cơ bản nhất mà series mang đến. Người ta gọi cách định tuyến như vừa rồi là tĩnh - trên thực tế việc định tuyến sẽ thường thực hiện tự động qua cấu hình các giao thức khác như RIPv2, OSPF, BGP (như Meta/Facebook đang sử dụng), v.v…
Mọi người có thể liên lạc trực tiếp với mình để được khám phá thêm những gì thú vị nhất liên quan đến chủ đề này. Đây cũng chính là phần kết của giai đoạn 4. Xin chào. 👋
Tài liệu tham khảo 📚
Mời mọi người chuyển sang trang này để theo dõi tất cả tài liệu liên quan trong giai đoạn 4, để giúp bản thân có được những tài liệu hữu ích về Mạng máy tính trong làm việc với DevOps.
Giai đoạn 4 - Tham khảoHẹn gặp mọi người ở những ngày tiếp theo, nơi mà chúng ta sẽ nói về Điện toán đám mây và các vấn đề liên quan cực kỳ mật thiết đến DevOps. 🚀