Assign Multiple IP Addresses to Virtual Machine

How can we help?
< All Topics
Print

Assign Multiple IP Addresses to Virtual Machine

Each CloudRaya Virtual Machine (VM) comes with one network interface (NIC) attached to it. This NIC can be assigned one or more public and private IP addresses.

Assigning multiple IP addresses to a Virtual Machine offers the following capabilities:

  • Increased Connectivity Options: Having multiple IP addresses allows for enhanced connectivity options, enabling the VM to communicate with various external services or devices.

  • Network Segmentation: You can use different IP addresses for distinct purposes, helping in organizing and segmenting your network traffic efficiently.

  • Improved Service Isolation: Assigning multiple IPs facilitates better isolation of services running on the VM, reducing potential conflicts and enhancing overall service stability.

It's important to note that while you can assign multiple private IP addresses to a CloudRaya VM, there is only one network interface (NIC) per VM.

For creating Private IPs, there is no limitation, and it depends on the number of VPC subnets you have. However, the restriction on creating Public IPs for translating these Private IPs is linked to your account limitations. To check your account limits, visit the following page: https://cp.cloudraya.com/profile

Adding New Public and Private IP to a Virtual Machine

You can add a private or a public IP to your existing VM by following these steps:

Once you are logged into the CloudRaya User panel, on the left of the dashboard, navigate to the ‘Resources > Virtual Machines‘ menu.

Access the details of the VM you want to add an IP to.

In the VM details page, select the ‘Public & Private IP’ tab.

Here, you’ll see details of the current Private and Public IPs your VM is using.

Add Private IP Address

To add a new Private IP, click on “+ Acquire New Private IP.”

A confirmation button will appear. Even though you added the Private IP via the panel, you still need to configure it manually on the VM’s OS level. CloudRaya will not automatically configure the IP address obtained on the Virtual Machine.

If so, click “Acquire.”

The new Private IP will appear in the list. Private IPs are free of charge.

Add Public IP Address

Optionally, you can add a new Public IP and link it to the previously added Private IP.

To add a new Public IP, click on “+ Acquire New Public IP.”

A dialog box will appear, allowing you to choose which Private IP to link with the new Public IP.

Select the Private IP you created and click “Acquire Public IP.”

Acquiring a new Public IP costs IDR 140 per hour.

You can also add a Public IP you created earlier (if any) by clicking “Attach Public IP.”

Once done, the new Public IP will appear in the list with associated Private IP information and hourly cost.

You can also detach the Public IP from its associated Private IP if needed.

Assign IP Addresses to a VM's Operating System

Access and Log into a Virtual Machine with Multiple Private IP Addresses. Manually include all private IP addresses, including the primary one, that you assigned to the VM. Follow the provided steps based on your VM’s operating system.

Linux (e.g., Ubuntu 18.04+)

Ubuntu 18.04 and newer versions now use netplan for handling the computer’s network settings. To find the most up-to-date information for your Linux system, check the latest documentation.

To open the netplanconfiguration file, use the following command:

sudo nano /etc/netplan/50-cloud-init.yaml

In your current configuration, add the following syntax to the network interface of your VM. In this example, my VM has the network interface ens3

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: 02:01:01:65:01:bc
            set-name: ens3
            addresses:
                - 10.30.30.67/24
                - 10.30.30.135/24
    version: 2

Adjust the Address values based on the private IP addresses of your virtual machines (VMs).

Once done, save and exit.

Preventing Cloud-init from Reverting Network Settings on Reboot

In the Netplan configuration above, there’s a comment indicating that the configuration file will revert to default settings after each VM reboot:

# This file is generated from information provided by the datasource.
# Changes to it will not persist across an instance reboot.

This is the default behavior of cloud-init, which manages network configuration during the initial boot. When the VM reboots, cloud-init may reset the network configuration to the default values provided by the cloud service provider or other data sources.

To address this issue, you can follow these steps.

Create the file /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg using the following command:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Then, add the following configuration:

network: {config: disabled}

This prevents cloud-init from changing the network configuration during reboot.

Once done, save and exit.

Test the changes with netplan try to confirm syntax:

netplan try

Assuming no issues with netplan try, apply the configuration changes:

sudo netplan apply

Verify the IP address is added to the network interface with the following command:

