7. Cấu trúc luận văn
3.2.2. Phần mềm giả lập Dynamips/Dynagen
- Dynamips: là một chƣơng trình giả lập router Cisco đƣợc viết bởi Christophe Fillot. Chƣơng trình có khả năng giả lập các dòng sản phẩm 2691, 3620, 3640, 3660, 3725, 3745, và 7206 của Cisco, dựa vào việc chạy trực tiếp các IOS thực của các dòng sản phẩm trên.
* Đặc điểm:
+ Đƣợc sử dụng nhƣ là một công cụ giúp cho các học viên tham gia các khoá đào tạo của Cisco có thể thực hành trên một mô hình giả lập nhƣng có tính năng nhƣ thật. Cho phép mọi ngƣời có thể làm quen dễ dàng hơn với các thiết bị của Cisco.
+ Kiểm tra đƣợc các tính năng mà các dòng sản phẩm IOS Cisco có thể hỗ trợ.
Tuy nhiên theo Christophe Fillot chƣơng trình này cũng không thể thay thế đƣợc một thiết bị Router thật. Chƣơng trình chỉ có thể hỗ trợ ở một mức tƣơng đối và tạm chấp nhận đƣợc đối với các học viên muốn thi các chứng chỉ nhƣ CCNA/ CCNP/ CCIE.
- Dynagen: là một chƣơng trình hỗ trợ cho Dynamips, nó chỉ ở dạng text, sử dụng chế độ “Hypervisor” cho việc kết nối với Dynamips. Dynagen xây dựng và làm việc với các mạng ảo:
* Đặc điểm:
+ Sử dụng các file cấu hình đơn giản, dễ hiểu để tạo ra các file trong đó chứa sơ đồ kết nối của các Router, tuy nhiên toàn bộ đều ở dạng text.
+ Việc tạo file text tƣơng đối đơn giản với các dòng lệnh cơ bản, có khả năng tạo đƣợc các sơ đồ kết nối giữa các router, bridge, frame-relay, ATM và Ethernet Switch.
+ Có thể chạy cả Dynamips và Dynagen trên cùng một máy.
+ Có khả năng làm việc ở chế độ Client/Server. Dynagen chạy trên máy cá nhân và có thể liên hệ trực tiếp với chƣơng trình Dynamips đang chạy trên Server. Dynagen cũng có thể điều khiển nhiều Dynamips Server để có thể triển khai các mạng lớn trên nhiều máy tính khác nhau.
+ Cung cấp một danh sách các thiết bị đƣợc tạo ra, có thể dừng, reload, tắt, resume, và có thể tạo các kết nối Console vào các router ảo.
+ Dynagen đƣợc viết bởi ngôn ngữ Python, và có thể tƣơng thích với tất cả các platform mà Python hỗ trợ. Module thiết kế đƣợc tách riêng với các OOP API riêng biệt cho giao tiếp với Dynamips. Các ứng dụng khác dùng Python có thể đƣợc viết để sử dụng API này nhằm cung cấp các chƣơng trình tạo các kết nối ở dạng giao diện đồ hoạ GUI.
3.2.2.1. Các thành phần cài đặt chương trình
a ) Cài đặt Winpcap
Việc cài đặt Libpcap hoặc Winpcap là cần thiết để có thể chạy đƣợc Dynamips trên hệ thống. Libpcap hoặc Winpcap dựa trên hệ thống hiện có của máy
ngƣời dùng, cung cấp các cầu nối giữa các giao tiếp của router và các card mạng vật lý. Ngƣời dùng Windows cần cài đặt phiên bản Winpcap 4.0 beta trở lên
b ) Cài đặt Dynamips – Dynagen
Download file dynagen-0.8.2_dynamips-0.2.6 RC4_Win_XP_setup.exe tại địa http://dyna-gen.sourceforge.net. Tải các file tƣơng ứng cho từng hệ điều hành
Lƣu ý, trong quá trình cài đặt nếu máy sử dụng chƣa đƣợc cài đặt Libpcap hoặc Winpcap, có thể xuất hiện lỗi xảy ra. Yêu cầu phải cài đặt Winpcap hoặc Libpcap để có thể chạy đƣợc chƣơng trình.
c ) Cài đặt và sử dụng SecureCRT
SecureCRT là chƣơng trình Terminal giúp ngƣời dùng sử dụng các công cụ hiệu quả hơn với các tính năng nổi trội nhƣ có thể tạo các kết nối SSH hỗ trợ bảo mật trong quá trình làm việc, hoặc có thể truy cập một thời điểm nhiều Router thông qua quá trình làm việc bằng TAB. Mỗi tab tƣợng trƣng cho một cửa sổ điều khiển.Việc cài đặt SecureCRT hoặc một số chƣơng trình terminal hỗ trợ khác chỉ nhằm nâng cao hiệu quả trong công việc và không ảnh hƣởng đến quá trình làm việc của Dynamips/Dynagen.
3.2.2.2. Các thông số sử dụng trong chương trình
a ) IOS Image
Dynamips chạy các hệ điều hành IOS thật sự của các router Cisco dòng 2691, 3620, 3640, 3660, 3725, 3745, và 7200. Sau khi cài đặt xong Dynamips, sẽ xuất hiện một thƣ mục tên là C:\Program Files\Dynamips\images, thƣ mục này sẽ đặt các hệ điều hành tại đây hoặc có thể tạo các đƣờng dẫn đến thƣ mục chứa các image khác nếu nhƣ không muốn sử dụng đƣờng dẫn mặc định đã có của chƣơng trình trong các file .net. Một điểm lƣu ý, khi sử dụng Dynamips trên Windows, file IOS sử dụng phải ở dạng .bin và đối với các hệ điều hành khác phải sử dụng file IOS là .image.
b ) Tài nguyên hệ thống
Dynamips sử dụng một lƣợng Ram và CPU của máy tính nhằm giả lập nên các Router. Nếu để chạy đƣợc một IOS image của dòng 7200, yêu cầu 256MB
RAM bộ nhớ và nhƣ vậy có nghĩa máy tính sử dụng để giả lập phải dành riêng 256MB RAM bộ nhớ cho việc thực thi này. Dynamips cũng chỉ định (mặc định) 64MB RAM/instance trên hệ thống Unix và 16MB trên hệ thống Windows để cache các JIT translation. Chính vì vậy trong quá trình làm việc, tại thƣ mục chứa image sẽ thấy xuất hiện các file tạm của RAM có dung lƣợng rất lớn và nó sẽ bằng kích thƣớc thật của RAM đƣợc yêu cầu. Hệ điều hành sẽ chứa các thông tin trong file tạm của RAM và đƣợc ánh xạ để sử dụng.
Dynagen và Dynamips hiện tại hỗ trợ đặc tính “Ghost RAM” có thể làm giảm số lƣợng RAM cần thiết trong các bài lab lớn. Với đặc tính này, thay cho việc mỗi router ảo lƣu trữ một bản copy của IOS trong RAM ảo chính máy đó, host sẽ chỉ định một vùng bộ nhớ chung chia sẻ mà tất cả đều dùng chung. Ví dụ, nếu nhƣ hệ thống đang chạy 10 router và tất cả cùng sử dụng chung một IOS image, và độ lớn của image là 60MB, nhƣ vậy sẽ tiết kiệm đƣợc 9*60=540MB thực sự khi chạy các bài LAB này.
Dynamips cũng sử dụng một lƣợng lớn CPU, bởi vì nó đang giả lập các CPU thực sự với các cấu trúc tƣơng ứng nhƣ trên thực tế của router. Chƣơng trình cung cấp cho ngƣời dùng một tính năng là “Idle PC” để nhằm làm tăng khả năng xử lý của CPU máy tính, giảm độ tiêu hao không cần thiết của máy tính.
c ) Cấu hình Telnet
Dynagen bao gồm cả các lệnh telnet trực tiếp để cho phép ngƣời dùng có thể kết nối đến các router ảo một cách trực tiếp và thực thi cách cấu hình theo CLI (Command Line Interface). Việc truy cập đến có thể thực hiện đƣợc ngay sau khi đã chạy chƣơng trình, tuy nhiên đối với các hệ điều hành thuộc hệ thống Unix, ngƣời dùng cần thay đổi các thông số trong file dynagen.ini. Việc thay đổi các thông số không đƣợc đề cập trong tài liệu này.
d ) Cấu hình các file Network
Dynagen sử dụng một file dành riêng cho chƣơng trình chạy đƣợc đặt tên với phần mở rộng là .net. Các file network đƣợc dùng để lƣu trữ các cấu hình của tất cả các router, switch, và các kết nối nhằm tạo nên các hệ thống Lab ảo. File .Net có
cấu trúc đơn giản và gần giống với các file .INI. Sau khi cài đặt thành công Dynamips/Dynagen, ngƣời dùng sẽ có đƣợc một thƣ mục với tên gọi Dynagen Sample Labs, click chuột vào thƣ mục này, lựa chọn thƣ mục Simple1, click chuột phải lên file simple1.net, chọn Open with, lựa chọn một chƣơng trình soạn thảo văn bản thông thƣờng nhƣ Wordpad, notepad, Microsoft Office Word,… Lƣu ý nên mở bằng Wordpad để có thể thấy đƣợc sự phân chia các dòng cụ thể của file .net.
Các thông số bao gồm:
# Simple Lab: các thông số đƣợc viết sau dấu # chỉ mang ý nghĩa chú thích, không ảnh hƣởng đến bất cứ cấu hình nào của hệ thống lab ảo. Khi chƣơng trình đọc file cấu hình .net sẽ bỏ qua tất cả các đoạn text bắt đầu bằng dấu #.
[localhost]: thông số đƣợc xét đến tại đây là địa chỉ của máy đang chạy chƣơng trình Dynamips. Trong trƣờng hợp này do Dynamips đang chạy trực tiếp trên máy chạy Dynagen nên ta sử dụng từ khoá là localhost. Nếu Dynamips đang chạy trên máy khác, ta có thể thay thế thông số localhost bằng các thông số khác nhƣ địa chỉ IP hoặc là tên máy (hostname).
[[7200]] : thông số đƣợc xét đến tại đây là 7200 và nên nhớ đƣợc đặt dƣới 2 dấu ngoặc vuông. Điều này có nghĩa rằng cấu hình này đƣợc áp dụng cho Dynamips Server đã đƣợc xác định ở trên, trong trƣờng hợp này là localhost. Tất cả các khoảng trắng sẽ đƣợc loại bỏ. Việc đặt dƣới 2 dấu ngoặc vuông để biểu thị rằng các platform đều đƣợc sử dụng thuộc về Localhost. Thông số 7200 biển diễn rằng tất cả các thông số mặc định tạo ra bên dƣới sẽ áp dụng hết cho tất cả các router thuộc loại 7200. Các thông số mặc định này thông thƣờng là các thông số dùng chung về hệ thống của các router nhƣ kích cỡ RAM, hệ điều hành IOS. Các thông số này có thể thay đổi đƣợc theo yêu cầu của ngƣời dùng để phù hợp với cấu hình máy hiện thời.
image = \Program Files\Dynamips\images\c7200-jk9o3s-mz.124-12.bin
# On Linux / Unix use forward slashes:
# image = /opt/7200-images/c7200-jk9o3s-mz.124-7a.image
Từ khoá image xác định vị trí mà ngƣời sử dụng đặt các file IOS trên máy đang chạy Dynamips Server. Đƣờng dẫn này có thể thay đổi đƣợc và tuỳ thuộc
ngƣời dùng. Lƣu ý các khoảng trắng trong file .NET sẽ tự động đƣợc chƣơng trình bỏ qua khi đọc file này.
npe = npe- 400 ram = 160
Mỗi router sẽ sử dụng thông số NPE-400 và đƣợc lựa chọn RAM là 160MB. [[ROUTER R1]]
Các Router sẽ đƣợc xác định bởi các từ khoá ROUTER. Chuỗi tiếp theo chính là tên Router chúng ta sẽ gán cho Router. Chú ý có phân biệt chữ hoa chữ thƣờng. Tên của các Router này chỉ có ảnh hƣởng khi sử dụng bởi chƣơng trình Dynamips/Dynagen. Khi sử dụng câu lệnh đặt tên cho Router ở giao diện CLI cấu hình cho Router sẽ không ảnh hƣởng đến thông số này.
s1/0 = R2 s1/0
Dòng này cung cấp thông tin về cổng Serial 1/0 của Router 1 sẽ đƣợc kết nối đến cổng Serial 1/0 (lƣu ý ở đây là kết nối bằng cáp Serial theo kiểu point-to-point). Dynagen tự động “cài đặt” một bộ chuyển đổi PA-8T trong Port 1 để cung cấp kết nối cho cả R1 và R2.
[[router R2]]
Thông số trên cho biết hiện tại đang tạo thêm Router 2 có tên là R2. Nếu không có thêm thông tin nào bên dƣới của R2, có nghĩa là R2 chỉ đƣợc tạo 1 cổng Serial S1/0 để kết nối ngƣợc lại R1. Chú ý, từ khoá router ở đây chỉ viết thƣờng, không viết hoa. Mặc dù đã tạo R2, tuy nhiên chúng ta không cần xác định bất cứ bộ chuyển đổi nào ở đây do trên cấu hình của Router 1 chúng ta đã cung cấp chuyển đổi.