Code Monkey home page Code Monkey logo

netbox-routing's Introduction

Netbox Routing

A plugin for tracking all kinds of routing information

Features

Current features

  • Static routing

Under development

  • Dynamic routing
    • BGP
      • Templates/Group inheritance
    • OSPF

Roadmapped

  • Dynamic Routing
    • BGP
      • IPv4/IPv46 AF VRF support
      • VPNv4 support
    • EIGRP
    • IS-IS

Requirements

  • Netbox 3.2+
  • Python 3.8+

Compatibility Matrix

Netbox 3.2.x
1.0.0 X

Installation

To install, simply include this plugin in the plugins configuration section of netbox.

Example:

    PLUGINS = [
        'netbox_routing'
    ],

Configuration

None

Usage

TBD

Additional Notes

TBD

Contribute

Contributions are always welcome! Please open an issue first before contributing as the scope is going to be kept intentionally narrow

netbox-routing's People

Contributors

dansheps avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

netbox-routing's Issues

Add OSPF Model

Plugin version

v0.0.3

NetBox version

v3.5.6

Feature type

Data model extension

Proposed functionality

Add OSPF functionality

Use case

Add OSPF model(s) as required

Database changes

Add:

  • OSPFInstance
    • name CHAR
    • router_id IPAddress
    • process_id INT
    • device FK
  • OSPFArea
    • area_id Char
  • OSPFInterface
    • instance FK
    • area FK
    • interface FK
    • priority INT
    • bfd BOOL
    • authentication CHAR(ENUM)
    • passphrase CHAR

External dependencies

No response

netbox-plugin

Plugin version

v1.0.0

NetBox version

v3.2.0

Feature type

New functionality

Proposed functionality

Add topic netbox-plugin to your project so it shows up in https://github.com/topics/netbox-plugin.

Use case

help people find the plugin

Database changes

No response

External dependencies

No response

Virtual machine routing support

Plugin version

v0.1.1

NetBox version

v4.0.2

Feature type

Data model extension

Proposed functionality

Add support for BGP configuration on virtual machines.

Use case

ExaBGP is often deployed as a VM and uses Multi Hop FlowSpec BGP to manage remote routers.
As well as virtual appliances like BigIP that can use BGP for routing.

Database changes

No response

External dependencies

No response

exception after plugin install

Plugin version

latest from pypy

NetBox version

v3.2.1

Python version

3.9

Steps to Reproduce

  1. add to local_requirements.
  2. add to netbox/netbox/configuration.py
  3. run upgrade
  4. systemctl restart netbox netbox-rq
  5. click on plugin link to get error.

Expected Behavior

No error.

Observed Behavior

<class 'django.db.utils.ProgrammingError'>

relation "netbox_routing_staticroute" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "netbox_routing_staticrout...
^

Python version: 3.10.4
NetBox version: 3.2.1

Error When

Plugin version

v0.0.3

NetBox version

v3.5.1

Python version

3.1

Steps to Reproduce

  1. Create a Static Route object
  2. Create a custom field of type multiple objects assigned to the dcim.device model
  3. Configure the object type as NetBox Routing > Static Route
  4. Navigate to a device and try to assign the recently created Static Route object

Expected Behavior

The device is assigned the static route(s). The main purpose of this attempt is to gain visibility from the device view into what routes are assigned.

Observed Behavior

The error below appears:

<class 'netbox.api.exceptions.SerializerNotFound'>

Could not determine serializer for netbox_routing.StaticRoute with prefix 'Nested'

BGP Support

Plugin version

v0.0.3

NetBox version

v3.5.6

Feature type

Data model extension

Proposed functionality

Add BGP support.

New models will be required

Use case

BGP is a common and widely used routing protocol.

