Getting Started with NetHavoc

NetHavoc is a cost-effective, performance enhancing, and easy-to-use solution for enterprise applications. This guide provides information about how to manage havocs and test the robustness of your applications using NetHavoc.

Overview

NetHavoc is a powerful tool that allows users to test the resilience of the applications. The overall performance of a service is directly linked to the ability to tolerate failures. This aspect of an application/software can be tested by deliberately injecting random faults and failures into the application infrastructure.

NetHavoc enables you to inject various faults into the application infrastructure in the Production and pre-production environment.The after effects of the fault injection can be monitored through NetHavoc powerful monitoring capabilities.

Key Features

  • Havocs can be injected randomly in the production and/or the staging environment and monitor the after effects.
  • Havocs can be injected by the Fault Injection software based on different parameters including:
    • Time (off-peak hours)
    • Probability (of the fault occurring)
    • Spacing (between two faults)
    • Severity (instance(s), server(s), Tier(s), DC going down)
    • Partial fault (disable network interface) to full fault (server power down)
  • Havocs can be injected into different services:
    • Application servers
    • Load balancers

Supported Platforms

You can inject havocs on different platforms:

  • Linux
  • Docker
  • Kubernetes
  • Windows
  • PCF
  • IBM CF

Havoc Category

Using NetHavoc, you can apply the following types of havocs in an application:

  • Starve Application
  • State Change
  • Network Assault

Starve Application

The following types of havocs can be triggered in the Starve Application category:

  • CPU BURST – Consume CPU cores or utilization
  • DISK SWINDLE – Fill up disks on the server
  • I/O SHOOT UP – Increase the I/O activity on devices/nodes
  • MEMORY OUTLAY – Increase RAM utilization.

State Change

The following types of havocs can be triggered in the State Change category:

  • ABORT APPLICATION – Aborts any process/application by name or ID
  • KILL SERVER – Shutdowns or reboot the host.
  • TELEPORT – Travel back or forward by changing the system time.
  • TERMINATE CLOUD INSTANCE – Chooses to terminate a cloud instance.
  • DISTORT QUEUE – Produce message on IBMMQ

Network Assault

The following types of havocs can be triggered in the Network Assault category:

  • DORMANT NETWORK –Induce delay in network traffic.
  • TRIM NETWORK PACKET – Induce Packet Loss over interface(s).
  • INTERSTELLAR– Drop all Ingress/Egress matching traffic
  • DNS BREAKDOWN – Rejects calls to the DNS Server to simulate breakdown.
  • INTRUDE NETWORK – Packet Corruption over the interface.

Accessing NetHavoc

You can acess NetHavocs in NetStorm and NetDiagnostics machines.

Using the Admin menu

To access NetHavoc:

  1. Open a Web browser, type the following URL: https://<hostname/IP>/<product_name>

2. Enter your username and password on the login page:

3. Click Login. The landing screen is displayed.

4. Select Admin > NetHavoc > Manage NetHavoc. The NetHavoc window is displayed.

Using the Test Runs Window in NetStorm

To access NetHavoc:

  1. Select View > Test Runs.
  2. Select the test run check box where you want to create havocs.
  3. Click the NetHavoc button, as shown highlighted in the following figure:

4. The NetHavoc window is displayed:

Using the NetHavoc window, you can analyze havoc reports, view havoc distribution, view havoc state and summary and inject havocs on different platforms:

  • Configure havocs on different platforms.
  • Specify user-defined havoc duration.
  • Schedule configured havocs.
  • Reapply the completed, failed or stopped havocs.
  • Update configured havoc
  • View havoc graphs.
  • Delete configured, completed, stopped or failed havocs.

View Havoc Reports

In the NetHavoc window, the Havoc Report screen is displayed, by default. The Havoc Report window displays a summary of the havocs. You can analyze the information about havoc distribution, havoc states, and the summary of all the havocs.

Havoc State

The Havoc State section of the Havoc Report displays information in the form of a bar graph, where you can analyze the status of the havoc.

The following havoc status are displayed:

  • Running
  • Completed
  • Configured
  • Stopped
  • Scheduled
  • Failed

