[2/2] show_info: Add VPN peer lists for fastd/L2TP

Submitted by Adrian Schmutzler on Nov. 30, 2018, 5:09 p.m.

Details

Message ID 20181130170946.20415-2-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Nov. 30, 2018, 5:09 p.m.
This shows the configured peers for fastd and L2TP.
Note that "configured" does not tell whether they are working.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

---

Fastd has been tested with and without peers.
L2TP has only been tested without peers.
---
 .../fff/fff-support/files/usr/sbin/show_info       | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info
index 86c01f01..c63e86ba 100755
--- a/src/packages/fff/fff-support/files/usr/sbin/show_info
+++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
@@ -3,6 +3,7 @@ 
 . /etc/firmware_release
 . /lib/functions/fff/evalhoodinfo
 . /lib/functions/fff/evalbytes
+. /lib/functions.sh # required for config_load and config_foreach
 
 board_name=$(uci -q get board.model.name)
 
@@ -134,6 +135,32 @@  echo "IPv4 Adressen: $(addr 4 br-mesh)"
 echo "IPv6 Adressen: $(addr 6 br-mesh)"
 
 echo ""
+if [ -d /etc/fastd/fff/peers ]; then
+	echo "-> FASTD: Peer list"
+	for fastdpeer in $(ls /etc/fastd/fff/peers/*); do
+		echo "${fastdpeer##*/}: $(grep "remote" "$fastdpeer" | sed "s/remote //")"
+	done
+else
+	echo "-> FASTD"
+	echo "No FASTD peers available"
+fi
+
+function printL2TP() {
+	local broker="$1"
+	echo "${broker}: $(uci -q get "tunneldigger.$broker.address")"
+}
+
+echo ""
+if [ -s /etc/config/tunneldigger ]; then
+	echo "-> L2TP: Peer list"
+	config_load tunneldigger
+	config_foreach printL2TP broker
+else
+	echo "-> L2TP"
+	echo "No L2TP peers available"
+fi
+
+echo ""
 echo "-> Netz: WAN"
 echo "Internet vorhanden: ${internet_active}"
 echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)"

Comments

Robert Langhammer Nov. 30, 2018, 8:52 p.m.
hallo Adrian, s. inline

Am 30.11.18 um 18:09 schrieb Adrian Schmutzler:
> This shows the configured peers for fastd and L2TP.
> Note that "configured" does not tell whether they are working.
>
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>
> ---
>
> Fastd has been tested with and without peers.
> L2TP has only been tested without peers.
> ---
>  .../fff/fff-support/files/usr/sbin/show_info       | 27 ++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info
> index 86c01f01..c63e86ba 100755
> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> @@ -3,6 +3,7 @@
>  . /etc/firmware_release
>  . /lib/functions/fff/evalhoodinfo
>  . /lib/functions/fff/evalbytes
> +. /lib/functions.sh # required for config_load and config_foreach
>  
>  board_name=$(uci -q get board.model.name)
>  
> @@ -134,6 +135,32 @@ echo "IPv4 Adressen: $(addr 4 br-mesh)"
>  echo "IPv6 Adressen: $(addr 6 br-mesh)"
>  
>  echo ""
> +if [ -d /etc/fastd/fff/peers ]; then
> +	echo "-> FASTD: Peer list"
> +	for fastdpeer in $(ls /etc/fastd/fff/peers/*); do

Man neigt hier gerne dazu eine Kommandosubstitution zu machen (geht mir
auch so). Es ist aber nicht noetig ne Subshell zu starten und das ls
laufen zu lassen.

for fastdpeer in /etc/fastd/fff/peers/*  ist schlanker.

Da das aber nur Kosmetik ist, gibt es von mir ein

Reviewed-by: Robert Langhammer <rlanghammer@web.de>

Kannst du mitnehmen, falls du das noch aendern moechtest.

> +		echo "${fastdpeer##*/}: $(grep "remote" "$fastdpeer" | sed "s/remote //")"
> +	done
> +else
> +	echo "-> FASTD"
> +	echo "No FASTD peers available"
> +fi
> +
> +function printL2TP() {
> +	local broker="$1"
> +	echo "${broker}: $(uci -q get "tunneldigger.$broker.address")"
> +}
> +
> +echo ""
> +if [ -s /etc/config/tunneldigger ]; then
> +	echo "-> L2TP: Peer list"
> +	config_load tunneldigger
> +	config_foreach printL2TP broker
> +else
> +	echo "-> L2TP"
> +	echo "No L2TP peers available"
> +fi
> +
> +echo ""
>  echo "-> Netz: WAN"
>  echo "Internet vorhanden: ${internet_active}"
>  echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)"
Adrian Schmutzler Nov. 30, 2018, 9:36 p.m.
Hallo robert,

