Discussion:
DNS en FRITZ!Box 7369 en IPTV-STB-Arcadyan-HMB2260 en Netflix probleem
(te oud om op te antwoorden)
Maarten Sanders
2017-12-02 22:09:06 UTC
Permalink
Raw Message
Heb gisteren wat zitten spelen met de DNS server setting in de FB.
(Internet -> DNS Server -> Account Information -> DNS v4 servers)
Daarna weer terug gezet naar "Use DNSv4 servers assigned by the Internet
service provider (recommended)" maar dan blijven uiteraard de waardes in
"Preferred DNSv4 server:" en "Alternative DNSv4 server:" greyed out staan.
Alle in het huisnetwerk werkt weer gewoon maar sindsdien doet alleen
Netflix het niet meer op de Arcadyan-HMB2260, nog wel op andere devices
in het huisnetwerk.
Al diverse malen FB en Arcadyan herstart maar geen soelaas.
Op de Arcadyan geeft de Netflix app aan dat Netflix server 1 bereikt
wordt maar servers 2 en drie fout nw-2-5 geven. Code is voor DNS
probleem. OOk bij het draaien van de test op de Arcadyan geeft deze aan
dat er een DNS probleem bij de netwerk diagnose. TV kijken, gids
oproepen werkt wel gewoon.
Iemand enig idee waar ik kan zoeken om het probleem op te lossen?
Grt,
Maarten
JP
2017-12-03 00:56:40 UTC
Permalink
Raw Message
Post by Maarten Sanders
Heb gisteren wat zitten spelen met de DNS server setting in de FB.
(Internet -> DNS Server -> Account Information -> DNS v4 servers)
Daarna weer terug gezet naar "Use DNSv4 servers assigned by the Internet
service provider (recommended)" maar dan blijven uiteraard de waardes in
"Preferred DNSv4 server:" en "Alternative DNSv4 server:" greyed out staan.
Alle in het huisnetwerk werkt weer gewoon maar sindsdien doet alleen
Netflix het niet meer op de Arcadyan-HMB2260, nog wel op andere devices
in het huisnetwerk.
Al diverse malen FB en Arcadyan herstart maar geen soelaas.
Op de Arcadyan geeft de Netflix app aan dat Netflix server 1 bereikt
wordt maar servers 2 en drie fout nw-2-5 geven. Code is voor DNS
probleem. OOk bij het draaien van de test op de Arcadyan geeft deze aan
dat er een DNS probleem bij de netwerk diagnose. TV kijken, gids
oproepen werkt wel gewoon.
Iemand enig idee waar ik kan zoeken om het probleem op te lossen?
FB bug. Hij blijft connecten naar de DNS server die je zelf had
ingesteld. Het enige dat helpt is reset naar fabrieksinstellingen.
En daarna nooit meer aan die instelling zitten. Helaas.

Jan Pieter.
Maarten Sanders
2017-12-03 21:58:16 UTC
Permalink
Raw Message
On 12/3/17 1:56 AM, JP wrote:> On 12/02/2017 11:09 PM, Maarten Sanders
Post by JP
Post by Maarten Sanders
Heb gisteren wat zitten spelen met de DNS server setting in de FB.
(Internet -> DNS Server -> Account Information -> DNS v4 servers)
Daarna weer terug gezet naar "Use DNSv4 servers assigned by the Internet
service provider (recommended)" maar dan blijven uiteraard de waardes in
"Preferred DNSv4 server:" en "Alternative DNSv4 server:" greyed out
staan.
Alle in het huisnetwerk werkt weer gewoon maar sindsdien doet alleen
Netflix het niet meer op de Arcadyan-HMB2260, nog wel op andere devices
in het huisnetwerk.
Al diverse malen FB en Arcadyan herstart maar geen soelaas.
Op de Arcadyan geeft de Netflix app aan dat Netflix server 1 bereikt
wordt maar servers 2 en drie fout nw-2-5 geven. Code is voor DNS
probleem. OOk bij het draaien van de test op de Arcadyan geeft deze aan
dat er een DNS probleem bij de netwerk diagnose. TV kijken, gids
oproepen werkt wel gewoon.
Iemand enig idee waar ik kan zoeken om het probleem op te lossen?
FB bug. Hij blijft connecten naar de DNS server die je zelf had
ingesteld. Het enige dat helpt is reset naar fabrieksinstellingen.
En daarna nooit meer aan die instelling zitten. Helaas.
Jan Pieter.Dank Jan Pieter,
Omdat ik geen zin had om alles van scratch af op te bouwen het volgende
gedaan (na wat googlen en met dank aan de post van David Tonhofer op
superuser.com).