Havoc Distribution

The Havoc Distribution section of the Havoc Report displays information in the form of a pie chart, where the user can get the details about the types of havoc configured.

Havoc Summary

The Havoc Summary section of the NetHavoc window contains several tabs, namely Overall, Running, Completed, Configured, Stopped, Scheduled, and Failed that display the status of the havocs. Each tab provides detailed information about the injected havocs, such as action, havoc type, tier, server, start time, duration, havoc Id, user, end time, test run, and others.

Havoc Details

To view the details of Havoc in the Havoc Summary table  click on icon , it will display

all the details of the havoc injected.

  • While creating a havoc, when a user selects Dynamic as the Server Selection Mode and applies it, the havoc is displayed as a parent node instead of a general node in the Havoc Summary. Click the  icon to view the child nodes.
  • For Dynamic server selection mode, the ‘End time’ is displayed in parent node along with child nodes, after the havoc is completed.
  • The user can apply, delete, or update a havoc from the Havoc Summary itself if the havoc is at Ready To Apply status.
  • The user can also stop a havoc from the Havoc Summary itself but only when the havoc is at Running status.
  • The ‘Mode’ column in the ‘Reports’ section under the ‘Overall’ tab displays the mode in which a fault was configured. There are two modes – UI and API.

Download Reports

To download reports, click the download icon . You can download the report in PDF, Word, or Excel formats.

Search in Summary Table

To search in the Summary Table, click the  icon.

Expand Havoc Summary Table

To expand the Havoc Summary Table,   click the expand icon.

 

Other Operations

You can also perform the following operations in the NetHavoc window, such as displaying all the havocs, auto refreshing the havoc list, and selecting the time period for displaying the havocs.

Show All Havocs

A user can view all the havocs that are in ‘Ready to Apply’, ‘Running’, ‘Scheduled’,‘Failed’, ‘Stopped’ or ‘completed’ state in any test run. To view all the havocs, select the Show All Havocs check box at the top of the window. 

Auto Refresh

A user can use this option to auto refresh the NetHavoc UI. Upon doing this, the changes are reflected across all users using the same machine.

To do this, select the Auto Refresh check box at the top of the window. 

Time Filter

A user can use this option to select the time period and auto refresh time for NetHavoc UI. To do this, select the time filter icon at the top of the window.

 

Time Period

A user can select the time period for which the data should be displayed in the NetHavoc window. To do this, select the time period from the drop-down list at the upper-right corner of the window. The available options are:

  • Last 10 Minutes
  • Last 30 Minutes
  • Last 1 Hour
  • Last 2 Hour
  • Last 4 Hour
  • Last 6 Hour
  • Last 8 Hour
  • Last 12 Hour
  • Last 24 Hour
  • Custom

Once a user specifies changes the default time period (that is, 4 hours) to a new one (for example, 24 hours) and traverses out from NetHavoc UI to another UI (for example, Dashboard), and after a while traverses back to the NetHavoc UI, then the set time period (24 hours) is maintained and reflected in NetHavoc UI.

Refreshes In

Select the desired time interval for auto refresh from the drop-down list. The available options are:

  • 30 seconds
  •  1 minute
  •  2 minutes
  •  5 minutes
  •  10 minutes
  •  Custom

 

Inject Havocs

NetHavoc enables you to introduce havocs or faults into your system for analyzing how the system responds to the disruptions. You can inject havocs on a host application or container applications.

Prerequisites for Injecting Havocs

Before applying havocs on your system, ensure that the prerequisites mentioned in this section are met.

Host Applications

To inject a fault on a host application, the following prerequisites must be met:

  • The server on which the fault has to be applied must have Ubuntu, CenOS or RHEL operating systems.
  • For CMon type connection, CMon should run on the host machine.
  • Cavisson Agent should be deployed via root user on virtual machines.
  • Cavisson Agent connectivity must be there with *NetHavoc Domain*. Whitelisting of all endpoints needs to be done at the same time.
  • For RPM Cavisson Agent, connection should be installed & running with root user.
  • Packages required:
