You are on page 1of 22

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO BÀI TẬP LỚN HỌC PHẦN

Kiến trúc phần mềm mạng

Nhóm sinh viên thực hiện:

Họ tên MSSV
1. Nguyễn Bảo Ngọc 20122160
2. Trần Đình Giáp 20121609
3. Chu Minh Đức 20121542
4. Đào Duy Nhẫn 20111939

Giảng viên hướng dẫn: TS. Phạm Huy Hoàng

Hà Nội, tháng 12 năm 2016
Đề tài

Các dịch vụ TCP/IP cơ bản
(Chương 4 Bài 2)

Giáo viên hướng dẫn:TS.Phạm Huy Hoàng
------------------------------------------------------
Nhóm sinh viên:
Nguyễn Bảo Ngọc MSSV : 20122160
Trần Đình Giáp MSSV : 20121609
Chu Minh Đức MSSV : 20121542
Đào Duy Nhẫn MSSV : 20111939
Mục Lục:

1. Lời nói đầu …………………………………………………………….03
2. Cơ sở lý thuyết …………………………………………………………04
3. Các dịch vụ TCP/IP cơ bản ……………………………………………08
4. Triển khai dịch vụ Gitlab ……………………………………………..13
5. Tài liệu tham khảo …………………………………………………..20

2
Lời Nói Đầu

Với sự phát triển của công nghệ thông tin trong thời đại hiện nay, mạng máy tính
là một nhân tố vô cùng quan trọng và không thể thiếu. Việc tìm hiểu những kiến thức
về mạng máy tính nói chung và kiến thức về kiến trúc phần mềm mạng nói riêng là rất
cần thiết và hữu ích. Trong học kì này, nhận được sự hướng dẫn của thầy giáo Phạm
Huy Hoàng, em và các bạn đã được học và bước đầu làm quen với những kiến thức cơ
bản về lý thuyết cũng như thực hành mạng TCP/IP, từ những kiến thức cơ bản ban đầu
đến những công nghệ tiên tiến hiện nay.

Để tổng hợp cũng như củng cố kiến thức trong môn học, chúng em đã làm bài tập
lớn về đề tài Các dịch vụ TCP/IP cơ bản

Nội dung báo cáo của chúng em gồm 3 phần : phần cơ sở lý thuyết, phần xây dựng
chương trình và phần demo.

Mặc dù đã cố gắng nhưng chương trình của chúng em không thể tránh khỏi những
sai sót, chúng em rất mong nhận được sự góp ý từ thầy.

Nhóm sinh viên thực hiện

3
Cơ sở lý thuyết

1. Mô hình TCP/IP

Mô hình TCP/IP có bốn lớp sau:

 Lớp ứng dụng.
 Lớp vận chuyển.
 Lớp Internet.
 Lớp truy nhập mạng.

Mô hình TCP/IP

TCP là một giao thức thiên hướng kết nối (connection – oriented). Nó duy trì
một đối thoại giữa nguồn và đích trong khi gói thông tin của lớp ứng dụng vào
các đơn vị segment. Thiên hướng kết nối không có nghĩa là tồn tại một mạch
giữa các máy tính truyền tin. Điều này có nghĩa là các segment của lớp 4 chạy
xuôi ngược giữa hai host để nhận ra rằng có một kết nối logic đang tồn tại
trong một khoảng thời gian nào đó.

4
Mục đích của lớp Internet là để chia các segment của TCP thành các gói và
gửi chúng từ bất kỳ mạng nào. Mỗi gói đến mạng đích theo những con đường
có thể khác với các gói kia. Giao thức đặc biệt kiểm soát lớp này được gọi là
giao thức IP. Sự xác định đường dẫn tốt nhất và chuyển mạch để truyền các
gói đều là các hoạt động diễn ra tại lớp này.
Mỗi liên hệ mật thiết giữa IP và TCP là một điều khiển rất quan trọng. IP có thể
được xem như có chức năng chỉ ra con đường cho các gói, trong khi TCP
cung cấp một cơ chế vận chuyển tin cậy.
Các giao thức lớp vận chuyển phổ biến nhất bao gồm:

 TCP.
 UDP.

