快子项目的IP地址管理器
tipam的Python项目详细描述
TIPAM是一个非常快速的RESTFul IPv4/IPv6地址管理工具
它支持ipv4和ipv6,可以查找和分配任意大小的前缀。
必需的python包:
- 卢克逊
- pyipcalc公司
安装
$ pip3 install tipam
设置
$ mkdir tipam $ luxon -i tipam tipam $ luxon -d tipam
然后使用Apache2、nginx、luxon-s或您喜爱的符合WSGI的服务器
术语和用法
创建
关于创建,您可以在IPAM中执行以下to/with前缀操作:
- 添加前缀
- 分配前缀
- 查找前缀
作为第一步,您必须add前缀。在添加前缀之前,不能allocate或find前缀:
$ curl -X POST \ http://$TIPAM_URL/v1/prefix \ -H 'Content-Type: application/json' \ -d '{ "prefix": "192.0.2.0/24", "name": "My First IP block" }'
添加前缀将在IPAM中创建前缀,并通过设置free=True使其可用。
现在已经向ipam添加了前缀,您可以从中allocate一个前缀:
$ curl -X POST \ http://$TIPAM_URL/v1/allocate \ -H 'Content-Type: application/json' \ -d '{ "prefix": "192.0.2.0/30", "name": "Customer 1" }'
分配前缀集free=False,这意味着不能从分配的前缀添加/分配更多的前缀。
您可以将标记与前缀关联:
$ curl -X POST \ http://$TIPAM_URL/v1/tag \ -H 'Content-Type: application/json' \ -d '{ "prefix": "58e27f46-7376-4147-a7d0-a31c05fe2b34", "tag": "doc_example" }'
您可以使用find(v1/find)搜索并分配特定长度的第一个可用/空闲前缀。 标记用于指示要从哪个范围分配:
$ curl -X POST \ http://$TIPAM_URL/v1/find \ -H 'Content-Type: application/json' \ -d '{ "prefix_len": 29, "name": "Customer 2", "tag": "doc_example" }'
如果搜索成功,则返回找到的前缀,并自动分配。标记可以引用 多个前缀,在这种情况下,将搜索所有前缀,请求大小的第一个空闲前缀将 被分配和归还
您可以在多个rib中添加相同的前缀(路由信息库):
$ curl -X POST \ http://$TIPAM_URL/v1/prefix \ -H 'Content-Type: application/json' \ -d '{ "prefix": "192.0.2.0/24", "name": "SAME prefix, different rib", "rib": "other_context" }'
当前缀创建过程中省略rib时,将在名为“default”的默认肋骨中创建前缀。 不能在同一个肋骨中添加相同的前缀:-添加一个已经存在于肋骨中的前缀将导致更新 现有的前缀。
可以在前缀下添加前缀(例如192.0.2.128/25),也可以在前缀上添加前缀(例如192.0.0.0/16)。 这对于保留要标记和分配的范围非常有用。
读数
要获取所有创建/分配的前缀的列表,请执行GET到/vi/prefixes/{version},其中version是 IPv4为“4”,IPv6为“6”:
$ curl http://$TIPAM_URL/v1/prefixes/4
要查看特定前缀的数据,请执行GET到/vi/prefix/{id},其中id是 有疑问的前缀:
$ curl http://$TIPAM_URL/v1/prefix/a7f22bd8-3791-4346-a167-8f329c576e0b
如果不知道id,可以通过发送GET到 /v1/query/{ip}/{prefix_len},其中ip是所讨论的地址,而prefix_len是前缀长度:
$ curl http://$TIPAM_URL/v1/query/192.0.2.0/24
默认情况下,将查询“默认”肋骨。要查询另一个肋骨,请添加查询参数?rib=XXX:
$ curl http://$TIPAM_URL/v1/query/192.0.2.0/24?rib=other_context
更新
添加或分配前缀后,可以使用PUT或PATCH方法对其进行修改:
$ curl -X PUT \ http://$TIPAM_URL/v1/prefix/a7f22bd8-3791-4346-a167-8f329c576e0b \ -H 'Content-Type: application/json' \ -d '{ "name": "updated_name" }'
注意,/v1/prefix/{id}上的PUT等于POST上的/v1/prefix,而^{tt22}的值$ 并且rib等于uuid为id的前缀。
只能更新以下字段:
- 姓名
- 说明
- 前缀类型
删除
分配的前缀可以通过release来取消分配:
$ curl -X POST \ http://$TIPAM_URL/v1/release \ -H 'Content-Type: application/json' \ -d '{ "prefix": "192.0.2.0/30" }'
这将再次设置free=True,使其可供再次分配。
要从ipam中完全删除前缀,请执行DELETE方法/v1/prefix/{id}:
$ curl -X DELETE http://$TIPAM_URL/v1/prefix/a7f22bd8-3791-4346-a167-8f329c576e0b