How to Resolve Connection Issues with SimpleRisk VM

Introduction

This guide is meant to help resolve any issues connecting a SimpleRisk VM instance to a network and help setup a static IP. This generally will not be necessary for most users unless you are not running DHCP on your network. 

How do I know if I’m affected?

If you are unable to get your SimpleRisk VM network adapter assigned an IP and it will not otherwise connect to other machines on the network. You will want to confirm your adapter settings in your VM software before proceeding to ensure the VM actually has a proper network adapter setup. If the adapter settings appear correct and you still can’t get an IP assigned then you are most likely affected.

How do I fix the issue?

First we need to identify the ethernet interfaces.

To quickly identify all available Ethernet interfaces, you can use the ip command as shown below.

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

    link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0

    inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0

       valid_lft 3257sec preferred_lft 3257sec

    inet6 fe80::216:3eff:fee2:5242/64 scope link

       valid_lft forever preferred_lft forever

Another application that can help identify all network interfaces available to your system is the lshw command. This command provides greater details around the hardware capabilities of specific adapters. In the example below, lshw shows a single Ethernet interface with the logical name of eth0 along with bus information, driver details and all supported capabilities.

sudo lshw -class network

  *-network

       description: Ethernet interface

       product: MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]

       vendor: Mellanox Technologies

       physical id: 0

       bus info: pci@0004:01:00.0

       logical name: eth4

       version: b0

       serial: e4:1d:2d:67:83:56

       slot: U78CB.001.WZS09KB-P1-C6-T1

       size: 10Gbit/s

       capacity: 10Gbit/s

       width: 64 bits

       clock: 33MHz

       capabilities: pm vpd msix pciexpress bus_master cap_list ethernet physical fibre 10000bt-fd

       configuration: autonegotiation=off broadcast=yes driver=mlx4_en driverversion=4.0-0 duplex=full firmware=2.9.1326 ip=192.168.1.1 latency=0 link=yes multicast=yes port=fibre speed=10Gbit/s

       resources: iomemory:24000-23fff irq:481 memory:3fe200000000-3fe2000fffff memory:240000000000-240007ffffff

Ethernet Interface Logical Names

Interface logical names can also be configured via a netplan configuration. If you would like control which interface receives a particular logical name use the match and set-name keys. The match key is used to find an adapter based on some criteria like MAC address, driver, etc. Then the set-name key can be used to change the device to the desired logial name.

network:

  version: 2

  renderer: networkd

  ethernets:

    eth_lan0:

      dhcp4: true

          match:

            macaddress: 00:11:22:33:44:55

          set-name: eth_lan0

Ethernet Interface Settings

ethtool is a program that displays and changes Ethernet card settings such as auto-negotiation, port speed, duplex mode, and Wake-on-LAN. The following is an example of how to view supported features and configured settings of an Ethernet interface.

sudo ethtool eth4

Settings for eth4:

        Supported ports: [ FIBRE ]

        Supported link modes:   10000baseT/Full

        Supported pause frame use: No

        Supports auto-negotiation: No

        Supported FEC modes: Not reported

        Advertised link modes:  10000baseT/Full

        Advertised pause frame use: No

        Advertised auto-negotiation: No

        Advertised FEC modes: Not reported

        Speed: 10000Mb/s

        Duplex: Full

        Port: FIBRE

        PHYAD: 0

        Transceiver: internal

        Auto-negotiation: off

        Supports Wake-on: d

        Wake-on: d

        Current message level: 0x00000014 (20)

                              link ifdown

        Link detected: yes

IP Addressing

The following section describes the process of configuring your systems IP address and default gateway needed for communicating on a local area network and the Internet.

Temporary IP Address Assignment

For temporary network configurations, you can use the ip command which is also found on most other GNU/Linux operating systems. The ipcommand allows you to configure settings which take effect immediately, however they are not persistent and will be lost after a reboot.

To temporarily configure an IP address, you can use the ip command in the following manner. Modify the IP address and subnet mask to match your network requirements.

sudo ip addr add 10.102.66.200/24 dev enp0s25

The ip can then be used to set the link up or down.

ip link set dev enp0s25 up

ip link set dev enp0s25 down

To verify the IP address configuration of enp0s25, you can use the ip command in the following manner.

ip address show dev enp0s25

10: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

    link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0

    inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0

       valid_lft 2857sec preferred_lft 2857sec

    inet6 fe80::216:3eff:fee2:5242/64 scope link

       valid_lft forever preferred_lft forever6

To configure a default gateway, you can use the ip command in the following manner. Modify the default gateway address to match your network requirements.

sudo ip route add default via 10.102.66.1

To verify your default gateway configuration, you can use the ip command in the following manner.

ip route show

default via 10.102.66.1 dev eth0 proto dhcp src 10.102.66.200 metric 100

10.102.66.0/24 dev eth0 proto kernel scope link src 10.102.66.200

10.102.66.1 dev eth0 proto dhcp scope link src 10.102.66.200 metric 100

If you require DNS for your temporary network configuration, you can add DNS server IP addresses in the file /etc/resolv.conf. In general, editing /etc/resolv.conf directly is not recommanded, but this is a temporary and non-persistent configuration. The example below shows how to enter two DNS servers to /etc/resolv.conf, which should be changed to servers appropriate for your network. A more lengthy description of the proper persistent way to do DNS client configuration is in a following section.

nameserver 8.8.8.8

nameserver 8.8.4.4

If you no longer need this configuration and wish to purge all IP configuration from an interface, you can use the ip command with the flush option as shown below.

ip addr flush eth0

Flushing the IP configuration using the ip command does not clear the contents of /etc/resolv.confYou must remove or modify those entries manually, or re-boot which should also cause /etc/resolv.confwhich is a symlink to /run/systemd/resolve/stub-resolv.confto be re-written.

Dynamic IP Address Assignment (DHCP Client)

To configure your server to use DHCP for dynamic address assignment, create a netplan configuration in the file /etc/netplan/99_config.yaml. The example below assumes you are configuring your first Ethernet interface identified as enp3s0.

network:

  version: 2

  renderer: networkd

  ethernets:

    enp3s0:

      dhcp4: true

The configuration can then be applied using the netplan command.

sudo netplan apply



Summary


This FAQ has gone over resolving connection issues with SimpleRisk, if this did not work for you or you feel the documentation requires more information or simply have further questions please contact us a support@simplerisk.com and we will be happy to help.