概述NISTnet是一款Linux®下的网络模拟软件,它能让Linux服务器像路由器一样模拟各种网络条件,如拥塞丢失,包重排序,或者带宽非对称等情况。NISTnet有一个基于X的用户接口,它也是Linux的核心模块扩展。作为一种工具,在NISTnet上可以进行可控的,可重复的实验,这些实验可以是网络特性敏感/自适应的应用,也可以通过简单的实验室环境设定控制协议。NISTnet工作在IP层时能模拟被不同广域网环境影响后的端到端的临界性能特性。NISTnet也支持用户对系统附加的自定义分组管理。图1所示是NISTnet的典型配置。
图1. 典型的NISTnet示例
本文提供下列使用说明:
- 安装NISTnet软件
- 配置网络接口卡为路由器
- 配置TDMoP产品
- 使用NISTnet
表1. 适用于NISTnet的TDMoP器件
硬件要求NISTnet的版本基于Red Hat® Linux。本安装所用的硬件必须与Red Hat Linux 3.0企业版或者更高版本兼容。为了成功安装、配置和运行NISTnet,硬件必须满足以下最低要求。
- 10GB硬盘
- 256MB RAM
- 两块网络接口卡(NIC)
首先,下载压缩文件到目录(例如/usr/local/src/)。然后用以下命令解压文件:
tar –zxvf nistnet-2.4.1.rad_patches.tar.gz
源文件已被解压缩到压缩文件目录下的NISTnet目录中(例如/usr/local/src/nistnet)。
在Linux源目录下运行以下命令:
- 进入目录usr/src/linux-2.4.20-8,然后输入:
make mrproper - 用下面的命令复制内核配置文件:
cp./.config - 返回目录/usr/src,然后输入:
make oldconfig
make dep- 进入NISTnet目录:
cd /usr/local/src/nistnet- 运行以下命令:
make clean
./configure
make
make install - 返回目录/usr/src,然后输入:
配置网络接口卡若要把这两个NIC卡配置为路由器,则必须遵循下面的步骤。
- 进入Main Menu > System SetTIngs > Network。图2所示为网络配置界面。
图2. 此网络配置界面将会在您开始配置NIC卡为路由器时d出。
- 选择NIC eth1或者eth2。如图3和图4所示,分别配置NIC卡。在 Address,Subnet Mask,以及Gatway提示处添加指定值。
图3. 配置eth1 NIC
图4. 配置eth2 NIC
图5. 把NISTnet用作WAN模拟器的典型时钟恢复设置
下面是TDMoP主设备在T1成帧模式下采用CESoP仿真的典型配置。该TDMoP主设备工作在环回模式。
TOP (T1) Main Menu>General ConfiguraTIon 1. Source Mac address ... (0020D224D33C) 2. Source IP 1 ... (10.10.10.1) 3. Source IP 2 ... (10.10.10.1) 4. IP Mask ... (255.255.255.0) 5. Default Gateway ... (10.10.10.99) 6. Max HDLC Frame Size[1 - 1800] ... (1800) 7. ARP wrong IP (CPU) 8. Wrong IP (Discard) 9. Not Eth Type (CPU) 10. ARP my IP (CPU) 11. Not UDP type (CPU) 12. Not TDMoIP type (CPU) 13. Bundle number does not exist (Discard) 14. OAM packet (CPU) 15. Auto Negotiation (YES) 16. Rate & Duplex > (100M_FDX) 17. Default ------------------------------------------------------------- Main Menu>Interface Configuration>T1 Screen Configuration Link Number[1 - 8] ... (1) 1. Frame Type > (SF) 2. RX Config Gain Limit (SHORT Haul) 3. OOS Code type (OOS Code) 4. Data TX/RX OOS[0 - ff] ... (7E) 5. Idle Code[0 - ff] ... (7E) 6. TX/RX Signal Mark code[0 - 3] ... (F) 7. TX/RX Signal Space code[0 - 3] ... (1) 8. TX/RX OOS Signal MASK > (Space) 9. Clock Source > (LoopBack) 10. DSU / CSU (DSU) 11. DSU Mask > (0-133 feet) 12. Link Sync (62411) 13. Connect/Disconnect (Connect) 14. Recovery Clk Mode > (Auto) 15. Master's Side Clock Source > (Stratum 1) 16. Network type > (Router based) ------------------------------------------------------------- Main Menu>Bundle Configuration>CES Bundle Configuration Bundle ID[0 - 4095] ... (1) 1. Tx Bundle Destination > (Ethernet) 2. Rx Bundle Destination > (PCM) 3. Tx UDP Bundle[0 - 8191] ... (2) 4. Rx UDP Bundle[0 - 8191] ... (2) 5. Source IP addr > (IP 1) 6. Destination Main Mac addr ... (000000000000) 7. Destination IP address ... (10.10.11.1) 8. Next Hop ... (0.0.0.0) 9. Number Of VLAN Tags[0 - 2] ... (0) 10. IP Tos[0 - 255] ... (0) 11. IP TTL[0 - 255] ... (128) 12. PSN Type > (IP) 13. Far End Interface Type > (T1 D4) 14. Payload Type > (Data) 15. Switches Sanity check (Discard) 16. Clock Recovery (Disable) 17. Differential Time [Usec][1 - 512000] ... (5000) 18. Max Buffer Size [Usec][0 - 512000] ... (0) 19. Number Of Frames[1 - 1500] ... (80) 20. Reordering (YES) 21. L Bit & OOS > (OOS Mode Conditioning) 22. Redundant (Disable) 23. RTP Mode (Disable) 24. Connect/Disconnect (Connect) 25. Next Hop Type (IP) 26. Enable JB Reset > (On N Times) 27. Window Size[2 - 127] ... (10) ------------------------------------------------------------- Main Menu>Bundle Assignment 1. Link Number [1 - 8] ... (1) 2. Bundle ID[0 - 4095] ... (1) 3. TS Route Type > (Coupled) 4. Timeslot Assignment [1-24] ... (1) 5. TS width > (8 Bits)下面是TDMoP从设备在T1成帧模式下采用CESoP仿真的典型配置。该TDMoP从设备完成时钟恢复功能。
TOP (T1) Main Menu>General Configuration 1. Source Mac address ... (0020D224A346) 2. Source IP 1 ... (10.10.11.1) 3. Source IP 2 ... (10.10.11.1) 4. IP Mask ... (255.255.255.0) 5. Default Gateway ... (10.10.11.99) 6. Max HDLC Frame Size[1 - 1800] ... (1800) 7. ARP wrong IP (CPU) 8. Wrong IP (Discard) 9. Not Eth Type (CPU) 10. ARP my IP (CPU) 11. Not UDP type (CPU) 12. Not TDMoIP type (CPU) 13. Bundle number does not exist (Discard) 14. OAM packet (CPU) 15. Auto Negotiation (YES) 16. Rate & Duplex > (100M_FDX) 17. Default ------------------------------------------------------------- Main Menu>Interface Configuration>T1 Screen Configuration Link Number[1 - 8] ... (1) 1. Frame Type > (SF) 2. RX Config Gain Limit (SHORT Haul) 3. OOS Code type (OOS Code) 4. Data TX/RX OOS[0 - ff] ... (7E) 5. Idle Code[0 - ff] ... (7E) 6. TX/RX Signal Mark code[0 - 3] ... (F) 7. TX/RX Signal Space code[0 - 3] ... (1) 8. TX/RX OOS Signal MASK > (Space) 9. Clock Source > (Recovery) 10. DSU / CSU (DSU) 11. DSU Mask > (0-133 feet) 12. Link Sync (62411) 13. Connect/Disconnect (Connect) 14. Recovery Clk Mode > (Auto) 15. Master's Side Clock Source > (Stratum 1) 16. Network type > (Router based) ------------------------------------------------------------- Main Menu>Bundle Configuration>CES Bundle Configuration Bundle ID[0 - 4095] ... (1) 1. Tx Bundle Destination > (Ethernet) 2. Rx Bundle Destination > (PCM) 3. Tx UDP Bundle[0 - 8191] ... (2) 4. Rx UDP Bundle[0 - 8191] ... (2) 5. Source IP addr > (IP 1) 6. Destination Main Mac addr ... (000000000000) 7. Destination IP address ... (10.10.10.1) 8. Next Hop ... (0.0.0.0) 9. Number Of VLAN Tags[0 - 2] ... (0) 10. IP Tos[0 - 255] ... (0) 11. IP TTL[0 - 255] ... (128) 12. PSN Type > (IP) 13. Far End Interface Type > (T1 D4) 14. Payload Type > (Data) 15. Switches Sanity check (Discard) 16. Clock Recovery (Enable) 17. Differential Time [Usec][1 - 512000] ... (5000) 18. Max Buffer Size [Usec][0 - 512000] ... (0) 19. Number Of Frames[1 - 1500] ... (80) 20. Reordering (YES) 21. L Bit & OOS > (OOS Mode Conditioning) 22. Redundant (Disable) 23. RTP Mode (Disable) 24. Connect/Disconnect (Connect) 25. Next Hop Type (IP) 26. Enable JB Reset > (On N Times) 27. Window Size[2 - 127] ... (10) ------------------------------------------------------------- Main Menu>Bundle Assignment 1. Link Number [1 - 8] ... (1) 2. Bundle ID[0 - 4095] ... (1) 3. TS Route Type > (Coupled) 4. Timeslot Assignment [1-24] ... (1) 5. TS width > (8 Bits)使用NISTnet运行NISTnet之前,在计算机启动时执行以下命令:
modprobe nistnet
这条命令可以是登录脚本的一部分,或者用户可以自行创建一个可执行文件。图6所示为一个名为"statnist"的可执行文件的示例脚本。
图6. 名为"statnist"的可执行文件的示例脚本
如果用户创建了一个名为"statnist"的可执行文件,NISTnet的GUI命令行就变为:
startnist
NISTnet的界面命令行是:
xnistnet
NISTnet的非界面命令行变是:
cnistnet
图7所示为NISTnet的GUI界面。
图7. NISTnet的GUI界面
在GUI界面用户可以输入源地址、目的地址和网络损耗,例如以ms为单位的平均延时和延时差值、丢包率以及包重复率。输入值后,用户就可以更新内容。更新完毕后,点击"Emulator is Off"按钮使其变为"Emulator is On",此时打开了模拟器。图8所示为打开模拟器后的GUI图。
图8. 模拟器打开后的NISTnet的GUI界面
结论通过NISTnet可以将单台的Linux PC机设置成为路由器,可以模拟各种网络环境。NISTnet的更多信息请访问NISTnet网站:www-x.antd.nist.gov/nistnet/index.html。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)