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
O’Reilly’s CD bookshelf
Viewed 12346 times since Wed, Jun 27, 2018
Epoch & Unix Timestamp Conversion Tools
Viewed 61498 times since Fri, Jun 22, 2018
Linux and Unix xargs command tutorial with examples
Viewed 3795 times since Fri, Jun 1, 2018
8 Practical Examples of Linux Xargs Command for Beginners
Viewed 5372 times since Fri, Jun 1, 2018
perl podstawy
Viewed 1980 times since Mon, May 21, 2018
View Config Files Without Comments
Viewed 2142 times since Mon, May 21, 2018
30 Examples for Awk Command in Text Processing
Viewed 14685 times since Sat, Nov 24, 2018
Usuwanie spacji z zmiennych w bash
Viewed 2388 times since Tue, May 22, 2018
awk printf
Viewed 14924 times since Wed, Aug 19, 2020
“Yes/No” in Bash Script – Prompt for Confirmation
Viewed 31486 times since Mon, Feb 18, 2019