#!/bin/ksh
-# $OpenBSD: l3vpn.sh,v 1.1 2022/11/03 15:39:54 claudio Exp $
+# $OpenBSD: l3vpn.sh,v 1.2 2022/11/04 11:33:26 claudio Exp $
set -e
IFACES="${PAIR1} ${PAIR2} ${MPE1} ${MPE2}"
PAIR1IP=10.12.57.1
PAIR2IP=10.12.57.2
+PAIR1IP6=2001:db8:57::1
+PAIR2IP6=2001:db8:57::2
error_notify() {
set -x
echo setup
ifconfig ${PAIR1} rdomain ${RDOMAIN1} ${PAIR1IP}/29 mpls up
ifconfig ${PAIR2} rdomain ${RDOMAIN2} ${PAIR2IP}/29 mpls up
+ifconfig ${PAIR1} inet6 ${PAIR1IP6}/64
+ifconfig ${PAIR2} inet6 ${PAIR2IP6}/64
ifconfig ${PAIR1} patch ${PAIR2}
ifconfig lo${RDOMAIN1} inet 127.0.0.1/8
ifconfig lo${RDOMAIN2} inet 127.0.0.1/8
ifconfig mpe${RDOMAIN3} rdomain ${RDOMAIN3} mplslabel 42 192.168.237.242/32
ifconfig mpe${RDOMAIN4} rdomain ${RDOMAIN4} mplslabel 44 192.168.237.244/32
+# currently mpe fails to do inet6 because it is missing multicast
+#ifconfig mpe${RDOMAIN3} inet6 2001:db8:242::242/64
+#ifconfig mpe${RDOMAIN4} inet6 2001:db8:244::244/64
ifconfig lo${RDOMAIN3} inet 127.0.0.1/8
ifconfig lo${RDOMAIN4} inet 127.0.0.1/8
sleep 3
-echo Check setup
+echo Check initial networks
+route -T ${RDOMAIN1} exec bgpctl show
route -T ${RDOMAIN1} exec bgpctl show rib
route -T ${RDOMAIN1} exec bgpctl show fib table 13
+route -T ${RDOMAIN3} show
route -T ${RDOMAIN3} get 192.168.44/24 > /dev/null
route -T ${RDOMAIN4} get 192.168.42/24 > /dev/null
+#route -T ${RDOMAIN3} get -inet6 2001:db8:42:44::/64 > /dev/null
+#route -T ${RDOMAIN4} get -inet6 2001:db8:42:42::/64 > /dev/null
+
+echo Add new network
+route -T ${RDOMAIN2} exec bgpctl network add 192.168.45.0/24 rd 4200000002:14
+#route -T ${RDOMAIN2} exec bgpctl network add 2001:db8:42:45::/64 rd 4200000002:14
+sleep 1
+route -T ${RDOMAIN3} get 192.168.45/24 > /dev/null
+#route -T ${RDOMAIN3} get -inet6 2001:db8:42:45::/64 > /dev/null
+
+echo Remove new network
+route -T ${RDOMAIN2} exec bgpctl network del 192.168.45.0/24 rd 4200000002:14
+#route -T ${RDOMAIN2} exec bgpctl network del 2001:db8:42:45::/64 rd 4200000002:14
+sleep 1
+! route -T ${RDOMAIN3} get 192.168.45/24 > /dev/null
+#! route -T ${RDOMAIN3} get -inet6 2001:db8:42:45::/64 > /dev/null
exit 0