<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Long-term Memory &#187; NAT</title>
	<atom:link href="http://blog.dest-unreach.be/tag/nat/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.dest-unreach.be</link>
	<description>A collection of note-to-self&#039;s</description>
	<lastBuildDate>Sun, 29 Jan 2012 16:05:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Converting a WRT320N to dd-wrt</title>
		<link>http://blog.dest-unreach.be/2010/11/30/converting-a-wrt320n-to-dd-wrt</link>
		<comments>http://blog.dest-unreach.be/2010/11/30/converting-a-wrt320n-to-dd-wrt#comments</comments>
		<pubDate>Tue, 30 Nov 2010 17:53:50 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[Ethernet]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[WiFi]]></category>
		<category><![CDATA[WRT320N]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1891</guid>
		<description><![CDATA[I bought myself a new WiFi router. When in the shop, I specifically searched for a router that is supported by dd-wrt, and has (at least) 8MB of flash. I settled for the Linksys WRT320N: it has a dual band (switchable between 2.4GHz and 5GHz, not simultaneous) 802.11a/b/g/n radio, a 4 port GbE switch, and [...]]]></description>
			<content:encoded><![CDATA[<p>I bought myself a new WiFi router. When in the shop, I specifically searched for a router that is supported by <a href="http://www.dd-wrt.com/">dd-wrt</a>, and has (at least) 8MB of flash. I settled for the <a href="http://homesupport.cisco.com/en-us/wireless/lbc/WRT320N">Linksys WRT320N</a>: it has a dual band (switchable between 2.4GHz and 5GHz, not simultaneous) <a href="http://en.wikipedia.org/wiki/IEEE_802.11">802.11a/b/g/n</a> radio, a 4 port <a title="Gigabit Ethernet aka 1000base-T" href="http://en.wikipedia.org/wiki/Gigabit_Ethernet">GbE</a> switch, and a WAN port. It houses a Broadcom BC4717 processor running at 354MHz, 8MB of flash and 32MB of RAM.</p>
<p>The default Linksys firmware is actually not bad, but dd-wrt just offers a ton more features: Multiple <a href="http://en.wikipedia.org/wiki/Service_set_%28802.11_network%29">SSIDs</a>, <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> support (including <a href="http://www.sixxs.net/">Sixxs</a> tunneling), <a href="http://en.wikipedia.org/wiki/Bandwidth_cap">WAN volume</a> monitoring, custom firewalling, <a href="http://en.wikipedia.org/wiki/Quality_of_service">traffic shaping</a>, … So I decided to void my warranty and put my router on steroids! Mandatory note: this may very well turn your router in to a very expensive brick.</p>
<p><span id="more-1891"></span></p>
<h3>The initial flash</h3>
<p>After reading through the <a href="https://secure.dd-wrt.com/phpBB2/">dd-wrt forum</a> (most notably <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=49362">these</a> <a href="http://secure.dd-wrt.com/phpBB2/viewtopic.php?t=63004">three</a> <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=52043">posts</a>) and the <a href="http://dd-wrt.com/wiki/index.php/Linksys_WRT320N_v1.0">wiki page</a>, I learned a few things:</p>
<ul>
<li><a href="http://secure.dd-wrt.com/phpBB2/viewtopic.php?p=384525#384525">Apparently</a>, this router has its reset button wired to the wrong <a href="http://en.wikipedia.org/wiki/General_Purpose_Input/Output">GPIO</a> pin. Therefor, the <a href="http://www.dd-wrt.com/wiki/index.php/Hard_reset_or_30/30/30">30/30/30 reset</a> DOES NOT WORK on this router! There is an alternative: use at least version 13493, power down the router, push and hold the WPS button (on top), power up the router, hold the WPS button for 10-12 more seconds, then release.</li>
<li>The latest recommended firmware is <a href="ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/08-12-10-r14929/broadcom_K26/">BrainSlayer&#8217;s 14929</a></li>
</ul>
<p>This is the procedure I followed, with success, starting from Linksys version v1.0.03 (build 010Jul 24, 2009):</p>
<ol>
<li>Download the <a href="ftp://ftp.dd-wrt.com/others/eko/V24-K26/svn13491-snow/Linksys/WRT320N/dd-wrt.v24-13493_NEWD-2_K2.6_mini_wrt320n.bin">tailored build for the WRT320N</a> (for the freaks, my binary MD5s to e1d7edd368bf5259c18a0874c5e761db).</li>
<li>Connect via wired ethernet to the router. That way, you can see the link going up/down.</li>
<li>In the Linksys firmware, upload this file.</li>
<li>Wait 5 very long minutes.</li>
<li>Configure yourself a static IP in the 192.168.0.0/24 network (I use 192.168.0.8)</li>
<li>Direct your browser to http://192.168.0.1/</li>
<li>Set a temporary password</li>
<li>Wait 1 minute</li>
<li>Reset the router: Power down, push &amp; hold WPS button, power up, keep holding for 11 seconds, release.</li>
<li>Close &amp; reopen your browser to flush all cached pages and credentials</li>
<li>Direct your browser to http://192.168.0.1/</li>
<li>Enjoy</li>
</ol>
<h3>The upgrade</h3>
<p>After the initial flash, you can upgrade to <a href="http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#V24_pre_sp2_K26">any regular version</a>, but keep in mind that this unit requires a 2.6 kernel. I choose the <a href="ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/08-12-10-r14929/broadcom_K26/dd-wrt.v24-14929_NEWD-2_K2.6_mini.bin">14929-mini</a> version (md5 af9ab2ff822ab69d26fa7308d47ad05a), not because it provided all I need (it doesn&#8217;t support IPv6 for example), but because it leaves the most free space for me to fiddle with.</p>
<p>To switch versions, I always follow this overly cautious procedure:</p>
<ol>
<li>Reset to defaults: power down, push &amp; hold WPS button, power up, keep holding for 11 seconds, release</li>
<li>Make sure your IP is in the correct range (192.168.0.0/24)</li>
<li>Set a temporary password</li>
<li>Upload the new firmware</li>
<li>Wait until the browser is again at the &#8220;Set password&#8221; page</li>
<li>Set temporary password</li>
<li>Reset to defaults again</li>
</ol>
<h3>The settings</h3>
<p>Most configuration is fairly straightforward with the GUI. But setting up a second, routed SSID needed a <a href="http://www.dd-wrt.com/wiki/index.php/Multiple_WLANs">little non-intuitive work</a>:</p>
<ul>
<li>Go to <em>Wireless</em> -&gt; <em>Basic Settings</em> and add a new <em>Virtual Interface</em>
<ul>
<li>Leave <em>Network Configuration</em> to <em>Bridged</em></li>
</ul>
</li>
<li>Go to <em>Setup</em> -&gt; <em>Networking</em>
<ul>
<li>Under <em>Create Bridge</em>, click <em>Add</em></li>
<li>Name the new bridge &#8220;br1&#8243; and disable <em>STP</em></li>
<li><em>Apply Settings</em></li>
<li>Now add the desired <em>IP</em> and <em>Subnet mask</em> for this brigde-port</li>
<li><em>Apply Settings</em> again</li>
<li>Click <em>Add</em> under <em>Assign to bridge</em></li>
<li>Now assign the wl0.1 interface to this newly created bridge br1</li>
</ul>
</li>
<li>Optionally <em>Add</em> a DHCP range for br1. In this case, you need to use DNSmasq as DHCP-server.</li>
</ul>
<p>Some guides tell you to configure it in Unbridged mode. Using Bridged mode gives the potential advantage that you can link a wired port to this IP-range easily.</p>
<p>Now you can easily firewall between the two WLANs by putting iptables-lines in the startup script.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2010/11/30/converting-a-wrt320n-to-dd-wrt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS(SEC) &#8211; Firewall issues</title>
		<link>http://blog.dest-unreach.be/2010/02/10/dnssec-firewall-issues</link>
		<comments>http://blog.dest-unreach.be/2010/02/10/dnssec-firewall-issues#comments</comments>
		<pubDate>Wed, 10 Feb 2010 18:03:25 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[NAT]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1630</guid>
		<description><![CDATA[I just read this message by Mark Andrews on the BIND mailing list. It explains the possible issues with DNSSEC and over-protective firewalls, giving test-commands to verify your setup. This post is also interesting for regular DNS traffic, since a firewall doesn&#8217;t know the difference. Here is the most interesting part: First, you should verify [...]]]></description>
			<content:encoded><![CDATA[<p>I just read <a href="https://lists.isc.org/pipermail/bind-users/2010-February/078755.html">this message</a> by Mark Andrews on the <a href="https://lists.isc.org/mailman/listinfo/bind-users">BIND mailing list</a>. It explains the possible issues with DNSSEC and over-protective firewalls, giving test-commands to verify your setup. This post is also interesting for regular DNS traffic, since a firewall doesn&#8217;t know the difference.</p>
<p><span id="more-1630"></span> Here is the most interesting part:</p>
<blockquote><p>First, you should verify that you can talk to L.ROOT-SERVERS.NET using plain DNS.  This will ensure that failures in the subsequent tests are meaningful.</p>
<p>e.g.</p>
<pre>dig +nodnssec +norec +ignore ns . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +nodnssec +norec +ignore ns . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 39974
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 15

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f

;; Query time: 189 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 13:05:49 2010
;; MSG SIZE  rcvd: 492</pre>
<p>Next we will see whether you can receive an answer that is greater than 512 bytes.  This test simulates how named makes its initial queries. Most signed responses fit between 512 bytes and 1500 bytes and are returned in a single un-fragmented UDP packet.  This test is designed to check this case.</p>
<p>e.g.</p>
<pre>dig +dnssec +norec +ignore ns . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +dnssec +norec +ignore ns . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 381
;; flags: qr aa; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.
.			518400	IN	RRSIG	NS 8 0 518400 20100214000000 20100206230000 23763 . JWEPSBVBz37WV/cvjxtlBGGLFe88ojhBM3ZZW+ZC2umpQq5lMSnE/3vO WGVWq8gOFs/mlmXttk80WxwZfUvgDXddNtqbNoNWZaGPbH9F2O+B6yDX n6jE4EcMRcjoL752uZTDMZ8WHEiEorjxsVYr1ae1MYZO5K0CqzX/qkUW 1DY=

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
h.root-servers.net.	518400	IN	AAAA	2001:500:1::803f:235
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:3::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 191 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 12:51:28 2010
;; MSG SIZE  rcvd: 801</pre>
<p>If you get a response like this then your firewall passes UDP responses greater than 512 bytes.</p>
<p>If you did not get a response like this, you need to fix your firewall.</p>
<p>Next we will test to see whether you can get a response greater than 1500 bytes.  Such responses are normally fragmented, and this test will find out whether your firewall will pass fragmented UDP packets. Failure to pass such responses will force named to fall back to using queries which are likely to trigger the use of TCP, which should be avoided.  Failure to pass such answers will also slow up the resolution process.</p>
<p>e.g.</p>
<pre>dig +dnssec +norec +ignore any . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +dnssec +norec +ignore any . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 57084
;; flags: qr aa; QUERY: 1, ANSWER: 21, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	ANY

;; ANSWER SECTION:
.			86400	IN	NSEC	ac. NS SOA RRSIG NSEC DNSKEY
.			86400	IN	RRSIG	NSEC 8 0 86400 20100214000000 20100206230000 23763 . haTtgLwOQ9Bm2F9BRqMtAzahIuUWrjcmRjFGI5s5jGUVpjgq/MOl7wRi IJ1nLQkXThzc8hn6b3faXXIhHE/8MShzOG4wFbHwJyltx8IT9E8XP4P5 Fz9TuE3EEElNE6GZNAg8UM4r8hyv/PSM8e7offdh7pg32kfW6fgoLsHy 8yQ=
.			86400	IN	DNSKEY	256 3 8 AwEAAa1Lh++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ +++++++8
.			86400	IN	DNSKEY	257 3 8 AwEAAawBe++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++8=
.			86400	IN	RRSIG	DNSKEY 8 0 86400 20100214235959 20100131000000 19324 . v2DVoP16w3dqsOooCxAb393ExF6p1t3d3qJsYPkeV96/t3HIuVLnxpbV 02Wx+BR7dwLiURASmebvEhZrR4gNqO15M5gerrzDdY0IXA0q0xVAUj/J NvkdiniXjoQYGUwjJsdfqxvD7NQPtSz4YTuOvMlVffV1F2Bc6Woid7AK JGkb24MeQlAMy/gQqcLPs6c3a9RvZEwofMul66bUswGS+YsL8x9A6Cbt 1bdyhRUNYSl7AifA4++Pu+0MLpbrxH7DLI8O9ZfCA3LsEQUOFjYA+2jJ mzgFqZAU0HvxeQyStnLF3/bf7qifRegrn6+cTKjKtUZ52/kUFiaqgT2t 9TemTg==
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.
.			518400	IN	RRSIG	NS 8 0 518400 20100214000000 20100206230000 23763 . JWEPSBVBz37WV/cvjxtlBGGLFe88ojhBM3ZZW+ZC2umpQq5lMSnE/3vO WGVWq8gOFs/mlmXttk80WxwZfUvgDXddNtqbNoNWZaGPbH9F2O+B6yDX n6jE4EcMRcjoL752uZTDMZ8WHEiEorjxsVYr1ae1MYZO5K0CqzX/qkUW 1DY=
.			86400	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2010020701 1800 900 604800 86400
.			86400	IN	RRSIG	SOA 8 0 86400 20100214000000 20100206230000 23763 . KA46XFSIJT3xKdvlo2av5FmeFl5R8etArvA9PLJb4JUz2jioqYTjhDbT 6L5kJQaiavMF1Lic5spulaHlCHmVy+gLetI49Nc8htnd0QPWTn/MG3do isDlv9nh6uCR6cJj5W/anIkubiLHBmO11QLwVNa1IybTgTCKHNwefxG0 i/M=

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
h.root-servers.net.	518400	IN	AAAA	2001:500:1::803f:235
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:3::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 191 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 13:15:19 2010
;; MSG SIZE  rcvd: 1906</pre>
<p>If you get a reponse like this then your firewall passes UDP responses greater than 1500 bytes.</p>
<p>If you did not get a response like this, you need to fix your firewall.</p>
<p>Next we need to see whether your firewall passes outbound TCP queries. Even when using EDNS, some answers will not fit into a UDP packet. Such responses require queries to be performed over TCP.</p>
<p>e.g.</p>
<pre>dig +dnssec +norec +vc any . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +dnssec +norec +vc any . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 20036
;; flags: qr aa; QUERY: 1, ANSWER: 21, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	ANY

;; ANSWER SECTION:
.			86400	IN	NSEC	ac. NS SOA RRSIG NSEC DNSKEY
.			86400	IN	RRSIG	NSEC 8 0 86400 20100214000000 20100206230000 23763 . haTtgLwOQ9Bm2F9BRqMtAzahIuUWrjcmRjFGI5s5jGUVpjgq/MOl7wRi IJ1nLQkXThzc8hn6b3faXXIhHE/8MShzOG4wFbHwJyltx8IT9E8XP4P5 Fz9TuE3EEElNE6GZNAg8UM4r8hyv/PSM8e7offdh7pg32kfW6fgoLsHy 8yQ=
.			86400	IN	DNSKEY	256 3 8 AwEAAa1Lh++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ +++++++8
.			86400	IN	DNSKEY	257 3 8 AwEAAawBe++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++8=
.			86400	IN	RRSIG	DNSKEY 8 0 86400 20100214235959 20100131000000 19324 . v2DVoP16w3dqsOooCxAb393ExF6p1t3d3qJsYPkeV96/t3HIuVLnxpbV 02Wx+BR7dwLiURASmebvEhZrR4gNqO15M5gerrzDdY0IXA0q0xVAUj/J NvkdiniXjoQYGUwjJsdfqxvD7NQPtSz4YTuOvMlVffV1F2Bc6Woid7AK JGkb24MeQlAMy/gQqcLPs6c3a9RvZEwofMul66bUswGS+YsL8x9A6Cbt 1bdyhRUNYSl7AifA4++Pu+0MLpbrxH7DLI8O9ZfCA3LsEQUOFjYA+2jJ mzgFqZAU0HvxeQyStnLF3/bf7qifRegrn6+cTKjKtUZ52/kUFiaqgT2t 9TemTg==
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.
.			518400	IN	RRSIG	NS 8 0 518400 20100214000000 20100206230000 23763 . JWEPSBVBz37WV/cvjxtlBGGLFe88ojhBM3ZZW+ZC2umpQq5lMSnE/3vO WGVWq8gOFs/mlmXttk80WxwZfUvgDXddNtqbNoNWZaGPbH9F2O+B6yDX n6jE4EcMRcjoL752uZTDMZ8WHEiEorjxsVYr1ae1MYZO5K0CqzX/qkUW 1DY=
.			86400	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2010020701 1800 900 604800 86400
.			86400	IN	RRSIG	SOA 8 0 86400 20100214000000 20100206230000 23763 . KA46XFSIJT3xKdvlo2av5FmeFl5R8etArvA9PLJb4JUz2jioqYTjhDbT 6L5kJQaiavMF1Lic5spulaHlCHmVy+gLetI49Nc8htnd0QPWTn/MG3do isDlv9nh6uCR6cJj5W/anIkubiLHBmO11QLwVNa1IybTgTCKHNwefxG0 i/M=

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
h.root-servers.net.	518400	IN	AAAA	2001:500:1::803f:235
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:3::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 380 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 13:18:19 2010
;; MSG SIZE  rcvd: 1906</pre>
<p>If you did not receive a answer like this, you need to fix your firewall.</p>
<p>If all the above tests succeeded, then you should have no issues when all the root servers are responding with signed versions of the root zone.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2010/02/10/dnssec-firewall-issues/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The journey of an IP packet through a Linux iptables firewall</title>
		<link>http://blog.dest-unreach.be/2009/04/22/the-journey-of-an-ip-packet-through-a-linux-iptables-firewall</link>
		<comments>http://blog.dest-unreach.be/2009/04/22/the-journey-of-an-ip-packet-through-a-linux-iptables-firewall#comments</comments>
		<pubDate>Wed, 22 Apr 2009 17:30:22 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1082</guid>
		<description><![CDATA[When doing some research on the different tables in iptables, I was trying to figure out in what order what tables are traversed. Obviously PREROUTING happens before POSTROUTING, but it becomes more difficult to figure out if mangle happens before are after nat. I found a post which links to this overview:]]></description>
			<content:encoded><![CDATA[<p>When doing some research on the different tables in <a href="http://www.netfilter.org/projects/iptables/index.html">iptables</a>, I was trying to figure out in what order what tables are traversed. Obviously <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>PREROUTING</em></a> happens before <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>POSTROUTING</em></a>, but it becomes more difficult to figure out if <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>mangle</em></a> happens before are after <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>nat</em></a>.</p>
<p>I found <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295567">a post</a> which links to this overview:</p>
<p><a href="http://l7-filter.sourceforge.net/PacketFlow.png"><img class="alignnone size-thumbnail wp-image-1083" title="packetflow" src="http://blog.dest-unreach.be/wp-content/uploads/2009/04/packetflow-150x150.png" alt="packetflow" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2009/04/22/the-journey-of-an-ip-packet-through-a-linux-iptables-firewall/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 in the home network</title>
		<link>http://blog.dest-unreach.be/2009/03/17/ipv6-in-the-home-network</link>
		<comments>http://blog.dest-unreach.be/2009/03/17/ipv6-in-the-home-network#comments</comments>
		<pubDate>Tue, 17 Mar 2009 18:59:26 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=916</guid>
		<description><![CDATA[IPv6 is, big surprise, the new version of IP. The current internet runs on IPv4, which has some drawbacks. Practically both versions are the same: they allow connections from one host to another host. Technically however, there are some major differences, most notably the enlarged address space. For the moment, most hosts will run a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> is, big surprise, the new version of IP. The current internet runs on <a href="http://en.wikipedia.org/wiki/IPv4">IPv4</a>, which has some drawbacks. Practically both versions are the same: they allow connections from one host to another host. Technically however, there are some major differences, most notably the enlarged address space. For the moment, most hosts will run a <a href="http://en.wikipedia.org/wiki/Dual-stack">dual-stack</a> configuration.</p>
<p>I decided that it was time to implement IPv6 on my home network and get a IPv6 connection to the IPv6-Internet.</p>
<p><span id="more-916"></span>Getting IPv6 to work wasn&#8217;t difficult at all. All it took was to configure an address on my Linux-based router/firewall:</p>
<blockquote>
<pre># ip -6 addr add dev eth0 2001:db8:1:2:1122:33ff:fe44:5566/64</pre>
</blockquote>
<p>I used <a href="http://tools.ietf.org/html/rfc4291#page-20">EUI-64 type addresses</a> to be consistent with the rest of the network, but you can choose freely. Note that the examples use <a href="http://tools.ietf.org/html/rfc3849">IPv6 addresses reserved for documentation</a>, don&#8217;t use these addresses!</p>
<p>Next, I configured <a href="http://www.litech.org/radvd/">radvd</a>, the router advertisement daemon:</p>
<blockquote>
<pre># /et<!-- mod_security bypass -->c/radvd.conf

interface eth0 {
	AdvSendAdvert on;
	MaxRtrAdvInterval 600;
	AdvManagedFlag off;
	AdvOtherConfigFlag off;
	prefix 2001:db8:1:2::/64 {
		AdvAutonomous on;
		AdvValidLifetime 604800;
		AdvPreferredLifetime 86400;
	};
	RDNSS 2001:db8:1:2:1122:33ff:fe44:5566 {
	};
};</pre>
</blockquote>
<p>By the time I opened my <a href="http://en.wikipedia.org/wiki/System_Preferences">System Preferences</a>, my Mac had already assigned itself an IPv6 address and I was able to ping the router.</p>
<h3>The IPv6 Internet</h3>
<p>With the above configuration, I was running an IPv6 island. There was no way to communicate with the outside world (over IPv6). Since my ISP doesn&#8217;t know what IPv6 is, I needed another way to get a connection to the IPv6 internet. <a href="https://www.sixxs.net/">Sixxs.net</a> provides exactly this. Note that all requests are manually processed, so it can take a while to get them all approved. Mine took around 24 hours from account-request to subnet approval.</p>
<p>Since my router has a public IP address, I chose the <a href="https://www.sixxs.net/tools/heartbeat/">heartbeat</a> tunnel, which uses plain IPv6-in-IPv4 (sit) tunneling. My <a href="https://www.sixxs.net/tools/aiccu/">AICCU</a> configuration looks like this:</p>
<blockquote>
<pre># /et<!-- mod_security bypass -->c/aiccu.conf

username -SIXXS
password 

protocol tsp
server tic.sixxs.net
ipv6_interface sit_sixxs
verbose false
daemonize true
automatic true
requiretls false</pre>
</blockquote>
<p>Simply starting AICCU got my tunnel up and connected me to the IPv6 Internet:</p>
<blockquote>
<pre># ip addr sh
&lt;stripped&gt;
160: sit_sixxs@NONE: &lt;POINTOPOINT,NOARP,UP,10000&gt; mtu 1280 qdisc noqueue
    link/sit &lt;stripped&gt; peer &lt;stripped&gt;
    inet6 2001:&lt;stripped&gt;:2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::5740:191d/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::a11:ff01/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:0/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::a11:1/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::c0a8:ff01/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::a11:201/64 scope link
       valid_lft forever preferred_lft forever
&lt;stripped&gt;</pre>
</blockquote>
<blockquote>
<pre># ping6 -n sixxs.net
PING sixxs.net(2001:838:1:1:210:dcff:fe20:7c7c) 56 data bytes
64 bytes from 2001:838:1:1:210:dcff:fe20:7c7c: icmp_seq=1 ttl=54 time=18.9 ms
64 bytes from 2001:838:1:1:210:dcff:fe20:7c7c: icmp_seq=2 ttl=54 time=18.2 ms
64 bytes from 2001:838:1:1:210:dcff:fe20:7c7c: icmp_seq=3 ttl=54 time=18.3 ms
^C
--- sixxs.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2011ms
rtt min/avg/max/mdev = 18.271/18.518/18.945/0.341 ms
#</pre>
</blockquote>
<h3>Routed subnet</h3>
<p>We now have IPv6 connectivity to the IPv6 internet from the router/firewall. The IPv4-way of getting that access to our internal hosts is to <a href="http://en.wikipedia.org/wiki/Port_address_translation">many-to-one-NAT</a> all boxes behind this single public address. Since IPv6 has many more addresses, the normal way is to give each internal host its own public address. <a href="http://www.sixxs.net/">Sixxs.net</a> also provides subnets on request, usually /48.</p>
<p>Once the subnet-request was approved, simply changing the IP of the firewall, changing the radvd.conf and restarting radvd was enough to get the IPv6 internet to the inside hosts. Since all hosts now have public addresses, it may be a wise choise to firewall them.</p>
<h3>Privacy Extension</h3>
<p>IPv6 provides a <a href="http://tools.ietf.org/html/rfc3041">Privacy Extension</a> feature which, surprise, enhances privacy. On MacOSX 10.5 Leopard this is disabled by default. Enabling it <span class="removed_link" title="http://internecine.eu/systems/mac_os_x-ipv6.html">requires</span> a <a href="http://en.wikipedia.org/wiki/Sysctl">sysctl</a>:</p>
<blockquote>
<pre># sysctl net.inet6.ip6.use_tempaddr
net.inet6.ip6.use_tempaddr: 0
# sysctl -w net.inet6.ip6.use_tempaddr=1
net.inet6.ip6.use_tempaddr: 0 -&gt; 1
# sysctl net.inet6.ip6.use_tempaddr
net.inet6.ip6.use_tempaddr: 1</pre>
</blockquote>
<p>To make these changes permanent, Mac <a href="http://lima.osu.edu/ots/tb/200711011550%20_Mac_OS_X_and_Linux_TCP_Window_Scaling.htm">apparently</a> uses the standard sysctl.conf:</p>
<blockquote>
<pre># /et<!-- mod_security bypass -->c/sysctl.conf
# Generate and use IPv6 Privacy Extension addresses
net.inet6.ip6.use_tempaddr=1</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2009/03/17/ipv6-in-the-home-network/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Terminating an IPsec-GRE tunnel behind NAT</title>
		<link>http://blog.dest-unreach.be/2008/07/11/terminating-an-ipsec-gre-tunnel-behind-nat</link>
		<comments>http://blog.dest-unreach.be/2008/07/11/terminating-an-ipsec-gre-tunnel-behind-nat#comments</comments>
		<pubDate>Fri, 11 Jul 2008 17:18:23 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[GRE]]></category>
		<category><![CDATA[IPsec]]></category>
		<category><![CDATA[NAT]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=82</guid>
		<description><![CDATA[Recently I had to configure a router serving as an IPsec-GRE endpoint. So far, nothing special. The interesting part is that the terminating router is behind a NAT-device which changes the outer IP-header of the IPsec tunnel. Of course, the GRE-header is NOT affected by the NAT (since it is encrypted). To summarize, the device [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to configure a router serving as an IPsec-GRE endpoint. So far, nothing special. The interesting part is that the terminating router is behind a NAT-device which changes the outer IP-header of the IPsec tunnel. Of course, the GRE-header is NOT affected by the NAT (since it is encrypted).</p>
<p>To summarize, the device needs to:</p>
<ul>
<li>terminate an IPsec tunnel between 172.16.2.2 &lt;-&gt; 10.0.0.4 (its own IP); but authenticate as 172.16.2.4</li>
<li>terminate a GRE tunnel between 172.16.1.1 &lt;-&gt; 172.16.2.4 (a public IP that is NATed towards it)</li>
</ul>
<p>The diagram is shown below:</p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/ipsecgre-nat.png"><img class="alignnone size-medium wp-image-92" title="ipsecgre-nat" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/ipsecgre-nat-300x75.png" alt="" width="300" height="75" /></a><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/ipsecgre-nat.png"> </a></p>
<p>172.16.x.x addresses are &#8220;public&#8221;; 10.x.x.x are private.</p>
<p><span id="more-82"></span></p>
<h3>The setup</h3>
<p>For this post, I assume all routers can reach each other as they should. Only the &#8220;interesting&#8221; commands are shown below.</p>
<p>The GRE tunnel is sourced on the far left by &#8220;GreL&#8221;:</p>
<blockquote>
<pre>interface Tunnel0
 tunnel source FastEthernet0/0
 tunnel destination 172.16.2.4
interface FastEthernet0/0
 ip address 172.16.1.1 255.255.255.0</pre>
</blockquote>
<p>This GRE tunnel is encapsulated in an IPsec tunnel at device &#8220;IPsecL&#8221;:</p>
<blockquote>
<pre>crypto isakmp policy 1
 hash md5
 authentication pre-share
 lifetime 3600

crypto isakmp key SHAREDKEY address 172.16.2.4

crypto ipsec transform-set IPSEC_TS_NULL esp-null esp-md5-hmac

crypto map CRYPTOMAP_1 1 ipsec-isakmp
 set peer 172.16.2.4
 set transform-set IPSEC_TS_NULL
 match address ACL_GRE

interface FastEthernet0/0
 ip address 172.16.2.2 255.255.255.0
 crypto map CRYPTOMAP_1

ip access-list extended ACL_GRE
 permit gre host 172.16.1.1 host 172.16.2.4</pre>
</blockquote>
<p>The &#8220;Nat&#8221; router is fairly simple:</p>
<blockquote>
<pre>interface FastEthernet0/0
 ip nat outside

interface FastEthernet0/1
 ip nat inside

ip nat inside source static 10.0.0.4 172.16.2.4</pre>
</blockquote>
<h3>The magic</h3>
<p>The magic happens at router &#8220;R&#8221;. The problem is that the GRE needs to be terminated on the <em>public</em> IP. The left end of the connection is unaware of any NAT, and the NAT can&#8217;t change the GRE-IP-header since it&#8217;s protected by the IPsec.</p>
<p>There are probably other ways around this, but I solved the issue by adding a loopback interface with 172.16.2.4/32 as IP:</p>
<blockquote>
<pre>crypto isakmp policy 1
 hash md5
 authentication pre-share
 lifetime 3600

crypto isakmp key SHAREDKEY address 172.16.2.2

crypto ipsec transform-set IPSEC_TS_NULL esp-null esp-md5-hmac 

crypto map CRYPTOMAP_1 1 ipsec-isakmp
 set peer 172.16.2.2
 set transform-set IPSEC_TS_NULL
 match address ACL_GRE

interface Loopback0
 ip address 172.16.2.4 255.255.255.255

interface Tunnel0
 tunnel source Loopback0
 tunnel destination 172.16.1.1

interface FastEthernet0/0
 ip address 10.0.0.4 255.255.255.0
 crypto map CRYPTOMAP_1

ip access-list extended ACL_GRE
 permit gre host 172.16.2.4 host 172.16.1.1</pre>
</blockquote>
<h3>The Results</h3>
<p>I verified this setup to work in <a href="http://blog.dest-unreach.be/2008/06/19/emulating-a-router-dynamips">dynamips</a>. I pinged from 10.0.1.1 to 10.0.4.4. Here are the packet dumps for the ICMP packet on its way from left to right.</p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingreq1.png"><img class="alignnone size-medium wp-image-86" title="pingreq1" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingreq1-300x37.png" alt="" width="300" height="37" /></a></p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingreq2.png"><img class="alignnone size-medium wp-image-87" title="pingreq2" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingreq2-300x61.png" alt="" width="300" height="61" /></a></p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingreq3.png"><img class="alignnone size-medium wp-image-88" title="pingreq3" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingreq3-300x61.png" alt="" width="300" height="61" /></a></p>
<p>The reply on its way back from right to left:</p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingrep3.png"><img class="alignnone size-medium wp-image-89" title="pingrep3" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingrep3-300x61.png" alt="" width="300" height="61" /></a></p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingrep2.png"><img class="alignnone size-medium wp-image-90" title="pingrep2" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingrep2-300x61.png" alt="" width="300" height="61" /></a></p>
<p><a href="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingrep1.png"><img class="alignnone size-medium wp-image-91" title="pingrep1" src="http://blog.dest-unreach.be/wp-content/uploads/2008/07/pingrep1-300x36.png" alt="" width="300" height="36" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2008/07/11/terminating-an-ipsec-gre-tunnel-behind-nat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

