118 lines
3 KiB
Markdown
118 lines
3 KiB
Markdown
|
Building your own FRRouting Snap
|
||
|
========================================
|
||
|
(Tested on Ubuntu 18.04)
|
||
|
|
||
|
1. Install snapcraft:
|
||
|
|
||
|
sudo apt-get install snapcraft
|
||
|
|
||
|
2. Checkout FRRouting under a **unpriviledged** user account
|
||
|
|
||
|
git clone https://github.com/frrouting/frr.git
|
||
|
cd frr
|
||
|
|
||
|
3. (Optional) Add extra version information to
|
||
|
`snapcraft/extra_version_info.txt`. Information in this file will
|
||
|
be displayed with the frr.version command (simple `cat` after
|
||
|
the display of the `zebra --version` output)
|
||
|
|
||
|
4. Run Bootstrap and make distribution tar.gz
|
||
|
|
||
|
./bootstrap.sh
|
||
|
./configure --with-pkg-extra-version=-MySnapVersion
|
||
|
make dist
|
||
|
|
||
|
Note: configure parameters are not important for the Snap building,
|
||
|
except the `with-pkg-extra-version` if you want to give the Snap
|
||
|
a specific name to mark your own unoffical build
|
||
|
|
||
|
This will build `frr-something.tar.gz` - the distribution tar and
|
||
|
the snapcraft/snapcraft.yaml with the matching version number
|
||
|
|
||
|
5. Create snap
|
||
|
|
||
|
cd snapcraft
|
||
|
snapcraft
|
||
|
|
||
|
You should now end up with `frr_something.snap`
|
||
|
|
||
|
Installing the snap
|
||
|
===================
|
||
|
(This can be done on a different system)
|
||
|
|
||
|
1. Install snapd
|
||
|
|
||
|
sudo apt-get install snapd
|
||
|
|
||
|
2. Install self-built frr snap. (`--force-dangerous` is required to
|
||
|
install a unsigned self-built snap)
|
||
|
|
||
|
snap install --force-dangerous ./frr*.snap
|
||
|
|
||
|
Connect the priviledged `network-control` plug to the snap:
|
||
|
|
||
|
snap connect frr:network-control core:network-control
|
||
|
|
||
|
See README.usage.md for more details on setting up and using the snap
|
||
|
|
||
|
DONE.
|
||
|
|
||
|
The Snap will be auto-started and running.
|
||
|
|
||
|
Operations
|
||
|
==========
|
||
|
|
||
|
### FRRouting Daemons
|
||
|
At this time, all FRRouting daemons are auto-started.
|
||
|
|
||
|
A daemon can be stopped/started with (ie ospf6d)
|
||
|
|
||
|
systemctl stop snap.frr.ospf6d.service
|
||
|
systemctl start snap.frr.ospf6d.service
|
||
|
|
||
|
or disabled/enabled with
|
||
|
|
||
|
systemctl disable snap.frr.ospf6d.service
|
||
|
systemctl enable snap.frr.ospf6d.service
|
||
|
|
||
|
### FRRouting Commands
|
||
|
All the commands are prefixed with frr.
|
||
|
|
||
|
frr.vtysh -> vtysh
|
||
|
frr.version -> Just gives version output (zebra --version)
|
||
|
frr.readme -> Returns simple README with hints on using FRR
|
||
|
|
||
|
frr.bgpd-debug -> Directly start each daemon (without service)
|
||
|
frr.isisd-debug
|
||
|
frr.ospf6d-debug
|
||
|
frr.ospfd-debug
|
||
|
frr.pimd-debug
|
||
|
frr.pim6d-debug
|
||
|
frr.ripd-debug
|
||
|
frr.ripngd-debug
|
||
|
frr.ldp-debug
|
||
|
frr.zebra-debug
|
||
|
frr.nhrpd-debug
|
||
|
frr.babeld-debug
|
||
|
frr.eigrpd-debug
|
||
|
frr.pbrd-debug
|
||
|
frr.staticd-debug
|
||
|
frr.bfdd-debug
|
||
|
frr.fabricd-debug
|
||
|
frr.pathd-debug
|
||
|
|
||
|
vtysh can be accessed as frr.vtysh (Make sure you have /snap/bin in your
|
||
|
path). If access as `vtysh` instead of `frr.vtysh` is needed, you can enable it
|
||
|
via a snap alias as follows:
|
||
|
|
||
|
sudo snap alias frr vtysh
|
||
|
|
||
|
This will add the vtysh command to your /snap/bin for direct access. The output of
|
||
|
|
||
|
sudo snap aliases
|
||
|
|
||
|
should list vtysh command alias as enabled:
|
||
|
|
||
|
App Alias Notes
|
||
|
frr.vtysh vtysh enabled
|