Giao thức chính của lớp Internet là:

 IP.

Lớp truy nhập mạng liên quan đến bất kỳ công nghệ đặc biệt nào được dùng
trên một mạng.

Các giao thức TCP/IP phổ biến

5
2. Dịch vụ DNS

a) Giới thiệu về DNS
Mỗi máy tính, thiết bị mạng tham gia vào mạng Internetđều giao tiếp với nhau
bằng địa chỉ IP (Internet Protocol) . Để thuận tiện cho việc sử dụng và dễ nhớ
ta dùng tên (domain name) để xác định thiết bị đó. Hệ thống tên miền (Domain
Name System) được sử dụng để ánh xạ tên miền thành địa chỉ IP.

Vì vậy, khi muốn liên hệ tới các máy, chúng chỉ cần sử dụng chuỗi ký tự dễ
nhớ (domain name) như: www.microsoft.com, www.ibm.com..., thay vì sử
dụng địa chỉ IP là một dãy số dài khó nhớ.

Ban đầu, khi DNS chưa ra đời, người ta sử dụng một file tên Host.txt, file này
sẽ lưu thông tin về tên host và địa chỉ của host của tất cả các máy trong mạng,
file này được lưu ở tất cả các máy để chúng có thể truy xuất đến máy khác
trong mạng. Khi đó, nếu có bất kỳ sự thay đổi về tên host, địa chỉ IP của host
thì ta phải cập nhật lại toàn bộ các file Host.txt trên tất cả các máy. Do vậy đến
năm 1984 Paul Mockpetris thuộc viện USC’s Information Sciences Institute
phát triển một hệ thống quản lý tên miền mới lấy tên là Hệ thống tên miền –
Domain Name

Hệ thống tên miền này cũng sữ dụng một file tên host.txt, lưu thông tịn của tất
cả các máy trong mạng, nhưng chỉ được đặt trên máy làm máy chủ tên miền
(DNS). Khi đó, các Client trong mạng muốn truy xuất đến các Client khác, thì
nó chỉ việc hỏi DNS.
Như vậy, mục đích của DNS là:
 Phân giải địa tên máy thành địa chỉ IP và ngược lại.
 Phân giải tên domain.
DNS là Domain Name System, dns là Domain Name Server chạy Domain
Name Service.

6
b) DNS Server

 Là một máy tính có nhiệm vụ là DNS Server, chạy dịch vụ DNS service.

 DNS Server là một cơ sở dữ liệu chứa các thông tin về vị trí của các DNS
domain và phân giải các truy vấn xuất phát từ các Client.

 DNS Server có thể cung cấp các thông tin do Client yêu cầu, và chuyển đến
một DNS Server khác để nhờ phân giải hộ trong trường hợp nó không thể
trả lời được các truy vấn về những tên miền không thuộc quyền quản lý và
cũng luôn sẵn sàng trả lời các máy chủ khác về các tên miền mà nó quản lý.
DNS Server lưu thông tin của Zone, truy vấn và trả kết quả cho DNS Client.

 Máy chủ quản lý DNS cấp cao nhấtlà Root Server do tổ chức ICANN quản
lý:
 Là Server quản lý toàn bộ cấu trúc của hệ thống tên miền
 Root Server không chứa dữ liệu thông tin về cấu trúc hệ thống DNS mà
nó chỉ chuyển quyền (delegate) quản lý xuống cho các Server cấp thấp
hơn và do đó Root Server có khả năng định đường đến của một domain
tại bất kì đâu trên mạng

7
Các dịch vụ TCP/IP cơ bản

1. Cài đặt máy chủ Main Server đồng thời cài đặt dịch vụ DNS trên đó

Cấu hình máy ảo:
 Tên máy ảo: Main_CentosServer loại Linux type: Redhat(64bit)
 Ram: 1024MB (do là máy chủ DNS thôi nên nó cực nhẹ.)
 Bật I/O APic
 Pointing Device chọn loại: USB Tablet.
