Compare commits

..

31 Commits

Author SHA1 Message Date
4b0088f935 add sflow config 2024-10-28 16:36:06 +00:00
1d10a2c67b Bump to 2024-10-28, with sFlow 2024-10-28 16:23:12 +00:00
a21e523ba5 Bump version to 2024-09-06, which includes sflow 2024-09-06 12:40:05 +00:00
491987d90c Rewrite bird configs: include babel.conf; Restrict OSPF to its own lab net + defaults 2024-04-07 09:51:45 +00:00
22b17f5db0 Add babel (commented out), allow RTS_BABEL into ospf, remove hvn2 user key, rebuild 2024-03-10 16:19:41 +00:00
6e5773d5f4 Add Tom Jones' key 2024-02-08 16:28:39 +00:00
0321ea9aee Refactor ovs-config.sh 2024-02-08 16:28:06 +00:00
14ab4d4054 Remove sshd for FreeBSD build 2024-02-07 22:07:19 +00:00
e9a1ec6920 Add FreeBSD build target - only with mgmt, SSH + users for now 2024-02-07 21:44:27 +00:00
f1a51505c3 Allow any number of VLAN tags (which in practice, still means only 2) 2024-02-06 11:10:39 +00:00
a49c4519e1 bump version to 2024-01-14 2024-02-06 11:10:23 +00:00
5e75a4904b Stretch mgmt network to a /24 2023-11-19 21:53:26 +00:00
6119dcf5c5 Re-enable e0 OSPF for uplink, rebuild all 2023-11-19 18:27:58 +00:00
3d60a51503 Undefine VMs upon destroy; Define VMs upon create 2023-11-19 18:27:46 +00:00
b14e7674ad Generate libvirt config files 2023-11-19 18:19:59 +00:00
4ca17edf61 Assume vol0 on the hypervisors, not ssd-vol0 2023-11-19 17:06:49 +00:00
37b4b725d9 Generate lab3 2023-11-19 14:15:53 +00:00
a3db62a2e5 Typo fix. Lab2 runs on hvn2 2023-11-19 14:15:34 +00:00
305282c238 Remove vifino's access from lab0 2023-11-19 14:14:59 +00:00
e982fc72d0 on FRR, distribute static/connected in OSPF; and disable OSPF/OSPFv3 on vpp0.e0 and vpp3.e1 respectively 2023-10-22 22:05:17 +00:00
5d359744cf Base build on 20231015, and defualt to FRR 2023-10-15 19:39:06 +00:00
a6c94d23ca Fix permissions; Do not run LDP on vpp0.e0 and vpp3.e1; Regenerate 2023-10-15 19:38:50 +00:00
ae458c6754 Remove 'default' and instead write 'bird' 2023-09-27 20:37:27 +00:00
f90b7e530c Remove 'default' build target, as we're now fully on 'bird' and 'frr' targets 2023-09-27 20:36:33 +00:00
64754d1279 Allow tagged traffic on the inter-machine links, by turning all the ports into dot1q tunnel mode 2023-09-27 20:34:28 +00:00
f929b836e8 Refactor the things that are common between bird and frr build types -- no-op for the build/ output 2023-05-31 16:14:33 +00:00
4d964af173 Templetize ovs-config.sh and share it between bird and frr 2023-05-31 16:07:25 +00:00
c526f9d864 Generate lab0 and lab2 for Bird profile 2023-05-31 15:43:53 +00:00
f660985e31 Generate FRR Profile for lab0 and lab2 2023-05-31 15:43:21 +00:00
8a64c5594a Follow symlinks when assembling the templates 2023-05-31 15:30:55 +00:00
4c3d92008f Refactor away 'default' and just call the default profile 'bird' 2023-05-31 14:47:19 +00:00
1226 changed files with 25094 additions and 1020 deletions

View File

