Есть OpenVPn сервер, и bind. Как сделать обновление (добавление) в DNS при подключении клиента к OpenVPN? Нашел скрипт, но не пойму как его запускать? up\down как я понял запускается только при старте остановке/сервера. client-connect в качестве $1 передает файл для параметров вновь подключаемого клиента. Но судя по скрипту (взят с openvpn.net) есть место от куда при запуске передаются ip имя и т.д ($1 $2 $3). Но не могу понять где это?
#!/bin/bash
DNSSERVER= ## your DNS server
FWDZONE= ## forward resolution zone (ie. vpn.company.com)
REVZONE= ## reverse resolution zone (ie. "1.0.0.in-addr.arpa")
NSUOPTS= ## extra arguments for nsupdate (ie. "-k /path/to/key")
reverseRecord() {
echo $1 | sed -re
's/^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$/\4.\3.\2.\1.in-addr.arpa/'
}
addRecord() {
TEMPFILE=$(mktemp /tmp/nsupdate.XXXXXX) cat >$TEMPFILE <<EOF
server $DNSSERVER
zone $FWDZONE
update delete $CN A
update add $CN 3600 A $ADDRESS
send
EOF
nsupdate $NSUOPTS $TEMPFILE
cat >$TEMPFILE <<EOF
server $DNSSERVER
zone $REVZONE
update delete $REVERSE PTR
update add $REVERSE 3600 PTR $CN.
send
EOF
nsupdate $NSUOPTS $TEMPFILE
rm -f $TEMPFILE
}
removeRecord() {
TEMPFILE=$(mktemp /tmp/nsupdate.XXXXXX) cat >$TEMPFILE <<EOF
server $DNSSERVER
zone $FWDZONE
update delete $CN A
send
EOF
nsupdate $NSUOPTS $TEMPFILE
cat >$TEMPFILE <<EOF
server $DNSSERVER
zone $REVZONE
update delete $REVERSE PTR
send
EOF
nsupdate $NSUOPTS $TEMPFILE
rm -f $TEMPFILE
}
case "$script_type" in
learn-address)
OPERATION=$1
ADDRESS=$2
CN=$3
REVERSE=$(reverseRecord $ADDRESS)
case "$OPERATION" in
add|update)
addRecord
;;
delete)
removeRecord
;;
*)
echo "ERROR: don't know operation \"$OPERATION\"." exit 1
esac
;;
*)
echo "\"${script_type}\" not handled"
esac