Article

Table of Contents
Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $300 by adding new articles!

Configure CentOS with Multiple IP Addresses

Last Updated: Tue, Jun 16, 2020
CentOS Networking System Admin

Introduction

A basic network configuration at Vultr consists of a single IPv4 address, configured by DHCP. If you have advanced networking requirements, Vultr supports multiple public IPs and up to five private networks. You need to manually configure these advanced scenarios. Refer to the networking configuration page in the customer portal for your exact configuration. This example demonstrates three public IPv4 addresses, two private IPv4 networks, and two public IPv6 addresses.

IPv4 Info

MultipleIP

IPv6 Info

MultipleIP

Example for CentOS 8

Public Network

  1. Define three public IPv4 addresses and two public IPv6 addresses on adapter ens3.
    Populate /etc/sysconfig/network-scripts/ifcfg-ens3 with:

    TYPE="Ethernet"
    DEVICE="ens3"
    ONBOOT="yes"
    BOOTPROTO="none"
    IPADDR=192.0.2.101
    PREFIX=23
    GATEWAY=192.0.2.1
    DNS1=192.0.2.200
    IPADDR1=192.0.2.102
    PREFIX1=32
    IPADDR2=192.0.2.103
    PREFIX2=32
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6ADDR_SECONDARIES="2001:db8:1000::100 2001:db8:1000::200" 
    
  2. Restart the connection or reboot.

    # nmcli con load /etc/sysconfig/network-scripts/ifcfg-ens3
    # nmcli con up 'System ens3'
    

Private Network

  1. Define the first private network on adapter ens7.
    Populate /etc/sysconfig/network-scripts/ifcfg-ens7 with:

    TYPE="Ethernet"
    DEVICE="ens7"
    ONBOOT="yes"
    BOOTPROTO="none"
    IPADDR=10.1.1.100
    PREFIX=20
    MTU=1450
    
  2. Restart the connection or reboot.

    # nmcli con load /etc/sysconfig/network-scripts/ifcfg-ens7
    # nmcli con up 'System ens7'
    
  3. Define the second private network on adapter ens8.
    Populate /etc/sysconfig/network-scripts/ifcfg-ens8 with:

    TYPE="Ethernet"
    DEVICE="ens8"
    ONBOOT="yes"
    BOOTPROTO="none"
    IPADDR=10.1.1.200
    PREFIX=20
    MTU=1450
    
  4. Restart the connection or reboot.

    # nmcli con load /etc/sysconfig/network-scripts/ifcfg-ens8
    # nmcli con up 'System ens8'
    

Example for CentOS 6 and 7

Public Network

Configure the public network with three public IPv4 addresses and two public IPv6 addresses.

  1. Define the first public IPv4 and both public IPv6 addresses on adapter eth0.
    Populate /etc/sysconfig/network-scripts/ifcfg-eth0 with:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.0.2.101
    NETMASK=255.255.254.0
    GATEWAY=192.0.2.1
    DNS1=192.0.2.200
    
    IPV6INIT=yes
    IPV6ADDR="2001:db8:1000::100/64"
    IPV6_AUTOCONF="yes"
    IPV6ADDR_SECONDARIES="2001:db8:1000::200/64" 
    DNS2=2001:db8:1000::1
    
  2. Set the default route for eth0.
    Populate /etc/sysconfig/network-scripts/route-eth0 with:

    169.254.0.0/16 dev eth0
    
  3. Define the second public IPv4 on adapter eth0:1.
    Populate /etc/sysconfig/network-scripts/ifcfg-eth0:1 with:

    DEVICE=eth0:1
    BOOTPROTO=static
    IPADDR=192.0.2.102
    NETMASK=255.255.255.255
    ONBOOT=yes
    
  4. Define the third public IPv4 on adapter eth0:2.
    Populate /etc/sysconfig/network-scripts/ifcfg-eth0:2 with:

    DEVICE=eth0:2
    BOOTPROTO=static
    IPADDR=192.0.2.103
    NETMASK=255.255.255.255
    ONBOOT=yes
    

Private Network

  1. Define the first private network on adapter eth1.
    Populate /etc/sysconfig/network-scripts/ifcfg-eth1 with:

    DEVICE=eth1
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=10.1.1.100
    NETMASK=255.255.240.0
    MTU=1450
    
  2. Define the second private network on adapter eth2.
    Populate /etc/sysconfig/network-scripts/ifcfg-eth2 with:

    DEVICE=eth2
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=10.1.1.200
    NETMASK=255.255.240.0
    MTU=1450
    

Activate Network Changes

Restart networking or reboot to activate the network changes.

# service network restart

Note: If you have IP forwarding enabled (using your server as a VPN or similar), you will also need to add the following lines to /etc/sysctl.conf file. The default settings for these variables (which is 1), prevents IPv6 from working properly when IP forwarding is enabled. You can check if IP forwarding is enabled by running sysctl net.ipv4.ip_forward.

net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.eth0.accept_ra=2

Nameservers

Verify that /etc/resolv.conf has your preferred nameservers for IPv4, and optionally IPv6.

domain       example.com
nameserver   2001:db8:1000::1
nameserver   192.0.2.200

More Resources

Want to contribute?

You could earn up to $300 by adding new articles