113 lines
3.0 KiB
YAML
113 lines
3.0 KiB
YAML
|
|
id: obmp-exabgp
|
||
|
|
boot:
|
||
|
|
timeout: 60
|
||
|
|
completed:
|
||
|
|
- "ExaBGP Route Injector"
|
||
|
|
uses_regex: false
|
||
|
|
sim:
|
||
|
|
linux_native:
|
||
|
|
libvirt_domain_driver: docker
|
||
|
|
driver: ubuntu
|
||
|
|
ram: 512
|
||
|
|
cpus: 1
|
||
|
|
cpu_limit: 100
|
||
|
|
video:
|
||
|
|
memory: 1
|
||
|
|
general:
|
||
|
|
nature: server
|
||
|
|
description: OpenBMP ExaBGP Route Injector (Docker container)
|
||
|
|
read_only: false
|
||
|
|
configuration:
|
||
|
|
generator:
|
||
|
|
driver: null
|
||
|
|
provisioning:
|
||
|
|
files:
|
||
|
|
- editable: false
|
||
|
|
name: config.json
|
||
|
|
content: |-
|
||
|
|
{
|
||
|
|
"docker": {
|
||
|
|
"image": "obmp-exabgp:latest",
|
||
|
|
"mounts": [
|
||
|
|
"type=bind,source=cfg/boot.sh,target=/cml-boot.sh"
|
||
|
|
],
|
||
|
|
"misc_args": [],
|
||
|
|
"env": [
|
||
|
|
"EXABGP_LOCAL_AS=65100",
|
||
|
|
"EXABGP_PEER_AS=65020",
|
||
|
|
"EXABGP_API_PORT=5050"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"shell": "/bin/bash",
|
||
|
|
"day0cmd": [ "/bin/bash", "/cml-boot.sh" ],
|
||
|
|
"busybox": false
|
||
|
|
}
|
||
|
|
- editable: true
|
||
|
|
name: boot.sh
|
||
|
|
content: |-
|
||
|
|
#!/bin/bash
|
||
|
|
# CML boot script for ExaBGP container
|
||
|
|
# Configures data-plane interfaces before starting ExaBGP
|
||
|
|
#
|
||
|
|
# Interface mapping (assigned by CML topology links):
|
||
|
|
# eth0 = first connected interface (data-plane link 1)
|
||
|
|
# eth1 = second connected interface (data-plane link 2)
|
||
|
|
# ...additional interfaces as connected in topology
|
||
|
|
#
|
||
|
|
# Edit the IPs below to match your topology addressing.
|
||
|
|
# These are examples using 10.120.x.x/30 point-to-point links.
|
||
|
|
|
||
|
|
# --- Data-plane interface configuration ---
|
||
|
|
# Link to CORE-01: ExaBGP=10.120.1.2/30, CORE-01=10.120.1.1/30
|
||
|
|
ip address add 10.120.1.2/30 dev eth0
|
||
|
|
ip link set dev eth0 up
|
||
|
|
|
||
|
|
# Link to CORE-02: ExaBGP=10.120.2.2/30, CORE-02=10.120.2.1/30
|
||
|
|
ip address add 10.120.2.2/30 dev eth1
|
||
|
|
ip link set dev eth1 up
|
||
|
|
|
||
|
|
# --- Set environment for ExaBGP peering ---
|
||
|
|
export EXABGP_LOCAL_IP=10.120.1.2
|
||
|
|
export EXABGP_PEER_1=10.120.1.1
|
||
|
|
export EXABGP_PEER_2=10.120.2.1
|
||
|
|
|
||
|
|
# --- Start ExaBGP ---
|
||
|
|
exec /bin/bash /exabgp/startup.sh
|
||
|
|
media_type: raw
|
||
|
|
volume_name: cfg
|
||
|
|
device:
|
||
|
|
interfaces:
|
||
|
|
serial_ports: 1
|
||
|
|
physical:
|
||
|
|
- eth0
|
||
|
|
- eth1
|
||
|
|
- eth2
|
||
|
|
- eth3
|
||
|
|
has_loopback_zero: false
|
||
|
|
default_count: 2
|
||
|
|
ui:
|
||
|
|
label_prefix: exabgp-
|
||
|
|
icon: server
|
||
|
|
label: ExaBGP Route Injector
|
||
|
|
visible: true
|
||
|
|
group: Others
|
||
|
|
description: |-
|
||
|
|
OpenBMP ExaBGP Route Injector
|
||
|
|
BGP route injection for OpenBMP testing.
|
||
|
|
AS 65100 (eBGP) peering with IOS-XR routers (AS 65020).
|
||
|
|
Flask API on port 5050 for route management.
|
||
|
|
inherited:
|
||
|
|
image:
|
||
|
|
ram: true
|
||
|
|
cpus: false
|
||
|
|
data_volume: false
|
||
|
|
boot_disk_size: false
|
||
|
|
cpu_limit: false
|
||
|
|
node:
|
||
|
|
ram: true
|
||
|
|
cpus: false
|
||
|
|
data_volume: false
|
||
|
|
boot_disk_size: false
|
||
|
|
cpu_limit: false
|
||
|
|
schema_version: 0.0.1
|