@ -36,11 +36,11 @@ will watch this replication endpoint, and if they see new snapshots arrive, they
do an incremental pull of the data to their own ZFS filesystem as a snapshot. Old/current do an incremental pull of the data to their own ZFS filesystem as a snapshot. Old/current
running labs will not be disrupted, as they will be cloned off of old snapshots. running labs will not be disrupted, as they will be cloned off of old snapshots.
You will find the image as `ssd-vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0`: You will find the image as `vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0`:
``` ```
lab:~$ ssh -A root@hvn0.lab.ipng.ch 'zfs list -t snap' lab:~$ ssh -A root@hvn0.lab.ipng.ch 'zfs list -t snap'
NAME USED AVAIL REFER MOUNTPOINT NAME USED AVAIL REFER MOUNTPOINT
ssd-vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0@20221013-release 0B - 6.04G - vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0@20221013-release 0B - 6.04G -
``` ```
## Install ## Install
@ -83,7 +83,7 @@ be overridden with the `--force` flag. And when the lab is finished, it's common
shut down the VMs and destroy the clones. shut down the VMs and destroy the clones.
``` ```
lab:~/src/lab$ ./generate --host hvn0.lab.ipng.ch --overlay default lab:~/src/lab$ ./generate --host hvn0.lab.ipng.ch --overlay bird
lab:~/src/lab$ LAB=0 ./destroy ## remove VMs and ZFS clones lab:~/src/lab$ LAB=0 ./destroy ## remove VMs and ZFS clones
lab:~/src/lab$ LAB=0 ./create ## create ZFS 'pristine' snapshot lab:~/src/lab$ LAB=0 ./create ## create ZFS 'pristine' snapshot
lab:~/src/lab$ LAB=0 ./virshall start ## Start the VMs lab:~/src/lab$ LAB=0 ./virshall start ## Start the VMs
@ -103,8 +103,8 @@ any per-node files (if they exist) from the overlays/$(overlay)/hostname/$(node.
control of the filesystem's ultimate contents. control of the filesystem's ultimate contents.
``` ```
lab:~/src/lab$ ./generate --host hvn0.lab.ipng.ch --overlay default lab:~/src/lab$ ./generate --host hvn0.lab.ipng.ch --overlay bird
lab:~/src/lab$ git status build/default/hvn0.lab.ipng.ch/ lab:~/src/lab$ git status build/bird/hvn0.lab.ipng.ch/
``` ```
### Destroy ### Destroy

View File

@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.20/26, 2001:678:d78:50b::14/64 ] addresses: [ 198.19.5.20/24, 2001:678:d78:50b::14/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1

View File

@ -0,0 +1,7 @@
#!/bin/bash
echo " * Fixing permissions"
chown -R root:root /root/
chown -R ipng:ipng /home/ipng/
[ -r /etc/rc.local ] && chmod 755 /etc/rc.local

View File

@ -0,0 +1,254 @@
<domain type='kvm'>
<name>host0-0</name>
<uuid>6d920a14-c1bb-9b21-6787-8fa3d066d3e0</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>SandyBridge-IBRS</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaveopt'/>
<feature policy='require' name='pdpe1gb'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='pschange-mc-no'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/host0-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:00:00'/>
<source bridge='mgmt'/>
<target dev='host0-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

View File

@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.21/26, 2001:678:d78:50b::15/64 ] addresses: [ 198.19.5.21/24, 2001:678:d78:50b::15/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1

View File

@ -0,0 +1,7 @@
#!/bin/bash
echo " * Fixing permissions"
chown -R root:root /root/
chown -R ipng:ipng /home/ipng/
[ -r /etc/rc.local ] && chmod 755 /etc/rc.local

View File

@ -0,0 +1,254 @@
<domain type='kvm'>
<name>host0-1</name>
<uuid>9983b3f4-9eaf-f806-19d2-783f47041a0d</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>SandyBridge-IBRS</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaveopt'/>
<feature policy='require' name='pdpe1gb'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='pschange-mc-no'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/host0-1'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:00:10'/>
<source bridge='mgmt'/>
<target dev='host0-1-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:10'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:11'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:12'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:13'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

View File

@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.22/26, 2001:678:d78:50b::16/64 ] addresses: [ 198.19.5.22/24, 2001:678:d78:50b::16/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1

View File

@ -0,0 +1,7 @@
#!/bin/bash
echo " * Fixing permissions"
chown -R root:root /root/
chown -R ipng:ipng /home/ipng/
[ -r /etc/rc.local ] && chmod 755 /etc/rc.local

View File

@ -0,0 +1,254 @@
<domain type='kvm'>
<name>tap0-0</name>
<uuid>615ede1a-9953-981e-6381-6fa4802f6c47</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>SandyBridge-IBRS</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaveopt'/>
<feature policy='require' name='pdpe1gb'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='pschange-mc-no'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/tap0-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:02:00'/>
<source bridge='mgmt'/>
<target dev='tap0-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

View File

@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";

View File

@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}

View File

@ -0,0 +1,17 @@
protocol ospf v2 ospf4 {
ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 {
interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; };
};
}
protocol ospf v3 ospf6 {
ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 {
interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; };
};
}

View File

@ -1,13 +1,11 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
# route 2001:db8:cafe::/48 via 2001:db8::1;
} }

View File

