home.social

#ipam — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #ipam, aggregated by home.social.

  1. [Перевод] Настройка сети в Kubernetes: основы CNI

    Kubernetes-кластер без сети — не кластер, а просто набор несвязанных компонентов. Чтобы «оживить» его, важно понимать, что такое Container Network Interface (CNI) и как он работает. В статье — детальный разбор механизма CNI: что такое CNI-плагин, как он запускается и какие операции выполняет в кластере. В конце работа CNI демонстрируется на примере кастомного плагина. Для желающих глубже погрузиться в тему есть список дополнительных материалов.

    habr.com/ru/companies/flant/ar

    #сеть #cni #cniплагин #Container_Network_Interface #ipam #containerd #vxlan #static_routing #iptables

  2. [Перевод] Настройка сети в Kubernetes: основы CNI

    Kubernetes-кластер без сети — не кластер, а просто набор несвязанных компонентов. Чтобы «оживить» его, важно понимать, что такое Container Network Interface (CNI) и как он работает. В статье — детальный разбор механизма CNI: что такое CNI-плагин, как он запускается и какие операции выполняет в кластере. В конце работа CNI демонстрируется на примере кастомного плагина. Для желающих глубже погрузиться в тему есть список дополнительных материалов.

    habr.com/ru/companies/flant/ar

    #сеть #cni #cniплагин #Container_Network_Interface #ipam #containerd #vxlan #static_routing #iptables

  3. [Перевод] Настройка сети в Kubernetes: основы CNI

    Kubernetes-кластер без сети — не кластер, а просто набор несвязанных компонентов. Чтобы «оживить» его, важно понимать, что такое Container Network Interface (CNI) и как он работает. В статье — детальный разбор механизма CNI: что такое CNI-плагин, как он запускается и какие операции выполняет в кластере. В конце работа CNI демонстрируется на примере кастомного плагина. Для желающих глубже погрузиться в тему есть список дополнительных материалов.

    habr.com/ru/companies/flant/ar

    #сеть #cni #cniплагин #Container_Network_Interface #ipam #containerd #vxlan #static_routing #iptables

  4. [Перевод] Настройка сети в Kubernetes: основы CNI

    Kubernetes-кластер без сети — не кластер, а просто набор несвязанных компонентов. Чтобы «оживить» его, важно понимать, что такое Container Network Interface (CNI) и как он работает. В статье — детальный разбор механизма CNI: что такое CNI-плагин, как он запускается и какие операции выполняет в кластере. В конце работа CNI демонстрируется на примере кастомного плагина. Для желающих глубже погрузиться в тему есть список дополнительных материалов.

    habr.com/ru/companies/flant/ar

    #сеть #cni #cniплагин #Container_Network_Interface #ipam #containerd #vxlan #static_routing #iptables

  5. Infoblox erweitert DDI-Portfolio: Neue Integrationen für Multi-Cloud und stärkere Automatisierung

    Die Updates adressieren konkrete Betriebsprobleme: von überlappenden IP-Adressbereichen in Cloud-Deployments über fragmentierte DNS-Verwaltung bis hin zu aufwendigen Upgrade-Prozessen in lokalen Infrastrukturen.

    all-about-security.de/infoblox

    #dns #ddi #multicloud #dnsverwaltung #DHCP #IPAM #OpenAPI

  6. Explore the latest in AWS VPC & IP addressing for 2025. Learn best practices to design secure, scalable cloud networks. A must-read for DevOps & cloud engineers.
    Read more: medium.com/@ismailkovvuru/aws-

    #AWS #VPC #CloudNetworking #DevOps #IPAM #IPv6 #AWSBestPractices #tech #security

  7. Explore the latest in AWS VPC & IP addressing for 2025. Learn best practices to design secure, scalable cloud networks. A must-read for DevOps & cloud engineers.
    Read more: medium.com/@ismailkovvuru/aws-

    #AWS #VPC #CloudNetworking #DevOps #IPAM #IPv6 #AWSBestPractices #tech #security

  8. Explore the latest in AWS VPC & IP addressing for 2025. Learn best practices to design secure, scalable cloud networks. A must-read for DevOps & cloud engineers.
    Read more: medium.com/@ismailkovvuru/aws-

    #AWS #VPC #CloudNetworking #DevOps #IPAM #IPv6 #AWSBestPractices #tech #security

  9. Explore the latest in AWS VPC & IP addressing for 2025. Learn best practices to design secure, scalable cloud networks. A must-read for DevOps & cloud engineers.
    Read more: medium.com/@ismailkovvuru/aws-

    #AWS #VPC #CloudNetworking #DevOps #IPAM #IPv6 #AWSBestPractices #tech #security

  10. Explore the latest in AWS VPC & IP addressing for 2025. Learn best practices to design secure, scalable cloud networks. A must-read for DevOps & cloud engineers.
    Read more: medium.com/@ismailkovvuru/aws-

    #AWS #VPC #CloudNetworking #DevOps #IPAM #IPv6 #AWSBestPractices #tech #security

  11. IPAM-системы: почему Excel больше не спасает и что выбрать в России

    Любая сеть растёт быстрее, чем ты успеваешь её документировать. Сначала у тебя десяток серверов и пара коммутаторов, можно вести учёт адресов в табличке. Но как только устройств становится сотни, а IP‑адресов тысячи, Excel превращается в минное поле. Проблемы начинаются банально: Один инженер раздал IP вручную, второй занял тот же диапазон под тест, подсеть легла. Забыли зафиксировать, кому выдан адрес, и теперь никто не понимает, что за «сервер Х» висит в мониторинге. Конфликт VLAN и вся смена сидит без CRM. Классика. Если нет централизованного учёта, сеть рано или поздно начнёт «жечь костры». Именно для этого придумали IPAM (IP Address Management) — системы, которые берут на себя:

    habr.com/ru/articles/939852/

    #ipam #vlan #импортозамещение_по #планирование_сети #netbox #сетевые_инженеры #ipадресация #учёт_серверов #dcim

  12. IPAM-системы: почему Excel больше не спасает и что выбрать в России

    Любая сеть растёт быстрее, чем ты успеваешь её документировать. Сначала у тебя десяток серверов и пара коммутаторов, можно вести учёт адресов в табличке. Но как только устройств становится сотни, а IP‑адресов тысячи, Excel превращается в минное поле. Проблемы начинаются банально: Один инженер раздал IP вручную, второй занял тот же диапазон под тест, подсеть легла. Забыли зафиксировать, кому выдан адрес, и теперь никто не понимает, что за «сервер Х» висит в мониторинге. Конфликт VLAN и вся смена сидит без CRM. Классика. Если нет централизованного учёта, сеть рано или поздно начнёт «жечь костры». Именно для этого придумали IPAM (IP Address Management) — системы, которые берут на себя:

    habr.com/ru/articles/939852/

    #ipam #vlan #импортозамещение_по #планирование_сети #netbox #сетевые_инженеры #ipадресация #учёт_серверов #dcim

  13. IPAM-системы: почему Excel больше не спасает и что выбрать в России

    Любая сеть растёт быстрее, чем ты успеваешь её документировать. Сначала у тебя десяток серверов и пара коммутаторов, можно вести учёт адресов в табличке. Но как только устройств становится сотни, а IP‑адресов тысячи, Excel превращается в минное поле. Проблемы начинаются банально: Один инженер раздал IP вручную, второй занял тот же диапазон под тест, подсеть легла. Забыли зафиксировать, кому выдан адрес, и теперь никто не понимает, что за «сервер Х» висит в мониторинге. Конфликт VLAN и вся смена сидит без CRM. Классика. Если нет централизованного учёта, сеть рано или поздно начнёт «жечь костры». Именно для этого придумали IPAM (IP Address Management) — системы, которые берут на себя:

    habr.com/ru/articles/939852/

    #ipam #vlan #импортозамещение_по #планирование_сети #netbox #сетевые_инженеры #ipадресация #учёт_серверов #dcim

  14. IPAM-системы: почему Excel больше не спасает и что выбрать в России

    Любая сеть растёт быстрее, чем ты успеваешь её документировать. Сначала у тебя десяток серверов и пара коммутаторов, можно вести учёт адресов в табличке. Но как только устройств становится сотни, а IP‑адресов тысячи, Excel превращается в минное поле. Проблемы начинаются банально: Один инженер раздал IP вручную, второй занял тот же диапазон под тест, подсеть легла. Забыли зафиксировать, кому выдан адрес, и теперь никто не понимает, что за «сервер Х» висит в мониторинге. Конфликт VLAN и вся смена сидит без CRM. Классика. Если нет централизованного учёта, сеть рано или поздно начнёт «жечь костры». Именно для этого придумали IPAM (IP Address Management) — системы, которые берут на себя:

    habr.com/ru/articles/939852/

    #ipam #vlan #импортозамещение_по #планирование_сети #netbox #сетевые_инженеры #ipадресация #учёт_серверов #dcim

  15. Kubernetes: шестимесячный марафон по прокачке dBrain.cloud

    За последние полгода наши инженеры проделали значительную работу по развитию и оптимизации платформы dBrain.cloud , ключевым инструментом которой является Kubernetes. В этой статье мы подробно расскажем об изменениях, произошедших в инфраструктуре, о внедрении новых функций и фишках, которые, мы надеемся, будут интересны DevOps-сообществу.

    habr.com/ru/companies/dbraincl

    #gpu #slicing #s3 #cilium #metallb #ipam #cgroup_v2 #kubernetes #dbrain #devops

  16. Kubernetes: шестимесячный марафон по прокачке dBrain.cloud

    За последние полгода наши инженеры проделали значительную работу по развитию и оптимизации платформы dBrain.cloud , ключевым инструментом которой является Kubernetes. В этой статье мы подробно расскажем об изменениях, произошедших в инфраструктуре, о внедрении новых функций и фишках, которые, мы надеемся, будут интересны DevOps-сообществу.

    habr.com/ru/companies/dbraincl

    #gpu #slicing #s3 #cilium #metallb #ipam #cgroup_v2 #kubernetes #dbrain #devops

  17. Kubernetes: шестимесячный марафон по прокачке dBrain.cloud

    За последние полгода наши инженеры проделали значительную работу по развитию и оптимизации платформы dBrain.cloud , ключевым инструментом которой является Kubernetes. В этой статье мы подробно расскажем об изменениях, произошедших в инфраструктуре, о внедрении новых функций и фишках, которые, мы надеемся, будут интересны DevOps-сообществу.

    habr.com/ru/companies/dbraincl

    #gpu #slicing #s3 #cilium #metallb #ipam #cgroup_v2 #kubernetes #dbrain #devops

  18. Kubernetes: шестимесячный марафон по прокачке dBrain.cloud

    За последние полгода наши инженеры проделали значительную работу по развитию и оптимизации платформы dBrain.cloud , ключевым инструментом которой является Kubernetes. В этой статье мы подробно расскажем об изменениях, произошедших в инфраструктуре, о внедрении новых функций и фишках, которые, мы надеемся, будут интересны DevOps-сообществу.

    habr.com/ru/companies/dbraincl

    #gpu #slicing #s3 #cilium #metallb #ipam #cgroup_v2 #kubernetes #dbrain #devops

  19. I learned something about using Python today, and this might influence how I write other parts of my code. I'm also open to ideas on the best way to go about this.

    I'm now most of the way through a refactor where I'm switching to Postgres for my database and also using SQLModel over SQLAlchemy. I have all my classes written/rewritten and was running into an issue on the IPAM side of things when creating a new network. See if you can spot the bug as I write it out here.

    Each API call in FastAPI will map to one function, with each class having their functions in their own file, for the sake of modularity/organization. I have a subnet.py file and ipRecords.py for those respective classes.

    When a new subnet is created, I make the subnet in the database and then populate all of the IP addresses in the IpAddress table before returning to the FastAPI call. This means that one function call is chained to another one. Specifically subnet.createSubnet calls Iprecords.createIpRecord.

    Both functions have a Session object coming in like this. Note that Depends comes from SQLModel and getDb() returns a database session, via yield.

    myFunction( input1: int, input2, str, db: Session = Depends(getDb))

    This means that when a new subnet is added, and then we call iprecords.createIpRecord, that doesn't get the proper result for getDb and we can't talk to the database.

    My fix was to pass the db from one function to another so I can keep using it, and not pull it in via getDb on the inner function call.

    Now that I'm through that mess, I can carry on with the rest of my refactor and get back to the main branch.

    #pebkac #rackroot #programming #fastapi #python #ipam #homelab #opensource #sqlmodel

  20. I learned something about using Python today, and this might influence how I write other parts of my code. I'm also open to ideas on the best way to go about this.

    I'm now most of the way through a refactor where I'm switching to Postgres for my database and also using SQLModel over SQLAlchemy. I have all my classes written/rewritten and was running into an issue on the IPAM side of things when creating a new network. See if you can spot the bug as I write it out here.

    Each API call in FastAPI will map to one function, with each class having their functions in their own file, for the sake of modularity/organization. I have a subnet.py file and ipRecords.py for those respective classes.

    When a new subnet is created, I make the subnet in the database and then populate all of the IP addresses in the IpAddress table before returning to the FastAPI call. This means that one function call is chained to another one. Specifically subnet.createSubnet calls Iprecords.createIpRecord.

    Both functions have a Session object coming in like this. Note that Depends comes from SQLModel and getDb() returns a database session, via yield.

    myFunction( input1: int, input2, str, db: Session = Depends(getDb))

    This means that when a new subnet is added, and then we call iprecords.createIpRecord, that doesn't get the proper result for getDb and we can't talk to the database.

    My fix was to pass the db from one function to another so I can keep using it, and not pull it in via getDb on the inner function call.

    Now that I'm through that mess, I can carry on with the rest of my refactor and get back to the main branch.

    #pebkac #rackroot #programming #fastapi #python #ipam #homelab #opensource #sqlmodel

  21. I learned something about using Python today, and this might influence how I write other parts of my code. I'm also open to ideas on the best way to go about this.

    I'm now most of the way through a refactor where I'm switching to Postgres for my database and also using SQLModel over SQLAlchemy. I have all my classes written/rewritten and was running into an issue on the IPAM side of things when creating a new network. See if you can spot the bug as I write it out here.

    Each API call in FastAPI will map to one function, with each class having their functions in their own file, for the sake of modularity/organization. I have a subnet.py file and ipRecords.py for those respective classes.

    When a new subnet is created, I make the subnet in the database and then populate all of the IP addresses in the IpAddress table before returning to the FastAPI call. This means that one function call is chained to another one. Specifically subnet.createSubnet calls Iprecords.createIpRecord.

    Both functions have a Session object coming in like this. Note that Depends comes from SQLModel and getDb() returns a database session, via yield.

    myFunction( input1: int, input2, str, db: Session = Depends(getDb))

    This means that when a new subnet is added, and then we call iprecords.createIpRecord, that doesn't get the proper result for getDb and we can't talk to the database.

    My fix was to pass the db from one function to another so I can keep using it, and not pull it in via getDb on the inner function call.

    Now that I'm through that mess, I can carry on with the rest of my refactor and get back to the main branch.

    #pebkac #rackroot #programming #fastapi #python #ipam #homelab #opensource #sqlmodel

  22. I learned something about using Python today, and this might influence how I write other parts of my code. I'm also open to ideas on the best way to go about this.

    I'm now most of the way through a refactor where I'm switching to Postgres for my database and also using SQLModel over SQLAlchemy. I have all my classes written/rewritten and was running into an issue on the IPAM side of things when creating a new network. See if you can spot the bug as I write it out here.

    Each API call in FastAPI will map to one function, with each class having their functions in their own file, for the sake of modularity/organization. I have a subnet.py file and ipRecords.py for those respective classes.

    When a new subnet is created, I make the subnet in the database and then populate all of the IP addresses in the IpAddress table before returning to the FastAPI call. This means that one function call is chained to another one. Specifically subnet.createSubnet calls Iprecords.createIpRecord.

    Both functions have a Session object coming in like this. Note that Depends comes from SQLModel and getDb() returns a database session, via yield.

    myFunction( input1: int, input2, str, db: Session = Depends(getDb))

    This means that when a new subnet is added, and then we call iprecords.createIpRecord, that doesn't get the proper result for getDb and we can't talk to the database.

    My fix was to pass the db from one function to another so I can keep using it, and not pull it in via getDb on the inner function call.

    Now that I'm through that mess, I can carry on with the rest of my refactor and get back to the main branch.

    #pebkac #rackroot #programming #fastapi #python #ipam #homelab #opensource #sqlmodel

  23. I learned something about using Python today, and this might influence how I write other parts of my code. I'm also open to ideas on the best way to go about this.

    I'm now most of the way through a refactor where I'm switching to Postgres for my database and also using SQLModel over SQLAlchemy. I have all my classes written/rewritten and was running into an issue on the IPAM side of things when creating a new network. See if you can spot the bug as I write it out here.

    Each API call in FastAPI will map to one function, with each class having their functions in their own file, for the sake of modularity/organization. I have a subnet.py file and ipRecords.py for those respective classes.

    When a new subnet is created, I make the subnet in the database and then populate all of the IP addresses in the IpAddress table before returning to the FastAPI call. This means that one function call is chained to another one. Specifically subnet.createSubnet calls Iprecords.createIpRecord.

    Both functions have a Session object coming in like this. Note that Depends comes from SQLModel and getDb() returns a database session, via yield.

    myFunction( input1: int, input2, str, db: Session = Depends(getDb))

    This means that when a new subnet is added, and then we call iprecords.createIpRecord, that doesn't get the proper result for getDb and we can't talk to the database.

    My fix was to pass the db from one function to another so I can keep using it, and not pull it in via getDb on the inner function call.

    Now that I'm through that mess, I can carry on with the rest of my refactor and get back to the main branch.

    #pebkac #rackroot #programming #fastapi #python #ipam #homelab #opensource #sqlmodel

  24. … So, this happened.
    Created a new Razor WebApp, and migrated all of my previous codebase into it.
    Have to figure out what I want now …

    #AspNetCore #DotNet #CSharp #WebDev #Proxmox #DNS #DHCP #IPAM #DDI #Kea #PowerDNS

  25. … So, this happened.
    Created a new Razor WebApp, and migrated all of my previous codebase into it.
    Have to figure out what I want now …

    #AspNetCore #DotNet #CSharp #WebDev #Proxmox #DNS #DHCP #IPAM #DDI #Kea #PowerDNS

  26. … So, this happened.
    Created a new Razor WebApp, and migrated all of my previous codebase into it.
    Have to figure out what I want now …

    #AspNetCore #DotNet #CSharp #WebDev #Proxmox #DNS #DHCP #IPAM #DDI #Kea #PowerDNS

  27. … So, this happened.
    Created a new Razor WebApp, and migrated all of my previous codebase into it.
    Have to figure out what I want now …

    #AspNetCore #DotNet #CSharp #WebDev #Proxmox #DNS #DHCP #IPAM #DDI #Kea #PowerDNS

  28. … So, this happened.
    Created a new Razor WebApp, and migrated all of my previous codebase into it.
    Have to figure out what I want now …

    #AspNetCore #DotNet #CSharp #WebDev #Proxmox #DNS #DHCP #IPAM #DDI #Kea #PowerDNS

  29. As I was writing that last post, I might actually write code to load a table with IP records and then layer data on top of that. That table will be populated when a network is created and, if the gateway is included, that IP will be reserved right away. I'm going to need that data anyways, so I might as well have a way to manage it.

    For a given IP and subnet mask, I'll be able to know all the usable IPs thanks to functions from the ip_network python library I'm using. It will be easy to add/remove the IP data when the network is created, destroyed, or the gateway is changed. Oh look, I just wrote some code for that - making this change easier.

    Devices in the inventory will be able to claim 0..n IP addresses and I could even have it claim a static IP (outside any DHCP range) or association with a given DHCP range.

    This has an additional benefit of being able to calculate DHCP range utilization. If a DHCP range has 10 IPs and 5 devices associated with it, it's 50% used.

    #rackroot #programming #applicationdesign #backend #ipam #fastapi #webdev #homelab #dhcp

  30. As I was writing that last post, I might actually write code to load a table with IP records and then layer data on top of that. That table will be populated when a network is created and, if the gateway is included, that IP will be reserved right away. I'm going to need that data anyways, so I might as well have a way to manage it.

    For a given IP and subnet mask, I'll be able to know all the usable IPs thanks to functions from the ip_network python library I'm using. It will be easy to add/remove the IP data when the network is created, destroyed, or the gateway is changed. Oh look, I just wrote some code for that - making this change easier.

    Devices in the inventory will be able to claim 0..n IP addresses and I could even have it claim a static IP (outside any DHCP range) or association with a given DHCP range.

    This has an additional benefit of being able to calculate DHCP range utilization. If a DHCP range has 10 IPs and 5 devices associated with it, it's 50% used.

    #rackroot #programming #applicationdesign #backend #ipam #fastapi #webdev #homelab #dhcp

  31. As I was writing that last post, I might actually write code to load a table with IP records and then layer data on top of that. That table will be populated when a network is created and, if the gateway is included, that IP will be reserved right away. I'm going to need that data anyways, so I might as well have a way to manage it.

    For a given IP and subnet mask, I'll be able to know all the usable IPs thanks to functions from the ip_network python library I'm using. It will be easy to add/remove the IP data when the network is created, destroyed, or the gateway is changed. Oh look, I just wrote some code for that - making this change easier.

    Devices in the inventory will be able to claim 0..n IP addresses and I could even have it claim a static IP (outside any DHCP range) or association with a given DHCP range.

    This has an additional benefit of being able to calculate DHCP range utilization. If a DHCP range has 10 IPs and 5 devices associated with it, it's 50% used.

    #rackroot #programming #applicationdesign #backend #ipam #fastapi #webdev #homelab #dhcp

  32. As I was writing that last post, I might actually write code to load a table with IP records and then layer data on top of that. That table will be populated when a network is created and, if the gateway is included, that IP will be reserved right away. I'm going to need that data anyways, so I might as well have a way to manage it.

    For a given IP and subnet mask, I'll be able to know all the usable IPs thanks to functions from the ip_network python library I'm using. It will be easy to add/remove the IP data when the network is created, destroyed, or the gateway is changed. Oh look, I just wrote some code for that - making this change easier.

    Devices in the inventory will be able to claim 0..n IP addresses and I could even have it claim a static IP (outside any DHCP range) or association with a given DHCP range.

    This has an additional benefit of being able to calculate DHCP range utilization. If a DHCP range has 10 IPs and 5 devices associated with it, it's 50% used.

    #rackroot #programming #applicationdesign #backend #ipam #fastapi #webdev #homelab #dhcp

  33. As I was writing that last post, I might actually write code to load a table with IP records and then layer data on top of that. That table will be populated when a network is created and, if the gateway is included, that IP will be reserved right away. I'm going to need that data anyways, so I might as well have a way to manage it.

    For a given IP and subnet mask, I'll be able to know all the usable IPs thanks to functions from the ip_network python library I'm using. It will be easy to add/remove the IP data when the network is created, destroyed, or the gateway is changed. Oh look, I just wrote some code for that - making this change easier.

    Devices in the inventory will be able to claim 0..n IP addresses and I could even have it claim a static IP (outside any DHCP range) or association with a given DHCP range.

    This has an additional benefit of being able to calculate DHCP range utilization. If a DHCP range has 10 IPs and 5 devices associated with it, it's 50% used.

    #rackroot #programming #applicationdesign #backend #ipam #fastapi #webdev #homelab #dhcp

  34. I got the gateway update working tonight and decided to shift all the validation logic to the backend, which also had a side effect of simplifying my code.

    Before I was on the front end writing javascript logic for whether the gateway was being set or cleared and then I would also need to write code for how to handle all the combinations. Now, I have one API endpoint at /networks/{id}/gateway where an HTTP POST can be submitted and that either passes or fails.

    If someone puts in an invalid IP address, or the IP address is not a usable IP in the subnet, it won't be accepted and an error message is shown on the page. HTTP 500 is returned and Vuetify can pick that up to show an error message for me. Once valid input is submitted, the error will go away and the user will see the gateway updated to the proper value.

    If someone adds a gateway when there wasn't one before, or updates the address to something else, then the IP will be processed and updated as long as it's valid.

    #rackroot #programming #vuetify #python #ipam #fastapi #webdev #fullstack

  35. I got the gateway update working tonight and decided to shift all the validation logic to the backend, which also had a side effect of simplifying my code.

    Before I was on the front end writing javascript logic for whether the gateway was being set or cleared and then I would also need to write code for how to handle all the combinations. Now, I have one API endpoint at /networks/{id}/gateway where an HTTP POST can be submitted and that either passes or fails.

    If someone puts in an invalid IP address, or the IP address is not a usable IP in the subnet, it won't be accepted and an error message is shown on the page. HTTP 500 is returned and Vuetify can pick that up to show an error message for me. Once valid input is submitted, the error will go away and the user will see the gateway updated to the proper value.

    If someone adds a gateway when there wasn't one before, or updates the address to something else, then the IP will be processed and updated as long as it's valid.

    #rackroot #programming #vuetify #python #ipam #fastapi #webdev #fullstack

  36. I got the gateway update working tonight and decided to shift all the validation logic to the backend, which also had a side effect of simplifying my code.

    Before I was on the front end writing javascript logic for whether the gateway was being set or cleared and then I would also need to write code for how to handle all the combinations. Now, I have one API endpoint at /networks/{id}/gateway where an HTTP POST can be submitted and that either passes or fails.

    If someone puts in an invalid IP address, or the IP address is not a usable IP in the subnet, it won't be accepted and an error message is shown on the page. HTTP 500 is returned and Vuetify can pick that up to show an error message for me. Once valid input is submitted, the error will go away and the user will see the gateway updated to the proper value.

    If someone adds a gateway when there wasn't one before, or updates the address to something else, then the IP will be processed and updated as long as it's valid.

    #rackroot #programming #vuetify #python #ipam #fastapi #webdev #fullstack

  37. I got the gateway update working tonight and decided to shift all the validation logic to the backend, which also had a side effect of simplifying my code.

    Before I was on the front end writing javascript logic for whether the gateway was being set or cleared and then I would also need to write code for how to handle all the combinations. Now, I have one API endpoint at /networks/{id}/gateway where an HTTP POST can be submitted and that either passes or fails.

    If someone puts in an invalid IP address, or the IP address is not a usable IP in the subnet, it won't be accepted and an error message is shown on the page. HTTP 500 is returned and Vuetify can pick that up to show an error message for me. Once valid input is submitted, the error will go away and the user will see the gateway updated to the proper value.

    If someone adds a gateway when there wasn't one before, or updates the address to something else, then the IP will be processed and updated as long as it's valid.

    #rackroot #programming #vuetify #python #ipam #fastapi #webdev #fullstack

  38. I got the gateway update working tonight and decided to shift all the validation logic to the backend, which also had a side effect of simplifying my code.

    Before I was on the front end writing javascript logic for whether the gateway was being set or cleared and then I would also need to write code for how to handle all the combinations. Now, I have one API endpoint at /networks/{id}/gateway where an HTTP POST can be submitted and that either passes or fails.

    If someone puts in an invalid IP address, or the IP address is not a usable IP in the subnet, it won't be accepted and an error message is shown on the page. HTTP 500 is returned and Vuetify can pick that up to show an error message for me. Once valid input is submitted, the error will go away and the user will see the gateway updated to the proper value.

    If someone adds a gateway when there wasn't one before, or updates the address to something else, then the IP will be processed and updated as long as it's valid.

    #rackroot #programming #vuetify #python #ipam #fastapi #webdev #fullstack

  39. I'm also having ideas for some kind of IP utilization metric where it will indicate how many IPs are available on a given network. Things like DHCP allocations and static IPs can all be summarized.

    This database is gonna be interesting.

    Also, I'm like halfway to a full IPAM tool. Why stop now lol

    #programming #python #IPAM #rackroot #infrastructure #engineering

  40. I'm also having ideas for some kind of IP utilization metric where it will indicate how many IPs are available on a given network. Things like DHCP allocations and static IPs can all be summarized.

    This database is gonna be interesting.

    Also, I'm like halfway to a full IPAM tool. Why stop now lol

    #programming #python #IPAM #rackroot #infrastructure #engineering

  41. I'm also having ideas for some kind of IP utilization metric where it will indicate how many IPs are available on a given network. Things like DHCP allocations and static IPs can all be summarized.

    This database is gonna be interesting.

    Also, I'm like halfway to a full IPAM tool. Why stop now lol

    #programming #python #IPAM #rackroot #infrastructure #engineering

  42. I'm also having ideas for some kind of IP utilization metric where it will indicate how many IPs are available on a given network. Things like DHCP allocations and static IPs can all be summarized.

    This database is gonna be interesting.

    Also, I'm like halfway to a full IPAM tool. Why stop now lol

    #programming #python #IPAM #rackroot #infrastructure #engineering

  43. I'm also having ideas for some kind of IP utilization metric where it will indicate how many IPs are available on a given network. Things like DHCP allocations and static IPs can all be summarized.

    This database is gonna be interesting.

    Also, I'm like halfway to a full IPAM tool. Why stop now lol

    #programming #python #IPAM #rackroot #infrastructure #engineering

  44. Oh hey, we've got the first of our blog posts about NetBox Enterprise out, now. I've been working on helping to put this product together since starting on at NetBox a few months ago and it's been a pretty great experience. Yes, even (mostly) the Kubernetes part! 😄

    netboxlabs.com/blog/technology

    #NetBox #Kubernetes #k8s #DCIM #IPAM