CommandDescription
fallocate packageManipulates the allocated disk space for a file. The host machine must have the ‘fallocate’ package installed for Fill Up Disk faults.
‘dd’ packageFor I/O Shoot Up, ‘dd’ package should be installed at the NetHavoc machine.
Timedatectl commandneeds to be installed if looking for Teleport havoc.
Iptables & tc commandsneed to be installed on the host machine (in case of other users (cavisson), we might need to allow sudo privileges to run this).

Containerized Applications

To inject a fault on containerized applications, the following prerequisites must be met:

  • Cavisson Agent should be deployed on pods/containers.
  • Cavisson Agent connectivity must be there with *NetHavoc Domain*. Whitelisting of all endpoints needs to be done at the same time.
  • Packages required at K8s containers environment:

Note: These packages are standard packages for Alpine/Ubuntu.

PackageDescription
fallocate’Manipulate the allocated disk space for a file. The host machine must have the ‘fallocate’ package installed for Fill Up Disk faults.
ddFor I/O Shoot Up, ‘dd’ package should be installed for I\O shoot faults.
Bashin Ubuntu sh in alpine commands installed on pods/containers.

 

Docker.sockshould have read permission.

 

Injecting Havocs

You can inject fault(s) in any running instance/server at specified time or random time. NetHavoc simulates failure at a random point in time interval. User needs to provide specific inputs according to faults. System calls some APIs accordingly, which inject the specified fault into the running instance/server.

To inject havocs:

  1. Click the Inject Havoc tab in the NetHavoc window.
  2. Click the required platform tab, such as Linux, Docker, Windows, Kubernetes, PCF or IBM CF.
  3. Select a havoc category that you want to apply in the application.

Note: Based on the selected platform, the configuration options will var

4. Specify the configuration options for the selected havoc.

5. Click one of the following options to apply the havoc:

  • Configure: Click the Configure button to include the havoc in the Havoc Summary table. You can apply the havoc later by clicking the Apply Havoc icon  in the Havoc Summary section.
  • Configure & Apply: Click the Configure & Apply button to apply the havoc in your application.

Select a Category

The havocs to be configured are divided into three categories. Each category has several types. The user needs to choose the category and its type and proceed to configure the havoc. These categories, their types and other functionalities are described below.

 

  •  This is disabled when the selected Havoc Type is Application Termination or Server Termination. For few cases in Network as well.

The havocs are divided into three categories: Starve Application, State Change, and Network Assaults.

Starve Application

The havocs that impact cores, workers, and memory are placed in this category. The havoc types for this category are as follows:

  • CPU Burst: In this Havoc type, NetHavoc consumes CPU resources.
    • Fill Core: The number of cores in the CPU that you want to consume. The maximum limit to fill the cores is N-1, where N is the total number of cores available in the system.
    • CPU %: Burns CPU on mentioned server(s). The default value is 10% and maximum can be 80%.
  • Disk SwindleYou need to specify the partition name of the server. The partition value must be between 1% and 100%. If you select a single server (that is, if you select ‘Specified’ as the Server Selection Mode, and then select one server), a new pop-up window ‘Partition Name’ is displayed instead of just the text box. The ‘Partition Name’ window displays a list of all the file systems and their details. You need to select one from the available list, and then click ‘ADD’. 
  • I/O Shoot Up: I/O Shoot Up impacts the file system by increasing the I/O activity on devices in two modes:
    • By selecting either ‘Read’ or ‘Write’ operations on the blocks based on user-defined Block Size.
    • By selecting ‘Read/Write’ operation on the blocks based on user-defined Block Size.
    • Workers : Number of workers to run in parallel.
    • Block Size : Block size for the selected operation.
    • Block Count : Block count for the selected operation.
  • Memory Outlay: This havoc consumes memory by increasing RAM utilization. You must provide a target memory to be consumed in MB, GB, or percentage.

State Change