@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.16/26, 2001:678:d78:50b::10/64 ] addresses: [ 198.19.5.16/24, 2001:678:d78:50b::10/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1

View File

@ -3,6 +3,8 @@ exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/loopback.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/interface.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/lcp.vpp
exec /etc/vpp/config/mpls.vpp
exec /etc/vpp/config/sflow.vpp
comment { exec /etc/vpp/config/flowprobe.vpp } comment { exec /etc/vpp/config/flowprobe.vpp }

View File

@ -0,0 +1,2 @@
mpls table add 0
set interface mpls GigabitEthernet10/0/1 enable

View File

@ -0,0 +1,8 @@
sflow header-bytes 128
sflow sampling-rate 100
sflow polling-interval 10
sflow enable GigabitEthernet10/0/0
sflow enable GigabitEthernet10/0/1
sflow enable GigabitEthernet10/0/2
sflow enable GigabitEthernet10/0/3

View File

@ -0,0 +1,7 @@
#!/bin/sh
echo " * Disabling FRR"
for i in frr; do
rm -f /etc/systemd/system/multi-user.target.wants/${i}.service
ln -sf /dev/null /etc/systemd/system/${i}.service
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
echo " * Fixing permissions"
chown -R root:root /root/
chown -R ipng:ipng /home/ipng/
[ -r /etc/rc.local ] && chmod 755 /etc/rc.local

View File

@ -0,0 +1,254 @@
<domain type='kvm'>
<name>vpp0-0</name>
<uuid>ec933791-d6af-7a93-3b8d-aab1a46d6faa</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>SandyBridge-IBRS</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaveopt'/>
<feature policy='require' name='pdpe1gb'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='pschange-mc-no'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/vpp0-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:01:00'/>
<source bridge='mgmt'/>
<target dev='vpp0-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

View File

@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";

View File

@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}

View File

@ -0,0 +1,17 @@
protocol ospf v2 ospf4 {
ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 {
interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; };
};
}
protocol ospf v3 ospf6 {
ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 {
interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; };
};
}

View File

@ -1,13 +1,11 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
# route 2001:db8:cafe::/48 via 2001:db8::1;
} }

View File

@ -0,0 +1,15 @@
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
optional: true
accept-ra: false
dhcp4: false
mtu: 9000
addresses: [ 198.19.5.17/24, 2001:678:d78:50b::11/64 ]
routes:
- to: 0.0.0.0/0
via: 198.19.5.1
- to: ::/0
via: 2001:678:d78:50b::1

View File

@ -3,6 +3,8 @@ exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/loopback.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/interface.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/lcp.vpp
exec /etc/vpp/config/mpls.vpp
exec /etc/vpp/config/sflow.vpp
comment { exec /etc/vpp/config/flowprobe.vpp } comment { exec /etc/vpp/config/flowprobe.vpp }

View File

@ -0,0 +1,3 @@
mpls table add 0
set interface mpls GigabitEthernet10/0/0 enable
set interface mpls GigabitEthernet10/0/1 enable

View File

@ -0,0 +1,8 @@
sflow header-bytes 128
sflow sampling-rate 100
sflow polling-interval 10
sflow enable GigabitEthernet10/0/0
sflow enable GigabitEthernet10/0/1
sflow enable GigabitEthernet10/0/2
sflow enable GigabitEthernet10/0/3

View File

@ -0,0 +1,7 @@
#!/bin/sh
echo " * Disabling FRR"
for i in frr; do
rm -f /etc/systemd/system/multi-user.target.wants/${i}.service
ln -sf /dev/null /etc/systemd/system/${i}.service
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
echo " * Fixing permissions"
chown -R root:root /root/
chown -R ipng:ipng /home/ipng/
[ -r /etc/rc.local ] && chmod 755 /etc/rc.local

View File

@ -0,0 +1,254 @@
<domain type='kvm'>
<name>vpp0-1</name>
<uuid>ce13980d-4aec-fed9-5d11-723e5971c333</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>SandyBridge-IBRS</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='pcid'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='arat'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='xsaveopt'/>
<feature policy='require' name='pdpe1gb'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='pschange-mc-no'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/vpp0-1'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:01:10'/>
<source bridge='mgmt'/>
<target dev='vpp0-1-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:10'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:11'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:12'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:13'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

View File

@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";

View File

@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}

View File

@ -0,0 +1,17 @@
protocol ospf v2 ospf4 {
ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 {
interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; };
};
}
protocol ospf v3 ospf6 {
ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 {
interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; };
};
}

View File

@ -1,13 +1,11 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
# route 2001:db8:cafe::/48 via 2001:db8::1;
} }

View File

@ -0,0 +1,15 @@
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
optional: true
accept-ra: false
dhcp4: false
mtu: 9000
addresses: [ 198.19.5.18/24, 2001:678:d78:50b::12/64 ]
routes:
- to: 0.0.0.0/0
via: 198.19.5.1
- to: ::/0
via: 2001:678:d78:50b::1

View File

@ -3,6 +3,8 @@ exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/loopback.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/interface.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/lcp.vpp
exec /etc/vpp/config/mpls.vpp
exec /etc/vpp/config/sflow.vpp
comment { exec /etc/vpp/config/flowprobe.vpp } comment { exec /etc/vpp/config/flowprobe.vpp }

Some files were not shown because too many files have changed in this diff Show More