Het probleem met het uploaden van gewijzigde .export files (voor als je
geen backup hebt zoals ik) is dat de checksum die helemaal onderaan de
file staat niet meer klopt: **** END OF EXPORT FFFFFFFFF ****

David heeft hiervoor het onderstaande script gemaakt (aan te roepen als
perl checksum.pl Fritzbox_weet_ik_veel.export). Vervolgens handmatig de
CRC aanpassen en uploaden maar. Lees wel even de disclaimer in de file.

Om de DNS server settings weer te resetten zouden de regels:
user_dns1_for_ipv4 = x.x.x.x;
user_dns2_for_ipv4 = x.x.x.x;
moeten worden gewijzigd naar:
user_dns1_for_ipv4 = 0.0.0.0;
user_dns2_for_ipv4 = 0.0.0.0;

Helaas geen succes, ik vrees dat er ergens een DNS cache in de FB blijft
hangen. Dus als nog een factory reset uitgevoerd. Wellicht dat het
script voor anderen wel werkt.

Grt,

Maarten

=====checksum.pl=======

#!/usr/bin/perl

# Read Fritz!Box configuration dump file and compute its checksum using
CRC32.
# The problem is only knowing what to checksum exactly, and in this case
its not pretty.
# Inspired from the very compact Visual Basic script by Michael Engelke
available at
# http://www.mengelke.de/Projekte/FritzBoxVBScript

# The Fritz!Box accepts a modified file where the checksum has been changed
# manually to the output of this program in the last line. I have no
idea what
# happens if there is a syntax error anywhere inside the config file, so
beware.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.

use strict;
use warnings;

# ---
# Compute CRC start values
# ---

sub build_crc_table() {
my @crctbl = (); # Accepts 256 values

for (my $a = 0; $a < 256; $a++) {
my $c = $a;
for (my $b = 0; $b < 8; $b++) {
my $d = $c & 0x01;
$c = ($c >> 1) & 0x7FFFFFFF;
if ($d) {
$c = $c ^ 0xEDB88320;
}
}
push @crctbl, $c
}

my $print = 0;

if ($print) {
my $i = 0;
foreach my $x (@crctbl) {
print sprintf("CRC table value $i: %08x\n", $x);
$i++
}
}

return @crctbl
}

# ---
# Transform a string into a vector of its ASCII code points
# ---

sub numerize {
my ($str) = @_;
my @res = ();
foreach my $ch (split('',$str)) {
push @res, ord($ch)
}
return @res;
}

# ---
# Transform a hexstring into a vector of its 8-bit values
# ---

sub hexnumerize {
my ($str) = @_;
my @res = ();
my $tmp;
my $i = 0;
foreach my $ch (split('',$str)) {
if ($i == 0) { $tmp = $ch; $i++; }
else { $tmp.= $ch; $i=0; push @res,hex($tmp) }
}
if ($i != 0) {
die "Irregular hex string: $str\n";
}
return @res;
}

# ---
# Compute CRC-32 checksum
# See https://en.wikipedia.org/wiki/Cyclic_redundancy_check
# This must yield 414fa339:
# print sprintf("%08Xi\n", compute_crc32(numerize("The quick brown fox
jumps over the lazy dog")));
# ---

