All Projects → faelix → hphr

faelix / hphr

Licence: Apache-2.0 license
Halophile Router (a VyOS-based, SaltStack-automated, NetBox-configured router for small provider networks)

Programming Languages

SaltStack
118 projects
python
139335 projects - #7 most used programming language
scheme
763 projects
shell
77523 projects

Projects that are alternatives of or similar to hphr

ip2location-nginx
Nginx module that allows user to lookup for geolocation information using IP2Location database.
Stars: ✭ 33 (-15.38%)
Mutual labels:  ipv6, ipv4, isp
IP2Location-PHP-Module
This module is a PHP module that enables the user to find the country, region, city, coordinates, zip code, ISP, domain name, timezone, connection speed, IDD code, area code, weather station code, weather station name, mobile, usage types, address type, IAB category, etc that any IP address or host name originates from.
Stars: ✭ 154 (+294.87%)
Mutual labels:  ipv6, ipv4, isp
IP2Location-C-Library
IP2Location C library enables the user to find the country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code, weather station code, weather station name, mobile, usage types, etc that any IP address or hostname originates from.
Stars: ✭ 37 (-5.13%)
Mutual labels:  ipv6, ipv4, isp
Bgp Dashboard
BGP Dashboard and Monitoring Web Application
Stars: ✭ 268 (+587.18%)
Mutual labels:  ipv6, bgp, ipv4
ipv6
IPv6-adresse.dk source & data
Stars: ✭ 27 (-30.77%)
Mutual labels:  ipv6, ipv4, isp
Exabgp
The BGP swiss army knife of networking
Stars: ✭ 1,713 (+4292.31%)
Mutual labels:  ipv6, bgp, ipv4
ENet-CSharp
A improved fork of ENet, a tried and true networking library. C, C++, C# compatible.
Stars: ✭ 65 (+66.67%)
Mutual labels:  ipv6, ipv4
php-ip-anonymizer
IP address anonymizer library for PHP
Stars: ✭ 55 (+41.03%)
Mutual labels:  ipv6, ipv4
rpki-client-portable
Portability shim for OpenBSD's rpki-client
Stars: ✭ 33 (-15.38%)
Mutual labels:  bgp, rpki
masscanned
Let's be scanned. A low-interaction honeypot focused on network scanners and bots. It integrates very well with IVRE to build a self-hosted alternative to GreyNoise.
Stars: ✭ 50 (+28.21%)
Mutual labels:  ipv6, ipv4
captcp
A open source program for TCP analysis of PCAP files
Stars: ✭ 110 (+182.05%)
Mutual labels:  ipv6, ipv4
zx-ip-address
Deprecated
Stars: ✭ 96 (+146.15%)
Mutual labels:  ipv6, ipv4
fastcli
CLI tool powered by Nornir 3.0 for network automation fast configuration. Support BGP, OSPF, EIGRP, RIP auto-configuration.
Stars: ✭ 38 (-2.56%)
Mutual labels:  bgp, ospf
netbox-bgp
NetBox plugin for BGP related objects documentation
Stars: ✭ 135 (+246.15%)
Mutual labels:  bgp, netbox
rtrlib
An open-source C implementation of the RPKI/Router Protocol client
Stars: ✭ 62 (+58.97%)
Mutual labels:  bgp, rpki
PHP-IPAddress
IP Address utility classes for PHP
Stars: ✭ 63 (+61.54%)
Mutual labels:  ipv6, ipv4
SixIndicator
SixIndicator is a WebExtension Plugin which indicates via an icon, if you are viewing the website with IPv6 or IPv4.
Stars: ✭ 17 (-56.41%)
Mutual labels:  ipv6, ipv4
accomplist
ACCOMPLIST - List Compiler
Stars: ✭ 51 (+30.77%)
Mutual labels:  ipv6, ipv4
python-iptools
A few useful functions and objects for manipulating ip addresses in python.
Stars: ✭ 68 (+74.36%)
Mutual labels:  ipv6, ipv4
sync hosts
解除Resilio Sync/BTSync限制china地区 镜像:https://coding.net/u/renerli/p/sync_hosts/git
Stars: ✭ 15 (-61.54%)
Mutual labels:  ipv6, ipv4

Image of a female moose

Halophile Router (hphr)

The Halophile Router is a VyOS-based, SaltStack-automated, NetBox-configured router for small provider networks.

The slides for a short presentation are available by way of explanation of this background to this project.

Using hphr

You will need:

  1. a salt-master server
  2. one or more VyOS routers running on amd64 architecture
  3. an instance of NetBox
  4. a shim module to add some extra data in your Salt pillar from Netbox

Configuring salt-master

Copy modules/netbox2.py into /home/salt/base/modules (or similar location as appropriate). Add and adjust the following ext_pillar to your Salt master's configuration:

extension_modules: /home/salt/base/modules

ext_pillar:
  - netbox2:
      api_url: https://netbox.example.com/api/
      api_token: f00f00f00f00f00f00f00f00f00f00f00f00f00d
      site_details: True
      site_prefixes: False
      device_interfaces: True
      ip_addresses: True

Then copy the contents of salt/ to your Salt master's file_roots (by default this will be /srv/salt).

Configuring your states

You will either need to:

  • make a node group called hphr via a node_groups.conf file
nodegroups:
  hphr:
    - router*.example.com
  • or adjust salt/top.sls to be something like:
base:
  router*.example.com:
    - hphr

Configuring your pillar

We have included pillar-example/ to show you how we are using hphr at FAELIX. You will need to customise this heavily for your network.

Configuration in Netbox

Your routers will need to exist as devices in Netbox, with the device name matching the system host-name.

Physical Interfaces

Create physical interfaces in Netbox to match your routers' physical configuration. Interfaces specified as "management only" will not be deployed to VyOS, and as such are suitable for IPMI, ILO, or other out-of-band management.

Add your IPv4 and IPv6 addresses to the interface as required. MAC address, MTU, and up/down status are also supported.

VLANs Tagged on Physical Interfaces

To configure vif VLAN sub-interfaces you must ensure that the VLANs are added to the physical interface in Netbox as tagged. For each such tagged VLAN hphr will search for a virtual interface with the name ethX.VLAN (e.g. eth1.42 for VLAN 42 on eth1).

Add addresses to your subinterfaces as required. Don't forget to tag them on the (real-life) devices that they are connected to.

Deploying routers

Your router will need to be bootstrapped with basic Internet connectivity. It will need that connectivity to download a compiled version of bgpq3, and subsquently fetch data to build your router's prefix-lists.

Then:

router1$ configure
router1# set system host-name router1.example.com
router1# set service salt-minion master salt-master.example.com
router1# commit
router1# save

You will need to accept the key:

salt-master# salt-key -a router1.example.com
salt-master# salt router1.example.com test.ping
router1.example.com:
    True

And finally you can deploy the configuration and commit it to the router:

salt-master# salt router1.example.com state.highstate
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].