Database changes

  • BGPAttributes

    • router-id IPAddress
    • aggregate-address FK
    • auto-summary BOOL
    • add-path CHAR
    • advertise-best-external
    • aggregate-timer INT
    • dampening INT
    • default-information-originate BOOL
    • default-metric INT
    • inject-map FK
    • maximum-paths INT
    • maximum-secondary-paths INT
    • mpls-segment-routing BOOL
    • nexthop FK
    • recursion BOOL
    • slow-peer BOOL
    • soft-reconfig-backup BOOL
    • suppress-inactive BOOL
    • table-map FK
    • table-map-filter BOOL
  • BGPPeerSessionAttributes

    • status BOOL
    • description CHAR
    • remote-as FK
    • local-as FK
    • password CHAR
    • graceful-restart BOOL
    • cluster-id CHAR
    • update-source FK
    • timers-keepalive INT
    • timers-holdtime INT
    • timers-minimum-holdtime INT
    • transport CHAR
    • ebgp-multihop INT
    • bfd
    • bmp BOOL
  • BGPPeerPolicyAttributes

    • additional-paths CHAR
    • additional-paths-advertise CHAR
    • advertise-map FK
    • advertisement-interval INT
    • aigp-send CHAR
    • aigp-send-community CHAR
    • allow-policy BOOL
    • allowas-in BOOL
    • announce-rpki-state BOOL
    • default-originate BOOL
    • default-originate-routemap BOOL
    • distribute-list FK
    • filter-list FK
    • maximum-prefixes INT
    • next-hop-self BOOL
    • next-hop-unchanged BOOL
    • prefix-list-in FK
    • prefix-list-out FK
    • remove-private-as BOOL
    • route-map-in FK
    • route-map-out FK
    • route-reflector-client BOOL
    • send-community CHAR
    • unsuppress-map FK
    • weight INT
  • BGPPeerSessionTemplate(BGPPeerSessionAttributes)

    • parent FK
  • BGPPeerPolicyTemplate(BGPPeerPolicyAttributes)

    • parent FK
  • BGPPeerGroup(BGPPeerSessionAttributes)

    • peer-session-template FK
  • BGPPeerTemplate(BGPPeerSessionAttributes)

    • parent FK
    • peer-session-template FK
    • address-familes GFR
  • BGPPeer(BGPPeerSessionAttributes)

    • peer-template FK
    • peer-session FK
    • address IPAddress
    • address-familes GFR
  • BGPAddressFamily(BGPAttributes)

    • address-family CHAR
  • BGPAddressFamilyNeighbors(BGPPeerPolicyAttributes)

    • address-family FK
    • peer-policy-template FK
    • peer GFK<BGPPeer|BGPPeerTemplate|BGPPeerGroup>
    • vrf FK
  • BGPDeviceAssignment

    • device FK
    • peer FK
  • BGP(BGPAttributes)

    • bmp BOOL
    • graceful-shutdown BOOL

External dependencies

No response

Conflict with other plugins 'netbox-bgp'

Plugin version

v0.1.0

NetBox version

v3.6.3

Python version

3.9

Steps to Reproduce

  1. Install netbox-routing
    /opt/netbox/venv/bin/pip install -r local_requirements.txt
  2. Run migration
    /opt/netbox/venv/bin/python netbox/manage.py migrate

Expected Behavior

Installation completed without errors.

Observed Behavior

Migration halted, and raise errors.

SystemCheckError: System check identified some issues:

ERRORS:
netbox_bgp.PrefixList.tags: (fields.E304) Reverse accessor 'Tag.prefixlist_set' for 'netbox_bgp.PrefixList.tags' clashes with reverse accessor for 'netbox_routing.PrefixList.tags'.
        HINT: Add or change a related_name argument to the definition for 'netbox_bgp.PrefixList.tags' or 'netbox_routing.PrefixList.tags'.
netbox_routing.PrefixList.tags: (fields.E304) Reverse accessor 'Tag.prefixlist_set' for 'netbox_routing.PrefixList.tags' clashes with reverse accessor for 'netbox_bgp.PrefixList.tags'.
        HINT: Add or change a related_name argument to the definition for 'netbox_routing.PrefixList.tags' or 'netbox_bgp.PrefixList.tags'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.