Network:
 Server sẽ có nhiều card. Một card kết nối vào router chủ(RHub, bằng
cạc mã #3) ->Adapter1 -> Attached to: chọn mode host only mode.

8
 Một cái card ra internet để cài bind-> Bridged Adapter.

Cài Main_CentosServer có 2 mạng:
 Một cái thông vào mạng nội bộ công ty => Adapter1 -> Attached to:
chọn mode host only mode -> chọn cạc mã #3
 Một cạc mạng ra ngoài internet: Adapter2
Tích vào enable Network Adapter -> Attached to chọn chế độ:
Bridged Adapter

Cài đặt server xong ta cài đặt các gói bind, bind-utils bằng lệnh: yum install
bind bind-utils

9
Sau khi cài đặt các gói cần thiết cho dịch vụ dns server ta tiến hành cấu
hình server.

2.Cấu hình máy chủ BIND

Bỏ qua các thông tin không quan trọng, các file cấu hình cần thiết như sau:
/etc/named.conf

Trong mục options, tham số listen-on cho phép thiết lập DNS server nghe ở cổng
nào (53) vào có thể truy nhập từ đâu (any = bất cứ máy nào). Tham số directory
thiết lập thư mục chứa các file dữ liệu. Tham số recursion xác định cách làm việc
của DNS server (trong trường hợp này là “no recursive”).

Mục zone “.” cung cấp cho server danh sách các máy chủ root. BIND thường
được cung cấp kèm với file /var/named/named.ca chứa danh sách máy chủ gốc.

Trong trường hợp này ta muốn máy chủ DNS chỉ phục vụ các tên miền nội bộ
của công ty nên thay vì sử dụng file named.ca, ta sử dụng file “rỗng”
named.empty như sau:
/var/named/named.empty

10
/var/named/named. hubcode.andromeda

11
3.Vận hành và kiểm tra dịch vụ DNS

Sau khi hoàn thành thiết lập các file cấu hình, khợi động lại dịch vụ DNS:

Để kiểm tra hoạt động của DNS server, sử dụng dig để liệt kê tất cả các resource record
của máy chủ DNS

12
Triển khai dịch vụ Gitlab

13
1. Cài máy Main Server là hệ điều hành Centos có cấu hình

Cấu hình máy ảo:
 Tên máy ảo: Main_CentosServer loại Linux type: Redhat(64bit)
 Ram: 1024MB (do là máy chủ DNS thôi nên nó cực nhẹ.)
 Bật I/O APic
 Pointing Device chọn loại: USB Tablet.
Network:
 Server sẽ có nhiều card. Một card kết nối vào router chủ(RHub, bằng cạc mã
#3) ->Adapter1 -> Attached to: chọn mode host only mode.

14
 Một cái card ra internet để cài bind-> Bridged Adapter.

Cài Main_CentosServer có 2 mạng:
 Một cái thông vào mạng nội bộ công ty => Adapter1 -> Attached to: chọn
mode host only mode -> chọn cạc mã #3
 Một cạc mạng ra ngoài internet: Adapter2
Tích vào enable Network Adapter -> Attached to chọn chế độ: Bridged
Adapter

2. Tạo một máy ảo tên là RHub

 Nó chính là Router chính, kết nối Mainserver, Gitlabserrver, cả các router
192.168.0.7 và .9
 Tên máy ảo: RHub loại Linux type: Otherlinux(32bit)
 Ram: 128MB
 Bật I/O APic
 Pointing Device chọn loại: USB Tablet.
 Network:
o Router cũng sẽ có nhiều card. Một cạc kết nối interrnet ->Adapter1
-> Attached to: chọn mode Bridgeed Adapter
o Một cái cạc nội bộ kết nối tất cả -> mã card #3.
15
 Cài IPCop có 2 mạng:
o Một cái thông ra interrnet => Adapter1 -> Attached to: chọn mode
Bridgeed Adapter
o Một cạc mạng nội bộ: theo trên nó sẽ là mạng mã #3:
 Tích vào enable Network Adapter -> Attached to chọn chế độ:
host only -> Name chọn #3

 Cấu hình xong, cài đặt đường thông internet là mạng RED.
 Mạng nội bộ là mạng GREEN.
 Đặt tên hostname của nó là RouterHub.
 Domain name của nó đặt là: Router

3. Cài máy Gitlab Server là hệ điều hành CentOS

 Tên máy ảo: CentOS_ServerGitlab loại Redhat 64bit.
 Ram: 2GB
 Bật I/O APic
 Pointing Device chọn loại: USB Tablet.
 Phần ổ cứng nên để 80 GB.

 Network:
o Cài đặt Gitlab Server có 2 cạc mạng:
o Một cái thông ra interrnet => Adapter1 -> Attached to: chọn mode
Bridgeed Adapter mạng này dùng để cài đặt gitlab,
o Một cạc mạng nội bộ: mạng mã #3: Adapter 2
 Tích vào enable Network Adapter -> Attached to chọn chế độ:
host only -> Name chọn #3

 Do là gitlab server, main server, rồi cả một cái router a và router b đều kết nối
chung vào nhau :D vào RHub. Các bạn xem sơ đồ. Do đó mạng nội bộ có mã
mạng là #3.

16
4. Tạo một máy ảo tên là Ra (chính là Router kết nối chung của đội IOS dev)

 Tên máy ảo: Ra loại Linux type: Otherlinux(32bit)
 Ram: 128MB (do là router thôi nên nó cực nhẹ.)
 Bật I/O APic
 Pointing Device chọn loại: USB Tablet.

 Network:
o Router cũng sẽ có nhiều cạc. Một cạc kết nối vào router chủ(RHub,
bằng cạc mã #3) ->Adapter1 -> Attached to: chọn mode host only
mode.
o Một cái cạc nội bộ kết nối tất cả bọn dev IOS-> mã cạc #4.

 Cài IPCop có 2 mạng:
o Một cái thông vào mạng nội bộ công ty => Adapter1 -> Attached to:
chọn mode host only mode -> chọn cạc mã #3
o Một cạc mạng nội bộ cho đội dev IOS: theo trên nó sẽ là mạng mã #4:
Adapter2
Tích vào enable Network Adapter -> Attached to chọn chế độ: host
only -> Name chọn #4

 Cấu hình xong, cài đặt đường thông vào mạng nội bộ công ty là mạng RED.
 Mạng nội bộ (đội dev ios) là mạng GREEN.

5. Cài đặt máy trạm con ví dụ của đội IOS dev

 Tên máy ảo: IOSDev_Member loại Linux type: Ubuntu(32bit)
 Ram: 2048MB (do là máy client ví dụ nên cài đặt khá một chút cho đỡ lag.)
 Bật I/O APic
 Pointing Device chọn loại: USB Tablet.

 Phần quan trọng: Network:
Theo quy hoạch, nó sẽ kết nối vào mạng nội bộ #4

 Cài Lubuntu IOS Dev member có 1 mạng:
Một cái thông vào mạng nội bộ đội IOS Deve => Adapter1 -> Attached to:
chọn mode host only mode -> chọn cạc mã #4

17
6. Kiểm thử vận hành hệ thống

a) Ngắt kết nối internet của các máy Main Server, Gitlab Server
b) Cài đặt địa chỉ tĩnh cho Gitlab Server là 192.168.0.20

c) Cấu hình máy lubuntu sử dụng máy chủ DNS là 192.168.0.10 là máy chủ DNS
mặc định.

18
d) Từ máy lubuntu kết nối đến gitlab server bằng cách mở trình duyệt web,
vào địa chỉ: hubcode.andromeda
Đăng kí một tài khoản có địa chỉ mail là ioscoder@gmail.com
Tạo một project tên là: HelloWorld

Hiện tại đứng ở máy con có địa chỉ: 192.168.9.146 vẫn có thể tìm đến máy chủ
gitlab có địa chỉ 192.168.0.20
nhờ vào dịch vụ DNS Server của máy chủ Main Server tại địa chỉ 192.168.0.10.
Máy con nằm ở mạng 192.169.9.0 vẫn có thể kết nối tới máy chủ DNS và máy chủ
gitlab ở mạng 192.168.0.0 nhờ vào các router RHub và Ra.
Hệ thống đã hoạt động đúng như sơ đồ thiết kế.

19
Tài liệu tham khảo

-Slide bài giảng trên lớp
-Các tài liệu DNS trên internet.
-Gitlab

20