Comments (7)
Perhaps take a look at this project https://github.com/plajjan/vrnetlab, here docker is used to wrap around arbitrary operating systems such as IOS XR or Junos. it's probably entirely feasible to do the same with openbsd/openbgpd.
If that fails, your bridging approach is worth a shot too.
from arouteserver.
step 1) figure out how to run openbsd + openbgpd inside docker, i suppose with a KVM wrapper we can do this (so stack is docker -> kvm -> openbsd -> openbgpd)
from arouteserver.
This is definitely the next feature I'll work on. I've already started the same work on GoBGP but I think I'll pause it.
Configuration method and syntax should be not a big problem. Validation tests are a pain.
I see that something exists to run kvm VMs inside Docker but I never tried it and I'm not sure if/how it works.
I was also thinking something like this for live tests on OpenBGPD:
docker bird bird bird rs clients
| | |
virtual bridge =========================
|
kvm openbsd route server
I have to check how I can bridge the Docker network where clients are connected to the network where the kvm VM is connected. And also how I can connect to the kvm VM from the Python script that instantiated it: ssh is an option but host and the virtual network must reach each other to work.
from arouteserver.
It seems that this is working fine:
sudo virt-install \
-n openbsd1 \
-r 512 \
--vcpus=1 \
--os-variant=openbsd4 \
--accelerate \
-v -c install60.iso \
-w bridge:br-2d2956ce4b64 \
--graphics vnc,listen=0.0.0.0 \
--disk path=~/vms/openbsd1.qcow2,size=5,format=qcow2
where bridge:br-2d2956ce4b64
points to the bridge interface created by Docker.
This solution allows to control OpenBGPD using an ssh connection from the host where Python and kvm are running and also allows Docker containers (that is, rs clients) to be on the same net of the rs.
from arouteserver.
OpenBGPD support has been added in v0.4.0, even if some limitations.
Live tests also work fine locally, but not on TravisCI, because AFAIK there's no way to run VMs there.
from arouteserver.
from arouteserver.
Yes I know, they will be enabled as soon as it will be released.
from arouteserver.
Related Issues (20)
- Jinja2 / markupsafe version missmatch leads to errors HOT 1
- PeeringDB anonymous API throttling HOT 10
- Allow configuration of the PeeringDB URL
- Add support for peeringdb-py
- __init__() got an unexpected keyword argument 'allowed_methods' after upgrade to 1.16 HOT 9
- Remove RGNET from whois sources HOT 1
- as_macro not added to IX-F JSON if read from PeeringDB HOT 8
- Route-Servers with Peer Active to ASNs that were excluded
- Double "AS" in comment for ASN without IPv6 in ARIN HOT 1
- Deprecate ARIN-WHOIS data source HOT 5
- feature request: add anchors to route server policy textual representation, other minor issues HOT 2
- Add routeserver attribute to IX-F export HOT 5
- Add metadata to policy textual representation
- Max prefix limit exceed shutdown with auto recovery HOT 1
- ipv4 table entry in bird config HOT 3
- PeeringDB AS-set name format should not be used in AS-set IRR object export HOT 6
- Looking Glass Client Configuration HOT 1
- Issue in IPv4 prefix length verification for RFC8950 HOT 3
- Double "AS" in comment for ASN without prefixes in Registro.br
- BUG - AS-SET filters starting with RS and other characters are not processed HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arouteserver.