sub compute_crc32 {
my(@data) = @_;
my @crctbl = build_crc_table(); # not very efficient on multiple calls
my $crc = 0xFFFFFFFF;
my $i = 0;
foreach my $x (@data) {
my $index = ($crc ^ $x) & 0xFF;
$crc = $crctbl[$index] ^ ($crc >> 8); # ">>" is zero-filling in Perl
$crc = $crc & 0xFFFFFFFF; # format to 32 bit
#if ($i > 98700 && $i < 99000) {
# print sprintf("$i %c : $x => %08X\n",$x,$crc);
#}
$i++
}
return $crc ^ 0xFFFFFFFF
}

# ---
# The name of the configuration file may have been given on the command
line.
# If so slurp the file.
# If nothing has been given, slurp STDIN.
# After that, the input can be found in "@lines" (line terminators are
still in there)
# ---

my @lines;

if ($ARGV[0]) {
open(my $fh,'<',$ARGV[0]) or die "Could not open file '$ARGV[0]': $!";
@lines = <$fh>;
close($fh)
}
else {
@lines = <>;
}

# ---
# Stateful analysis.
# If there are lines after "END OF EXPORT" we will disregard them
# ---

my $firmware; # will capture firmware version
my $fritzbox; # will capture name string in header
my @data = (); # will capture 8-bit values to be CRC-checksummed later
my $cursum; # will capture the current CRC checksum in the text

# "state" indicates where we are in the file

my $state = 'NOTSTARTED';

# we consider the lines as a stack and push/pop to the stack

@lines = reverse @lines;

while (@lines && $state ne 'END') {

my $line = pop @lines;

if ($state eq 'NOTSTARTED') {
if ($line =~ /^\*{4} (.*?) CONFIGURATION EXPORT/) {
$fritzbox = $1;
$state = 'HEADER'
}
else {
chomp $line;
die "Expected 'CONFIGURATION EXPORT' in NOTSTARTED state, got
'$line'"
}
next
}

if ($state eq 'HEADER') {
chomp $line;
if ($line =~ /(\w+)=([\w\$\.]+)$/) {
my $key = $1;
my $val = $2;
if ($key eq 'FirmwareVersion') { $firmware = $val }
push @data,numerize($key);
push @data,numerize($val);
push @data,0;
}
elsif ($line =~ /^\*{4}/) {
$state = 'NEXTSECTION';
push @lines,$line
}
else {
die "Unexpected line in HEADER state: '$line'"
}
next
}

if ($state eq 'NEXTSECTION') {
chomp $line;
if ($line =~ /^\*{4} (?:CRYPTED)?(CFG|BIN)FILE:(\S+)/) {
$state = "INSIDESECTION_$1";
my $secname = $2;
print "Section $line\n";
push @data,numerize($secname);
push @data,0
}
elsif ($line =~ /^\*{4} END OF EXPORT (\w{8}) \*{4}/) {
$state = 'END';
$cursum = $1
}
else {
die "Unexpected line in NEXTSECTION state: '$line'"
}
next
}

if ($state eq 'INSIDESECTION_BIN') {
chomp $line;
if ($line =~ /^\*{4} END OF FILE \*{4}/) {
$state = 'NEXTSECTION'
}
else {
push @data,hexnumerize($line)
}
next
}

if ($state eq 'INSIDESECTION_CFG') {
if ($line =~ /^\*{4} END OF FILE \*{4}/) {
# Something unbelievably dirty: All section-internal linefeeds
(and carriage returns)
# are kept as is for checksumming, except for the last one
before the "END OF FILE"
if ($data[-1] == ord("\n")) {
pop @data;
if ($data[-1] == ord("\r")) {
pop @data;
}
}
$state = 'NEXTSECTION'
}
else {
# More dirty stuff: Double backspaces are replaced by single
ones for some reason.
$line =~ s/\\\\/\\/g;
push @data,numerize($line)
}
next
}

die "Unexpected state $state"

}

