How to manage ip addresses and subnets with phpIPAM_MySQL
A typical network/system admin is responsible for managing one or more subnets within the network under control. For example, when a LAN segment is assigned a /24 subnet, a total of 254 IP addresses can be used for different purposes. To keep track of what IP addresses are assigned to which hosts, some sort of documentation is needed. The easiest way to do it would be maintaining a single spreadsheet which documents IP address allocation information. This works like a charm for a small network with only one admin. However, relying on a spreadsheet is not convenient and error-prone with multiple large networks. Worse, if there are multiple admins involved, updating the spreadsheet could be tricky as each admin could often end up with different versions of the document.
One way to manage IP address allocations more systematically is using a web based IP address management tool. Not only can the web based tool be accessed from anywhere, but a backend database also ensures that all updates to the database are properly synchronized and applied in real time. While there are many web applications available, we will be focusing on setting upphpIPAM(IP Address Manager) in this tutorial. phpIPAM is an open source, efficient IP address management application with the following features.
- Support for both IPv4 and IPv6 (unlike many other tools, IPv6 support is very good)
- Built in IPv4 and IPv6 calculator
- Supports CIDR notations
- MySQL support
- Nested subnets
- User/group based permissions
- Visual reporting tool
- Import/export using .xls files
- Device, VRF, and VLAN support
- Powerful search engine
- Email notifications
- Supports AD/LDAP based authentication
The demo site for phpIPAM is available athttp://demo.phpipam.net.
In this tutorial, we will besetting up phpIPAM along with Apache web server in theUbuntuenvironment.
Installing phpIPAM on Ubuntu
First of all, install required packages usingapt-get.
# apt-get install apache2 mysql-server php5 php5-gmp php-pear php5-mysql php5-ldap wget
If MySQL has been installed for the first time, please set the root password using the following command.
# mysqladmin -u root password NEWPASSWORD
phpIPAM can be set up with any web server directory. We will set it up in the /phpipam/ sub directory under the root directory of Apache web server.
Download phpIPAM package.
# wget http://kent.dl.sourceforge.net/project/phpipam/phpipam-1.0.tar
Extract the package into the web server directory.
# cp phpipam-1.0.tar /var/www/
# cp /var/www/
# tar xvf phpipam-1.0.tar
# rm phpipam-1.0.tar
Now, specify the MySQL username and password, as well as its base directory.
# vim /var/www/phpipam/config.php
$db['host'] = "localhost";## MySQL user for ipam ##$db['user'] = "phpipam";## password for the MySQL user ##$db['pass'] = "phpipamadmin";## database for MySQL ##$db['name'] = "phpipam";## base directory ##define('BASE', "/phpipam/");
The base directory needs to be defined in the provided .htaccess file.
# vim /var/www/phpipam/.htaccess
RewriteBase /phpipam/
Preparing Apache Web Server
phpIPAM needs therewritemodule for operation. The module can be enabled in an Ubuntu or Debian machine usinga2enmodcommand as follows.
# a2enmod rewrite
Next, Apache's default configuration needs to be changed as well. Please add/modify your configuration to look like the one below.
# vim /etc/apache2/sites-enabled/000-default
<directory></directory>Options Indexes FollowSymLinks MultiViewsAllowOverride allOrder allow,denyallow from all
Finally, restart Apache web service.
# service apache2 restart
Finalizing Installation
We can finalize the installation of phpIPAM by using the web browser. Pointing the browser to the URL: http://
Now phpIPAM should be up and running. We can login using the following default credentials.
-
URL: http://
/phpipam - User: Admin
- Pass: ipamadmin
Manage IP Addresses with phpIPAM
In the rest of the tutorial, we will walk you through how to manage subnets and IP addresses with phpIPAM.
Creating a section
Let us start by adding a section for our network. Click on Administration > Sections.
Click on "Add Section". Now we can name our section as we want it to be displayed. Fill in the details of the section.
Creating a subnet
Next, we add a new subnet 172.16.1.0/24 under the section 'Our Network'. Click on Our Network > Add Subnet
Now we can easily add IP addresses in the subnet. One method of adding IP addresses is to add them one by one. phpIPAM provides an alternative method to scan all the hosts and add them automatically without much hassle. It can scan the local subnet located in the same broadcast domain, as well as remote subnets reachable through routing. After selecting a subnet, click on 'scan subnet for new hosts' to scan IP addresses as shown below.
After the scan is performed, the discovered IP addresses can be added into the database by clicking the 'Add discovered hosts' button at the bottom.
Creating an IPv6 subnet
IPv6 subnets can also be created in a similar process. We specify the IPv6 network as showed in the screenshot.
All the tools available for IPv4 can be used for IPv6 as well.
Creating a nested subnet
phpIPAM also provides the option of creating nested subnets for both IPv4 and IPv6. For example, we will be dividing our IP block 172.16.1.0/24 into 4 smaller subnets (/26), each for a specific department within the organization. After selecting the /24 subnet, we can create a nested subnet using the 'Add a new nested subnet' button. The screenshot below shows the icon for adding a nested subnet.
After all the subnets have been created, we should have similar output. Following is a nested subnet preview window.
Adding users and groups
First, we will create a group with READ/WRITE permission to the section 'Our network'. This can be done by selecting Administration > Groups > Create Group.
Now that the group has been created, we modify section permission by selecting Administration > Sections, and then editing the section.
We will create a user named 'user1'. We will add the user to the group 'Demonstration group' so that it inherits all necessary permissions from the group. We start by clicking on Administration > Users > Create user.
Now we can log in as this user and add/modify IP addresses under the section 'Our network'.
To sum up, phpIPAM is a versatile IP address management tool that can be used for both IPv4 and IPv6. This tutorial focused on the basics that can help you get started. Be sure to test with all the available features like using IP address calculator, adding devices, VLANs and VRFs, and import/export using xls.
Hope this helps.
Subscribe to Xmodulo
Do you want to receiveLinux FAQs, detailed tutorials and tipspublished at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

全表扫描在MySQL中可能比使用索引更快,具体情况包括:1)数据量较小时;2)查询返回大量数据时;3)索引列不具备高选择性时;4)复杂查询时。通过分析查询计划、优化索引、避免过度索引和定期维护表,可以在实际应用中做出最优选择。

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

InnoDB使用redologs和undologs确保数据一致性和可靠性。1.redologs记录数据页修改,确保崩溃恢复和事务持久性。2.undologs记录数据原始值,支持事务回滚和MVCC。

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。