ich habe das gerade mal ausprobiert. Sind Dateien im Ordner, verhalten sich beide Varianten gleich.

Sind keine Dateien im Ordner, aber der Ordner vorhanden, sind beide Varianten Mist:
a) for fastdpeer in $(ls /etc/fastd/fff/peers/*); do
Gibt einen Fehler aus, den man mit 2>/dev/null unterdrücken könnte.
b) for fastdpeer in /etc/fastd/fff/peers/*; do
Hier erhalte ich "/etc/fastd/fff/peers/*" als Ausgabe, wenn der Ordner leer ist!

Ich bin nun aber auf eine andere Variante gekommen, die sogar noch einfacher ist und das o.g. Problem löst:

for fastdpeer in $(ls /etc/fastd/fff/peers); do
	echo "$fastdpeer: $(grep "remote" "/etc/fastd/fff/peers/$fastdpeer" | sed "s/remote //")"
done

Macht man einfach den ls auf den Ordner ohne Asterisk, kriegt man die Ordner-Namen ohne Pfad und "nichts" bei leerem Ordner.
Ich werde das als V2 schicken.

Kannst du den L2TP-Teil mal bei dir Testen und den Output zurückschicken? Geht ja einfach per Copy/Paste in die bestehende /usr/sbin/show_info auf dem Router. Include am Anfang nicht vergessen.

Beste Grüße

Adrian


> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of robert
> Sent: Freitag, 30. November 2018 21:53
> To: franken-dev@freifunk.net
> Subject: Re: [PATCH 2/2] show_info: Add VPN peer lists for fastd/L2TP
> 
> hallo Adrian, s. inline
> 
> Am 30.11.18 um 18:09 schrieb Adrian Schmutzler:
> > This shows the configured peers for fastd and L2TP.
> > Note that "configured" does not tell whether they are working.
> >
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> >
> > ---
> >
> > Fastd has been tested with and without peers.
> > L2TP has only been tested without peers.
> > ---
> >  .../fff/fff-support/files/usr/sbin/show_info       | 27
> ++++++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> >
> > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info
> > b/src/packages/fff/fff-support/files/usr/sbin/show_info
> > index 86c01f01..c63e86ba 100755
> > --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> > @@ -3,6 +3,7 @@
> >  . /etc/firmware_release
> >  . /lib/functions/fff/evalhoodinfo
> >  . /lib/functions/fff/evalbytes
> > +. /lib/functions.sh # required for config_load and config_foreach
> >
> >  board_name=$(uci -q get board.model.name)
> >
> > @@ -134,6 +135,32 @@ echo "IPv4 Adressen: $(addr 4 br-mesh)"
> >  echo "IPv6 Adressen: $(addr 6 br-mesh)"
> >
> >  echo ""
> > +if [ -d /etc/fastd/fff/peers ]; then
> > +	echo "-> FASTD: Peer list"
> > +	for fastdpeer in $(ls /etc/fastd/fff/peers/*); do
> 
> Man neigt hier gerne dazu eine Kommandosubstitution zu machen (geht mir
> auch so). Es ist aber nicht noetig ne Subshell zu starten und das ls laufen zu
> lassen.
> 
> for fastdpeer in /etc/fastd/fff/peers/*  ist schlanker.
> 
> Da das aber nur Kosmetik ist, gibt es von mir ein
> 
> Reviewed-by: Robert Langhammer <rlanghammer@web.de>
> 
> Kannst du mitnehmen, falls du das noch aendern moechtest.
> 
> > +		echo "${fastdpeer##*/}: $(grep "remote" "$fastdpeer" | sed
> "s/remote //")"
> > +	done
> > +else
> > +	echo "-> FASTD"
> > +	echo "No FASTD peers available"
> > +fi
> > +
> > +function printL2TP() {
> > +	local broker="$1"
> > +	echo "${broker}: $(uci -q get "tunneldigger.$broker.address")"
> > +}
> > +
> > +echo ""
> > +if [ -s /etc/config/tunneldigger ]; then
> > +	echo "-> L2TP: Peer list"
> > +	config_load tunneldigger
> > +	config_foreach printL2TP broker
> > +else
> > +	echo "-> L2TP"
> > +	echo "No L2TP peers available"
> > +fi
> > +
> > +echo ""
> >  echo "-> Netz: WAN"
> >  echo "Internet vorhanden: ${internet_active}"
> >  echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2>
> /dev/null | human_bytes)"
Robert Langhammer Nov. 30, 2018, 10:35 p.m.
Hallo Adrian,

tatsächlich! Wieder was gelernt :)