The havocs that are process killer, shutdown, and time travel are placed in this category. The havoc types for this category are as follows:

  • Abort Application: NetHavoc can terminate any application on the server(s). Termination can be done using Process ID / Name.
    1: Process ID: The ID of the process that needs to be killed.
    2: Process Name:  Name of the process that needs to be killed.
  • Terminates Cloud Instance: In this havoc type, you can terminate an instance on Azure or AWS or GCP cloud servers. You need to provide the following details:
    • Cloud Type: Cloud type as Azure or AWS or GCP.
    • Azure:
      1: Username / Password: These are Server credentials.
      2: Tenant ID: Enter tenant ID associated with your subscription.
      3: Resource Group Name
      : They are logical containers for a collection of resources that can be treated as one logical instance. You can use resource groups to control all of their members collectively.
      4: Computer Name: Cloud Server name / IP.
    • AWS:
      1: Region Name : Name of the region for AWS server.
      2: Access ID : A credential for accessing the AWS server.
      3: Secret Access Key : A credential for accessing the AWS server.
      4: Instance ID : The ID of the instance for AWS server.
    • GCP:
      1: Google Service Account: A service account is an account for an application instead of an individual end user. Enter Google Service Account and upload Service Account Key.
      2: Project List: Select Project List from drop down.
      3: Instance Name: Select Instance from drop down.
  • Kill Server: You can use this havoc type to impact the machine in two ways:
    1: Shut Down: Selecting this mode shuts down the machine.
    2:Reboot: Selecting this mode reboots the machine.
  • Teleport: This havoc type enables you to control the system time. You can do that in the following two ways:
    1: Future: You can change the system time to future with respect to the defined duration.
    2: Past: You can change the system time to past with respect to the defined duration.
  • Distort Queue: This havoc produce message on IBM MQ .
    1: Server Name / IP: Enter the IBM MQ Server IP/Host name.
    2: Port: Enter the port where IBM MQ is listening.
    3: Queue Manager: Manages the resources associated with a queue that it owns. Enter Queue Manager.
    4: Channel: Transfers messages between queues.
    5: Queue: Holds the message until the receiver is ready.
    6: Message: Enables you to upload a message file or type your message

 

 

Network Assaults

The havocs that introduce network corruption, latency, packet loss and others are placed in this category. The havoc types for this category are as follows:

            • Intrude NetworkYou can corrupt network incoming packets from the server(s) and outgoing packets to the server(s). The default value is 10% and maximum can be 50% corruption.
              Network Interface:  It is the point of interconnection between a computer and a private or public network. The drop-down suggests all the interfaces that has been added on the server.
              Corruption Percentage: The % of network packets needs to be corrupted         or manipulated.
            • Trim Network Packets: You can apply loss in the incoming and outgoing packets to the server(s) on user-defined interface. The default value is 10% and maximum can be 50% loss.
              Network Interface: Provide the network interface.
              Loss: The % of packets lost in the network.
            • Dormant NetworkUsing this havoc type, you can generate delay in the packet receiving and sending to the server(s). You can provide a fixed value or a range (in milliseconds).
              Network Interface: Provide the network interface.
               It is the point of interconnection between a computer and a private or public network. The drop-down suggests all the interfaces that has been added on the server.
              Mode:
              Select the mode whether you want to delay the network traffic by a specified amount of time or between a range of time.
              1: Specified:
              Provide integer value of the field. The packets will be delayed by the specified amount of time.
              2: Random :
              The packets will be delayed by any time between the two given      values.
              When the mode is ‘Specified’ :Delay Value :The specified amount of time (in milliseconds) by which network traffic is to be delayed.When the mode is ‘Random’ :
              1: First Delay Value :  The first value of the range of time (in milliseconds) by which network traffic is to be delayed.
              2: Second Delay Value :
              The second (end) value of the range of time (in milliseconds) by which network traffic is to be delayed.
            • DNS Breakdown: With the help of this havoc type, you can reject the calls on DNS server on a specified or all interfaces. You can block the traffic coming from a single IP or a range of IPs. You can also block the traffic based on either TCP or UDP protocol.
              Network Interface
              It is the point of interconnection between a computer and a private or public network. The drop-down suggests all the interfaces that have been added on the server.
              Server Mode: 
              Select the mode for which you want to reject the calls on a DNS server (such as Single, Range, or IP with CIDR).
              IP/Host Address: 
              The IP address for which you want to impact the network traffic.
              – CIDR Value (only when ‘IP with CIDR’ is the Server Mode): The  Classless Inter-Domain Routing(CIDR) value of the IP address.
              Protocol: The protocol that you want to be impacted, such as TCP or UDP.
            • Interstellar: You can choose this havoc type to drop all ingress/egress matching traffic on a specified or all interfaces.  You can block the ingress/egress traffic based on a single IP or a range of IPs.You can also block the ingress/egress traffic based on TCP/UDP protocol.
              Network Interface
               It is the point of interconnection between a computer and a private or public network. The drop-down suggests all the interfaces that have been added on the server.
              IP ModeSelect the mode for which you want to reject the calls on the server (such as Single, Range, or IP with CIDR).
              IP/Host Address: The IP address for which you want to impact the network traffic.
              – CIDR Value (only when ‘IP with CIDR’ is the Server Mode): The  Classless Inter-Domain Routing(CIDR) value of the IP address.
              Protocol : The protocol that you want to be impacted.
              Direction : Select the network traffic type you want to be impacted.
              – 
              Destination Port : Port of the IP for which you want to impact the network traffic. Provide comma-separated multiple ports.

