Please setup ExaBGP and Quagga before this manual.
Let’s create fake process which work as proxy for relying data from Linux PIPE to ExaBGP:
vim /etc/exabgp/exabgp_pipe_provider.sh
With this contents:
#!/bin/sh FIFO="/var/run/exabgp.cmd" #trap "rm -f $FIFO" SIGINT rm -f $FIFO mkfifo $FIFO tail -f $FIFO
Set exec flag:
chmod +x /etc/exabgp/exabgp_pipe_provider.sh
And add following (process service-dynamic ….) to ExaBGP config: /etc/exabgp_blackhole.conf
group Core_v4 { hold-time 180; local-as 65001; peer-as 1234; router-id 10.0.3.114; graceful-restart 1200; static { route 10.10.10.1/32 next-hop 10.0.3.114 community 65001:666; } neighbor 10.0.3.115 { local-address 10.0.3.114; description "Quagga"; } # Add this line for process management process service-dynamic { run /etc/exabgp/exabgp_pipe_provider.sh; } }
And run ExaBGP!
After this we could see multiple processes in process list:
ps aux|grep exa root 36854 0.0 0.0 52764 14604 ? S 11:47 0:00 /usr/bin/python /usr/local/bin/exabgp /etc/exabgp_blackhole.conf root 36855 0.0 0.0 4328 868 ? S 11:47 0:00 /bin/sh /etc/exabgp/exabgp_pipe_provider.sh root 36858 0.0 0.0 5800 1324 ? S 11:47 0:00 tail -f /var/run/exabgp.cmd
We are ready!
Let’s add announce:
echo "announce route 10.10.10.123/32 next-hop 10.0.3.114 community 65001:666" > /var/run/exabgp.cmd
If you want to disable it please use this syntax:
echo "withdraw route 10.10.10.123/32" > /var/run/exabgp.cmd
After announce route we could see on Quagga side new prefix:
*> 10.10.10.123/32 10.0.3.114 0 65001 i