The section Setting Up Networking here describes how to run a bootstrap node.
It looks like you just need to provide the flag --nat with the IP address of the computer/server running the code when you run the geth command. You need to make sure you have the port you are using open appropriately as well.
You can then use the geth console geth attach data/...
Bootnodes must be identified by an enode. Enodes are derived from private key.
Each ethereum node, including a bootnode is identified by an enode
identifier. These identifiers are derived from a key. Therefore you
will need to give the bootnode such key.
What is the correct way to do this and what are the implications of this?
You have to update the IP in the chain spec or in your bootnodes configuration. Otherwise, Parity won't know the route over IP to the node.
Is it as simple as distributing a new chain specification?
Would this be considered a fork?
No, this only affects the node ...
Probably you have already got the answer but since this thread is answerless. So here is your answer.
It was a bug in ethereum ci package (check here) and you can install bootnode with following command.
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install bootnode