Injection Time

Using the Injection Time options, you can specify the time at which the faults are to be injected based on the configurations. You have the following options for fault injection time:

  • Current: Here, the system captures the current time and injects havocs for the specified duration from current date and time.
  • Specified: Here, you need to specify the exact date and time and duration (in HH:MM:SS format) at which the configured fault is to be injected. By default, the specific time is scheduled at the delay of 10 minutes from the current time.
  • Random: You can specify the start date and time and end date and time along with the duration (in HH:MM:SS format) for injecting faults. The system picks any random time between the specified time and injects faults based on the provided duration. By default, the random time duration is 1 hour.

Duration

The Duration section displays the information about the total duration of the injected havoc. This information is divided into three stages – Shoot Up, Stable, and Tumble. This information is also displayed in the form of a graph.

  • Shoot Up: This is the ramp-up phase.
  • Stable: This is the duration phase.
  • Tumble: This is the ramp-down phase.

This is disabled when the selected Havoc Type is Application Termination or Server Termination.

Targets

In the Target section, you need to specify tier, server selection mode, server, and connection from the corresponding drop-down lists. Other options change depending on the category and the havoc type that the user selects, which is explained earlier.

Platform-specific Information

You can inject havocs on different platforms including Linux, Kubernetes, Docker, Windows, PCF and IBM CF. Depending on the chosen platform, you need to specify where havocs will be applied. 

Server Info

On a Linux platform, you need to select the various server information, as required.

  • Tier: The tier on which havoc is to be injected.
  • Server Selection Mode: Choose if you want to select a specified or a dynamic server.
    • Specified: You can select specific server(s).
    • Dynamic: You can select any number or any percentage of available servers.
  • Server: Based on specified or dynamic server selected earlier, select the server on which havoc is applied.
    • ALL (Dynamic server): If you select this option, all the servers are selected.
    • ANY (Dynamic server): Provide any number of servers.
    • ANY % (Dynamic server): Provide any percentage of available servers.
  • Connection Type: Havocs are injected on the server through these connection types (modes) – SSH and Cavisson Agent.

Kubernetes Info

To inject havocs on Kubernetes, click the Kubernetes tab in the Inject Havoc window. Provide the following information in the Kubernetes Info section:

  • Node List: Select the node containing the pods where your containers are running.
  • Pod List: Select the pod that hosts the required containers.
  • Container List: Specify the containers where you want to inject havocs. You can select multiple containers running on the selected pod.

Containers Info

On the Docker platform, provide the following information in the Containers Info section:

  • Tier: Select the tier name where the required server is running.
  • Server: Specify the CMON server (Cavisson Agent) where the required containers are running.
  • Containers name: Specify the containers where you want to inject havocs. You can select multiple containers running on the selected server.

PCF Info

