<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title># Defining Chaos In Order</title>
	
	<link>http://mattiasgeniar.be</link>
	<description>Tips, Tricks &amp; Rants of a Sys Admin</description>
	<lastBuildDate>Fri, 30 Jul 2010 08:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mattiasgeniar" /><feedburner:info uri="mattiasgeniar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><feedburner:emailServiceId>mattiasgeniar</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>System Administrator Appreciation Day 2010 @ Nucleus</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/bqrIsZjdJww/</link>
		<comments>http://mattiasgeniar.be/2010/07/30/system-administrator-appreciation-day-2010-nucleus/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 08:06:00 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[cake]]></category>
		<category><![CDATA[nucleus]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[sysadminday]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=2050</guid>
		<description><![CDATA[Every year we count the remaining days. And every year, it&#8217;s worth it. This is our 2010 System Administrator Appreciation Day gift! In 2009 we had pretty cakes as well! And if you need a reminder for why we deserve &#8230; <a href="http://mattiasgeniar.be/2010/07/30/system-administrator-appreciation-day-2010-nucleus/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Every year we count the remaining days. And every year, it&#8217;s worth it. This is our 2010 <a href="http://www.sysadminday.com/" onclick="pageTracker._trackPageview('/outgoing/www.sysadminday.com/?referer=');">System Administrator Appreciation Day</a> gift! In 2009 we had <a href="http://mattiasgeniar.be/2009/07/31/system-administrator-appreciation-day-nucleus-win/">pretty cakes</a> as well! And if you need a reminder for <em>why</em> we deserve this day, have a look <a href="http://mattiasgeniar.be/2009/07/30/why-we-deserve-our-system-administration-appreciation-day/">here</a>.</p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-5.jpg"><img class="alignnone size-medium wp-image-2051" title="photo 5" src="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-5-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-2.jpg"><img class="alignnone size-medium wp-image-2053" title="photo 2" src="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-2-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-3.jpg"><img class="alignnone size-medium wp-image-2054" title="photo 3" src="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-3-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-4.jpg"><img class="alignnone size-medium wp-image-2055" title="photo 4" src="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-4-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-1.jpg"><img class="alignnone size-medium wp-image-2052" title="photo 1" src="http://mattiasgeniar.be/wp-content/uploads/2010/07/photo-1-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>I love being <a href="http://www.nucleus.be/en/" onclick="pageTracker._trackPageview('/outgoing/www.nucleus.be/en/?referer=');">in IT.</a> :-)</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/bqrIsZjdJww" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/07/30/system-administrator-appreciation-day-2010-nucleus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/07/30/system-administrator-appreciation-day-2010-nucleus/</feedburner:origLink></item>
		<item>
		<title>phpsh: Running An Interactive PHP Shell (Python)</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/fJY3p99ihtY/</link>
		<comments>http://mattiasgeniar.be/2010/07/22/phpsh-running-an-interactive-php-shell-python/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 20:00:50 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Devops]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpsh]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1958</guid>
		<description><![CDATA[If you haven&#8217;t heard of it yet, there&#8217;s a very intersting tool available called phpsh, a python implementation to a PHP shell &#8211; but better. Installing phpsh SSH into your server, and download, build &#38; install the binaries. This assumes &#8230; <a href="http://mattiasgeniar.be/2010/07/22/phpsh-running-an-interactive-php-shell-python/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t heard of it yet, there&#8217;s a very intersting tool available called <a href="http://www.phpsh.org/" onclick="pageTracker._trackPageview('/outgoing/www.phpsh.org/?referer=');">phpsh</a>, a python implementation to a PHP shell &#8211; but better.</p>
<p><strong>Installing phpsh</strong></p>
<p>SSH into your server, and <a href="http://github.com/facebook/phpsh/tarball/master" onclick="pageTracker._trackPageview('/outgoing/github.com/facebook/phpsh/tarball/master?referer=');">download</a>, build &amp; install the binaries. This assumes you&#8217;ve downloaded the .tar.gz version.</p>
<blockquote><p># wget http://github.com/facebook/phpsh/tarball/master<br />
# tar xzf facebook-phpsh-1bc1c01.tar.gz<br />
# cd facebook-phpsh-1bc1c01/<br />
# python setup.py build<br />
# python setup.py install<br />
# phpsh</p></blockquote>
<p>As simple as that.</p>
<p><strong>How do I use it?</strong></p>
<p>Even more simple. Once the install is done, execute <strong>phpsh</strong> on the CLI, and get started writing PHP code.</p>
<blockquote><p>srv ~ # <strong>phpsh </strong><br />
Starting php<br />
type &#8216;h&#8217; or &#8216;help&#8217; to see instructions &amp; features<br />
php&gt;<br />
php&gt;<br />
php&gt; <strong>echo &#8220;Testing this new PHPSH&#8221;;</strong><br />
Testing this new PHPSH<br />
php&gt;<br />
php&gt;<br />
php&gt; <strong>$dbconn = mysql_connect(&#8216;localhost&#8217;, &#8216;user&#8217;, &#8216;pass&#8217;);</strong><br />
PHP Warning:  mysql_connect(): Access denied for user &#8216;user&#8217;@'localhost&#8217; (using password: YES) in /usr/lib/python2.4/site-packages/phpsh/phpsh.php(534) : eval()&#8217;d code on line 1<br />
php&gt;<br />
php&gt;<br />
php&gt; exit;</p></blockquote>
<p>This can help to easily test or debug some PHP code. It has syntax highlighting, <strong>tab completion</strong> (!!), manual pages, &#8230; Still not convinced? Have a look at <a href="http://techchorus.net/10-examples-inspire-you-use-php-interactive-shell" onclick="pageTracker._trackPageview('/outgoing/techchorus.net/10-examples-inspire-you-use-php-interactive-shell?referer=');">some real-life examples for a PHP interface shell</a>.  Seriously, awesome tool.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/fJY3p99ihtY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/07/22/phpsh-running-an-interactive-php-shell-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/07/22/phpsh-running-an-interactive-php-shell-python/</feedburner:origLink></item>
		<item>
		<title>Implementing &amp; Maintaining DNSSEC On Bind9 Nameservers</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/PnwiX8JCUPc/</link>
		<comments>http://mattiasgeniar.be/2010/07/12/implementing-maintaining-dnssec-on-bind9-nameservers/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 15:00:06 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Devops]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[zone]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1987</guid>
		<description><![CDATA[I won&#8217;t be going into detail what DNSSEC is, and what it does. This only covers the implementation (deployment) and maintenance that accompanies DNSSEC. Here&#8217;s the small index of topics I&#8217;ll cover. What is DNSSEC? Enabling DNSSEC in your environment &#8230; <a href="http://mattiasgeniar.be/2010/07/12/implementing-maintaining-dnssec-on-bind9-nameservers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I won&#8217;t be going into detail what DNSSEC is, and what it does. This only covers the implementation (deployment) and maintenance that accompanies DNSSEC. Here&#8217;s the small index of topics I&#8217;ll cover.</p>
<ol>
<li><strong>What </strong>is DNSSEC?</li>
<li><strong>Enabling DNSSEC </strong>in your environment</li>
<li><strong>Generating your keys</strong>: Key Signing Key (KSK) and Zone Signing Key (ZSK)</li>
<li><strong>Adding </strong>the public keys <strong>to your zone</strong></li>
<li><strong>Signing </strong>the zone</li>
<li>Key <strong>rotation</strong>, zone <strong>maintenance</strong></li>
<li><strong>Summary</strong></li>
<li>Links, Articles &amp; Video</li>
</ol>
<p>There are a few assumptions throughout this article, mostly related to directory structures as I like to keep things organized. Another method would be to create a directory per zone, and store all data within that directory.</p>
<ol>
<li>I&#8217;m doing the signing for the dummy host &#8220;<strong>dns.org</strong>&#8220;</li>
<li>I have my zonefiles stored in <em>/var/named/<strong>zones</strong>/</em></li>
<li>I have my Key Signing Keys stored in <em>/var/named/<strong>KSK</strong></em></li>
<li>I have my Zone Signing Keys stored in <em>/var/named/<strong>ZSK</strong></em></li>
<li>I have my Delegation Signer and Keyset stored in <em>/var/named/<strong>SET</strong></em></li>
</ol>
<p><strong><span id="more-1987"></span>1) What is DNSSEC?</strong></p>
<p>Here are a few links that very accurately explain DNSSEC.</p>
<ul>
<li><a href="http://blog.techscrawl.com/2009/01/06/dnssec-101/" onclick="pageTracker._trackPageview('/outgoing/blog.techscrawl.com/2009/01/06/dnssec-101/?referer=');">http://blog.techscrawl.com/2009/01/06/dnssec-101/</a></li>
<li><a href="http://en.wikipedia.org/wiki/DNSSec" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/DNSSec?referer=');">http://en.wikipedia.org/wiki/DNSSec</a></li>
<li><a href="http://www.dnssec.net/" onclick="pageTracker._trackPageview('/outgoing/www.dnssec.net/?referer=');">http://www.dnssec.net/</a></li>
<li><a href="http://www.icann.org/en/announcements/dnssec-qaa-09oct08-en.htm" onclick="pageTracker._trackPageview('/outgoing/www.icann.org/en/announcements/dnssec-qaa-09oct08-en.htm?referer=');">http://www.icann.org/en/announcements/dnssec-qaa-09oct08-en.htm</a></li>
</ul>
<p><strong>2) Enabling DNSSEC in your environment</strong></p>
<p>For my examples, I&#8217;ll be signing the zone &#8220;<strong>dns.org</strong>&#8220;, for which my nameserver has been configured to be authoritive. To enable DNSSEC, you&#8217;ll need to add the following to your <strong>/etc/named.conf</strong> file. Note; this is only supported in Bind version 9.3 and upwards.</p>
<blockquote><p># named -v<br />
BIND <strong>9.3.6</strong>-P1-RedHat-9.3.6-4.P1.el5_4.2</p></blockquote>
<p>So, edit the file <strong>/etc/named.conf</strong> and add the lines in bold to the <strong>options</strong>-section.</p>
<blockquote><p>options {<br />
&#8230;<br />
// DNSSEC<br />
<strong>dnssec-enable yes;</strong><br />
};</p></blockquote>
<p><strong>3) Generating your keys: Key Signing Key (KSK) and Zone Signing Key (ZSK)</strong></p>
<p>Just a small clarification on what the KSK and ZSK actually are.<br />
<strong>ZSK: Z</strong>one <strong>S</strong>igning <strong>K</strong>ey &#8211; this key will sign your records in your zonefile.<br />
<strong>KSK: K</strong>ey <strong>S</strong>igning <strong>K</strong>ey &#8211; this key will sign your Zone Signing Key. This is generally a key with greater key size.</p>
<p>In my set-up, I have all my zones in seperate files located in /var/named/zones/*. I&#8217;ll be storing my keys in seperate folders, to keep the overview.</p>
<ul>
<li>/var/named/ZSK: all zone signing keys</li>
<li>/var/named/KSK: all key signing keys</li>
</ul>
<p><em>Note; ideally, you would want to store your keys on a offline machine, sign your zones there, and transfer them to your online nameserver. However, in set-ups where zones are reconfigured daily, this would cause too much overhead.</em></p>
<p>First, we&#8217;ll generate the <strong>Zone Signing Key</strong> for <strong>dns.org:</strong></p>
<blockquote><p># cd /var/named/ZSK<br />
# dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE dns.org</p></blockquote>
<p>This will generate 2 files, using the same naming format: <strong>K</strong>&lt;zone&gt;.&lt;id&gt;.key <em>(ie:  Kdns.org.+005+03486.key)</em><em> </em>and <strong>K</strong>&lt;zone&gt;.&lt;id&gt;.private <em>(ie: Kdns.org.+005+03486.private)</em>. The first file holds the public key, and the .private file holds our private key.</p>
<p>Now, to generate the <strong>Key Signing Key </strong>for <strong>dns.org</strong>:</p>
<blockquote><p># cd /var/named/KSK<br />
# dnssec-keygen -r /dev/urandom -a RSASHA1 -b 4096 -n ZONE -f KSK dns.org</p></blockquote>
<p>This will also generate 2 files, using the same naming format as the ZSK.</p>
<p><em>Note; every time you generate a KSK or a ZSK, it will assign a new random ID to the filename.</em></p>
<p><strong>4) Adding the public keys to your zone</strong></p>
<p>After having generated the KSK and ZSK, we need to add the public key of each file to the zone. In my environment (using the folders described above), this would mean:</p>
<blockquote><p># cat /var/named/ZSK/Kdns.org.*.key &gt;&gt; /var/named/zones/dns.org<br />
# cat /var/named/KSK/Kdns.org.*.key &gt;&gt; /var/named/zones/dns.org</p></blockquote>
<p>This will add the appropriate public key to my zone. I&#8217;ve used the wildcard &#8220;Kdns.org.*.key&#8221; because we can&#8217;t predict the ID. However, if you regenerate your keys, you&#8217;ll have multiple files that would be added with that wildcard (as there are multiple public keys), so be cautious to remove the &#8220;old&#8221; public and private keys first.</p>
<p>If you take a look at your zonefile now, you&#8217;ll see there are now 2 extra <strong>DNSKEY</strong> records which have been added.</p>
<blockquote><p><em>dns.org. IN DNSKEY 256 3 5 &#8220;random chars&#8221;<br />
dns.org. IN DNSKEY 257 3 5 &#8220;random chars&#8221;</em></p></blockquote>
<p>The first DNSKEY, with the number &#8220;256&#8243;, is the smaller <strong>Zone Signing Key</strong>, with the actual key appended at the back. The second DNSKEY with number &#8220;257&#8243; is the larger <strong>Key Signing Key</strong> with the actual key at the end.</p>
<p>After you&#8217;ve restarted your nameserver (to activate the newly updated zone) you can check if the records were added OK by trying to query for them:</p>
<blockquote><p><em># dig @localhost DNSKEY dns.org</em></p></blockquote>
<p>The ANSWER SECTION should give you 2 DNSKEY&#8217;s.</p>
<p><strong>5) Signing the zone</strong></p>
<p>To sign the zone, we need the command to point at the zonefile, the ZSK and KSK.</p>
<blockquote><p># cd /var/named/SET<br />
# dnssec-signzone -o dns.org -k /var/named/KSK/Kdns.org.+005+48967.key /var/named/zones/dns.org /var/named/ZSK/Kdns.org.+005+03486.key</p></blockquote>
<p>Let&#8217;s break this down. The first parameter, &#8220;<strong>- 0</strong>&#8220;, tells us which zone to sign (in this case, dns.org). The second parameter, &#8220;<strong>- k</strong>&#8220;, allows us to point at the Key Signing Key. Next up is the location of our zonefile, followed by the location of the Zone Signing Key.</p>
<p><em>Note; the IDs in the filenames will vary for your set-up.</em></p>
<p>Afterwards, you&#8217;ll notice there are now 2 extra files generated in the /var/named/SET directory. First is &#8220;dsset-dns.org.&#8221;, followed by &#8220;keyset-dns.org.&#8221;. I&#8217;ve placed these in a seperate directory on purpose, to keep the overview in the /var/named/zones directory.</p>
<p>You&#8217;ll also notice that in /var/named/zones, beside the already existing &#8220;dns.org&#8221; file, there is now also a file called &#8220;dns.org.signed&#8221; which holds the signed version of the zonefile. It&#8217;s also <strong>much larger</strong> than the original zonefile, because all RRs (Resource Records) are now signed. For reference, here is <a href="http://mattiasgeniar.be/wp-content/uploads/2010/08/dns.org_.original.txt">the original zonefile</a>, <a href="http://mattiasgeniar.be/wp-content/uploads/2010/08/dns.org_.txt">the zonefile with dnskey</a>, and the <a href="http://mattiasgeniar.be/wp-content/uploads/2010/08/dns.org_.signed.txt">fully signed zonefile</a>.</p>
<p>Now we can change our named.conf to point at the &#8220;.signed&#8221; version to load this signed zone.</p>
<blockquote><p>zone &#8220;dns.org&#8221; IN {<br />
type master;<br />
file &#8220;/var/named/zones/dns.org.signed&#8221;;<br />
};</p></blockquote>
<p>And reload your nameserver to test the newly signed zone.</p>
<blockquote><p><em># dig @localhost dns.org +dnssec</em></p></blockquote>
<p>You&#8217;ll notice every record is now accompanied by a <strong>RRSIG</strong> Resource Record as well, which holds the signed version of that Resource Record you requested.</p>
<p><strong>6) Key rotation, zone maintenance<br />
</strong></p>
<p><strong>A)</strong> Once a zone has been signed, the <strong>RRSIG</strong>&#8216;s will have a lifespan of 30 days. After these 30 days, the signatures will expire and cause zones to no longer validate. The only method to &#8220;reset&#8221; that 30 day timer, is to <strong>resign</strong> your zones (see step 5 above).</p>
<p><strong>B) </strong>Whenever you modify the zone, to add/modify/remove records, you will also have to <strong>resign</strong> the original zonefile, to re-generate the .signed version.</p>
<p><strong>C) </strong>You should <strong>re-generate your KSK and ZSK on time</strong>. It&#8217;s advised to re-generate the KSK every year, and the ZSK every 3 months. The longer the key has been in existance, the greater the chance it&#8217;s been &#8220;compromised&#8221;. To do so, delete the old key (public &amp; private), and re-generate using step 3 of this article.</p>
<p><strong>7) Summary</strong></p>
<p>All in all, enabling DNSSEC for one zone comes down to:</p>
<ol>
<li><strong>Generate </strong>a ZSK and KSK (per zone) using <em>dnssec-keygen</em></li>
<li><strong>Include </strong>those keys into your zonefile</li>
<li><strong>Sign </strong>the zone using <em>dnssec-signzone</em></li>
<li><strong>Load</strong> your signed zonefile</li>
<li><strong>Reload</strong> the zone or nameserver</li>
</ol>
<p><strong>8) Links, Articles &amp; Video</strong></p>
<p>I managed to implement DNSSEC fairly simply, because the following information was made available on the web which explained it very well.</p>
<ul>
<li><a href="http://www.isc.org/files/DNSSEC_in_6_minutes.pdf" onclick="pageTracker._trackPageview('/outgoing/www.isc.org/files/DNSSEC_in_6_minutes.pdf?referer=');">DNSSEC In 6 minutes</a> (PDF)</li>
<li><a href="http://www.xtdnet.nl/paul/dnssec/" onclick="pageTracker._trackPageview('/outgoing/www.xtdnet.nl/paul/dnssec/?referer=');">DNSSEC Mini Howto</a> (html)</li>
<li><a href="http://www.youtube.com/watch?v=qk-Cj_jjhoA&amp;playnext_from=TL&amp;videos=i-C8_4Wy8vM" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=qk-Cj_jjhoA_amp_playnext_from=TL_amp_videos=i-C8_4Wy8vM&amp;referer=');">Erik Berls &#8211; Deploying DNSSEC &#8211; LayerOne 2009</a> (Youtube video, 55min)</li>
<li><a href="http://blog.techscrawl.com/2009/01/13/enabling-dnssec-on-bind/" onclick="pageTracker._trackPageview('/outgoing/blog.techscrawl.com/2009/01/13/enabling-dnssec-on-bind/?referer=');">Enabling DNSSEC On Bind</a> (html)</li>
<li><a href="http://www.dnssec.net/practical-documents" onclick="pageTracker._trackPageview('/outgoing/www.dnssec.net/practical-documents?referer=');">Practical DNS Setup: How To Implement DNSSEC</a> (practical documents)</li>
<li><a href="http://www.dyndns.com/support/kb/implementing_dnssec.html" onclick="pageTracker._trackPageview('/outgoing/www.dyndns.com/support/kb/implementing_dnssec.html?referer=');">Implementing DNSSEC (dyndns)</a></li>
</ul>
<p>If you&#8217;d like to add something, please use the comments below. If I&#8217;ve missed some vital information, or published some awful mistake, please let me know.</p>
<blockquote>
<blockquote>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 413px; width: 1px; height: 1px; overflow: hidden;">options {<br />
&#8230;<br />
// DNSSEC<br />
dnssec-enable yes;<br />
};</p>
</div>
</blockquote>
</blockquote>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/PnwiX8JCUPc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/07/12/implementing-maintaining-dnssec-on-bind9-nameservers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/07/12/implementing-maintaining-dnssec-on-bind9-nameservers/</feedburner:origLink></item>
		<item>
		<title>How, What and Why – On Scalability, Availability &amp; Manageability (Facebook)</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/s3_8lJyQPNM/</link>
		<comments>http://mattiasgeniar.be/2010/07/06/how-what-and-why-on-scalability-availability-manageability-facebook/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 20:09:05 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Devops]]></category>
		<category><![CDATA[cfengine]]></category>
		<category><![CDATA[dsh]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1947</guid>
		<description><![CDATA[Since I&#8217;ve not updated this blog in quite a while, I&#8217;ll share a very interesting video and mention its highlights. Video: A Day In The Life Of A Facebook Engineer Obviously, Facebook has seen amongst the most impressive scalability problems &#8230; <a href="http://mattiasgeniar.be/2010/07/06/how-what-and-why-on-scalability-availability-manageability-facebook/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;ve not updated this blog in quite a while, I&#8217;ll share a very interesting video and mention its highlights.</p>
<p>Video: <a href="http://www.youtube.com/watch?v=T-Xr_PJdNmQ" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=T-Xr_PJdNmQ&amp;referer=');">A Day In The Life Of A Facebook Engineer</a></p>
<p>Obviously, Facebook has seen amongst the most impressive scalability problems ever. And here are some of the interesting bits, which can be used to manage and tune high traffic &amp; high availability websites.</p>
<ul>
<li><a href="http://developers.facebook.com/blog/post/358" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/blog/post/358?referer=');">HipHop for PHP</a>: transforms PHP code to optimized C++ code, for greater CPU efficiency. Started as a &#8220;hack&#8221; on one of <a href="http://www.facebook.com/video/video.php?v=124728580468&amp;ref=mf" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/video/video.php?v=124728580468_amp_ref=mf&amp;referer=');">Facebook&#8217;s Hackaton</a><a href="http://memcached.org/" onclick="pageTracker._trackPageview('/outgoing/memcached.org/?referer=');">s.</a></li>
<li><a href="http://memcached.org/" onclick="pageTracker._trackPageview('/outgoing/memcached.org/?referer=');">Memcached</a>: duh &#8230; only downside is it requires some PHP recoding to make use of it (but shouldn&#8217;t be much if you&#8217;re already using frameworks or database classes).</li>
<li>Services: seperate key systems, make them independant of each other (news feed, photos, video, &#8230; &#8211; allows you to disable one service, and keep the rest going)</li>
<li><a href="http://www.cfengine.org/" onclick="pageTracker._trackPageview('/outgoing/www.cfengine.org/?referer=');">CFEngine</a>: automating sysadmin tasks (alternatives: <a href="http://www.puppetlabs.com/" onclick="pageTracker._trackPageview('/outgoing/www.puppetlabs.com/?referer=');">Puppet</a>, <a href="http://www.opscode.com/chef" onclick="pageTracker._trackPageview('/outgoing/www.opscode.com/chef?referer=');">Chef</a>). Ideal in &#8220;clone&#8221; environments, a cloud of servers running a similar configuration. I have my doubts on highly customized environments, where each server is configured individually to specifics needs.</li>
<li><a href="http://www.netfort.gr.jp/~dancer/software/dsh.html.en" onclick="pageTracker._trackPageview('/outgoing/www.netfort.gr.jp/_dancer/software/dsh.html.en?referer=');">dsh</a>: distributed shell, run commands on any set of hosts in your network</li>
</ul>
<p>Monitoring will be needed to keep an eye on your infrastructure:</p>
<ul>
<li><a href="http://ganglia.sourceforge.net/" onclick="pageTracker._trackPageview('/outgoing/ganglia.sourceforge.net/?referer=');">Ganglia</a>: outdated, but very fast</li>
<li><a href="http://www.nagios.org/" onclick="pageTracker._trackPageview('/outgoing/www.nagios.org/?referer=');">Nagios</a></li>
</ul>
<p>Take a look at other<a href="http://developers.facebook.com/opensource/" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/opensource/?referer=');"> Open Source contributions</a> made by Facebook&#8217;s Team!</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/s3_8lJyQPNM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/07/06/how-what-and-why-on-scalability-availability-manageability-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/07/06/how-what-and-why-on-scalability-availability-manageability-facebook/</feedburner:origLink></item>
		<item>
		<title>Selling A Classic Mini British Open (Special Edition)</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/rrbFubxO7HU/</link>
		<comments>http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/#comments</comments>
		<pubDate>Sun, 30 May 2010 23:13:06 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[classic mlini]]></category>
		<category><![CDATA[on sale]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1925</guid>
		<description><![CDATA[Not tech-related, at all. But since I can use the extra promotion in selling it &#8230; For sale: Classic Mini, British Open (Special Edition). This version was created in limited stock. Only 1.000 in the UK, and 2.000 more in &#8230; <a href="http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Not tech-related, at all. But since I can use the extra promotion in selling it &#8230;</p>
<p>For sale: <strong>Classic Mini, British Open </strong>(Special Edition). This version was created in limited stock. Only 1.000 in the UK, and 2.000 more in Europe.</p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/05/britishopenad.jpg"><img class="aligncenter size-medium wp-image-1940" title="Mini British Open: Paper Ad" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/britishopenad-206x300.jpg" alt="" width="206" height="300" /></a>It features an electric sunroof, 1.3l petrol engine, and the driving experience of a lifetime. It&#8217;s on sale since I lack the time to fully enjoy it. It&#8217;s among the best preserved British Open&#8217;s I&#8217;ve ever seen, fully restored by it&#8217;s previous owner.</p>

<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-1/' title='mini (1)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-1-150x150.jpg" class="attachment-thumbnail" alt="mini (1)" title="mini (1)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-10/' title='mini (10)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-10-150x150.jpg" class="attachment-thumbnail" alt="mini (10)" title="mini (10)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-11/' title='mini (11)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-11-150x150.jpg" class="attachment-thumbnail" alt="mini (11)" title="mini (11)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-12/' title='mini (12)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-12-150x150.jpg" class="attachment-thumbnail" alt="mini (12)" title="mini (12)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-2/' title='mini (2)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-2-150x150.jpg" class="attachment-thumbnail" alt="mini (2)" title="mini (2)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-3/' title='mini (3)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-3-150x150.jpg" class="attachment-thumbnail" alt="mini (3)" title="mini (3)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-4/' title='mini (4)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-4-150x150.jpg" class="attachment-thumbnail" alt="mini (4)" title="mini (4)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-5/' title='mini (5)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-5-150x150.jpg" class="attachment-thumbnail" alt="mini (5)" title="mini (5)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-6/' title='mini (6)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-6-150x150.jpg" class="attachment-thumbnail" alt="mini (6)" title="mini (6)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-7/' title='mini (7)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-7-150x150.jpg" class="attachment-thumbnail" alt="mini (7)" title="mini (7)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-8/' title='mini (8)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-8-150x150.jpg" class="attachment-thumbnail" alt="mini (8)" title="mini (8)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/mini-9/' title='mini (9)'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/mini-9-150x150.jpg" class="attachment-thumbnail" alt="mini (9)" title="mini (9)" /></a>
<a href='http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/britishopenad/' title='Mini British Open: Paper Ad'><img width="150" height="150" src="http://mattiasgeniar.be/wp-content/uploads/2010/05/britishopenad-150x150.jpg" class="attachment-thumbnail" alt="Mini British Open: Paper Ad" title="Mini British Open: Paper Ad" /></a>

<p>It&#8217;s located on several dealer-sites:</p>
<ul>
<li><a href="http://www.2dehands.be/autos/autos/rover/classic-mini-british-open-92-73153723.html" onclick="pageTracker._trackPageview('/outgoing/www.2dehands.be/autos/autos/rover/classic-mini-british-open-92-73153723.html?referer=');">2dehands.be</a></li>
<li><a href="http://www.hebbes.be/Auto/mijn-hebbes/mijn-auto-zoekers/actief/1/30" onclick="pageTracker._trackPageview('/outgoing/www.hebbes.be/Auto/mijn-hebbes/mijn-auto-zoekers/actief/1/30?referer=');">hebbes.be</a></li>
<li><a href="http://www.kapaza.be/detail/27237045/" onclick="pageTracker._trackPageview('/outgoing/www.kapaza.be/detail/27237045/?referer=');">kapaza.be</a></li>
<li><a href="http://www.vlanauto.be/nl/tweedehands-auto/Rover/MINI/1.3i_British_Open-4113357-te-koop?id=4113357" onclick="pageTracker._trackPageview('/outgoing/www.vlanauto.be/nl/tweedehands-auto/Rover/MINI/1.3i_British_Open-4113357-te-koop?id=4113357&amp;referer=');">vlanauto.be</a></li>
<li><a href="http://nl.autoscout24.be/Details.aspx?id=177054025" onclick="pageTracker._trackPageview('/outgoing/nl.autoscout24.be/Details.aspx?id=177054025&amp;referer=');">autoscout24.be</a></li>
<li><a href="http://www.autozone.be/rover_mini_british-open/auto/detail.jsp?zoekId=3662896&amp;locale=nl_BE" onclick="pageTracker._trackPageview('/outgoing/www.autozone.be/rover_mini_british-open/auto/detail.jsp?zoekId=3662896_amp_locale=nl_BE&amp;referer=');">autozone.be</a></li>
</ul>
<p>And if you&#8217;re up for some mild reading, I would recommend: <a href="http://www.miniworld.co.uk/new_to_the_scene/history/" onclick="pageTracker._trackPageview('/outgoing/www.miniworld.co.uk/new_to_the_scene/history/?referer=');">The History of Mini</a>. Some more info on the car <a href="http://minimatti.be/mini-british-open-92/" onclick="pageTracker._trackPageview('/outgoing/minimatti.be/mini-british-open-92/?referer=');">can be found here</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/rrbFubxO7HU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/05/30/selling-a-classic-mini-british-open-special-edition/</feedburner:origLink></item>
		<item>
		<title>TCP Traffic Redirection on Windows</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/lAGeOvTYwzs/</link>
		<comments>http://mattiasgeniar.be/2010/04/14/tcp-traffic-redirection-on-windows/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 18:15:37 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[forwarding]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[tcp]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1920</guid>
		<description><![CDATA[A very nifty tool, called RINETD. Redirects TCP connections from one IP address and port to another. rinetd is a single-process server which handles any number of connections to the address/port pairs specified in the configfile. How to use it &#8230; <a href="http://mattiasgeniar.be/2010/04/14/tcp-traffic-redirection-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A very nifty tool, called <a href="http://www.boutell.com/rinetd/" onclick="pageTracker._trackPageview('/outgoing/www.boutell.com/rinetd/?referer=');">RINETD</a>.</p>
<blockquote><p>Redirects TCP connections from one IP address and port to another. rinetd is a single-process server which handles any number of connections to the address/port pairs specified in the configfile.</p></blockquote>
<p><strong>How to use it</strong></p>
<p>First of, download it from the <a href="http://www.boutell.com/rinetd/" onclick="pageTracker._trackPageview('/outgoing/www.boutell.com/rinetd/?referer=');">website</a>. The Windows 2000 version also works on Server 2003.</p>
<p>Create a new config file, called &#8220;<strong>config.cfg</strong>&#8221; in the same folder as where you&#8217;ve extracted the file. Add the following line. The format is &#8220;<strong>&lt;source&gt; &lt;port&gt; &lt;destination&gt; &lt;port&gt;</strong>&#8220;.</p>
<blockquote><p>0.0.0.0 80 192.168.100.1 80</p></blockquote>
<p>And start the daemon by executing the following.</p>
<blockquote>
<div id="_mcePaste">C:\Folder\Where\You\Extracted\rinetd&gt;rinetd.exe -c <strong>config.cfg</strong></div>
</blockquote>
<p>This will start the daemon, using the config file mentioned. The example lets you redirect all traffic (0.0.0.0) on port 80 to a new server (192.168.100.1) on port 80. A perfect HTTP redirection!</p>
<p>You can add multiple rules, change ports, &#8230; A new rule should be started on a new line.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/lAGeOvTYwzs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/04/14/tcp-traffic-redirection-on-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/04/14/tcp-traffic-redirection-on-windows/</feedburner:origLink></item>
		<item>
		<title>How IPv6 Headers Are Formed, Compared To IPv4</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/m-xL9Eg3yrk/</link>
		<comments>http://mattiasgeniar.be/2010/04/09/how-ipv6-headers-are-formed-compared-to-ipv4/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 20:00:16 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[ipv6]]></category>
		<category><![CDATA[ipv4]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1881</guid>
		<description><![CDATA[On the cisco.com website, there is an excellent write-up on IPv6 headers. The author describes in great detail how the IPv6 packets are created, and how they compare to IPv4. The IHL - or Internet Header Length &#8211; was removed from &#8230; <a href="http://mattiasgeniar.be/2010/04/09/how-ipv6-headers-are-formed-compared-to-ipv4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On the cisco.com website, there is an excellent <a href="http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-3/ipv6_internals.html" onclick="pageTracker._trackPageview('/outgoing/www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-3/ipv6_internals.html?referer=');">write-up  on IPv6 headers</a>. The author describes in great detail how the IPv6  packets are created, and how they compare to IPv4.<a href="http://mattiasgeniar.be/wp-content/uploads/2010/03/header_ipv4.png"><img class="aligncenter size-full wp-image-1882" title="header_ipv4" src="http://mattiasgeniar.be/wp-content/uploads/2010/03/header_ipv4.png" alt="" width="331" height="173" /></a></p>
<p>The <strong>IHL </strong>-  or <strong>I</strong>nternet <strong>H</strong>eader <strong>L</strong>ength &#8211; was removed from IPv6,  as each IPv6 header will always be 40 bytes in length, despite the  content. The <strong>Time to Live</strong> has been rephrased to &#8220;<strong>Hop Limit</strong>&#8220;,  which more accurately describes its purpose. Each hop the fragment  passes, the counter is reduced by value 1. As soon as the counter hits  zero, the packet is destroyed. The <strong>Header Checksum</strong> was removed  from IPv6.</p>
<p><a href="http://mattiasgeniar.be/wp-content/uploads/2010/03/header_ipv6.png"><img class="aligncenter size-full wp-image-1883" title="header_ipv6" src="http://mattiasgeniar.be/wp-content/uploads/2010/03/header_ipv6.png" alt="" width="590" height="161" /></a></p>
<p>The IPv6 looks less  cluttered, and holds less fragmented data, but more to-the-point  information. The <strong>Version</strong> holds value 6, to indicate IPv6. The <strong>Flow  Label</strong> can be used to <em>label</em> certain packets belonging to the  same stream or session, so they are more easily distinguishable. It  could be used by routers to uphold certain <em>Quality of Service</em> settings, without having to analyze the packet entirely.</p>
<p>The <strong>Payload Length</strong> holds the length of the user data to be  transmitted, as well as the length of any additional headers that might  be sent along. Since the header has a fixed 40 byte size, the <strong>Total  Length</strong> from IPv4 (which included both the header size + user data  size) is no longer needed.</p>
<p>For a more detailed explanation, I&#8217;ll refer you to the post on  Cisco&#8217;s website titled <a href="http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-3/ipv6_internals.html" onclick="pageTracker._trackPageview('/outgoing/www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-3/ipv6_internals.html?referer=');">IPv6  internals</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/m-xL9Eg3yrk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/04/09/how-ipv6-headers-are-formed-compared-to-ipv4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/04/09/how-ipv6-headers-are-formed-compared-to-ipv4/</feedburner:origLink></item>
		<item>
		<title>IPv6 And Security: What You Probably Don’t Know</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/QP9u1gmArtg/</link>
		<comments>http://mattiasgeniar.be/2010/04/06/ipv6-and-security-what-you-probably-dont-know/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 20:00:56 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ipv4]]></category>
		<category><![CDATA[ipv6]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1877</guid>
		<description><![CDATA[For anyone claiming IPv6 is more secure than IPv4, take a deep breath, count to ten, and rethink your arguments again. While IPv6 has some technological advantages over IPv4, I wouldn&#8217;t go so far as saying it&#8217;s safer. Scanning ~3.7billion &#8230; <a href="http://mattiasgeniar.be/2010/04/06/ipv6-and-security-what-you-probably-dont-know/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For anyone claiming IPv6 is more secure than IPv4, take a deep  breath, count to ten, and rethink your arguments again. While IPv6 has  some technological advantages over IPv4, I wouldn&#8217;t go so far as saying  it&#8217;s safer.</p>
<p><strong>Scanning ~3.7billion hosts (IPv4) vs a couple trillion hosts  (IPv6)<br />
</strong>This  is probably the biggest advantage that IPv6 has over IPv4; it&#8217;s shere  number of available IP addresses. A botnet nowadays can scan all of our  IPv4 addresses in a relatively timely manner. It will never scan all  assigned IPv6 ranges, because it&#8217;s just too big.</p>
<p>Of course, any <em>targeted scan</em> for a specific (smaller) range  could yield results, but you&#8217;d still only see a fragment of all  available addresses. I predict we&#8217;ll be seeing less <a href="http://www.theregister.co.uk/2004/08/19/infected_in20_minutes/" onclick="pageTracker._trackPageview('/outgoing/www.theregister.co.uk/2004/08/19/infected_in20_minutes/?referer=');">computer  infections in the first 20 minutes of being online</a>.</p>
<p><strong>IPSec built-in IPv6<br />
</strong>For  IPv4, <a href="http://en.wikipedia.org/wiki/IPsec" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/IPsec?referer=');">IPSec</a> was an extra  protocol on top of the IP layer, which added encryption to <em>individual  IP packets</em> (versus encrypting specific <em>TCP streams</em> with<a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Transport_Layer_Security?referer=');"> SSL</a>). IPv6  has built-in support for IPSec, which means it can also be applied to  UDP streams.</p>
<p>However, having the <em>ability<strong> </strong>to use IPSec, </em>does  not necessarily mean<em> it will be used. </em>It requires a number of  modifications in the applications themselves, to support and implement  it. But having IPSec available for all hosts with IPv6, could mean a  broader adaptation of the technology.</p>
<p><strong><em><span style="font-style: normal;">NAT  won&#8217;t save you this time</span><br />
</em> </strong> Most  home networks are relatively safe, as they only have one router  in their network, and use <a href="http://en.wikipedia.org/wiki/Network_address_translation" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Network_address_translation?referer=');">NAT</a> for all internal routing. Doing so gives you an advantage to  the outside world, as your computer can&#8217;t be reached directly (unless  through UPnP or port forwarding), but only your router can. Of course,  this can be circumvented, but it&#8217;s a layer of &#8220;security&#8221;.</p>
<p><em>S</em>ince NAT was introduced as a means to stop the rapid assignment of  IPv4 addresses, it was ment to be deprecated in IPv6. It has more  advantages than disadvantages to give all hosts a publicly routable IP  address, so IPv6 strives towards this. Your local LAN will probably  contain hosts (computers, routers, NAS&#8217;s, printers, &#8230;) that all have  public IPv6 addresses.</p>
<p>So your private LAN will no longer form a barrier, but direct access  to your hosts will be possible. Which brings us to the next point.</p>
<p><strong>Firewalling IPv4 traffic, doesn&#8217;t automatically mean firewalling  IPv6 traffic<br />
</strong>This  is something very important to understand. A software firewall designed  to filter IPv4 traffic based on IP policies, will probably not filter  IPv6 addresses (some firewalls will, some won&#8217;t). This means that  traffic targetted towards your IPv6 address, will most likely not be  stopped by your IPv4 firewall.</p>
<p>Add to this that whenever you bring up a <strong>NIC (N</strong>etwork  <strong>I</strong>nterface <strong>C</strong>ard), and attach a cable, an IPv6 address will  automatically be assigned to that interface. So whenever you install a  new host, and hook it up to your network, it will be reachable over IPv6  (but probably limited to the current network only).</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/QP9u1gmArtg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/04/06/ipv6-and-security-what-you-probably-dont-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/04/06/ipv6-and-security-what-you-probably-dont-know/</feedburner:origLink></item>
		<item>
		<title>Stateless Autoconfiguration To Replace DHCP For Some Systems</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/M-k3UwtjS8A/</link>
		<comments>http://mattiasgeniar.be/2010/04/02/stateless-autoconfiguratio-replace-dhcp-ipv6/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 20:00:00 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[ipv6]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[ipv4]]></category>
		<category><![CDATA[stateless]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1872</guid>
		<description><![CDATA[Stateless Address Autoconfiguration is a technique where individual nodes in a network can generate their own unique IP address, based on a &#8220;network address&#8221; which the router will send out, and a unique part generated from the hosts&#8217; MAC address. &#8230; <a href="http://mattiasgeniar.be/2010/04/02/stateless-autoconfiguratio-replace-dhcp-ipv6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/IPv6_Stateless_address_autoconfiguration?referer=');">Stateless  Address Autoconfiguration</a> is a technique where individual nodes in a  network can generate their own unique IP address, based on a &#8220;network  address&#8221; which the router will send out, and a unique part generated  from the hosts&#8217; MAC address.</p>
<p>Here&#8217;s how it works. The router sends out a &#8220;router advertisement&#8221; or  RA, which contains the first 64bit of an IPv6 address. This value is  defined on the router, by the network administrator. The host itself  will use its own MAC Address, add some <em>magic</em>, and use it as the  last 64 bit of the IPv6 address. Combine those, and you have a unique  IPv6 network address.</p>
<p>Take the following example: the router will &#8220;advertise&#8221; the first 64  bits of the 128bit IPv6 address as <strong>2001:0af2:0005:0001</strong>.</p>
<p>The MAC address of the node&#8217;s network card is <strong>00:0A:95:A4:40:10</strong>,  which in turn consists of 2 distinguishable parts. The first 24 bits  (or the first 3 &#8216;blocks&#8217; in the MAC address) are the <a href="http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Organizationally_Unique_Identifier?referer=');">OUI</a> or <strong>O</strong>rganizationally <strong>U</strong>nique <strong>I</strong>dentifier. In this  example, this would be <strong>000A95</strong>. This is the OUI that is assigned  by <a href="http://en.wikipedia.org/wiki/Ieee" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Ieee?referer=');">IEEE</a> (<strong>I</strong>nstitute  of <strong>E</strong>lectrical and <strong>E</strong>lectronic <strong>E</strong>ngineers), and is  guaranteed to be unique worldwide. The second part of the MAC address,  or <strong>A44010</strong> is a unique part that the owner of the OUI can assign.</p>
<div id="attachment_1871" class="wp-caption aligncenter" style="width: 487px"><a href="http://mattiasgeniar.be/wp-content/uploads/2010/03/mac_address_oui_nic.png"><img class="size-full wp-image-1871" title="mac_address_oui_nic" src="http://mattiasgeniar.be/wp-content/uploads/2010/03/mac_address_oui_nic.png" alt="" width="477" height="410" /></a><p class="wp-caption-text">MAC Address Layout</p></div>
<div>
<dl id="attachment_81">
<dt> </dt>
</dl>
</div>
<p>The first  part of the MAC address is guaranteed to be unique by IEEE, the second  part is guaranteed to be unique by the owner the of OUI (=the company  which was assigned that specific OUI; ie: Apple, Xerox, HP, &#8230;).</p>
<p>The MAC address, however, has a so called &#8220;universal / local bit&#8221;. A  specific bit (0/1) to indicate whether the MAC address is globally  unique (provided by the hardware supplier), or not (it might be altered  afterwards) and whether the MAC address is a multicast address, or a  unicast address.</p>
<p>If a MAC address is not available, the &#8220;universal / local bit&#8221; is set  to one, to indicate that the MAC address isn&#8217;t globally unique, and  can&#8217;t be used universally. The end result &#8211; a combination of the 64 bit  router-supplied prefix, and the MAC address &#8211; will form a <strong>Modified  EUI-64</strong> instead of a regular EUI-64 (because the &#8220;u/l bit&#8221; was  flipped).</p>
<p>For those keeping count, you will have noticed that a MAC address  does not contain 64 bits, and in itself would not be sufficient to be  used as the last 64 bits of the IPv6 address. The 48bit MAC address  should first be turned into a 64bit EUI-64, by adding the hexademical  value FFEE in between the OUI (first 6 bits) and the owner-assigned bits  (last 6 bits).</p>
<blockquote><p><strong>00:0A:95:A4:40:10</strong> is the full MAC address<br />
<strong> 000A95</strong> is the OUI<br />
<strong> A44010</strong> is the organization-assigned value<br />
000A95<strong>FFEE</strong>A44010 is the 64-bit EUI-64</p></blockquote>
<p>The end result, 000A95FFEEA44010, is EUI-64 which can be used as the  last 64 bits of an IPv6 address.</p>
<p>In total, our IPv6 address could be as follows.</p>
<blockquote><p><strong>2001:0af2:0005:0001</strong> are the first 64 bits  advertised by our router<br />
<strong> 000a:95ff:eea4:4010</strong> are the last 64 bits, made from the MAC  address to a EUI-64<br />
<strong> 2001:0af2:0005:0001:000a:95ff:eea4:4010</strong> is the logical  combination of both<br />
<strong> 2001:af2:5:1:a:95ff:eea4:4010</strong> is the shortened version, with  leading zeros removed</p></blockquote>
<p>If there are multiple routers, each handing out different address  prefixes, the host will create a IPv6 address for each of those  prefixes. A router can even announce a new prefix, and the connected  clients will generate a new IP based on this new prefix. To keep  existing connections alive, the previous IP address isn&#8217;t deleted right  away, but marked as &#8220;deprecated&#8221; first.</p>
<p>Using Stateless Autoconfiguration can be a good way to assign the  same IP to the same host, providing the MAC address of that host doesn&#8217;t  change. Should a NIC (<strong>N</strong>etwork <strong>I</strong>nterface <strong>C</strong>ard) be  replaced, removed or added, the MAC address will change, and inevitabely  also its IPv6 address. For this reason, Stateless Autoconfiguration  will be used primarily in small to medium sized organizations, and never  in datacenter/hosting businesses which rely heavily on fixed IP  addresses.</p>
<p>For Windows systems, a random MAC address will be generated to create  a random IPv6 address which will be used for outgoing sessions. This  will aid privacy, as your IP will never be the same (whereas the default  Stateless Autoconfiguration will re-generate the same IP over and over  again).</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/M-k3UwtjS8A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/04/02/stateless-autoconfiguratio-replace-dhcp-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/04/02/stateless-autoconfiguratio-replace-dhcp-ipv6/</feedburner:origLink></item>
		<item>
		<title>Don’t Upgrade OpenSSL If You’re Using Plesk (= Broken Controlpanel)</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/xTbp6vf0Seg/</link>
		<comments>http://mattiasgeniar.be/2010/03/29/dont-upgrade-openssl-if-youre-using-plesk-broken-controlpanel/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 11:48:34 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[parallels]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1888</guid>
		<description><![CDATA[If you&#8217;re using Plesk 9.x on a CentOS system, don&#8217;t upgrade the openssl package from version 0:0.9.8e-12.el5_4.1 to 0:0.9.8e-12.el5_4.6. It will break your Plesk Controlpanel, causing it to no longer start up. You&#8217;ll see a message similar to this. [root@srv~]# &#8230; <a href="http://mattiasgeniar.be/2010/03/29/dont-upgrade-openssl-if-youre-using-plesk-broken-controlpanel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using <strong>Plesk 9.x</strong> on a CentOS system, don&#8217;t upgrade the <strong>openssl</strong> package from version <em>0:0.9.8e-12.</em><em><strong>e</strong><strong>l5_4.1</strong></em> to <em>0:0.9.8e-12.<strong>el5_4.6</strong>. </em>It will break your Plesk Controlpanel, causing it to no longer start up. You&#8217;ll see a message similar to this.</p>
<blockquote>
<div id="_mcePaste">[root@srv~]# /etc/init.d/psa start</div>
<div id="_mcePaste">Starting xinetd service&#8230;               done</div>
<div id="_mcePaste">Starting named service&#8230;             done</div>
<div id="_mcePaste">Starting mysqld service&#8230;           done</div>
<div id="_mcePaste">Plesk: Starting Mail Server&#8230; already started</div>
<div id="_mcePaste">Starting mail handlers tmpfs storage</div>
<div id="_mcePaste">Starting Plesk&#8230;                       failed</div>
</blockquote>
<p>There won&#8217;t be an obvious error message in any log file location (<em>/var/log/*</em>, <em>/usr/local/psa/var/log/*</em>, <em>/usr/local/psa/admin/logs/*</em>), but it will most likely be caused by your recent <strong>openssl upgrade</strong>. Solution is this.</p>
<p><strong>Edit April 2nd:</strong> There&#8217;s now a Knowledge Base article available by Parallels on this issue: &#8220;<a href="http://kb.parallels.com/en/8338" onclick="pageTracker._trackPageview('/outgoing/kb.parallels.com/en/8338?referer=');">Latest update of openssl breaks Parallels panel</a>&#8220;. You might want to read that too, same solutions as stated below.</p>
<p><strong>Edit April 2nd²</strong>: Parallels has release an official solution, using a Plesk update: <a href="http://kb.parallels.com/en/8338" onclick="pageTracker._trackPageview('/outgoing/kb.parallels.com/en/8338?referer=');">http://kb.parallels.com/en/8338</a></p>
<p><strong>1) Downgrade method</strong></p>
<div>If this works, it&#8217;s the easiest solution. Just make sure that due to dependencies, nothing of Parallels or Plesk is removed along.<strong> If you see any psa* or plesk* packages in the dependency list, </strong><strong>MOVE TO METHOD 2!!</strong></div>
<blockquote>
<div>[root@srv~]# yum downgrade openssl openssl-devel</div>
</blockquote>
<p><strong>2) Using RPM packages</strong></p>
<div>Download the OpenSSL version 0.9.8e-12 5_4.6 for your architecture (these apply to CentOS).</div>
<div>
<ul>
<li>i386: <a href="ftp://ftp.belnet.be/mirrors/ftp.centos.org/5.4/updates/i386/RPMS/openssl-0.9.8e-12.el5_4.1.i386.rpm">openssl</a> and <a href="ftp://ftp.belnet.be/mirrors/ftp.centos.org/5.4/updates/i386/RPMS/openssl-devel-0.9.8e-12.el5_4.1.i386.rpm">openssl-devel</a></li>
<li>i686: <a href="ftp://ftp.belnet.be/mirrors/ftp.centos.org/5.4/updates/i386/RPMS/openssl-0.9.8e-12.el5_4.1.i686.rpm">openssl</a></li>
<li>x64: <a href="ftp://ftp.belnet.be/mirrors/ftp.centos.org/5.4/updates/x86_64/RPMS/openssl-0.9.8e-12.el5_4.1.x86_64.rpm">openssl</a> and <a href="ftp://ftp.belnet.be/mirrors/ftp.centos.org/5.4/updates/x86_64/RPMS/openssl-devel-0.9.8e-12.el5_4.1.x86_64.rpm">openssl-devel</a></li>
</ul>
</div>
<p>You have to<strong> download these first!</strong> After completing the next steps, you&#8217;ll be without openssl &#8211; and downloading through <em>wget</em> or <em>curl</em> won&#8217;t  work because of missing libraries. Please take note: the following is at your own risk (and if you lose your SSH connection in the meanwhile, you&#8217;re <em>screwed</em>).</p>
<p>Find your current OpenSSL version, it should read version &#8220;el5_4.6&#8243;.</p>
<blockquote><p>[root@srv~]# rpm -qa | grep -i openssl<br />
openssl-0.9.8e-12.el5_4.6</p></blockquote>
<p>Remove the package (if you haven&#8217;t downloaded the openssl package yet, do so first !!).<em> (due to the font of this blog, it&#8217;s confusing, but the parameter = &#8216; &#8211; - nodeps&#8217;).</em></p>
<blockquote><p>[root@srv ~]# rpm -e &#8211;nodeps openssl-0.9.8e-12.el5_4.6</p></blockquote>
<p>And re-install the correct version (replace the RPM with the one for your achitecture).</p>
<blockquote><p>[root@srv  ~]# rpm -ivh openssl-0.9.8e-12.el5_4.1.x86_64.rpm<br />
warning: openssl-0.9.8e-12.el5_4.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897<br />
Preparing&#8230;                ########################################### [100%]<br />
1:openssl                ########################################### [100%]</p></blockquote>
<p>Afterwards, you&#8217;ll be able to start Plesk again.</p>
<blockquote>
<div id="_mcePaste">[root@srv~]# /etc/init.d/psa start</div>
<div id="_mcePaste">Starting xinetd service&#8230;               done</div>
<div id="_mcePaste">Starting named service&#8230;             done</div>
<div id="_mcePaste">Starting mysqld service&#8230;           done</div>
<div id="_mcePaste">Plesk: Starting Mail Server&#8230; already started</div>
<div id="_mcePaste">Starting mail handlers tmpfs storage</div>
<div id="_mcePaste">Starting Plesk&#8230;                       done</div>
</blockquote>
<div>Since there&#8217;s no update on Plesk yet, this is something to look out for!</div>
<div><strong>Update:</strong> An official message from Parallels</div>
<blockquote>
<div>
<p>For now the only workaround is to downgrade openssl, either with yum or with rpm (if yum is not configured):</p>
<p># wget -c http://mirrors.kernel.org/centos/5/updates/x86_64/RPMS/{openssl-0.9.8e-12.el5_4.1.x86_64.rpm,mod_ssl-2.2.3-31.el5.centos.2.x86_64.rpm,httpd-2.2.3-31.el5.centos.2.x86_64.rpm}</p>
<p># rpm -Uvh &#8211;oldpackage {openssl-0.9.8e-12.el5_4.1.x86_64.rpm,mod_ssl-2.2.3-31.el5.centos.2.x86_64.rpm,httpd-2.2.3-31.el5.centos.2.x86_64.rpm}</p>
<p># /etc/init.d/sw-cp-server start</p>
</div>
</blockquote>
<div>
<p class="MsoPlainText">Good luck!</p>
</div>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/xTbp6vf0Seg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/03/29/dont-upgrade-openssl-if-youre-using-plesk-broken-controlpanel/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/03/29/dont-upgrade-openssl-if-youre-using-plesk-broken-controlpanel/</feedburner:origLink></item>
		<item>
		<title>Neighbor Discovery (ND) To Replace ARP In IPv6</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/c_9PwuOOu64/</link>
		<comments>http://mattiasgeniar.be/2010/03/27/neighbor-discovery-nd-to-replace-arp-in-ipv6/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 20:00:31 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[ipv6]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1867</guid>
		<description><![CDATA[Neighbor Discovery &#8211; or ND &#8211; is the protocol used by IPv6 to determine neighboring hosts, and will replace ARP which was used in IPv4. It will perform similar tasks of the Address Resolution Protocol (ARP) and ICMP Router Discovery Protocol. It&#8217;s &#8230; <a href="http://mattiasgeniar.be/2010/03/27/neighbor-discovery-nd-to-replace-arp-in-ipv6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Neighbor_Discovery_Protocol?referer=');">Neighbor  Discovery</a> &#8211; or ND &#8211; is the protocol used by IPv6 to determine  neighboring hosts, and will replace ARP which was used in IPv4. It will  perform similar tasks of the <a href="http://en.wikipedia.org/wiki/Address_Resolution_Protocol" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Address_Resolution_Protocol?referer=');">Address  Resolution Protocol</a> (ARP) and <a href="http://en.wikipedia.org/wiki/ICMP_Router_Discovery_Protocol" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/ICMP_Router_Discovery_Protocol?referer=');">ICMP  Router Discovery Protocol</a>. It&#8217;s purpose remains to get the MAC/Link  Layer addresses of available hosts, and the connection information of  available routers in the network.</p>
<p>Neighbor Discovery operates in the Link Layer (Layer #2 of the OSI  model) and uses <a href="http://en.wikipedia.org/wiki/ICMPv6" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/ICMPv6?referer=');">ICMPv6</a> (the obvious  IPv6 version of ICMP) to discover neighboring nodes. It will provide the  translation between the IPv6 address and the Link Layer address.</p>
<p>ND can be used to perform &#8230;</p>
<ul>
<li>Address Autoconfiguration: perform stateless configuration of  addresses for an interface;</li>
<li>Address Resolution: Mapping from IP address to link-layer address;</li>
<li>Neighbor Unreachability Detection (NUD): determine that a neighbor  is no longer reachable on the link;</li>
<li>Duplicate Address Detection (DAD): nodes can check whether an  address is already in use;</li>
</ul>
<p>And <a href="http://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Neighbor_Discovery_Protocol?referer=');">many  more</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/c_9PwuOOu64" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/03/27/neighbor-discovery-nd-to-replace-arp-in-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/03/27/neighbor-discovery-nd-to-replace-arp-in-ipv6/</feedburner:origLink></item>
		<item>
		<title>IPv6 Address Space &amp; Reservations</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/P_rYqqQO5Rw/</link>
		<comments>http://mattiasgeniar.be/2010/03/24/ipv6-address-space-reservations/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 20:00:34 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[ipv6]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1864</guid>
		<description><![CDATA[At the very highest level, the IPv6 address space is divided into six main parts, each having its own purpose and meaning. ::/3 &#8211; Special addresses types 2000::/3 &#8211; Allocated unicast addresses 4000::/2 &#8211; FE00::/9 &#8211; Reserved unicast addresses FE80::/10 &#8230; <a href="http://mattiasgeniar.be/2010/03/24/ipv6-address-space-reservations/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At the very highest level, the IPv6 address space is divided into <strong>six  main parts</strong>, each having its own purpose and meaning.</p>
<blockquote><p>::/3 &#8211; Special addresses types<br />
2000::/3 &#8211; Allocated unicast addresses<br />
4000::/2 &#8211; FE00::/9 &#8211; Reserved unicast addresses<br />
FE80::/10 &#8211; Link-local unicast addresses<br />
FEC0::/10 &#8211; Site-local unicast addresses<br />
FF00::/8 &#8211; Multicast addresses</p></blockquote>
<p>The site-local addresses can best be compared to the IPv4 local  ranges 10.0.0.0/8, 172.16.0.0./12 and 192.168.0.0/16 ranges, although  they are unique to some extent.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/P_rYqqQO5Rw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/03/24/ipv6-address-space-reservations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/03/24/ipv6-address-space-reservations/</feedburner:origLink></item>
		<item>
		<title>Address Types: Unicast, Multicast &amp; Anycast</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/Cue8_gSjRpA/</link>
		<comments>http://mattiasgeniar.be/2010/03/21/address-types-unicast-multicast-anycast/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 20:00:26 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[ipv6]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1855</guid>
		<description><![CDATA[IPv6 has three types of addresses: unicast, multicast and anycast. A unicast address is used to refer to a single host. It is ment to send data to a single destination. A multicast address can be used to deliver a package &#8230; <a href="http://mattiasgeniar.be/2010/03/21/address-types-unicast-multicast-anycast/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>IPv6 has three types of addresses: <a href="http://en.wikipedia.org/wiki/Unicast" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Unicast?referer=');">unicast</a>, <a href="http://en.wikipedia.org/wiki/Multicast" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Multicast?referer=');">multicast</a> and <a href="http://en.wikipedia.org/wiki/Anycast" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Anycast?referer=');">anycast</a>.</p>
<p>A <strong>unicast address</strong> is used to refer to a single host. It is  ment to send data to <strong>a single destination</strong>.</p>
<div>
<dl id="attachment_25">
<dt>
<div id="attachment_1857" class="wp-caption aligncenter" style="width: 260px"><a href="http://mattiasgeniar.be/wp-content/uploads/2010/03/unicast.png"><img class="size-full wp-image-1857 " title="unicast" src="http://mattiasgeniar.be/wp-content/uploads/2010/03/unicast.png" alt="" width="250" height="167" /></a><p class="wp-caption-text">Unicast Address</p></div>
</dt>
</dl>
</div>
<p>A <strong>multicast  address</strong> can be used to deliver a package to a<strong> group of  destinations</strong>. Any packet sent to a multicast address, will be  delivered to every host that has joined that particular group.</p>
<div>
<dl id="attachment_26">
<dt>
<div id="attachment_1858" class="wp-caption aligncenter" style="width: 260px"><a href="http://mattiasgeniar.be/wp-content/uploads/2010/03/multicast.png"><img class="size-full wp-image-1858" title="multicast" src="http://mattiasgeniar.be/wp-content/uploads/2010/03/multicast.png" alt="" width="250" height="167" /></a><p class="wp-caption-text">Multicast Address</p></div>
</dt>
</dl>
</div>
<p>Since IPv6 has <strong>no support for the  broadcast address</strong>, any function that used to rely on <a href="http://en.wikipedia.org/wiki/Broadcasting_(computing)" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Broadcasting_computing?referer=');">broadcasts</a> will now be using multicast addresses. This has the great advantage of  (ab)using less traffic, as only those hosts that are interested in it,  will join that particular multicast group and receive the packets. If  the host hasn&#8217;t join the group, the packets will be ignored at the  hardware level &#8211; not asking any resources from the OS.</p>
<p>Multicast addresses are in the range of FF00::/8.</p>
<p>The <strong>anycast address</strong> is very similar to the multicast address,  but packets will be delivered to<strong> only one random host</strong>, instead of  the entire group.</p>
<div>
<dl id="attachment_27">
<dt>
<div id="attachment_1859" class="wp-caption aligncenter" style="width: 260px"><a href="http://mattiasgeniar.be/wp-content/uploads/2010/03/anycast.png"><img class="size-full wp-image-1859" title="anycast" src="http://mattiasgeniar.be/wp-content/uploads/2010/03/anycast.png" alt="" width="250" height="167" /></a><p class="wp-caption-text">Anycast Address</p></div>
</dt>
<dt>Anycast address  don&#8217;t have a specific range, as they are exactly the same as regular  unicast addresses. This means that a hosts has no way to distinguish a  unicast from an anycast address when it sends a packet.</dt>
</dl>
</div>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/Cue8_gSjRpA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/03/21/address-types-unicast-multicast-anycast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/03/21/address-types-unicast-multicast-anycast/</feedburner:origLink></item>
		<item>
		<title>Address Notations In IPv6</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/hdGaNd1vxT8/</link>
		<comments>http://mattiasgeniar.be/2010/03/18/address-notations-in-ipv6/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 20:00:22 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[ipv6]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1844</guid>
		<description><![CDATA[From a visual point-of-view, the biggest change from IPv4 to IPv6 is the way addresses are formed. The IPv4 way of writing addresses, is by placing four 8 bit groups, seperated by a point &#8220;.&#8221;. 127.0.0.1 (local loopback) 10.0.0.1 (typical &#8230; <a href="http://mattiasgeniar.be/2010/03/18/address-notations-in-ipv6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>From a visual point-of-view, the biggest change from <a href="http://en.wikipedia.org/wiki/Ipv4" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Ipv4?referer=');">IPv4</a> to <a href="http://en.wikipedia.org/wiki/Ipv6" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Ipv6?referer=');">IPv6</a> is the way  addresses are formed. The IPv4 way of writing addresses, is by placing <strong>four  8 bit groups</strong>, seperated by a point &#8220;.&#8221;.</p>
<ul>
<li>127.0.0.1 (local loopback)</li>
<li>10.0.0.1 (typical local IP address)</li>
<li>193.239.210.183 (public IP address of this blog)</li>
</ul>
<p>IPv6 uses <strong>eight 16-bit hexadecimal values</strong>, seperated by a  colon &#8220;:&#8221;.</p>
<ul>
<li>::1 (local loopback)</li>
<li>fec0::3010:2ffe:fe21:2640 (typical local IP address)</li>
<li>2001:db2:31:1041:204a::1337 (random public IPv6 address)</li>
</ul>
<p>The first thing you should know, is that IPv6 addresses can be <strong>abbreviated</strong>.  The local loopback address, written in the example as &#8220;<strong>::1</strong>&#8220;, is  actually the shortened version of <strong>0000:0000:0000:0000:0000:0000:0000:0001</strong>.</p>
<p>Leading zeros in IPv6 can usually be left out. This would shorten our  local loopback address to <strong>0:0:0:0:0:0:0:1</strong>.</p>
<p>To further reduce the length of the address (and add to its  confusion, at first), one sequence of zeros, seperated by colons, can be  removed and replaced by a double colon &#8220;::&#8221;. Since our example holds  seven zero&#8217;s, it&#8217;s shortened to <strong>::1</strong>.</p>
<p>For instance, the IPv6 address  2001:af40:0401:0000:0000:a401:0000:f010 can be abbreviated like this.</p>
<blockquote><p>2001:af40:0401:0000:0000:a401:0000:f010 (full form)<br />
2001:af40:0401::a401:0000:f010 (series of zeros replaced by ::)<br />
2001:af40:401::a401:0:f010 (leading zeros removed)</p></blockquote>
<p>Replacing a series of zeros, can only occur once. The following isn&#8217;t  a legal IPv6 address: 2001:af1<strong>::</strong>50:1002<strong>::</strong>5, because there  is no way to determine if the address should be</p>
<blockquote><p>2001:af1<strong>:0:0:</strong>50:1002<strong>:0:</strong>5<br />
or<br />
2001:af1<strong>:0:</strong>50:1002<strong>:0:0:</strong>5</p></blockquote>
<p>Since IPv6 no longer uses points to seperate values, but colons, it  poses a direct problem for specifying portnumbers, as its default  notation is <strong>&lt;ip&gt;:&lt;port&gt;</strong>. This can be solved by  placing the IP address in between brackets, such as <strong>[::3]:8080</strong> (which addresses the local loopback address, on port 8080). For websites  that use the IP for access, this should be <strong>http://[ip-address]:port</strong>.</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/hdGaNd1vxT8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/03/18/address-notations-in-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/03/18/address-notations-in-ipv6/</feedburner:origLink></item>
		<item>
		<title>Recycling older IPv6-related posts</title>
		<link>http://feedproxy.google.com/~r/mattiasgeniar/~3/GNkiBS9y_xU/</link>
		<comments>http://mattiasgeniar.be/2010/03/16/recycling-older-ipv6-related-posts/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 20:42:29 +0000</pubDate>
		<dc:creator>Matti</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mattiasgeniar.be/?p=1848</guid>
		<description><![CDATA[About a year ago, I was focussing on mastering the &#8220;tips and tricks&#8221; around IPv6. Since I didn&#8217;t think it actually belonged on this blog, I started a new one &#8211; mainly for myself, as a reference. In the upcoming &#8230; <a href="http://mattiasgeniar.be/2010/03/16/recycling-older-ipv6-related-posts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>About a year ago, I was focussing on mastering the &#8220;tips and tricks&#8221; around IPv6. Since I didn&#8217;t think it actually belonged on this blog, I started a new one &#8211; mainly for myself, as a reference. In the upcoming days I&#8217;ll be recycling some of the more interesting posts concerning IPv6, and publishing them here. Gives me more time to focus on this blog, since I&#8217;ve been neglecting it lately.</p>
<p>Won&#8217;t be very interesting if you don&#8217;t give a **** about IPv6, but you may as well be warned. ;-)</p>
<img src="http://feeds.feedburner.com/~r/mattiasgeniar/~4/GNkiBS9y_xU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattiasgeniar.be/2010/03/16/recycling-older-ipv6-related-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattiasgeniar.be/2010/03/16/recycling-older-ipv6-related-posts/</feedburner:origLink></item>
	</channel>
</rss>
