Adding a range of IPs in Linux

In this short post I will show you how you can quickly add a range of IPs on any RedHat based system. When you have to add many IPs to a system this can be quite handy and save a lot of time. Normally when you add a new IP to a network interface in a RedHat based system you create a file ifcfg-eth0:x in /etc/sysconfig/network-scripts/. For example:

/etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
TYPE=Ethernet

Similar to the above example you can create several aliases. But what if you have to add a lot of IPs that are in a range like this? Let’s say that I want to add 100 IPs this way… this is possible, but not very effective, right? RedHat based systems offer a method to bind a range of IPs in a quick way allowing us to eliminate the need to create a lot of files and saving us time doing this.

Create a file /etc/sysconfig/network-scripts/ifcfg-eth0-range0 if this doesn’t exist, or just add to it if you already have it, the following lines:

/etc/sysconfig/network-scripts/ifcfg-eth0-range0
IPADDR_START=192.168.0.100
IPADDR_END=192.168.0.200
CLONENUM_START=2

where: IPADDR_START is the first IP and IPADDR_END is the last IP in the range. CLONENUM_START is the number that will be assigned to the first IP alias interface (eth0:2 in this example).

If you need to add more ranges of IPs then just use a different file for eg. ifcfg-eth0-range1, for each one of the ranges. You need to be careful and use the proper CLONENUM_START to not overwrite other aliases. Once you have configured the range/s of IPs you just need to restart the network service in order to activate it:

# service network restart

Assigning IP range using ifconfig and shell

This is one of the most inefficient ways to get many IP addresses applied to one network interface. Anyways it allows to create as many aliases for the interface as you like so you should create shell script and execute it every time Linux boots.

# touch /path/to/script.sh
# chmod +x /path/to/script.sh
# vi /path/to/script.sh

Now you should add there shell lines which will apply IP addresses, e.g. the following one applies 50 IP addresses to eth0 interface:

for n in {5..55};  do ifconfig eth0:${n} 10.10.10.${n} netmask 255.255.255.0 up; done

If you decide to delete those IPs you can run the following line as a remedy:

 for n in {5..55};  do ifconfig eth0:${n} 0.0.0.0 &> /dev/null; done



source: https://sysadmincorner.wordpress.com/category/linux/networking/
Attachments
There are no attachments for this article.
Related Articles RSS Feed
perl podstawy
Viewed 2568 times since Mon, May 21, 2018
Bash: Read File Line By Line – While Read Line Loop
Viewed 3180 times since Mon, Feb 18, 2019
Epoch & Unix Timestamp Conversion Tools
Viewed 82468 times since Fri, Jun 22, 2018
O’Reilly’s CD bookshelf
Viewed 15327 times since Wed, Jun 27, 2018
Utilities to Tidy Up Your Reports
Viewed 16871 times since Wed, May 30, 2018
Script HW/SW AIX
Viewed 10337 times since Mon, Jun 4, 2018
Display basic information about Physical Volumes
Viewed 4356 times since Sun, Jun 3, 2018
Time conversion using Bash
Viewed 3455 times since Fri, May 25, 2018
HowTo: Clear BASH History
Viewed 2895 times since Mon, Feb 18, 2019
The Ultimate Bash Array Tutorial with 15 Examples
Viewed 14557 times since Sun, Sep 30, 2018