The PCF Info section enables you to provide information about the PCF environment where you want to apply havocs using NetHavoc.

  • Cluster: Select the cluster where the required Diego cell is running.
  • Diego Cell: Specify the Diego cell that will run and manage your containers.
  • App Name: Specify the application having all the containers where you want to apply havocs.
  • Container ID: Specify the ID of the containers where you want to inject havocs.

IBM Cloud CF Info

The IBM Cloud CF Info section enables you to provide information about the IBM environment where you want to apply havocs using NetHavoc.

  • App Name: Specify the application having all the instances where you want to apply havocs.
  • Instance ID: Specify the ID of the instances where you want to inject havocs.

Windows Server Info

The Server Info section in the Windows tab enables you to provide information about the Windows environment where you want to apply havocs using NetHavoc.

  • Tier: Select the tier that contains the server where you want to inject havocs.
  • Server: Specify the CMON server (Cavisson Agent) where the required containers are running.
  • Server Selection Mode: Specify the mode for selecting a server. You can select either Specified or Dynamic mode.

Apply Havocs

After configuring all the settings, you can save the havoc for later use or apply the havoc in your application.

Configure Havoc

If you want to include the new havoc in the Havoc summary table, click the Configure Havoc button in the Inject Havoc window. A summary of the configured havoc is displayed in the Havoc Summary window.

Click Ok to close this window. The havoc will be displayed in the havoc summary section in the Havoc Report tab. You can continue to create more havocs in the Inject havoc window.

Click the Apply Havoc icon in the Havoc Summary section to apply all the configured havocs that need to be injected for the specified start time and duration. This displays the Havoc Summary window confirming the activation of the havoc.

Configure & Apply Havoc

After configuring the settings, if you click the Configure & Apply Havoc button, the selected havoc is applied and the user is redirected to the Reports window where the various details of the havoc can be viewed in the Havoc Summary section.

If you apply the havoc on multiple servers, and then click the Configure Havoc or Configure & Apply Havoc, button a havoc summary table displays a list of all those servers whose CMON is not running along with following two options:

  • Proceed with remaining Servers
  • Abort Havoc

If you select the ‘Proceed with remaining Servers’ option, NetHavoc traverses to the ‘Report’ section and another havoc summary table pops up listing servers which are successfully injected with havocs. When the ‘Abort Havoc’ option is selected, the whole havoc is terminated.

You can also click Reset to change the configurations of the havoc before applying.

While selecting the server, if CMON isn’t running, an error message is displayed for the user, such as “CMON is not running on Server xx.xx.xx.xx”.

New servers can be upscaled into the running tests of NetHavoc. Users can apply havocs to the upscaled servers both specifically and dynamically. These servers can also be upscaled to the havocs that are scheduled in running tests dynamically.

Manage Havocs

After creating havocs, you can easily update, delete, apply, reapply, and stop a havoc from the Havoc Summary table:

Update a Havoc

To update a havoc:

  1. Click Update Havoc icon  in the Havoc Summary section to edit/update all the havocs applied in the system.
  2. Click Yes in the confirmation message.

3. Edit the Havoc settings:

4. Click Update. You can view detailed information about the applied havocs, such as category, havoc type, time mode, start time, duration, connection, tier, server, user, havoc details, status, and output.

Note: A havoc can be updated only in the case if status is Ready to Apply or Scheduled. If it reaches the Running status, the havoc cannot be updated.

Stop a Havoc

Click the Stop Havoc icon in the Havoc Summary section to stop the injected havoc forcefully when it is in Scheduled status. Click the Stop Havoc button to stop the injected havoc.

Delete a Havoc

Click the Delete Havoc icon  in the Havoc Summary section to delete an injected havoc from the system.  This displays the Havoc Summary window confirming the deletion of the havoc.

Note: The havoc can be deleted only in the case if status is Ready to Apply. If the status is Scheduled or Running, the havoc cannot be deleted.

Reapply a Havoc

