summaryrefslogtreecommitdiffstats
path: root/tools/multiple-bgpd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/multiple-bgpd.sh')
-rw-r--r--tools/multiple-bgpd.sh41
1 files changed, 31 insertions, 10 deletions
diff --git a/tools/multiple-bgpd.sh b/tools/multiple-bgpd.sh
index 40977544..028ad696 100644
--- a/tools/multiple-bgpd.sh
+++ b/tools/multiple-bgpd.sh
@@ -6,19 +6,24 @@ NUM=5
VTYBASE=2610
ASBASE=64560
BGPD=/path/to/bgpd
-PREFIX=192.168.145
+PREFIX=192.168.145.
+#PREFIX=3ffe:123:456::
+ADDRPLEN=32
+CONFBASE=/tmp
+PIDBASE=/var/run/quagga
+CHOWNSTR=quagga:quagga
for H in `seq 1 ${NUM}` ; do
- CONF=/etc/quagga/bgpd${H}.conf
- ADDR=${PREFIX}.${H}
+ CONF="${CONFBASE}"/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}"
+ NEXTADDR="${PREFIX}${NEXT}"
NEXTAS=$((${ASBASE} + $NEXT))
- PREVADDR="${PREFIX}.${PREV}"
+ PREVADDR="${PREFIX}${PREV}"
PREVAS=$((${ASBASE} + $PREV))
# Edit config to suit.
@@ -39,17 +44,33 @@ for H in `seq 1 ${NUM}` ; do
neighbor ${NEXTADDR} peer-group default
neighbor ${PREVADDR} remote-as ${PREVAS}
neighbor ${PREVADDR} peer-group default
+ !
+ address-family ipv6
+ network 3ffe:${H}::/48
+ network 3ffe:${H}:1::/48 pathlimit 1
+ network 3ffe:${H}:2::/48 pathlimit 3
+ network 3ffe:${H}:3::/48 pathlimit 3
+ neighbor default activate
+ neighbor default capability orf prefix-list both
+ neighbor default default-originate
+ neighbor ${NEXTADDR} peer-group default
+ neighbor ${PREVADDR} peer-group default
+ exit-address-family
+ !
+ line vty
+ !
+ end
EOF
- chown quagga:quagga "$CONF"
+ chown ${CHOWNSTR} "$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 \
+ # Solaris: ifconfig vni${H} plumb ${ADDR}/${ADDRPLEN} up
+ # Linux: ip address add ${ADDR}/${ADDRPLEN} dev lo 2> /dev/null
+ ${BGPD} -i "${PIDBASE}"/bgpd${H}.pid \
-l ${ADDR} \
- -f /etc/quagga/bgpd${H}.conf \
+ -f "${CONF}" \
-P $((${VTYBASE}+${H})) \
-d
done