Video problems on svt.se or svd.se? Blame qbrick.com

November 2nd, 2009

The Swedish public broadcasting corporation offers lots of content online on SVTPlay. Unfortunately have not worked for a while for me, and today I decided to track down the problems. It turns out to be a rather non-obvious interaction between a new feature in my resolving name server and the nameservers of the streaming provider Qbrick not following the DNS Specification.

Unlike most of the internet i use Unbound instead of bind as my nameserver. It offers great DNSSEC support as well as a well maintained code base. One recent feature is the use of mixed case labels when sending queries to other nameservers, as outlined in the DNS0x20 document. This is one countermeasure to the DNS Spoofing attacks that is an increasing problem on the internet these days, and it depends on the fact that name servers should treat queries that only differs in the case as if they were equals. In other words, mobizoft.qbrick.com and MobiZoft.Qbrick.com should be treated as the same.

The exact wording of the specification can be found in RFC1035 section 2.3.1:

Note that while upper and lower case letters are allowed in domain
names, no significance is attached to the case.  That is, two names with
the same spelling but different case are to be treated as if identical.

Unfortunately, Qbrick's nameservers fail to implement this specification, and mixed case questions gets answered with the NXDOMAIN reply code, which means that there is no data for the given domain name. I hope that Qbrick will get their act together and fix this soon, but in the meantime it can be a good idea to use the use-caps-for-id: no directive if you are using unbound.

In summary it is a bit annoying that errors like these are so hard to find and correct. Most video displaying flash plugins will not report a meaningful error, and the fact that SVT uses an external provider for their streaming video solution puts the problem even further away from the end user.

Update 091104: I have now gotten in contact with Qbrick. They recognize the problem but state that they have an ongoing project to replace the DNS solution and they will not address this issue until the new solution is in place.


5 Responses to “Video problems on svt.se or svd.se? Blame qbrick.com”

  1. Mikael "MMN-o" Nordfeldth on November 2, 2009 16:37

    A friend experienced trouble with SVT Play “in Linux” on a 64bit machine which is used as a terminal server. He deduced it to running the 32bit Flash through nspluginwrapper, which was solved by installing Adobe’s 64bit development release for Linux.

    That problem resulted in the error message “This video is not available” and from what I understand was due to 32-to-64-bit wrapping. I’ve linked him this post to ask whether this might be an issue, even though he’s probably not running Unbound as contrary to bind anywhere.

    I have no means to debug qbrick’s DNS servers right now myself, so I’m assuming you’ve verified that your problems with SVT Play are that qbrick doesn’t follow the RFC.
    However if you’re running a x86_64 system with a regular non-proprietary OS, I recommend the 64bit binary from Adobe.

    Unless of course you’re using something mad like gnash or swfdec.
    …also, in Mac OS X, I have no clue what’s available or not. :)

  2. noa on November 2, 2009 16:47

    1) Your friend’s problem might be related to a missing 32bit libcurl that the flashplugin needs. But again it might not. I only have 32bit Linux at home so I can’t verify that.

    2 I can easily reproduce the error with the standard unix tool dig:

    valfrid:slask noa$ dig @lb1.qbrick.com qstream-fl1.qbrick.com A
    
    ; < <>> DiG 9.6.0-APPLE-P2 < <>> @lb1.qbrick.com qstream-fl1.qbrick.com A
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 50769
    ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;qstream-fl1.qbrick.com.		IN	A
    
    ;; ANSWER SECTION:
    qstream-fl1.qbrick.com.	10	IN	A	194.14.241.210
    
    ;; Query time: 16 msec
    ;; SERVER: 194.14.241.133#53(194.14.241.133)
    ;; WHEN: Mon Nov  2 15:48:35 2009
    ;; MSG SIZE  rcvd: 78
    
    valfrid:slask noa$ dig @lb1.qbrick.com QStreaM-fl1.qBrICk.cOm A
    
    ; <<>> DiG 9.6.0-APPLE-P2 < <>> @lb1.qbrick.com QStreaM-fl1.qBrICk.cOm A
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER< <- opcode: QUERY, status: NXDOMAIN, id: 21142
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;qstream-fl1.qbrick.com.		IN	A
    
    ;; Query time: 197 msec
    ;; SERVER: 194.14.241.133#53(194.14.241.133)
    ;; WHEN: Mon Nov  2 15:46:42 2009
    ;; MSG SIZE  rcvd: 40
    
  3. MA on November 3, 2009 12:10

    Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

  4. noa on November 3, 2009 12:26

    MA, I know that internet drafts not authoritative documents, but according to the authoritative RFC that I quote and reference above I should be able to send my domain name queries in whatever case I like for whatever reason.

    The error I point out is a violation of an unambiguous part of RFC1035, not some experimental feature in an Internet-Draft.

  5. noa on November 3, 2009 16:05

    MMN-o: svtplay.se works without problems on my CentOS 5 x86_64 box, with 32bit flash-plugin:

    [noa@viktor slask]$ rpm -q –queryformat “%{name}-%{version}-%{release}.%{arch}\n” flash-plugin firefox nspluginwrapper
    flash-plugin-10.0.32.18-release.i386
    firefox-3.0.14-1.el5.centos.x86_64
    nspluginwrapper-0.9.91.5-22.el5.x86_64
    nspluginwrapper-0.9.91.5-22.el5.i386

Trackback URI | Comments RSS

Leave a Reply

Name (required)

Email (required)

Website

Speak your mind