Click the Reapply Havoc icon in the Havoc Summary section to reapply all the havocs that are in the Completed, Stopped or Failed status. The havocs cannot be reapplied if they are in any other status.

  1. Click the Reapply Havoc icon  in the Havoc Summary section to reapply a havoc applied in the system.
  2. Click Yes in the confirmation message.
  3. Click the Reapply button:

4. This displays a window where the user can change only the Injection Time of that havoc.

5. Click Reapply havoc to apply the changes.

Other Operations

You can also perform the following operations in the NetHavoc window, such as displaying all the havocs, auto-refreshing the havoc list, and selecting the time period for displaying the havocs.

Show All Havocs

A user can view all the havocs that are in ‘Ready to Apply’ or ‘Running’ or ‘Scheduled’ state in any test run. To view all the havocs, select the Show All Havocs check box at the top of the window.

Auto Refresh

A user can use this option to auto refresh the NetHavoc UI. Upon doing this, the changes are reflected across all users using the same machine.

To do this, select the Auto Refresh check box at the top of the window, and then select the desired time interval for auto refresh from the drop-down list. The available options are:

  • 30 seconds
  • 1 minute
  • 2 minutes
  • 5 minutes
  • 10 minutes

Time Filter

A user can use this option to select the time period and auto refresh time for NetHavoc UI. To do this, select the time filter icon at the top of the window. 

Time Period

A user can select the time period for which the data should be displayed in the NetHavoc window. To do this, select the time period from the drop-down list at the upper-right corner of the window. The available options are:

  • Last 10 Minutes
  • Last 30 Minutes
  • Last 1 Hour
  • Last 2 Hours
  • Last 4 Hours
  • Last 6 Hours
  • Last 8 Hours
  • Last 12 Hours
  • Last 24 Hours
  • Custom

Once a user specifies changes the default time period (that is, 4 hours) to a new one (for example, 24 hours) and traverses out from NetHavoc UI to another UI (for example, Dashboard), and after a while traverses back to the NetHavoc UI, then the set time period (24 hours) is maintained and reflected in NetHavoc UI.

Configure Havoc Modes

In the NetHavoc window, click the Configuration tab to inject havoc on the server using one of the following three modes:

  • Cavisson Agent
  • Secure Shell (SSH)
  • Mixed Mode

Cavisson Agent

When a user selects this mode, havocs are injected on the server through Cavisson Agent. To select the Cavisson Agent mode:

  1. Click the Configuration tab.
  2. By default, the Cavisson Agent option is selected. Keep the default selection.
  3. Click Save.

SSH

When a user selects this mode, havocs are injected on the server through Secure Shell mode. SSH is used to open a new connection to a remote machine.

If you select “SSH type connection”, username and password must be entered. The user can keep the same username and password for all tiers and servers. Users can also do Proxy Settings. One test button will be there. On clicking the test button, the UI will try to connect to the server. User needs to  Select Tier and Server to test SSH connection and then Click Test. Click Save to save the details

 

Mixed Mode

When a user selects this mode, havoc is injected on the server through a combination of both the modes – Cavisson Agent and SSH. If “Mixed Mode connection” is chosen by the user, username and password must be entered. The user can keep the same username and password for all tiers and servers. One test button will be there. On clicking the test button, the UI will try to connect to the server.  User needs to  Select Tier and Server to test SSH connection and then Click Test. Click Save to save the details.

Memory Havoc Limitations

NetHavoc provides several mechanisms for increasing CPU load, consuming memory, and consuming disk I/O space in a system. However, the Kernel also helps to balance the application load in your system. Thus, when a high amount of memory is filled by Nethavoc, the OOM killer process is used by the Kernel to free up memory. OOM_Killer can kill the Nethavoc agent (cmon process). This might break the connection with the Nethavoc client and generate an error.

Design a Scenario in NetHavoc

You can configure NetHavoc scenarios with a set of different or same types of havocs. The havocs present in a scenario will have a delay between them. Delay is introduced due to server stabilization.  By default, the delay is 5 seconds.

You can perform several operations on a NetHavoc scenario including Copy Scenario, Archive Scenario, Scenario details (Scenario descriptions), Run Scenario, Schedule Scenario, View Report, Stop Scenario, Restore Scenario, Delete Scenario, Delete Havoc, Update Havoc.