if ($state ne 'END') {
die 'Did not find proper end of configuration'
}
if (@lines) {
my $n = @lines;
print "There are still $n lines left that will be disregarded"
}

my $crc = compute_crc32(@data);
my $newsum = sprintf("%08X", $crc);

print "$fritzbox with firmware $firmware\n";

if ($newsum eq $cursum) {
print "Checksum is OK: $cursum\n"
}
else {
print "Found new checksum: $newsum\n";
print "Checksum embedded in file is $cursum\n"
}
JP
2017-12-09 03:21:05 UTC
Permalink
Raw Message
Post by Maarten Sanders
On 12/3/17 1:56 AM, JP wrote:> On 12/02/2017 11:09 PM, Maarten Sanders
Post by JP
Post by Maarten Sanders
Heb gisteren wat zitten spelen met de DNS server setting in de FB.
(Internet -> DNS Server -> Account Information -> DNS v4 servers)
Daarna weer terug gezet naar "Use DNSv4 servers assigned by the
Internet
Post by JP
Post by Maarten Sanders
service provider (recommended)" maar dan blijven uiteraard de
waardes in
Post by JP
Post by Maarten Sanders
"Preferred DNSv4 server:" en "Alternative DNSv4 server:" greyed out
staan.
Alle in het huisnetwerk werkt weer gewoon maar sindsdien doet alleen
Netflix het niet meer op de Arcadyan-HMB2260, nog wel op andere devices
in het huisnetwerk.
Al diverse malen FB en Arcadyan herstart maar geen soelaas.
Op de Arcadyan geeft de Netflix app aan dat Netflix server 1 bereikt
wordt maar servers 2 en drie fout nw-2-5 geven. Code is voor DNS
probleem. OOk bij het draaien van de test op de Arcadyan geeft deze aan
dat er een DNS probleem bij de netwerk diagnose. TV kijken, gids
oproepen werkt wel gewoon.
Iemand enig idee waar ik kan zoeken om het probleem op te lossen?
FB bug. Hij blijft connecten naar de DNS server die je zelf had
ingesteld. Het enige dat helpt is reset naar fabrieksinstellingen.
En daarna nooit meer aan die instelling zitten. Helaas.
Jan Pieter.Dank Jan Pieter,
Omdat ik geen zin had om alles van scratch af op te bouwen het volgende
gedaan (na wat googlen en met dank aan de post van David Tonhofer op
superuser.com).
Het probleem met het uploaden van gewijzigde .export files (voor als je
geen backup hebt zoals ik) is dat de checksum die helemaal onderaan de
file staat niet meer klopt: **** END OF EXPORT FFFFFFFFF ****
David heeft hiervoor het onderstaande script gemaakt (aan te roepen als
perl checksum.pl Fritzbox_weet_ik_veel.export). Vervolgens handmatig de
CRC aanpassen en uploaden maar. Lees wel even de disclaimer in de file.
user_dns1_for_ipv4 = x.x.x.x;
user_dns2_for_ipv4 = x.x.x.x;
user_dns1_for_ipv4 = 0.0.0.0;
user_dns2_for_ipv4 = 0.0.0.0;
Helaas geen succes, ik vrees dat er ergens een DNS cache in de FB blijft
hangen. Dus als nog een factory reset uitgevoerd. Wellicht dat het
script voor anderen wel werkt.
Het script werkt wel maar is geen oplossing voor het probleem. Het doet
hetzelfde als de normale interface en dat is blijkbaar niet genoeg.

Je bericht mist trouwens een Preferences: header waardoor dit een nieuwe
draad is geworden.

Erik
2017-12-04 12:35:38 UTC
Permalink
Raw Message
Post by Maarten Sanders
Iemand enig idee waar ik kan zoeken
Probleem moet je zoeken in lease time.
Loading...