ip addr list ens3

You should see the added IP address in the list. Example:

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:01:01:65:01:bc brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.30.30.67/24 metric 100 brd 10.30.30.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet 10.30.30.135/24 brd 10.30.30.255 scope global secondary ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::1:1ff:fe65:1bc/64 scope link
       valid_lft forever preferred_lft forever

Now, let’s try to reboot the VM, and we can see that the configuration remains unchanged and the IP address value stays the same as before.

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: 02:01:01:65:01:bc
            set-name: ens3
            addresses:
                - 10.30.30.67/24
                - 10.30.30.135/24
    version: 2
Validation

To make sure that your secondary IP configuration can connect to the internet using its public IP, you can use thi following simple command. Just replace the IP with the secondary private IP address you added to the CloudRaya VM network interface.

ping -I 10.30.30.135 cloudraya.com
root@vm-ubuntu-sby:~# ping -I 10.30.30.135 cloudraya.com
PING cloudraya.com (163.53.194.50) from 10.30.30.135 : 56(84) bytes of data.
64 bytes from server103.wowrack.com (163.53.194.50): icmp_seq=1 ttl=58 time=4.25 ms
64 bytes from server103.wowrack.com (163.53.194.50): icmp_seq=2 ttl=58 time=4.43 ms
64 bytes from server103.wowrack.com (163.53.194.50): icmp_seq=3 ttl=58 time=4.64 ms
64 bytes from server103.wowrack.com (163.53.194.50): icmp_seq=4 ttl=58 time=6.15 ms
64 bytes from server103.wowrack.com (163.53.194.50): icmp_seq=5 ttl=58 time=5.01 ms
64 bytes from server103.wowrack.com (163.53.194.50): icmp_seq=6 ttl=58 time=4.10 ms

It’s noticed that the connection is now established using the newly added private IP.

Windows Server

After connecting to your Windows Server VM through RDP, follow these steps:

Open a Command Prompt or PowerShell.

Type ipconfig /all in the command line. Look for the Primary private IP address assigned by DHCP.

Type ncpa.cpl in the command line to open the ‘Network Connections‘ configuration.

Open the ‘Properties‘ for the network adapter with the new IP addresses.

In the list, choose Internet Protocol Version 4 (TCP/IPv4), then click “Properties“.

Select “Use the following IP address:” and enter the following values.

  • IP address: Enter the main private IP address of the VM.
  • Subnet mask: Enter a subnet mask that matches your IP address. To check the value, look at the output in ncpa.cpl as mentioned earlier.
  • Default gateway: The first IP address in the same subnet. To confirm the value, check the output in ncpa.cpl as mentioned earlier.

Select Use the following DNS server addresses:. Enter the following values.

  • Preferred DNS server: Fill in your main DNS server. You can use the value from the Default Gateway IP.

Now, to add a new Private IP to our VM, click on the “Advanced” button.

Then, click on “Add“.

Type in the private IP address you added to the VM network interface. Enter the corresponding Subnet mask. Click “Add“.

Follow the same steps to add any extra private IP addresses to your VM network interface.

If so, click “OK” and “Close” to close the adapter settings. After that, your RDP connection will be re-established.

Open a command prompt or PowerShell. And type ipconfig /all again and press Enter.

Check that the primary and secondary private IP addresses are included in the configuration.

Validation

To make sure that your secondary IP configuration can connect to the internet using its public IP, you can use the following simple command. Just replace the IP with the secondary private IP address you added to the CloudRaya VM network interface.

ping -S 10.30.30.12 cloudraya.com
PS C:\Users\Administrator> ping -S 10.30.30.12 cloudraya.com

Pinging cloudraya.com [163.53.194.50] from 10.30.30.12 with 32 bytes of data:
Reply from 163.53.194.50: bytes=32 time=3ms TTL=58
Reply from 163.53.194.50: bytes=32 time=4ms TTL=58
Reply from 163.53.194.50: bytes=32 time=4ms TTL=58
Reply from 163.53.194.50: bytes=32 time=4ms TTL=58

Ping statistics for 163.53.194.50:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 3ms, Maximum = 4ms, Average = 3ms

It’s noticed that the connection is now established using the newly added private IP.

Table of Contents

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment

Ready, Set, Cloud

Ready, Set, Cloud