Create a Scenario

To create a NetHavoc scenario:

  1. Click the Design Scenario tab.
  2. Click the Create Scenario button in the Design Scenario window. The NetHavoc Scenario window is displayed:

3. Provide a scenario name, description of the scenario, and theory that specifies the expected outcome of the scenario.

4. Select the Only me to provide permissions:

  • If this option is selected, then only that scenario user can view, edit and run the scenario.
  • If this option is not selected, then permissions will be handled through ACL.

5. Select a scenario type from the Scenario Settings drop-down list:

  • Single Havoc Type: In this type of scenario, you can configure only the same type of havocs.
  • Multiple Have Type: In this type of scenario, you can configure different types of havocs.

Havoc Summary Table

In this Table you can find a list of Havocs that are configured in the scenario along with their details. Users can edit or delete any Havoc from the Scenario.

Available Scenario

Users can view all the available scenarios on Design Scenario UI and perform actions like run a scenario, stop a scenario, add a havoc in scenario, schedule scenario, copy a scenario, archive a scenario, View Report of a Scenario, Update the Havoc configuration from the scenario and delete a Havoc from the scenario.

Run a Scenario

Click the Run Now icon  in the Design Scenario window to run a scenario in NetHavoc.

Stop a Scenario

Click the Stop Scenario icon  in the Design Scenario window to stop a running scenario in NetHavoc.

Add a Havoc in Scenario

Click the Add icon in the Design Scenario window to add a havoc in scenario:

Schedule a Scenario

To schedule a scenario in NetHavoc:

  1. Click the Design Scenario tab.
  2. Expand the menu and select the Schedule Scenario option:

3. Specify the required duration for running the scenario.

4. Click Proceed.

Copy a Scenario

To copy a scenario:

  1. Click the Design Scenario tab.
  2. Expand the menu and select the Copy option:

3. The Copy Scenario dialog box is displayed. Provide a name for the copied scenario.

4. Click OK. A copy of the scenario is displayed in the Design Scenario window. 

Archive a Scenario

To archive a scenario:

  1. Click the Design Scenario tab.
  2. Expand the menu and select the Archive option:

3. A confirmation message is displayed. Click Yes.

Users can view all the available scenarios on Design Scenario UI and perform actions like delete a scenario, restore a scenario.

 

Delete a Scenario

1: Click the Delete icon in the Archive Scenario window.

2: Click Yes in the Confirmation message.

 

Restore a Scenario

1: Click the restore icon   in the Archive Scenario window.

2: Click Yes in the Confirmation message.

 

Update the Havoc Configuration in Scenario

To edit the havoc configuration:

  1. Click the Update icon  to edit the havoc configuration in a scenario.
  2. Specify the new configuration. For example, change the settings of a CPU Burst havoc:

3. Click Update. The havoc configuration is modified.

Delete a Havoc from the Scenario

  1. Click the Delete icon  in the Design Scenario window:

2. Click Yes in the confirmation message.

Draft Scenarios

Users can view all the Drafts scenarios on Design Scenario UI and can work combinely as a team while designing a scenario as one can save a scenario as a draft and he or someone else from the team can access it to continue working on it from where he or she has left.

View Scenario Reports

To view a scenario report:

  1. Click the Scenario Report tab.
  2. Expand the menu and select the View Report option:

3. The scenario report is displayed. Click the Expand icon next to the Re-Run button to view a detailed report:

 

  • Re-Run a Scenario
    1: Click the Re-Run Button in the Scenario Report Tab.2:  Re-Run a Scenario for Current, Specified, or Random Time.  
  • View Graph   

1. Click the Graph icon to view the Graph of any Havoc from the Scenario.

2. Graph will be displayed.

 

  • Scenario name
  1. Select Scenarios from the drop-down list to view the Scenario Report. 
  2.  Scenario Report for the Selected scenarios will be displayed.
  • Top Run

Provide the number of Runs you want to view in your Scenario Report. For example, if you specify 5, the top 5 Runs of the Selected Scenario will be displayed in the Scenario Report.