mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 10:48:03 +00:00

* bgp_main.c: Add 'listenon' argument, to pass address to bind to. * bgp_network.c: (bgp_socket) Extend to take bind address. * bgpd.c: (bgp_init) Pass stored address. * bgpd.h: (struct bgp_master) storage for bind address 2007-11-01 Paul Jakma <paul.jakma@sun.com> * tools/multiple-bgpd.sh: New, quick script to launch a bunch of bgpds.
56 lines
1.4 KiB
Bash
56 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Public domain, not copyrighted..
|
|
|
|
NUM=5
|
|
VTYBASE=2610
|
|
ASBASE=64560
|
|
BGPD=/path/to/bgpd
|
|
PREFIX=192.168.145
|
|
|
|
for H in `seq 1 ${NUM}` ; do
|
|
CONF=/etc/quagga/bgpd${H}.conf
|
|
ADDR=${PREFIX}.${H}
|
|
|
|
if [ ! -e "$CONF" ] ; then
|
|
# This sets up a ring of bgpd peerings
|
|
NEXT=$(( ($H % ${NUM}) + 1 ))
|
|
PREV=$(( (($H + 3) % ${NUM}) + 1 ))
|
|
NEXTADDR="${PREFIX}.${NEXT}"
|
|
NEXTAS=$((${ASBASE} + $NEXT))
|
|
PREVADDR="${PREFIX}.${PREV}"
|
|
PREVAS=$((${ASBASE} + $PREV))
|
|
|
|
# Edit config to suit.
|
|
cat > "$CONF" <<- EOF
|
|
password whatever
|
|
service advanced-vty
|
|
!
|
|
router bgp $((64560+${H}))
|
|
bgp router-id ${ADDR}
|
|
network 10.${H}.1.0/24 pathlimit 1
|
|
network 10.${H}.2.0/24 pathlimit 2
|
|
network 10.${H}.3.0/24 pathlimit 3
|
|
neighbor default peer-group
|
|
neighbor default update-source ${ADDR}
|
|
neighbor default capability orf prefix-list both
|
|
neighbor default soft-reconfiguration inbound
|
|
neighbor ${NEXTADDR} remote-as ${NEXTAS}
|
|
neighbor ${NEXTADDR} peer-group default
|
|
neighbor ${PREVADDR} remote-as ${PREVAS}
|
|
neighbor ${PREVADDR} peer-group default
|
|
EOF
|
|
chown quagga:quagga "$CONF"
|
|
fi
|
|
# You may want to automatically add configure a local address
|
|
# on a loop interface.
|
|
#
|
|
# Solaris: ifconfig vni${H} plumb ${ADDR}/32 up
|
|
# Linux: ip address add ${ADDR}/32 dev lo 2> /dev/null
|
|
${BGPD} -i /var/run/quagga/bgpd${H}.pid \
|
|
-l ${ADDR} \
|
|
-f /etc/quagga/bgpd${H}.conf \
|
|
-P $((${VTYBASE}+${H})) \
|
|
-d
|
|
done
|