nhiều loại mạng LAN, WAN Và đặc biệt là lưu lượng thông tin trên mạng tăng đáng kể.. Vấn đề thiết kế mạng và lựa chọn giao thức định tuyến sao cho phù hợp với chi phí, tài nguyên của tổ chức là đặc biệt quan trọng. Internet phát triển càng mạnh, lượng người truy nhập càng tăng yêu cầu định tuyến càng phải tin cậy, tốc độ chuyển mạch nhanh và không gây ra lặp trên mạng. Hơn nữa khi nhiều tổ chức tham gia vào mạng thì việc cấu hình cho toàn bộ hệ thống mạng cũng trở nên khó khăn và phức tạp hơn. Việc hiểu biết và thiết kế các mạng thông tin cỡ lớn có sử dụng các thiết bị định tuyến đang trở thành một nhu cầu vô cùng cấp thiết trong thực tế. Nó đòi hỏi người thiết kế mạng phải có sự hiểu biết sâu về giao thức sẽ sử dụng cho việc thiết kế mạng cũng như vận dụng những phần mềm giúp cho việc cấu hình trở nên dễ dàng hơn. Cấu hình router để cho router thực hiện nhiều chức năng mạng phức tạp là một công việc đầy thử thách. Chính vì vậy,những phần mềm,công cụ chuyên dụng làm giảm bớt khó khăn cho công việc này ngày càng được sử dụng rộng rãi.
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
KHOÁ LUẬN TỐT NGHIỆP
XÂY DỰNG PHẦN MỀM CẤU HÌNH
ROUTER CISCO TRONG WINDOWS
Sinh viên thực hiện : TRẦN CÔNG MINH (07520)
HOÀNG THỊ BÍCH TRÂN (07520368)
TP Hồ Chí Minh, tháng 02 năm 2012
Trang 2Sự phát triển của Internet cũng đồng nghĩa với việc tăng trưởng về quy mô và công nghệnhiều loại mạng LAN, WAN Và đặc biệt là lưu lượng thông tin trên mạng tăng đáng kể Vấn đề thiết kế mạng và lựa chọn giao thức định tuyến sao cho phù hợp với chi phí, tàinguyên của tổ chức là đặc biệt quan trọng Internet phát triển càng mạnh, lượng ngườitruy nhập càng tăng yêu cầu định tuyến càng phải tin cậy, tốc độ chuyển mạch nhanh vàkhông gây ra lặp trên mạng Hơn nữa khi nhiều tổ chức tham gia vào mạng thì việc cấuhình cho toàn bộ hệ thống mạng cũng trở nên khó khăn và phức tạp hơn Việc hiểu biết
và thiết kế các mạng thông tin cỡ lớn có sử dụng các thiết bị định tuyến đang trở thànhmột nhu cầu vô cùng cấp thiết trong thực tế Nó đòi hỏi người thiết kế mạng phải có sựhiểu biết sâu về giao thức sẽ sử dụng cho việc thiết kế mạng cũng như vận dụng nhữngphần mềm giúp cho việc cấu hình trở nên dễ dàng hơn Cấu hình router để cho routerthực hiện nhiều chức năng mạng phức tạp là một công việc đầy thử thách Chính vìvậy,những phần mềm,công cụ chuyên dụng làm giảm bớt khó khăn cho công việc nàyngày càng được sử dụng rộng rãi
Hiện nay CISCO là một trong những nhà cung cấp các thiết bị mạng hàng đầu trên thếgiới Ở Việt Nam các thiết bị này đang được sử dụng ngày càng rộng rãi trong hệ thốngmạng Internet, trong các mô hình mạng của các công ty, tổ chức, doanh nghiệp.Việc cấuhình bằng giao diện command line trên các thiết bị router của Cisco đôi khi khá phức tạp,đòi hỏi người quản trị mạng phải tốn nhiều thời gian lẫn công sức, đây là một vấn đề nangiải kể cả đối với những người đã làm quen với Router lâu năm Việc cấu hình thiết bịdựa trên giao diện Windows giống như một phần mềm chuyên dụng sẽ giải quyết vấn đềnày dễ dàng hơn rất nhiều
Một trong những nhiệm vụ quan trọng của việc quản trị mạng là cấu hình cho hệ thốngvận hành một cách trơn tru và hoạt động một cách hữu ích Chính vì vậy, đề tài của chúng
em hướng tới một giải pháp xây dựng một phần mềm thật sự hữu ích giúp cho việc cấuhình router một cách nhanh chóng và thuận lợi hơn
Trong quá trình nghiên cứu học tập tại trường, được sự hướng dẫn và chỉ bảo trực tiếpcủa thầy Ts.Đàm Quang Hồng Hải, cũng như sự giúp đỡ động viên của các thầy cô vàbạn bè trong trường ĐH Công Nghệ Thông Tin – ĐHQGTPHCM, chúng em đã quyết
định làm khóa luận tốt nghiệp với đề tài: ”Xây dựng phầm mềm cấu hình router Cisco
trong Windows.”
Trang 3Các thầy cô trong khoa Mạng máy tính trường Đại Học Công Nghệ Thông Tin đã truyềnđạt những kiến thức và kinh nghiệm quý báu để từ đó chúng em phát triển thêm vốn hiểubiết của mình vận dụng trong công việc sau này Bên cạnh đó, chúng em cũng xin đượcgửi lời cảm ơn đến ban giám hiệu trường Đại Học Công Nghệ Thông Tin và các banngành đã tạo mọi điều kiện thuận lợi giúp đỡ chúng em trong quá trình học tập và hoànthành luận văn.
Chúng em xin chân thành cảm ơn thầy Ts Đàm Quang Hồng Hải, người đã trực tiếphướng dẫn chúng em trong suốt quá trình thực hiện đề tài Trong quá trình làm luận văn,thầy đã không quản ngại tận tình hướng dẫn, giúp chúng em giải quyết các vấn đề nảysinh trong quá trình làm luận văn và hoàn thành luận văn đúng định hướng ban đầu.Chúng em cũng chân thành cảm ơn các thầy cô trong hội đồng chấm luận văn đã cho emnhững đóng góp quý báu để luận văn thêm hoàn chỉnh
Xin được gửi lời cảm ơn tới tất cả bạn bè thân thương trong khoa Mạng máy tính thuộctrường Đại Học Công Nghệ Thông Tin-Đại học Quốc Gia TPHCM và những người bạntrong các khoa khác đã giúp đỡ chúng em trong lúc chúng em gặp phải khó khăn và thửthách
Cuối cùng, chúng em xin được gửi lời cảm ơn chân thành nhất tới các bậc sinh thành Ba
mẹ là người đã dạy dỗ và nuôi nấng chúng em khôn lớn và luôn là những người đồnghành cùng chúng em cho đến khi chúng em bước chân vào giảng đường đại học, luôn bêncạnh chúng em và chia sẻ mỗi lúc chúng em gặp khó khăn trong cuộc sống
Một lần nữa chúng em xin chân thành cảm ơn Chúc tất cả mọi người sức khỏe và thànhđạt
Tp Hồ Chí Minh, tháng 2 năm 2012
Sinh viên thực hiện
Trần Công Minh Hoàng Thị Bích Trân
Trang 4(Của giảng viên hướng dẫn)
Trang 5
-NHẬN XÉT (Của giảng viên phản biện)
Trang 6
-Chương 1: Giới thiệu đề tài 1
Chương 2: Tổng quan về Router Cisco 5
2.1.Giới thiệu Router 5
2.2.Các thành phần bên trong Router 6
2.3.Các loại kết nối của Router 8
2.4.Hệ điều hành Cisco IOS 9
2.4.1 Định nghĩa IOS 9
2.4.2 Tổng quan về kiến trúc của IOS của Cisco 9
2.4.3 Tổ chức bộ nhớ 10
2.4.4 Tiến trình IOS (processes IOS) 13
2.4.5 Kernel IOS 15
2.4.6 Trình điều khiển thiết bị 25
2.4.7 Cấu trúc chuyển mạch gói 25
2.5.Các chế độ cấu hình của Router: 31
2.6.Cách giải pháp cấu hình Router 37
2.6.1.Phương pháp 1: sử dụng giao diện dòng lệnh 37
2.6.2.Phương pháp 2: Sử dụng phần mềm SDM của Cisco 38
2.6.3.SDM-HTTP 47
2.6.4 SDM-HTTPS 51
Chương 3: Giới thiệu phần mềm cấu hình Router - CRCS 57
3.1.Giới thiệu CRCS 57
3.2.Các mô hình ứng dụng 59
3.2.1.Cấu hình ban đầu: 59
3.2.2.Mô hình kết nối trực tiếp: 60
3.2.3.Mô hình kết nối thông qua Switch 61
3.2.4.Mô hình kết nối đến nhiều Router kết nối trực tiếp với nhau 63
3.2.5.Mô hình sử dụng Access Server: 64
3.2.6.Mô hình kết nối qua Internet 65
3.3.Cơ chế hoạt động của phần mềm 65
3.3.1.Socket Class 65
3.3.2.Hoạt động của phần mềm: 68
Chương 4: Chức năng của phần mềm CRCS 75
4.1 Chức năng xem cấu hình Router: 75
Trang 74.2.2 Chức năng cấu hình của phần mềm 77
4.3 Chức năng cấu hình định tuyến: 78
4.3.1 Thông tin kỹ thuật 78
4.3.2 Chức năng cấu hình của phần mêm: 80
4.4 Chức năng cấu hình NAT 81
4.4.1 Thông tin kỹ thuật 81
4.4.2 Chức năng cấu hình của phần mềm: 86
4.5 Chức năng cấu hình Access List: 89
4.5.1 Thông tin kỹ thuật 89
4.5.2 Chức năng cấu hình của phần mềm: 94
4.6 Chức năng cấu hình DHCP: 98
4.6.1 Thông tin kỹ thuật 98
4.6.2 Chưc năng cấu hình DHCP trên Router: 100
4.7 Chức năng cấu hình Frame Relay 102
4.7.1 Thông tin kỹ thuật: 102
4.7.2 Các thiết bị cần thiết để tạo mạng Frame Relay 103
4.7.3 Các thuật ngữ dùng trong mạng Frame Relay 103
4.7.4 Cấu trúc khung của Frame Relay 104
4.7.5 Hoạt động của LMI Frame Relay: 105
4.7.6 Chức năng cấu hình Frame Relay của phần mềm: 106
Chương 5: Đánh giá 108
5.1: Kết quả thực hiện 108
5.2: Định hướng phát triển 108
PHỤ LỤC 109 DANH MỤC TÀI LIỆU THAM KHẢO 112
Trang 8Bảng 2.1: Các loại region 10
Sơ đồ 2.1: Sơ đồ thực hiện SDM 36
Hình 1.1: Giao diện cấu hình bằng cmd.exe 1
Hình 1.2:Ví dụ về mô hình mạng gồm nhiều Router 2
Hình 2.1: Phân đoạn mạng LAN với Router 5
Hình 2.2: Kết nối Router bằng các công nghệ WAN 6
Hình 2.3:Các thành phần bên trong Router 6
Hình 2.4: Sơ đồ khối các thành phần trên mạch Router 8
Hình 2.5: Kiến trúc IOS của Cisco 9
Hình 2.6: Region và subregion 11
Hình 2.7: Các trạng thái của một tiến trình IOS 14
Hình 2.8: Sự phân mảnh bộ nhớ 18
Hình 2.9: Kết hợp các khối nhớ 19
Hình 2.10: Bộ đệm hệ thống 22
Hình 2.11: Bộ đệm hệ thống 22
Hình 2.12: Bộ đệm hệ thống 23
Hình 2.13: Bộ đệm hệ thống 23
Hình 2.14: Bộ đệm hệ thống 24
Hình 2.15: Bộ đệm hệ thống 24
Hình 2.16: Bộ đệm hệ thống 25
Hình 2.17: Process switching 27
Hình 2.18: Phân bố lưu lượng tải 28
Hình 2.19: Kết nối Router với máy tính 29
Hình 2.20: Cáp chuyển Cổng console sang RJ45 30
Hình 2.21: Kết nối Router với Laptop cổng RJ45 30
Hình 2.22: Giao diện dòng lệnh CLI 31
Hình 2.23: Giao diện khổi động Router 32
Hình 2.24: Giao diện khổi động Router hoàn tất 32
Hình 2.25: Giao diện dòng lệnh (CLI) dùng để cấu hình Router 36
HÌnh 2.26: Vảo Router bằng SDM 48
Hình 2.27 : Thêm chứng thực 49
Hình 2.28: Đăng nhập 50
Hình 2.29: Kết nối đến Router 50
Hình 2.30: Browser hỏi về chứng thực 51
Hình 2.31: Thông báo về an ninh khi sử dụng HTTPS 51
Hình 2.32: Lấy chứng chỉ bảo mật 52
Trang 9Hình 3.1: Giao diện WELCOME của phần mềm 54
Hình 3.2: Giao diện xem cấu hình của một hoặc nhiều Router 55
Hình 3.3: Giao diện một chức năng cấu hình Interface 55
Hình 3.4: Mô hình kết nối trực tiếp đến Router 57
Hình 3.5: Mô hình kết nối thông qua Switch 58
Hình 3.6: Mô hình kết nối đến nhiều Router kết nối trực tiếp với nhau 60
Hình 3.7: Mô hình sử dụng Access Server 61
Hình 3.8: Mô hình sử dụng kết nối Internet 62
Hình 3.9: Kết nối đến Router 66
Hình 4.1: Chức năng xem cấu hình Router 72
Hình 4.2: Chức năng cấu hình Interface trong phần mềm 74
Hình 4.3: Ví dụ về một bảng định tuyến trên Router 76
Hình 4.4: Giao diện cấu hình định tuyến cho Router 77
Hình 4.5: Xác định cấu hình định tuyền đã được thực thi 78
Hình 4.6: Mô hình ứng dụng NAT cơ bản 79
Hình 4.7: Hoạt động NAT Overload 82
Hình 4.8: Giao diện cấu hình NAT 84
Hình 4.9: Khung output hiển thị thực thi lệnh trên Router 85
Hình 4.10: Thiết lập NAT inside và NAT outside 85
Hình 4.11: Mô hình ứng dụng Access list 86
Hình 4.12: Mô tả luật 3P của ACL 87
Hình 4.13: Hoạt động của một ACL kiểm soát luồng dữ liệu đi vào 88
Hình 4.14: Hoạt động của một ACL kiểm soát luồng dữ liệu đi ra 89
Hình 4.15: Giao diện cấu hình ACL 92
Hình 4.16: Cấu hình Standard ACL 93
Hình 4.17: Cấu hình Extended ACL 93
Hình 4.18: Áp dụng vào Interface 94
Hình 4.19: Khung output cho phép xem quá trình lệnh thực thi trên Router 94
Hình 4.20: Hoạt động của DHCP 95
Hình 4.21: Ví dụ cấu hình DHCP Server 96
Hình 4.22: Ví dụ cấu hình DHCP Relay 97
Hình 4.23: Giao diện cấu hình DHCP 98
Hình 4.24: Khung output trong giao diện cấu hình DHCP 99
Hình 4.25: Giao diện cấu hình Frame Relay 103
Trang 10Chương 1: Giới thiệu đề tài
Hiện nay, về công nghệ mạng máy tính thì Cisco luôn là nhà cung cấp các thiết bị mạng
uy tín và đáng tin cậy Các thiết bị mạng của Cisco hoạt động ổn định, bền, hiệu suất hoạtđộng cao, đa dạng về tính năng và dễ dàng cấu hình Đối với những người hoạt độngtrong ngành mạng máy tính thì việc cấu hình các thiết bị trên mạng như Switch, Router,
….của Cisco gần như đã trở nên rất quen thuộc và là kiến thức bắt buộc phải có
Router là thiết bị nắm giữ vai trò rất quan trọng trongmô hình mạng hiện đại Router cóthể được xem như chiếc cầu nối các vùng mạng khác nhau lại với nhau Ngoài ra, Routercòn đảm bảo mô hình mạng hoạt động với hiệu suất ổn định Không có Router, mô hìnhmạng hiện tại có thể bị tê liệt hoặc hoạt động một các chậm chạp và khó khăn Từ đó việchiểu và có thể tiến hành cấu hình Router là vấn đề rất quan trọng đòi hỏi nhiều thời gian
và công sức Cấu hình Router đúng và hợp lý sẽ giúp mô hình mạng chúng ta hoạt động
ổn định, liên tục, hiệu suất cao
Để cấu hình Router, cách đơn giản và thường được sử dụng nhất là dùng môi trườngdòng lệnh CLI Với môi trường dòng lệnh, các thao tác cấu hình được thực hiện thôngqua các dòng lệnh ở dạng text, tương tác trực tiếp với Router Các lệnh được thực thinhanh chóng Hỗ trợ cho việc cấu hình bằng CLI ta có các phần mềm như cmd.exe cùa
hệ điều hành Windows, SecureCRT của Vandyke… Phần mềm giao diện thường đơngiản, chủ yếu hỗ trợ cho việc đánh (type ) lệnh vào và thực thi
Hình 1.1: Giao diện cấu hình bằng cmd.exe
Trang 11Hình 1.2:Ví dụ về mô hình mạng gồm nhiều Router.
Đối với một mô hình mạng như trên, ta thấy việc cấu hình đã trở nên phức tạp hơn Ngoàiviệc cấu hình Router, ta còn phải cấu hình các thiết bị khác như Switch, PC, Server… Ởđây chúng tôi sẽ chỉ đề cập đến vấn đề cấu hình nhiều Router cùng lúc Ta thấy rằng cácRouter ở đây phải liên kết với nhau, vì thế cấu hình các Router cũng phải có sự liên quanmật thiết với nhau Từ đó có thể thấy việc cấu hình ở đây cũng liên quan tới việc so sánhcác cấu hình của các Router với nhau để có được cấu hình hợp lý
Với CLI, khi cấu hình bao nhiêu Router thì ta phải mở bấy nhiêu giao diên CLI Việc cấuhình cũng như xem cấu hình sẽ được thực hiện độc lập trên mỗi giao diện CLI Khi sosánh các cấu hình của Router, việc chuyển qua chuyển lại giữa các CLI của Router sẽ tốnmột khoản thời gian cũng nhau khó khăn trong việc so sánh Bên cạnh đó việc cấu hìnhcùng lúc nhiều Router, với các giao diện đơn thuần, giống nhau có thể gây nhầm lẫn hoặc
Trang 12Từ những vấn đề trên, nếu như có một phần mềm cho phép xem cùng lúc cấu hình củanhiều Router về cùng một vấn đề hoặc các vấn đề khác nhau thì công việc có thể sẽ trởnên dễ dàng và nhanh chóng hơn Bên cạnh đó, nếu như có được một giao diện cấu hìnhkhác thay thế giao diện đơn giản cũ thì công việc cấu hình sẽ có một cảm giác đỡ đơndiện khi phải cùng lúc làm việc với nhiều thiết bị Giao diện mới có thể bao gồm các tùychọn về cấu hình, hạn chế tối đa về nhập liệu, tạo các nút nhấn thực thi lệnh để tránh saisót trong cấu trúc lệnh.
Bên cạnh đó, một vấn đề cũng rất quan trọng đó là sự tương thích của phần mềm
Thứ nhất là sự tương thích với thiết bị được cấu hình-Router Cisco Như chúng ta biết,Router Cisco bao gồm rất nhiều loại như 2600, 2800, 3600….Các loại Router khác nhau
sẽ có những tính năng khác nhau nhằm phục vụ cho các mục đích sử dụng khác nhau.Đồng thời, trong mỗi dòng Router lại có các phần mềm hỗ trợ -IOS- khác nhau, mỗi loạiIOS cũng có chức năng và khả năng hỗ trợ lệnh khác nhau Giải quyết vấn đề này ta cóthể sử dụng lại cơ chế truyền lệnh và thực thi lệnh trên Router giống như CLI Khi đóchúng ta tương tác trực tiếp với IOS trên Router nên độ tương thích rất cao
Thứ hai là tương thích với thiết bị chạy phần mềm-ở đây có thể là PC hay Laptop Vấn đềnày không hẳn phức tạp, bởi vì đa số các PC hay Laptop hiện tại đều sử dụng hệ điềuhành Windows của Microsoft và phần mềm này sẽ được viết trên nền của Windows, sửdụng các cơ chế truyền nhận thông tin của Windows nên sự tương thích là rất lớn
Từ những ý tưởng đó, công với việc khi tiếp xúc với các thiết bị thực tế, nhóm chúng tôi
đã quyết định thực hiện xây dựng một phần mềm có thể xem cùng lúc cấu hình nhiềuRouter Đồng thời có thể triển khai cấu hình các router trên môi trường giao diện
Sau quá trình nghiên cứu và thực hiện đề tài, chúng tôi đã cơ bản tạo được một phầnmềm có chức năng hỗ trợ tốt trong việc cấu hình các Router Cơ bản đã hoàn thành cácmục tiêu cần đạt được của một phần mềm hỗ trợ cấu hình Router
Bài báo cáo này là tổng hợp các kiến thức, các kết quả đạt được trong quá trình thực hiệnphần mềm này
Sau đây là tóm tắt nội dung các chương trong báo cáo:
Chương 2 là phần giới thiệu về Router Chương này cho ta thấy các vấn đề cơ bản của
Router cũng như các vấn đề liên quan tới phần mềm Bên cạnh đó chương này cũng cungcấp cho ta thêm các kiến thức hữu ích về Router, giúp cho quá trình sử dụng phần mềm
dễ nắm bắt hơn
Chương 3 giới thiệu sơ nét về phần mềm này Chương này cung cấp các vấn đề cơ bản
của phần mềm, các hướng ứng dụng và khả năng ứng dụng của phần mểm Từ đó ta cóthể thấy được tương lai phát triển của phần mềm cũng như các thiếu sót cần khắc phục
Trang 13Trang 4
Chương 4 là phần quan trọng của báo cáo Chương này nêu lên các chức năng chính của
phần mềm, cho người dùng có cái nhìn tổng quát về khả năng của phần mềm và cáchphần mềm hỗ trợ người dùng trong công tác cấu hình Router Đồng thời cũng cho nhómphát triển thấy các yếu tốt và chưa tốt của các chức năng từ đó có hướng giải quyết hợplý
Chương 5 dùng để đánh giá các kết quả đạt được, nhận ra thế mạnh cũng như điểm yếu
của phần mềm Từ những điều trên tìm ra hướng phát triển hợp lý cho phần mềm
Trang 14Chương 2: Tổng quan về Router Cisco
2.1 Giới thiệu Router
Router hay thiết bị định tuyến, là thiết bị quan trọng bậc nhất trong mô hình mạng hiệnđại Router nắm vai trò tiên quyết trong việc điều khiển, tối ưu, hoạt động của một hệthống mạng intranet cũng như internet
Trong hệ thống mạng, mô hình LAN là mô hình kết nối các máy tính đơn lẻ, các thiết bịngoại vi, các thiết bị đầu cuối và nhiều loại thiết bị khác trong cùng một tòa nhà haytrong phạm vi một địa lý nhỏ Trong khi đó mô hình WAN được sử dụng để kết nối cácmạng qua những vùng địa lý lớn Các công ty thường sử dụng WAN để kết nối các chinhánh của mình, nhờ đó mà thông tin được trao đổi dễ dàng giữa các trung tâm Do đócần phải sử dụng router để kết nối các chi nhánh đó lại với nhau
Router vừa được sử dụng để phân đoạn mạng LAN vừa là thiết bị chính trong mạngWAN Do đó, trên Router có cả cổng giao tiếp LAN và WAN Router là thiết bị xươngsống của mạng Intranet lớn và mạng Internet Router hoạt động ở lớp 3 và thực hiệnchuyển gói dữ liệu dựa trên địa chỉ mạng Router có 2 chức năng chính là : chọn đường đitối ưu nhất và chuyển mạch gói dữ liệu Để thực hiện chức năng này, mỗi router phải xâydựng một bảng định tuyến và thực hiện trao đổi thông tin định tuyến với nhau
Hình 2.1: Phân đoạn mạng LAN với Router.
Trang 15Trang 6
Hình 2.2: Kết nối Router bằng các công nghệ WAN.
2.2 Các thành phần bên trong Router
Cấu trúc chính xác của router rất khác nhau tuỳ theo từng phiên bản router Trong phầnnày chỉ giới thiệu về các thành phần cơ bản của router
Hình 2.3:Các thành phần bên trong Router.
CPU - Đơn vị xử lý trung tâm: thực thi các câu lệnh của hệ điều hành để thực hiện cácnhiệm vụ sau: khởi động hệ thống, định tuyến, điều khiển các cổng giao tiếp mạng CPU
là một bộ vi xử lý Trong các router lớn có thể có nhiều CPU
RAM - Được sử dụng để lưu bảng định tuyến, cung cấp bộ nhớ cho chuyển mạch nhanh,chạy tập tin cấu hình và cung cấp hàng đợi cho các gói dữ liệu Trong đa số router, hệđiều hành Cisco IOS chạy trên RAM RAM thường được chia thành hai phần: phần bộnhớ xử lý chính và phần bộ nhớ chia sẻ xuất/nhập Phần bộ nhớ chia sẻ xuất/nhập đượcchia cho các cổng giao tiếp làm nơi lưu trữ tạm các gói dữ liệu.Toàn bộ nội dung trên
Trang 16– Dynamic RAM) và có thể nâng thêm RAM bằng cách gắn thêm DIMM (Dual In-LineMemory Module).
Flash - Bộ nhớ Flash được sử dụng để lưu toàn bộ phần mềm hệ điều hành Cisco IOS.Mặc định là router tìm IOS của nó trong flash Bạn có thể nâng cấp hệ điều hành bằngcách chép phiên bản mới hơn vào flash Phần mềm IOS có thể ở dưới dạng nén hoặckhông nén Đối với hầu hết các router, IOS được chép lên RAM trong quá trình khởiđộng router Còn có một số router thì IOS có thể chạy trực tiếp trên flash mà không cầnchép lên RAM Bạn có thể gắn thêm hoặc thay thế các thanh SIMM hay card PCMCIA
để nâng dung lượng flash
NVRAM (Non-volative Random-access Memory) - Là bộ nhớ RAM không bị mất thôngtin, được sử dụng để lưu tập tin cấu hình Trong một số thiết bị có NVRAM và flashriêng, NVRAM được thực thi nhờ flash Trong một số thiết bị, flash và NVRAM là cùngmột bộ nhớ Trong cả hai trường hợp, nội dung của NVRAM vẫn được lưu giữ khi tắtđiện
ROM (Read Only Memory): Là nơi lưu đoạn mã của chương trình kiểm tra khi khởiđộng Nhiệm vụ chính của ROM là kiểm tra phần cứng của router khi khởi động, sau đóchép phần mềm Cisco IOS từ flash vào RAM Một số router có thể có phiên bản IOS cũdùng làm nguồn khởi động dự phòng Nội dung trong ROM không thể xoá được Ta chỉ
có thể nâng cấp ROM bằng cách thay chip ROM mới
Các cổng giao tiếp : Là nơi router kết nối với bên ngoài Router có 3 loại cổng: LAN,WAN và console/AUX Cổng giao tiếp LAN có thể gắn cố định trên router hoặc dướidạng card rời
Cổng giao tiếp WAN có thể là cổng Serial, ISDN, cổng tích hợp đơn vị dịch vụ kênhCSU (Chanel Service Unit) Tương tự như cổng giao tiếp LAN, các cổng giao tiếp WANcũng có chip điều khiển đặc biệt Cổng giao tiếp WAN có thể định trên router hoặc ởdạng card rời
Cổng console/AUX là cổng nối tiếp, chủ yếu được dử dụng để cấu hình router Hai cổngnày không phải là loại cổng để kết nối mạng mà là để kết nối vào máy tính thông quamodem hoặc thông qua cổng COM trên máy tính để từ máy tính thực hiện cấu hìnhrouter
Nguồn điện: Cung cấp điện cho các thành phần của router, một số router lớn có thể sửdụng nhiều bộ nguồn hoặc nhiều card nguồn Còn ở một số router nhỏ, nguồn điện có thể
là bộ phận nằm ngoài router
Trang 17Trang 8
Hình 2.4: Sơ đồ khối các thành phần trên mạch Router.
2.3 Các loại kết nối của Router
Router có ba loại kết nối cơ bản là: cổng LAN, WAN và cổng quản lý router Cổng giao
tiếp LAN cho phép router kết nối vào môi trường mạng cục bộ LAN Thông thường,
cổng giao tiếp LAN là cổng Ethernet Ngoài ra cũng có cổng Token Ring và ATM(Asynchronous Tranfer Mode)
Kết nối mạng WAN cung cấp kết nối thông qua các nhà cung cấp dịch vụ đến các chi
nhánh ở xa hoặc kết nối vào Internet Loại kết nối này có thể là nối tiếp hay bất kỳ loạigiao tiếp WAN, bạn cần phải có thêm một thiết bị ngoại vi như CSU chẳng hạn để nối
Trang 18Router đến nhà cung cấp dịch vụ Đối với một số loại giao tiếp WAN khác thì bạn có thểkết nối trực tiếp router của mình đến nhà cung cấp dịch vụ
Cổng console và cổng AUX là cổng quản lý trên router Loại cổng nối tiếp bát đồng bộnày được thiết kế không phải để kết nối mạng mà là để cấu hình router
Để kết nối PC vào cổng console bạn cần có cáp rollover và bộ chuyển đổi RJ45-DB9 PChay thiết bị đầu cuối phải có chương trình Hyper Terminal
2.4 Hệ điều hành Cisco IOS
2.4.1 Định nghĩa IOS
IOS viết tắt của từ Internetwork Operating System, là một hệ điều hành hoạt động trênphần cứng của router Cisco, nó điều khiển hoạt động định tuyến và chuyển mạch của mộtrouter Rên của hệ điều hành IOS thì gồm có 3 phần: aaaa-bbbb-cccc trong đó: - aaaa:dòng sản phẩm áp dụng hệ điều hành này - bbbb: các tính năng của IOS - cc: định dạngfile IOS, nơi IOS chạy, kểu nén của IOS
Ví dụ:tên một IOS: C3620-i-mz_113-8T1.bin
2.4.2 Tổng quan về kiến trúc của IOS của Cisco
Khi mà lợi ích của việc định tuyến qua mạng trở nên phát triển, đòi hỏi router phải hỗ trợmột số những giao thức và cung cấp những chức năng khác, như cầu nối giữa các mạng.Cisco đã thêm những tính năng mới cho phần mềm của router Kết quả có nhiều chứcnăng cầu nối và định tuyến như ngày nay Nhưng hầu như cấu trúc cơ bản của hệ điềuhành vẫn giống như ban đầu IOS thật sự là một cấu trúc đơn giản, cực nhỏ IOS đượcthiết kế dựa vào những ràng buộc về bộ nhớ, về tốc độ, phần cứng của router
Hình 2.5: Kiến trúc IOS của Cisco
Trang 19Trang 10
Kiến trúc IOS của Cisco bao gồm:
+ Các tiến trình ( Processes ): Là những tuyến riêng lẻ kết hợp với dữ liệu để thực hiệnnhững tác vụ, như duy trì hệ thống, chuyển mạch gói dữ liệu, thực hiện giao thức địnhtuyến…
+ Nhân ( Kernel ): Cung cấp những dịch vụ cơ bản của hệ thống tùy thuộc vào IOS, như:quản lý bộ nhớ, lập lịch các tiến trình Nó cung cấp quản lý tài nguyên phần cứng (CPU,
2.4.3 Tổ chức bộ nhớ
IOS ánh xạ toàn bộ bộ nhớ vật lý thành một không gian địa chỉ ảo phẳng rộng lớn MMU( memory map unit ) của CPU có giá trị khi được sử dụng để tạo không gian địa chỉ ảothậm chí khi mà IOS không tận dụng một khối nhớ ảo trọn vẹn
IOS chia không gian địa chỉ này thành những miền bộ nhớ gọi là region, mỗi region phù hợp với những loại bộ nhớ vật lý khác nhau Ví dụ, SRAM có thể
lưu trữ gói dữ liệu và DRAM có thể lưu trữ phần mềm hoặc dữ liệu Phân lớp bộ
nhớ thành các region cho phép IOS phân loại các loại bộ nhớ khác nhau vì vậy mà
phần mềm không cần biết chi tiết về bộ nhớ trên mỗi platform (Nền về phần
cứng) Các region được phân chia thành một trong tám mục như bảng 1.1.
Trang 20Bảng 2.1: Các loại region
Những region cũng có thể được đặt trong mối quan hệ cha con Mặc dầu không có một áp đặt giới hạn trên chiều sâu của mối quan hệ này Những region đặt trong quan hệ này là những subregion (miền con) của miền cha Hình 3.3: Hiển thị cách bố trí bộ nhớ ảo trên một platform điển hình, bao gồm những region và subregion mà IOS có thể tạo
Hình 2.6: Region và subregion
Bạn có thể dùng lệnh show region để hiện thị các region được định nghĩa trên hệ
thống: router#show region Region Manager: Start End Size(b) Class Media Name
Trang 21Trang 12
0x01A00000 0x01FFFFFF 6291456 Iomem R/W iomem 0x31A00000 0x31FFFFFF
6291456 Iomem R/W iomem: (iomem_cwt) 0x4B000000 0x4B0FFFFF 1048576 PCI R/W pcimem 0x60000000 0x619FFFFF 27262976 Local R/W main 0x600088F8 0x61073609 17214738 IText R/O main:text 0x61074000 0x611000FF 573696 idata R/W main:data 0x61100100 0x6128153F 1578048 IBss R/W main:bss 0x61281540 0x619FFFFF 7858880 Local R/W main:heap 0x7B000000 0x7B0FFFFF 1048576 PCI R/W pcimem: (pcimem_cwt) 0x80000000 0x819FFFFF 27262976 Local R/W main: (main_k0) 0xA0000000 0xA19FFFFF 27262976 Local R/W main: )main_k1) Được mô tả
như sau: Tên của region, địa chỉ bắt đầu, địa chỉ kết thúc, và kích thước region đó Ví
dụ: Iomem R/W iomem 0x31A00000 0x31FFFFFF 6291456 (tên region iomem, địa chỉ bắt đầulà 0x31A00000, địa chỉ kết thúc là: 0x31FFFFFF, kích thước:6291456 byte ) Bạn
có thể thấy ở hình 1.2, toàn bộ DRAM từ địa chỉ 0x60000000 đến 0x619FFFFF được
phân loại như là một region local và hơn nữa được chia thành cácsubregion Những subregion này tương đương với những phần khác nhau của IOS (text, BSS, data)
và heap
IOS quản lý bộ nhớ rỗi, thông qua một chuỗi các memory pool Mỗi pool là một tập hợp các khối nhớ mà có thể cấp phát và thu hồi khi cần Memory pool được xây dựng bên ngoài các region và được quản lý bởi kernel Thường thì, pool tương đương với một region đặc biệt Một memory pool có thể được xây dựng từ một vài region mở rộng,
cho phép bộ nhớ được cấp phát và thu hồi từ các miền bộ nhớ khác nhau để tối đa hiệu
quả hoạt động Bạn có thể dùng lệnh show memory để hiển thị các pool này
router#show memory Head Total(b) Used(b) Free(b) Lowest(b) Largest(b) Processor
61281540 7858880 3314128 4544752 4377808 4485428 I/O 1A00000 6291456 1326936
4964520 4951276 4964476 PCI 4B000000 1048576 407320 641256 641256 641212
Mô tả như sau: (kích thước tính theo byte)
- Total: kích thước của pool
- Used: lượng bộ nhớ được cấp phát
- Free: lượng bộ nhớ sẵn sàng để sử dụng
a) Lowest: lượng bộ nhớ thấp nhất sẵn sàng sử dụng từ khi mà pool được tạo
b) Largest: kích thước khối nhớ liên tục lớn nhất sẵn sàng sử dụng hiện tại
c) Lệnh show memory ở trên cung cấp ba pool với các tham số tương ứng: heap,
processor và I/O
Trang 222.4.4 Tiến trình IOS (processes IOS)
Một tiến trình có thể được tạo ra hoặc kết thúc bất cứ lúc nào trong khi IOS đang hoạtđộng ngoại trừ có ngắt xảy ra Nó được tạo ra bởi kernel hoặc bỏi một tiến trình khácđang chạy khác
Một thành phần có trách nhiệm tạo nhiều tiến trình trong IOS gọi là parser (bộ phân tách) Parser này là một tập các chức năng làm phiên dịch cấu hình IOS và dòng lệnh EXEC.Parser được yêu cầu bởi kernel trong suốt quá trình khởi tạo IOS và các tiến trình
EXEC, để cung cấp một giao tiếp dòng lệnh CLI thông qua giao tiếp console (giao tiếpngười và máy) và các phiên telnet Tại bất cứ thời điểm nào, một lệnh được nhập bởi
người dùng hoặc một cấu hình được đọc từ file, parser phiên dịch dòng lệnh và đưa ra
những hoạt động tức thời Một vài lệnh cấu hình bởi việc gán giá trị, như địa chỉ IP, trong
khi cấu hình khác như định tuyến hoặc giám sát Một vài lệnh làm cho parser khởi tạo một tiến trình mới Ví dụ: khi mà lệnh cấu hình router eigrp được nhập vào, parser khỏi tạo một tiến trình mới, gọi là ipigrp (nếu như tiến trình ipigrp đã được khởi tạo rồi), bắt đầu xử lý gói ip EIGRP Nếu như lệnh cấu hình no router eigrpđược nhập vào, parser kết thúc tiến trình ipigrp và không còn chức năng định tuyến EIGRP Tiến trình IOS thì trải
qua một các trạng thái như sau:
Hình 2.7: Các trạng thái của một tiến trình IOS
Trang 23Trang 14
Khi mà một tiến trình mới được tạo, nó nhận vùng stack riêng của mình và vào trạng tháimới (new) Tiến trình có thể di chuyển đến trạng thái điều chỉnh (modify) Nếu không cóthay đổi cần thiết, thì tiến trình chuyển sang trạng thái thực thi (Execute)
Không giống như hầu hết các hệ điều hành, IOS không tự động truyền tải các tham sốkhởi tạo hoặc gán một giao tiếp đến một tiến trình mới khi nó được tạo, bởi vì nó chorằng hầu hết các tiến trình không cần tài nguyên này Nếu một tiến trình cần nguồn tàinguyên này, tuyến mà tạo nó có thể điều chỉnh để thêm vào
Sau khi một tiến trình mới được tạo thành công và điều chỉnh, nó chuyển sang trạng tháisẵn sàng (Ready) và vào trạng thái thực thi (Execute) Trong suốt trạng thái này, một tiếntrình có thể truy cập CPU và chạy Trong suốt trạng thái thực thi, một tiến trình có thể làmột trong ba trạng thái: sẵn sàng, chạy, và rỗi (Idle) Một tiến trình ở trạng thái sẵn sàng
sẽ đợi chuyển sang trạng thái truy cập CPU, và bắt đầu thực thi lệnh, một tiến trình ởtrạng thái rỗi là đang ngủ, đợi sự kiện bên ngoài xuất hiện trước khi nó có thể chạy Mộttiến trình chuyển từ trạng thái sẵn sàng sang trạng thái chạy khi mà nó được lập lịch đểchạy Với đa tác vụ mà không ưu tiên (non-preemptive multitasking), một tiến trình đượclập lịch chạy trên CPU cho đến khi tạm ngừng hoặc kết thúc Một tiến trình có thể tạmdừng theo hai cách: nó có thể tự dừng bởi việc báo cho kernel, nó muốn nhường CPU, vàchuyển sang trạng thái sẵn sàng, và đợi đến lúc chạy lại Tiến trình cũng có thể dừng bởimột hoạt động bên ngoài xảy ra Khi mà một tiến trình bắt đầu đợi một sự kiện,kernelhoàn toàn dừng tiến trìnhn này và chuyển nó sang trạng thái rỗi Sau khi một sự kiện xảy
ra rồi thì kernel chuyển tiến trình trở lại trạng thái sẵn sàng để đợi chạy lại
Trạng thái cuối cùng trong vòng đời của tiến trình là trạng thái kết thúc Một tiến trìnhvào trạng thái kết thúc khi nó hoàn thành chức năng của mình và đóng lại hoặc khi mộttiến trình khác đóng nó Khi một tiến trình bị đóng hoặc tự đóng, tiến trình chuyển sangtrạng thái chết (Dead) Tiến tình này ỏ trạng thái chết (không hoạt động) cho đến khikernel thu hồi tất cả các tài nguyên của nó Sau khi tài nguyên được thu hồi, tiến trình bịkết thúc thoát khỏi trạng thái chết và được xóa khỏi hệ thống
Trang 24IOS thực hiện chế dộ ưu tiên để lập lịch các tiến trình trên CPU Tại thời điểm tạo, mỗitiến trình được gán một trong 4 độ ưu tiên dựa trên mục đích của tiến trình Độ ưu tiên làkhông đổi, chúng được gán khi một tiến trình được tạo và không bao giờ thay đổi Ta cócác độ ưu tiên:
2.4.5 Kernel IOS
IOS kernel không là một đơn vị đơn mà là một tập các thành phần và chức năng liên kếtchặt chẽ với nhau IOS kernel thực hiện các chức năng sau: Lập lịch tiến trình, quản lý bộnhớ, cung cấp dịch vụ routimes để trap (phát hiện ) và handle (điều khiển ) những ngắtphần cứng, duy trì timers (bộ định thời gian), và phát hiện ngoại lệ phần mềm Các chứcnăng chính của kernel:
Tác vụ lập lịch các tiến trình được thực hiện bởi scheduler ( bộ lập lịch ) Scheculer quản
lý tất cả các tiến trình trong hệ thống bằng cách sử dụng một chuỗi các hàng đợi tiến trình
mô tả trạng thái của mỗi tiến trình Các hàng đợi này chứa nội dung thông tin cho tiếntrình ở trạng thái đó Tiến trình chuyển từ trạng thái này sang trạng thái khác khi mà
scheduler duy chuyển ngữ cảnh của chúng từ 1 hàng đợi tiến trình này đến hàng đợi tiến
trình khác Có tất cả sáu hàng đợi tiến trình
Idle queue: Chứa những tiến trình mà vẫn hoạt động nhưng đang đợi một sự
kiện xảy ra trước khi có thể chạy.
Trang 25Trang 16
Dead queue: Chứa các tiến trình đã kết thúc nhưng cần bị thu hồi tài nguyên trước
khi có thể xóa chúng ra khỏi hệ thống
Ready queues: Chứa các tiến trình mà có đủ điều kiện chạy, có 4 loại hàng đợi sẵn
sàng, là một trong những độ ưu tiên của tiến trình:
o Critical
o High
o Medium
o Low
Khi một tiến trình đang chạy bị tạm ngưng, scheduler lấy lại quyền điều khiển CPU và
đưa ra một thuật toán để chọn tiến trình kế tiếp từ hàng đợi sẵn sàng Các bước cho thuậttoán như sau:
Bước 1: scheduler đầu tiên kiểm tra các tiến trình đang đợi trong hàng đợi sẵn sàng có độ
ưu tiên critical Nó chạy mỗi tiến trình có độ ưu tiên critical, lần lượt, cho đến khi tất cả
có cơ hội để chạy
Bước 2: sau khi tất cả cá tiến trình có độ ưu tiên critical có một cơ hội để
chạy, scheduler kiểm tra hàng đợi có độ ưu tiên high, nếu không có tiến trình có độ ưu tiên high sẵn sàng, thì scheduler bỏ qua bước 2 và tới bước 3, và kiểm tra hàng đợi có độ
ưu tiên medium Mặc khác, scheduler xóa mỗi tiến trình có độ ưu tiên high từ hàng đợi
và cho phép chạy Giữa các tiến trình độ có ưu tiên high, scheduler kiểm tra bất cứ kỳ
tiến trình độ ưu tiên critical mà đã sẵn sàng và chạy tất cả chúng trước khi xử lý tiến trình
độ có độ ưu tiên high tiếp theo Sau khi tất cả các tiến trình độ ưu tiên high có cơ
hội, scheduler bỏ qua hàng đợi medium và low và trở về bước 1.
Bước 3: sau khi không có tiến trình có độ ưu tiên high đang chờ để chạy, scheduler kiểm
tra hàng đợi có độ ưu tiên medium Nếu không có tiến trình có độ ưu tiên medium sẵn
sàng, scheduler bỏ qua bước 3 và tới bước 4 và kiểm tra hàng đợi dộ ưu tiên low Mặc khác, scheduler xóa mỗi tiến trình độ ưu tiên medium từ hàng đợi và cho phép nó chạy Giữa mỗi tiến trình độ ưu tiên medium, sheduler kiểm tra bất kỳ các tiến trình độ ưu tiên
high mà sẵn sàng và chạy tất cả chúng trước khi xử lý các tiến trình độ ưu tiên meidum
tiếp theo Sau khi các tiến trình độ ưu tiên medium có cơ hội, scheduler bỏ qua hàng đợi
độ ưu tiên low, và bắt đầu lại bước1 Scheduler bỏ qua hàng đợi độ ưu tiên low tối đa là
15 lần trước khi đến bước 4 Scheduler này là bộ máy dự phòng đảm bảo an toàn để ngăn
chặn sự cố, các tiến trình độ ưu tiên low không được sử dụng CPU
Bước 4: khi không có tiến trình có độ ưu tiên high hoặc medium chờ để chạy (hoặc hàng
Trang 26low.Scheduler xóa mỗi tiến trình độ ưu tiên low từ hàng đợi và cho phép chạy, giữa các tiến trình độ ưu tiên low, scheduler kiểm tra bất cứ các tiến trình độ ưu tiên medium nào
sẵn sàng và chạy chúng trước khi thực hiện các tiến trình độ ưu tiên low tiếp theo
Bước 5: Cuối cùng scheduler trở về bước 1 và bắt đầu lại.
Bộ quản lý bộ nhớ của kernel, tại mức cao, quản lý tất cả các vùng nhớ có sẵn của IOS,bao gồm bộ nhớ chứa IOS của nó Bộ quảnl ý bộ nhớ bao gồm ba thành phần riêng biệt,
với những nhiệm vụ riêng Ta có ba bộ quản lý bộ nhớ sau: Bộ quản lý region, Bộ quản
lý pool, bộ quản lý chunk.
2.4.5.3 Bộ quản lý region
Định nghĩa và duy trì những region khác nhau trên một platform Bộ quản lý region có chức năng duy trì tất cả các region Nó cung cấp các dịch vụ cho phép những phần khác của IOS tạo region và gán các thuộc tính của chúng Nó cũng cho phép những phần khác truy vấn những region có sẵn, vi dụ, quyết định tổng lượng bộ nhớ có sẵn trên môt
platform
2.4.5.4 Bộ quản lý pool
Quản lý việc tạo ra các vùng nhớ pool, cấp phát và thu hồi các khối nhớ của pool Bộ quản lý pool là một thành phần quan trọng của kernel Trong khi scheduler quản lý cấp phát tài nguyên CPU để xử lý, bộ quản lý pool quản lý cấp phát bộ nhớ cho các tiến trình Tất cả các tiến trình phải thông qua bộ quản lý bộ nhớ pool, trực tiếp hoặc gián tiếp, để
định ra vùng nhớ mà nó sử dụng Bộ quản lý bộ nhớ được yêu cầu cho mỗi tiến trình sửhàm hệ thống chuẩn malloc và free để lấy và trả bộ nhớ Bộ quản lý bộ nhớ hoạt động bởi
việc duy trì danh sách khối nhớ rỗi cho mỗi pool, ban đầu, mỗi pool chứa chỉ một khối nhớ rỗi lớn bằng kích thước một pool, khi bộ quản lý pool yêu cầu bộ nhớ Khởi tạo
những khối nhớ có kích thứơc nhở hơn tại cùng một thời điểm, các tiến trình có thể giải
phóng vùng nhớ trả về pool, tạo thành một số vùng nhớ rỗi không liên tục nhau, nhiều
kích thước Trường hợp này gọi là phân mảnh bộ nhớ và đựơc cung cấp như hình 3.5
Trang 27trình yêu cầu bộ nhớ từ một pool Bộ quản lý bộ nhớ bắt đầu với danh sách rỗi kết hợp
với kích thước yêu cầu Phương thức này giúp tạo hiểu quả sử dụng bộ nhớ, phù hợp vớiyêu cầu để phục hồi khối dữ liệu mà gần với kích thước nhất Nếu như không có khối nhớrỗi phù hợp , bộ quản lý bộ nhớ tiếp tục với khối nhớ có kích thứơc lớn hơn Cho đến khitìm thấy nếu như một khối nhớ rỗi đựơc tìm thấy trong một trong danh sách cao hơn, bộquản lý bộ nhớ cắt khối nhớ đó và đặc nó trong vùng nhớ phù hợp bởi việc kết hợp thànhmột khối trả về cho khối mà nó gần kề với khối nhớ khác Bộ quản lý bộ nhớ cố gắngđiều khiển phân mảnh bởi kết hợp thành khối mà và nó là kế tiếp của một khối nhớ rỗi,bộ quản lý bộ nhớ kết hợp hai khối nhớ thành một và thay thế trên danh sách vùng nhớthích hợp
Trang 28Hình 2.9: Kết hợp các khối nhớ
2.4.5.5 Quản lý chunk
Quản lý pool cung cấp nhiều cách hiệu quả để quản lý một tập các khối có kích thước khác nhau Tuy nhiên, những tính năng này có chi phí của nó, bộ quản lý pool tạo 32 byte
overhead trên mỗi bộ nhớ Mặc dầu overhead này không quan trọng lắm đối với khối dữ
liệu lớn, đối với pool có hàng ngàn khối dữ liệu nhỏ hơn thì overhead mới trở nên đáng
quan tâm Để tạo thêm sự lựa chọn thì kernel cung cấp bộ quản lý bộ nhớ khác gọi là bộ
quản lý bộ nhớ chunk, nó có thể quản lý lượng lớn pool có nhiều khối nhớ nhỏ mà không
có overhead Không giống như quản lý pool, bộ quản lý chunk không tạo ra những danh
sách vùng nhớ rỗi với kích thước khác nhau, thay vào đó, bộ quản lý chunk quản lý mộttập các khối nhớ cố định được chỉ định từ một trong các vùng nhớ pool Trong một vài
trường hợp, bộ quản lý chunk có thể được xem như là một bộ quản lý pool vùng nhớ con.
Các chính sách thường được thực hiện là: một tiến trình yêu cầu một vị trí của một khối
nhớ từ một vùng nhớ pool đặc biệt Một tiến trình sau đó gọi đến bộ quản lý chunk để chia khối nhớ thành một chuỗi các chunk có kích thước cố định và nhỏ hơn và sử dụng bộ quản lý chunk để định ra những vùng nhớ rỗi khi cần Thuật lợi ở đây là chỉ có 32 byte overhead và bộ quản lý pool thì không bắt buộc cấp phát và lấy lại hàng ngàn phân mảnh nhỏ hơn Vì vậy, khả năng phần mảnh trong pool giảm đáng kể
Trang 29Lỗi do thiếu bộ nhớ thường xảy ra bởi vì, thường không đủ bộ nhớ trên hệ điều hành để
hổ trợ tất cả các hoạt động của hệ điều hành Khi điều này xảy ra , bạn có hai lựa chọn :thêm bộ nhớ, hoặc giảm tính năng cấu hình, interface, cho đến khi vấn đề được giảiquyết Trong một vài trường hợp thì bộ nhớ lỗi có thể do lổ hổng được gọi là lổ hổng bộnhớ ở một trong các tiến trình Mục memory leak đề cập đến sự kiện một tiến trình tiếptục chiếm giữ vùng nhớ nhưng không bao giờ giải phóng nó, cuối cùng là nó chiếm hếttất cả các bộ nhớ có sẵn Lỗ hổng bộ nhớ thường bị gây bởi lỗi phần mềm
Trong định tuyến gói dữ liệu, bất cứ hoạt động lưu trữ hay chuyển dữ liệu đều phải cần
có một nơi để lưu trữ dữ liệu trong khi dữ liệu đang được định tuyến trên đường truyền.Thông thường thì tạo ra một bộ đệm để lưu giữ các gói đến trong khi hoạt động chuyểnmạch đang hoạt động Bởi vì khả năng định tuyến gói là trung tâm của cấu trúc hệ điềuhành IOS IOS chứa thành phần chuyên biệt để quản lý những vùng đệm này Thành phầnnày được gọi là bộ quản lý vùng đệm bộ nhớ IOS sử dụng thành phần này để tạo và quản
lý nhất quán một chuỗi các vùng đệm cho chuyển mạch trên mỗi platform Bộ đệm trongvùng này được biết chung là những bộ đệm hệ thống Bộ quản lý vùng bộ đệm cung cấpmột cách tiện lợi để quản lý một tập các bộ đệm có kích thước cụ thể Mặt dầu nó có thểđược sử dụng để quản lý bất cứ loại bộ đệm nào, bộ quản lý bộ đệm được sử dụng chính
để quản lý những vùng bộ đệm gói Những vùng đệm gói được tạo từ các vùng
nhớ pool có sẵn Để tạo một vùng, bộ quản lý bộ đệm yêu cầu một khối nhớ từ bộ quản lý
pool và chia cho bộ đệm Bộ quản lý bộ đệm gói sau đó tạo một danh sách cho tất cả các
bộ đệm rỗi và theo dõi các vùng nhớ này Những vùng đệm có thể là động hay tĩnh, vùng
bộ đệm tĩnh được tạo với số bộ đệm cố định, không thêm bộ đệm vào vùng bộ đệm tĩnhnày Vùng bộ đệm động được tạo với một số bộ đệm tối thiểu Gọi là bộ đệm thường
Trang 30nhận được yêu cầu khi vùng nhớ rỗng, nó cố gắng mở rộng vùng nhớ và đáp ứng yêu cầungay lập tức Nếu nó không thể mở rộng vùng nhớ, thì yêu cầu bị lỗi và thực hiện mởrộng vùng nhớ sau đó Vùng bộ đệm được phân lớp public (dùng chung) hoặc private(dùng riêng) Vùng public, được sử dụng bởi bất cứ tiến trình của hệ thống, private đượctạo cho một tập các tiến trình sử dụng.
Mỗi IOS đều có một tập các bộ đệm public định trước gọi là những bộ đệm hệ thống,những bộ đệm này được sử dụng cho tiến trình chuyển mạch các gói dữ liệu và tạo gói(như gói keepalive, gói cập nhật định tuyến )
Bạn có thể dùng câu lệnh show buffer để hiển thị các vùng bộ đệm này
router#>show buffer Buffer elements: 500 in free list (500 max allowed) 747314 hits, 0
misses, 0 created Public buffer pools: Small buffers, 104 bytes (total 50, permanent 50):
46 in free list (20 min, 150 max allowed) 530303 hits, 6 misses, 18 trims, 18 created 0failures (0 no memory) Middle buffers, 600 bytes (total 25, permanent 25): 25 in free list(10 min, 150 max allowed) 132918 hits, 3 misses, 9 trims, 9 created 0 failures (0 nomemory) Big buffers, 1524 bytes (total 50, permanent 50): 50 in free list (5 min, 150 maxallowed) 47 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) VeryBig buffers,
4520 bytes (total 10, permanent 10): 10 in free list (0 min, 100 max allowed) 26499 hits,
0 misses, 0 trims, 0 created 0 failures (0 no memory) Large buffers, 5024 bytes (total 0,permanent 0): 0 in free list (0 min, 10 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0failures (0 no memory) Huge buffers, 18024 bytes (total 0, permanent 0): 0 in free list (0min, 4 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) … Đểhiểu được bộ quản lý vùng bộ đệm hoạt động như thế nào với bộ đêm hệ thống, xem ví
dụ sau: Bắt đầu với 16 bộ đệm trong danh sách rỗi
Small buffers, 104 bytes (total 16, permanent 16): 16 in free list (8 min, 16 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)
Trang 31Trang 22
Hình 2.10: Bộ đệm hệ thống
IOS nhận 8 gói phù hợp với 8 vùng bộ đệm small 104 byte Phần mềm nhận gói yêu cầu
và nhận 8 và nhận 8 bộ đệm từ vùng bộ đệm small Lúc đó danh sách rỗi (free list) sẽ
giảm xuống còn 8 như hình 3.8 Small buffers, 104 bytes (total 16, permanent 16): 8 in
free list (8 min, 16 max allowed) 8 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)
Hình 2.11: Bộ đệm hệ thống
Bây giờ IOS nhận thêm 4 gói nữa trước khi xử lý, Phần mềm nhận gói yêu cầu và nhận
thêm 4 bộ đệm nữa từ vùng bộ đệm small Small buffers, 104 bytes (total 16, permanent
16): 4 in free list (8 min, 16 max allowed) 12 hits, 4 misses, 0 trims, 0 created 0 failures
Trang 32(0 no memory) Số bộ đệm trong danh sách rỗi đã giảm còn 4 và có 12 đầy, miss là 4 do
tối thiểu (min) là 8 mà chỉ còn 4
Hình 2.12: Bộ đệm hệ thống
Vì ở dưới mức tối thiểu nên bộ quản lý vùng bộ đệm, chạy tiến trình quản lý pool để mở
rộng vùng nhớ, và tạo thêm bộ đệm Sau khi tạo xong bộ đệm ta có thêm 4 vùng nhớ
Small buffers, 104 bytes (total 20, permanent 16): 8 in free list (8 min, 16 max allowed) 12 hits, 4 misses, 0 trims, 4 created 0 failures (0 no memory
Hình 2.13: Bộ đệm hệ thống
Bây giờ giả sử IOS yêu cầu thêm 9 gói nữa Hình 3.11 Small buffers, 104 bytes (total 20,
permanent 16): 0 in free list (8 min, 16 max allowed) 20 hits, 13 misses, 0 trims, 4 created 1 failures (0 no memory)
Trang 3320, permanent 16): 17 in free list (8 min, 16 max allowed) 20 hits, 13 misses, 1 trims, 4
created 1 failures (0 no memory)
Trang 34Hình 2.16: Bộ đệm hệ thống
Cuối cùng IOS xử lý tất cả các gói còn lại và trả bộ đệm về cho pool Small buffers, 104
bytes (total 16, permanent 16): 16 in free list (8 min, 16 max allowed) 20 hits, 13 misses,
4 trims, 4 created 1 failures (0 no memory)
2.4.6 Trình điều khiển thiết bị
IOS chứa trình điều khiển thiết bị cho các thiết bị phần cứng, như flash card, NVRAM,nhưng đáng chú ý là trình điều khiển cho các giao tiếp mạng Trình điểu khiển các giaotiếp mạng cung cấp những khả năng chính cho hoạt động của gói dữ liệu tại đầu ra củagiao tiếp Mỗi thiết bị chứa hai thành phần chính: thành phần điều khiển và thành phần
dữ liệu Thành phần điều khiển có trách nhiệm quản lý tình trạng và trạng thái của thiết bị(ví dụ, shut down trên một cổng) Thành phần dữ liệu có trách nhiệm đối với tất cả cácluồng hoạt động chuyển mạch gói dữ liệu Trình điều khiển thiết bị có quan hệ chặt chẽvới chức năng chuyển mạch gói Trình điều khiển thiết bị giao tiếp mạng dựa trên hệthống IOS thông qua một cấu trúc điều khiển đặc biệt gọi là IDB( interface descriptorblock) IDB chứa, toàn bộ chức năng điều khiển thiết bị, dữ liệu, trạng thái thiết bị, ví dụ:địa chỉ IP, trạng thái cổng, thống kê gói là một trong các trường hiện tại trong IDB IOSduy trì một IDB cho mỗi giao tiếp hiện tại trên một platform
2.4.7 Cấu trúc chuyển mạch gói
Chuyển mạch gói là một trong các chức năng quan trọng nhất của router Hoạt động baoquát như sau:
Một gói đến một cổng,
Địa chỉ đích của gói được kiểm tra và so sánh dựa và danh sách đích đã biết,
Nếu phù hợp, gói được chuyển tiếp ra cổng phù hợp,
Trang 35Trang 26
Nếu không phù hợp, gói bị hủy
Rõ ràng vấn đề chuyển mạch không quá phức tạp, nhưng để chuyện mạch được nhanh thìvấn đề trở nên phức tạp Tốc độ hoạt động không chỉ dựa vào tốc độ CPU, còn có nhữngnhân tố khác, khả năng thực thi của bus I/O, tốc độ bộ nhớ, đều có ảnh hưởng đến sự thựcthi của chuyển mạch Đây là một thử thách đối với các nhà phát triển IOS, làm thế nào đểtốc độc chuyển mạch nhanh nhất mà có thể giới hạn trên các thành phần CPU, bộ nhớ,bus I/O Khi mà kích thước và số mạng định tuyến tăng lên, những người phát triển IOStiếp tục tìm ra những cách tốt nhất để giải quyết thử thách thực thi này Đầu tiên thì IOSchỉ có chức năng chuyển mạch nhưng đã được cải thiện về sau, một vài phương thứcchuyển mạch dựa trên tối ưu về phần cứng, một số khác trên kỹ thuật phần mềm để chạytrên nhiều platform khác nhau Ngày nay IOS có thể chuyển mạch tới vài trăm ngàn góitrên một giây, sử dụng bạn định tuyến tới vài trăm ngàn tuyến đi Sau đây là một vàiphương thức chuyển mạch trên IOS phiên bản 12.0
Distributed fast switching
Cisco Express Forwarding (CEF)
Distributed Cisco Express Forwarding (dCEF )
Chúng ta chỉ đi chi tiết phương thức: process switching
Là phương thức chuyển mạch được thực hiện đầu tiên trên IOS Cơ bản nó sử dụngbrute-force để chuyển mạch Mặc dầu Process switching có thể chiếm một lượng lớnCPU Nhưng nó có ưu điểm là độc lập với phần cứng, làm cho nó trở nên phổ biến trêntất cả các sản phẩm của Cisco (tương thích với nhiều loại phần cứng) Nó cũng cung cấpmột vài khả năng phân bố lưu lượng tải mà các loại chuyển mạch khác không có
Ví dụ Các bước thực hiện của Process switching:
Trang 36Hình 2.17: Process switching
Bước 1: Bắt đầu với một cổng trên router, nó nhận biết được có một gói trên đường
truyền cần được xử lý Cổng đó nhận gói và chuyển tới bộ nhớ I/O
Bước 2: Cổng sẽ gởi một ngắt tới bộ xử lý để báo cho bộ vi xử lý chính, rằng nó nhận
được một gói và đang đợi trong bộ nhớ I/O cần được xử lý Đây gọi là receive interrupt(nhận một ngắt) Phần mềm ngắt của IOS kiểm tra thông tin header (loại encapsulation,header lớp mạng, ) xác định nó là gói IP, đặt nó gói trên hàng đợi input để thực hiện xử
lý thích hợp Đối với gói ip, tiến trình xử lý được đặt tên là ip_input
Bước 3: Có ít nhất một gói trong hàng đợi, tiến trình ip_input đủ điều kiện để chạy Bước 4 và 5: Sau khi tiến trình ip_input chạy Hoạt động chuyển gói thực sự có thể bắt
đầu Trong ví dụ này: ip_input tìm trong bảng định tuyến xem có tồn tại đường đi tới địachỉ ip đích không Nếu như tìm thấy thì nó lấy địa chỉ của hop kế tiếp từ bản định tuyến.Sau đó nó tìm trong ARP cache để lấy thông tin cần thiết để tạo một địa chỉ mac mới chohop kế tiếp Tiến trình ip_input tạo một header có địa chỉ mac mới Cuối cùng gói đượcđưa vào hàng đợi để truyền ra ngoài cổng được chọn
Bước 6: Khi mà cổng được chọn xác nhận, có một gói đang đợi để chuyển ra, thì nó lấy
từ hàng đợi (từ bộ nhớ I/O) và truyền đi trên mạng
Bước 7: Sau khi cổng kết thúc việc truyền gói, nó sẽ báo cho bộ xử lý gói đã được truyền
đi IOS sau đó cập nhật biến đếm số gói đi ra ngoài và giải phóng vùng nhớ I/O
Trang 37Trang 28
Một trong những ưu điểm của Process switching là khả năng phân bố lưu lượng tải trêngói Lưu lượng tải trên gói, cung cấp một cách khá đơn giản trên nhiều link (liên kết) khitồn tại nhiều đường tới đích Khi có nhiều đường tới đích, các gói được chuyển mạch tựđộng được phân phối giữa giữa các đường có sẵn này dựa trên metric được gán cho mỗiđường Metric hoặc cost cho mỗi đường trong bảng định tuyến được sử dụng để tính toánmột biến đếm phân phối tải Mà thật sự sử dụng để quyết định đường nào được chọn Vídụ: như hình 3.15
Hình 2.18: Phân bố lưu lượng tải
Router A có hai đường đến mạng 10.1.4.0/24
RouterA#show ip route 10.1.4.0 255.255.255.0
Routing entry for 10.1.4.0/24 Known via "static", distance 1, metric 0 Routing Descriptor Blocks: 10.1.2.1 Route metric is 0, traffic share count is 1 * 10.1.3.1 Route metric is 0, traffic share count is 1 Trong vi dụ này, thì gói thứ nhất sẽ dùng hop tiếp theo là 10.1.3.1
và gói thứ hai 10.1.2.1, tiếp tục như vậy
Nhược điểm của phương pháp này tốc độ của nó Process switch yêu cầu bảng định tuyếncho mọi gói, khi kích thước bảng định tuyến tăng lên, thời gian yêu cầu tìm kiếm trongbảng định tuyến cũng tăng Thời gian tìm kiếm tăng cũng là tăng thời gian sử dụng CPU,ảnh hưởng rất nhiều đến tốc độ gói đến Mặc dầu điều này khó nhận thấy trong nhữngmạng nhỏ, nhưng đối với những mạng lên tới hàng trăm, hàng ngàn node thì kích thướcbảng định tuyến có ý nghĩa trong việc sử dụng CPU và sự tiềm ẩn về định tuyến (là thờigian giữa các gói đi vào và ra khỏi hệ thống) Một nhân tố ảnh hưởng đến Processswitching là tốc độ di chuyển dữ liệu của bộ nhớ Đối với một số hệ điều hành, Processswitch yêu cầu các gói nhận được sao chép từ vùng nhớ I/O đến vùng nhớ khác trước khichúng được chuyển mạch Sau khi tiến trình định tuyến kết thúc, những gói phải được
Trang 38mạnh mẽ của CPU, vì vậy mà đối với những hệ điều hành này, Process switch có thể thựcthi rất chậm Trở lại ví dụ trên, tiến trình ip_input cần có 3 thành phần khoá của dữ liệu
để chuyển mạch gói
Reachability (có đích đến): Có đích hay không, nếu có thì địa chỉ mạng của hop kế
tiếp là gì để chuyển gói tới đích Dữ liệu này trong bảng định tuyến
Interface ( cổng ): Cổng nào sẽ được sử dụng để truyền gói dữ liệu tới đích Dữ liệu
này cũng nằm trong bảng định tuyến
Header lớp MAC: Địa chỉ MAC được đặt trên để đến đúng hop kế tiếp, địa MAC
lấy từ bảng ARP (Address Resolution Protocol) cho ip hoặc bảng tham chiếu khác, nhưbảng frame relay map
Giao diện người dùng của Router:
Cisco IOS sử dụng giao diện dòng lệnh (CLI – Command – line interface), có rất nhiềucách để truy cập vào giao diện CLI của Router
Kết nối trực tiếp từ máy tính hoặc thiết bị đầu cuối vào cổng Console trên Router
Hình 2.19: Kết nối Router với máy tính
Trang 39Trang 30
Hình 2.20: Cáp chuyển Cổng console sang RJ45
Sử dụng đường quay số qua modem hoặc kết nối null modem vào cổng AUX trên RouterTelnet vào Router (trên router ít nhất có một interface đã được cấu hình địa chỉ IP ở trạngthái up và các đường VTY đã được cấu hình cho phép truy cập và đặt mật mã)
Hình 2.21: Kết nối Router với Laptop cổng RJ45 (Interface đã được đặt IP và Up)
Trang 402.5 Các chế độ cấu hình của Router:
Giao diện dòng lệnh của Cisco sử dụng cấu trúc phân cấp Cấu trúc này đòi hỏi bạn muốncấu hình cái gì thì phải vào chế độ tương ứng Ví dụ: nếu bạn muốn cấu hình cổng giaotiếp nào(interface) thì phải vào chế độ cấu hình cổng giao tiếp đó
Cisco IOS có một trình thông dịch EXEC, sau khi bạn nhập một câu lệnh thì EXEC sẽthực thi ngay câu lệnh đó
Vì lý do bảo mật nên Cisco IOS chia phiên bản làm việc của EXEC thành 2 chế độ :+ User EXEC - Chế độ EXEC người dùng chỉ cho phép thực thi một số câu lệnh hiển thịcác thông tin cơ bản của router mà thôi Chế độ này chỉ xem chứ không cho phép thựchiện các câu lệnh làm thay đổi cấu hình Router (Read Only) Chế độ EXEC người dùng
có dấu nhắc là ">"
+ Privileged EXEC - Chế độ EXEC đặc quyền cho phép thực hiện tất cả các câu lệnh củaRouter Bạn có thể cấu hình để người dùng phải nhập mật khẩu trước khi truy cập vàochế độ này Ngoài ra, để tăng thêm tính bảo mật bạn có thể cấu hình thêm UserID Điềunày cho phép chỉ những người nào được phép mới có thể truy cập vào Router Chế độEXEC đặc quyền được xác định bởi dấu nhắc "#"
Để chuyển từ chế độ EXEC người dùng sang chế độ EXEC đặc quyền ta dùng lệnh
"enable" tại dấu nhắc ">" ngược lại ta dùng lệnh "disable"