How to support 50K IPv6 addresses on a single machine?

Hi,

Does anyone know if there is any way to configure 50K "virtual" IPv6 addresses on loopback device in Linux?
The aim is not to add all 50K IPv6 addresses one by one on the loopback/ETH device which will probably mess up the ip table on the system.
In IPv4, I am able to achieve that by specifying the IP address subnet on loopback device (e.g: "ip addr add 10.1.0.0/16 dev lo").
The same command does not seem to work the same way for IPv6. It only adds a single IPv6 address on loopback device and it automatically adds an "unreachable route" entry on the ipv6 route table for that IPv6 network prefix.

The reason I need this is because I am working on an application which tries to simulate 50K IPv6 addresses on a single Linux box.
The kernel version I am currently using is RHEL 2.6.9.55.

Any help would be greatly appreciated!!

Thanks!

Kai

Not that easy FredR

Matt's picture

FredR - I am looking into doing the exact same thing, with simulating thousands of IPv6 addresses on the system without having to create all the addresses, and most importantly so the system doesn't have the overhead of maintaining all of the IP addresses. In IPv4, it is possible to define a subnet on the loopback device in the way that Kai mentioned in his original post. That would allow all IP's from 10.1.0.0 --> 10.1.255.255 to be usable by the system... this is the same thing that I'm looking to accomplish with IPv6... basically to define a usable subnet on the loopback for IPv6, not just a script to generate all the IPv6 addresses as aliases...

any ideas?

Thanks,
Matt

maybe....

brandon's picture

for ip in {yourRangeOfIp}
do sudo /sbin/ifconfig lo inet6 add 2607:f0d0:1002:11::${ip}/64
done

might work

This seems pretty easy. Pick

FredR's picture

This seems pretty easy. Pick a real interface (eth0 for example). Write a script that adds subinterfaces to eth0 with your ipv6 addresses.

eth0.0 = 1st ipv6 address
eth0.1 = 2nd ipv6 address

and so on. Or you could use the iproute2 "ip" command to add several IPv6 addresses to a single interface:

/sbin/ip addr add 2001:470:X:XXX::XXXX:XXXX:17/64 dev eth0

Chances are, if the addresses are in the same subnet, you won't modify your host's routing table at all. In the above example, ::17 and ::18 would fall under the same /64 subnet.

-- FLR or flrichar is a superfan of Linux Journal, and goofs around in the LJ IRC Channel

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState