Friday, January 29, 2010

New Deadwood snapshot

I posted a new Deadwood snapshot last night where I have begun work on the bailiwick checks. My plan for the bailiwick check, which I will do next week, is as follows:
  • Look at what the NS record points at and the query sent by the client.
  • If they are the same, go to the next part of the bailiwick check.
  • Remove one label from our query (make www.example.com example.com or make example.com simply .com, or make .com the name of the root server)
  • See if they are the same; if they are we pass this part; if not, keep lopping off labels until we match or the query is less than zero-length (fail, exit routine)
Part two:
  • Let’s get the Bailiwick for this query (if this NS record was told by us upstream that these are records for .org; the bailiwick is .org; if this is a root server, tha bailiwick is any querty; if this NS record was told by us upstream this is for example.com, the bailiwick is example.com, and so on)
  • Let’s remove one label from the NS record given to us
  • Let’s compare the NS record with the bailiwick this NS record has
  • If they are the same, we’re gold and have passed the bailiwick check
  • Otherwise, remove labels from the NS record and compare with the bailiwick until we either get a match or the truncated NS record is shorter than our bailiwick. If we get a match, it’s gold, otherwise it’s out-of-bailiwick

Thursday, January 28, 2010

Why I don’t buy stuff from Apple

As someone who has been involved in the computer industry for 15 years, I will let you guys in on a little secret: I have never bought hardware from Apple. Seriously.

The thing is this: I don’t like how Steve Jobs tightly controls the hardware. For example, with an iPhone...what if I want to install an application that isn’t part of Steve Jobs’ walled garden (The iPhone application store?). Well, I can’t unless I break in to (“jailbreak”) my own iPhone.

I’m sorry, but I shouldn’t have to do something that voids the warranty of my product and risks bricking it just to download and run an application on it.

My Nokia 5310 has one thing going for it: I can download and put any J2ME (Java for mobiles) game or application on it and it runs like a charm. I have a nice Spanish-English dictionary, for example, and didn’t have to pay a dime for it. Ditto with the open-source games I have on my phone.

As for the iPad, my question is this: What does an iPad have that a netbook doesn’t have? Like a netbook, the iPad doesn’t fit in my pocket. Unlike a netbook, the iPad doesn’t have a real keyboard and costs twice as much. With a standard under-$300 Dell Mini 10, unlike an iPad, I can run all of the applications I run on Windows, including a full C and *NIX-like development environment. If I don’t like Windows, I can run Linux. Or even MacOS X...wait, take that back, Apple made a change to the latest Snow Leopard kernel so it won’t boot on an Atom processor.

Who besides Apple would be able to get away with deliberately disabling their software on hardware customers want to run it on?

Wednesday, January 27, 2010

New Deadwood snapshot: NS records now linked to glue AR records

In today's Deadwood snapshot, NS records are now linked to glue AR records.

Next: Bailiwick security testing.

Tuesday, January 26, 2010

New Deadwood snapshot: dwx_check_answer_section

I have created a second Deadwood snapshot today; as I get going working on recursion, I will at times make multiple Deadwood snapshots in a single day.

In this snapshot, I have added a function called dwx_check_answer_section, which goes through the answer section of a remote DNS reply and marks answers which are not either a direct answer to our question or part of a CNAME chain leading up to an answer to our question as RRX_IGNORE. In other words, it tells Deadwood to ignore answers which don't answer our question.

Next: Revise dwx_check_answer_section to not allow CNAME chains after a direct answer to our question is found or an answer at the end of a CNAME chain is found. Then: Add code which links up NS replies in the NS section with A and AAAA glue replies in the AR section.

New Deadwood snapshot: More work on recursion

I spent over an hour this morning slowly but surely giving Deadwood recursive support. There’s a lot of infrastructure I’m slowly putting in place.

Another MaraDNS wish list item

OK, I just got another MaraDNS wish list item:
  • DNS that changes one's answer based on one's location (Geo DNS)
The answer is the same as for other MaraDNS wishlist items: No, unless you pay me to implement it.

The only things I plan on implementing for MaraDNS are full IPv6 support, full thread-free recursive DNS, full Windows service support for MaraDNS 2.0's recursive resolver (Deadwood), and good BIND zone file support (via a Python script which is mostly done). After all of this is done, I have no plans to implement new features for MaraDNS unless someone steps up to the plate and compensates me for my time.

Sorry, guys, I'm getting married in under three weeks and the married lifestyle is not compatible with the lifestyle of someone writing open source software "for fun and for free".

Monday, January 25, 2010

New Deadwood snapshot: On to recursion

I am finally starting the work to give Deadwood full recursion. I have added a hook in the function cache_dns_reply() to call something called dwx_cache_reply() in DwRecurse.c, which gives me enough scaffolding to start building up the infastructure to look at a DNS packet received from a remote DNS server and, based on the reply, determine how to continue processing the DNS request.

In addition, I have removed all Deadwood snapshots older that Deadwood 2.5.01.

maradns.org/deadwood/snap