L2tp kann ich auch nicht testen. Hab keine l2tp Hood mehr :(

Sollte aber so funktionieren.

Am 30.11.18 um 22:36 schrieb mail@adrianschmutzler.de:
> Hallo robert,
>
> ich habe das gerade mal ausprobiert. Sind Dateien im Ordner, verhalten sich beide Varianten gleich.
>
> Sind keine Dateien im Ordner, aber der Ordner vorhanden, sind beide Varianten Mist:
> a) for fastdpeer in $(ls /etc/fastd/fff/peers/*); do
> Gibt einen Fehler aus, den man mit 2>/dev/null unterdrücken könnte.
> b) for fastdpeer in /etc/fastd/fff/peers/*; do
> Hier erhalte ich "/etc/fastd/fff/peers/*" als Ausgabe, wenn der Ordner leer ist!
>
> Ich bin nun aber auf eine andere Variante gekommen, die sogar noch einfacher ist und das o.g. Problem löst:
>
> for fastdpeer in $(ls /etc/fastd/fff/peers); do
> 	echo "$fastdpeer: $(grep "remote" "/etc/fastd/fff/peers/$fastdpeer" | sed "s/remote //")"
> done
>
> Macht man einfach den ls auf den Ordner ohne Asterisk, kriegt man die Ordner-Namen ohne Pfad und "nichts" bei leerem Ordner.
> Ich werde das als V2 schicken.
>
> Kannst du den L2TP-Teil mal bei dir Testen und den Output zurückschicken? Geht ja einfach per Copy/Paste in die bestehende /usr/sbin/show_info auf dem Router. Include am Anfang nicht vergessen.
>
> Beste Grüße
>
> Adrian
>
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>> Of robert
>> Sent: Freitag, 30. November 2018 21:53
>> To: franken-dev@freifunk.net
>> Subject: Re: [PATCH 2/2] show_info: Add VPN peer lists for fastd/L2TP
>>
>> hallo Adrian, s. inline
>>
>> Am 30.11.18 um 18:09 schrieb Adrian Schmutzler:
>>> This shows the configured peers for fastd and L2TP.
>>> Note that "configured" does not tell whether they are working.
>>>
>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>>>
>>> ---
>>>
>>> Fastd has been tested with and without peers.
>>> L2TP has only been tested without peers.
>>> ---
>>>  .../fff/fff-support/files/usr/sbin/show_info       | 27
>> ++++++++++++++++++++++
>>>  1 file changed, 27 insertions(+)
>>>
>>> diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info
>>> b/src/packages/fff/fff-support/files/usr/sbin/show_info
>>> index 86c01f01..c63e86ba 100755
>>> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
>>> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
>>> @@ -3,6 +3,7 @@
>>>  . /etc/firmware_release
>>>  . /lib/functions/fff/evalhoodinfo
>>>  . /lib/functions/fff/evalbytes
>>> +. /lib/functions.sh # required for config_load and config_foreach
>>>
>>>  board_name=$(uci -q get board.model.name)
>>>
>>> @@ -134,6 +135,32 @@ echo "IPv4 Adressen: $(addr 4 br-mesh)"
>>>  echo "IPv6 Adressen: $(addr 6 br-mesh)"
>>>
>>>  echo ""
>>> +if [ -d /etc/fastd/fff/peers ]; then
>>> +	echo "-> FASTD: Peer list"
>>> +	for fastdpeer in $(ls /etc/fastd/fff/peers/*); do
>> Man neigt hier gerne dazu eine Kommandosubstitution zu machen (geht mir
>> auch so). Es ist aber nicht noetig ne Subshell zu starten und das ls laufen zu
>> lassen.
>>
>> for fastdpeer in /etc/fastd/fff/peers/*  ist schlanker.
>>
>> Da das aber nur Kosmetik ist, gibt es von mir ein
>>
>> Reviewed-by: Robert Langhammer <rlanghammer@web.de>
>>
>> Kannst du mitnehmen, falls du das noch aendern moechtest.
>>
>>> +		echo "${fastdpeer##*/}: $(grep "remote" "$fastdpeer" | sed
>> "s/remote //")"
>>> +	done
>>> +else
>>> +	echo "-> FASTD"
>>> +	echo "No FASTD peers available"
>>> +fi
>>> +
>>> +function printL2TP() {
>>> +	local broker="$1"
>>> +	echo "${broker}: $(uci -q get "tunneldigger.$broker.address")"
>>> +}
>>> +
>>> +echo ""
>>> +if [ -s /etc/config/tunneldigger ]; then
>>> +	echo "-> L2TP: Peer list"
>>> +	config_load tunneldigger
>>> +	config_foreach printL2TP broker
>>> +else
>>> +	echo "-> L2TP"
>>> +	echo "No L2TP peers available"
>>> +fi
>>> +
>>> +echo ""
>>>  echo "-> Netz: WAN"
>>>  echo "Internet vorhanden: ${internet_active}"
>>>  echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2>
>> /dev/null | human_bytes)"