<?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>Andy Fletcher</title>
	<atom:link href="http://ams1.x31.com/~andy/feed/" rel="self" type="application/rss+xml" />
	<link>http://ams1.x31.com/~andy</link>
	<description>Telecommunications Consultant</description>
	<lastBuildDate>Mon, 24 Oct 2011 19:45:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Adventures in IPv6</title>
		<link>http://ams1.x31.com/~andy/2011/10/adventures-in-ipv6/</link>
		<comments>http://ams1.x31.com/~andy/2011/10/adventures-in-ipv6/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 19:45:01 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[DNS64]]></category>
		<category><![CDATA[Dual stack]]></category>
		<category><![CDATA[NAT64]]></category>
		<category><![CDATA[Stateless]]></category>
		<category><![CDATA[U32 classifier]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=3171</guid>
		<description><![CDATA[I posted this on the Linux Beer Hike list this evening, its probably of interest to a wider audience.. I&#8217;ve been working with IPv6 a bit recently and have been discovering lots of interesting implementation issues with both Windows and &#8230; <a href="http://ams1.x31.com/~andy/2011/10/adventures-in-ipv6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I posted this on the Linux Beer Hike list this evening, its probably of interest to a wider audience..</p>
<p>I&#8217;ve been working with IPv6 a bit recently and have been discovering lots of interesting implementation issues with both Windows and Linux.  Generally dual stack where interfaces have both IPv4 and IPv6 enabled works fine on most systems. However running on a pure IPv6 network with NAT64 and DNS64 shows a few issues with several operating systems. I&#8217;ve focused on stateless autoconfiguration for the moment, DHCPv6 is on my todo list</p>
<p>Windows XP is the worst offender on pure IPv6 networks because it appears to be impossible to get the DNS resolver to query non-IPv4 DNS servers. I&#8217;ve seen several &#8216;fixes&#8217; which involve manually configuring the DNS but they have failed to work on the XP systems I&#8217;ve had the misfortune to encounter, maybe a different set of updates and service packs are required. XP comes with a set of site-local IPv6 addresses preconfigured for the DNS resolver but it doesn&#8217;t appear to be able to query them either.  I&#8217;m of the opinion that the only way to get XP to work properly on pure IPv6 networks is to install an IPv6 capable DNS server on each machine and point the XP DNS resolver at the IPv4 localhost (127.0.0.1).  Its certainly the approach I&#8217;m going to be exploring in the future.</p>
<p>Windows Vista and Windows 7 both appear to behave reasonably well on pure IPv6 networks, all machines appear to stateless autoconfigure reasonably well and pick up the router advertisements. Some systems don&#8217;t pick up the DNS and I&#8217;m still trying to work out the conditions under which this happens. However it can always be fixed by a quick manual setting in the interface IPv6 configuration.</p>
<p>In the Debian Linux world things are generally much better apart from the Debian squeeze installer which is unable to pickup any networking from IPv6. The only way I&#8217;ve managed to install successfully on a pure IPv6 network is to do a non-networking install, bring up the system then configure networking, set the aptitude repositories followed by a quick &#8220;apt-get update&#8221;, &#8220;apt-get upgrade&#8221;. After this everything works just fine. I&#8217;ve not tested the Ubuntu installer on a pure IPv6 network but I expect it to be the same story.</p>
<p>Getting access to the IPv4 world from an IPv6 only network is best achieved using NAT64 and DNS64. Once it is properly setup things work smoothly and completely transparently to the user. The only times they will notice the difference is when they want to go to a system which is not in DNS and they try to type the IPv4 address in the form 192.168.0.1.  The problem is their machine will try to open an IPv4 connection and discovers that there are no network interfaces configured with IPv4. This is easily rectified by either putting the target host into DNS or prefixing the IPv4 address with the 96 bit IPv6 prefix for the NAT64. Its a little annoying at first but becomes second nature after a while.</p>
<p>Both NAT64 and DNS64 are very new and implementations are still trying to catch up with the recommendations. For NAT64 I&#8217;ve settled on Tayga which is easy to compile and doesn&#8217;t require any kernel hacking. DNS64 is best done using Bind 9.8 or later. In both cases with Debian stable you have to manually build them from sources. To get your gateway system to transmit IPv6 router advertisements you need to install and configure radvd.  Again the Debian stable version is a little out of date and if you want the client machines to pickup the DNS server information you will have to upgrade radvd to a later version (Debian testing). Make sure you install rdnssd on your client Linux systems if you want them to pick up DNS from the radvd advertisements.</p>
<p>Getting an IPv6 connection from your ISP is a little harder, in my case in Qatar it is impossible, so I am using the Hurricane Electric tunnelbroker service.  They offer a free 6 in 4 connection where IPv6 is delivered over the normal IPv4 connection but uses protocol 41 instead of TCP/UDP etc.  I&#8217;ve configured my home gateway machine to DNAT any packets with protocol 41 to a VirtualBox VM on my home network which does all the IPv4 tunnel, NAT64 and DNS64 stuff. I now have a home LAN which runs dual stack on 192.168.1.0/24 and Ipv6 only on a VLAN. Hurricane Electric will delegate a /48 address block to you so you can setup the rest of your IPv6 network and make it properly routable which is what I did. 64K subnets of /64 should be enough for (almost) anyone!</p>
<p>During testing with Oracle VirtualBox I noticed a strange thing when I tried to bridge the raw Ethernet device into the VM and setup VLANs within the VM. This was that the radvd IPv6 advertisements did not get the VLAN packet headers attached and they were all coming out as untagged (native) packets. Other IPv6 traffic behaved as expected. I solved this by creating the VLAN interfaces in the host machine and bridging them to the VM which then saw them as eth0, eth1 etc. I&#8217;ll have to investigate this later when I get time, something very strange was going on.</p>
<p>Once you have your IPv6 connectivity up and going your entire network is fully accessible to the rest of the IPv6 world, this includes your printers and your NAS box with those compromising photographs. Fortunately ip6tables is fully developed and it is an easy matter to control incoming connections on your IPv6 gateway. Its prudent to check incoming traffic from the Internet to ensure that it doesn&#8217;t have a source address within your delegated address block (spoofing) and to add a blackhole route for your delegated address block to prevent you sending your internal traffic up the link back to your provider.</p>
<p>If you are wanting to use QOS on your IPv6 interfaces don&#8217;t be fooled into thinking that the U32 classifier only supports IPv4.  I went digging into the IPROUTE2 code for tc and found complete, but undocumented support. If you want to know how to use it with IPv6 see my last posting on this blog on IPROUTE2. Please let me know if you find any errors.</p>
<p>I&#8217;ll write this up properly when I get some time along with details about ip6tables, NAT64 and DNS64.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2011/10/adventures-in-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 support in IPROUTE2 U32 classifier</title>
		<link>http://ams1.x31.com/~andy/2011/10/ipv6-support-in-iproute2-u32-classifier/</link>
		<comments>http://ams1.x31.com/~andy/2011/10/ipv6-support-in-iproute2-u32-classifier/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 15:36:48 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[ipv6]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[U32 classifier]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=3011</guid>
		<description><![CDATA[I&#8217;ve been playing with traffic shaping (iproute2) for a while now, unfortunately it is the worst documented part of Linux and &#8220;tc filter&#8221; and &#8220;U32 classifier&#8221; are no exception. Adding queues (HTB) to the tunnel interface is easy enough but &#8230; <a href="http://ams1.x31.com/~andy/2011/10/ipv6-support-in-iproute2-u32-classifier/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing with traffic shaping (iproute2) for a while now, unfortunately it is the worst documented part of Linux and &#8220;tc filter&#8221; and &#8220;U32 classifier&#8221; are no exception. Adding queues (HTB) to the tunnel interface is easy enough but the U32 traffic classifier is a real pain as it doesn&#8217;t support IPv6 in the address specifiers, or rather the documentation says nothing about IPv6. The net is full of pages where people say you have to chop IPv6 addresses into 32 bit chunks by hand and match separately on the chunks. </p>
<p>I thought that this is a stupid situation and started to dig into the iproute tc sources with a view to adding IPv6 support and feeding the changes back to the maintainer. During my digging I was astonished to find that U32 has full support for IPv6 already in the code and fully functional (see f_u32.c). Simply use &#8220;match ip6&#8243; instead of &#8220;match ip&#8221; and away you go. The code is clever enough to chop up the IPv6 address into 32bit chunks and only match as many as required to satisfy the netmask. You have the following ip6 directives available to you (addresses are examples):</p>
<ul>
<li>src 2001:0DB8:100:1::0/64</li>
<li>dst 2001::0/16</li>
<li>priority  123 0xff</li>
<li>protocol 2 0xff  	&#8211; This is the IPv6 next-header field </li>
<li>flowlabel 123456 0x000fffff </li>
<li>dport 53 0xffff  	&#8211; Looks in the TCP/UDP header, make sure you check protocol first!</li>
<li>sport 53 0xffff  	&#8211; Looks in the TCP/UDP header, make sure you check protocol first!</li>
<li>icmp_type 1 0xff  	&#8211; Looks in the ICMP header, make sure you check protocol first!</li>
<li>icmp_code 1 0xff  	&#8211; Looks in the ICMP header, make sure you check protocol first!</li>
</ul>
<p>Some values for the protocol field:</p>
<ul>
<li>6	&#8211;	TCP</li>
<li>17	&#8211;	UDP</li>
<li>58	&#8211;	ICMPv6</li>
</ul>
<p>An example tc filter:<br />
<code><br />
# clean out existing filters<br />
tc qdisc del dev wlan0 root<br />
#<br />
# Create root to attach filters<br />
tc qdisc add dev wlan0 root handle 1: htb default 20<br />
#<br />
# example filter: checks for a DNS packet between two specified subnets and assigns it to a queue<br />
tc filter add dev wlan0 parent 1:0 prio 10 u32 \<br />
	match ip6 dst 2001:0DB8:101:0::0/48    \<br />
	match ip6 src 2001:0DB8:10::0/64          \<br />
	match ip6 protocol 17 0xff             \<br />
	match ip6 dport 53 0xffff              \<br />
	flowid 1:1<br />
#<br />
# have a look at the generated u32 filters<br />
tc -s -d filter show dev wlan0<br />
#<br />
filter parent 1: protocol [768] pref 10 u32<br />
filter parent 1: protocol [768] pref 10 u32 fh 800: ht divisor 1<br />
filter parent 1: protocol [768] pref 10 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1<br />
  match 20010db8/ffffffff at 24<br />
  match 01010000/ffff0000 at 28<br />
  match 20010db8/ffffffff at 8<br />
  match 00100000/ffffffff at 12<br />
  match 00001100/0000ff00 at 4<br />
  match 00000035/0000ffff at 40<br />
</code></p>
<p>The Linux kernel TC classifier code only performs 32 bit matches. 8 bit (U8) and 16 bit (U16) tests are converted to the appropriate U32 match aligned on a 4 byte boundary by the tc command. As we move towards a IPv6 world there would be a lot of sense in creating a U64 lump of code which could take advantage of the 64 bit architecture now becoming common, this would allow a complete 128 bit IPv6 address to be tested in 2 matches in place of the current 4 matches and most of the time a single match on a /64 would suffice. It would involve hacking the kernel and TC then trying to get the different maintainers to accept the changes which appears to be a very lengthy process. The increased throughput on a heavily loaded router running QOS could be substantial though.</p>
<p>I can&#8217;t find a manpage for the U32 classifier on my system at and at present there is no official place to put this description. I&#8217;m open to suggestions if someone can point me at a place to formally document the IPv6 support in the U32 classifier.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2011/10/ipv6-support-in-iproute2-u32-classifier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Quality of Service (QOS)</title>
		<link>http://ams1.x31.com/~andy/2011/08/linux-quality-of-service-qos/</link>
		<comments>http://ams1.x31.com/~andy/2011/08/linux-quality-of-service-qos/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 09:42:45 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2951</guid>
		<description><![CDATA[I delivered a short presentation on how to do Quality of Service (QOS) under Linux at the 2011 Linux Beer Hike. I covered the following: Types of queues Use of HTB to manage bandwidth Inbound traffic policing Use of Intermediate &#8230; <a href="http://ams1.x31.com/~andy/2011/08/linux-quality-of-service-qos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I delivered a short presentation on how to do Quality of Service (QOS) under Linux at the 2011 Linux Beer Hike.  I covered the following:</p>
<ul>
<li>Types of queues</li>
<li>Use of HTB to manage bandwidth</li>
<li>Inbound traffic policing</li>
<li>Use of Intermediate Queues (IMQ)</li>
<li>Traffic classification using &#8220;tc filter&#8221; and IP tables</li>
</ul>
<p>I&#8217;ve not covered TOS/DSCP marking or how to set the required QOS in the application. Maybe I&#8217;ll cover it in the future if there is sufficient demand.</p>
<p>You are welcome to<br />
<a href="http://ams1.x31.com/~andy/wp-content/uploads/2011/08/TLNX002-LinuxQOS.pdf">download and share the PDF</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2011/08/linux-quality-of-service-qos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux VLANs</title>
		<link>http://ams1.x31.com/~andy/2011/08/linux-vlans/</link>
		<comments>http://ams1.x31.com/~andy/2011/08/linux-vlans/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 15:00:48 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2891</guid>
		<description><![CDATA[I delivered a short presentation on how to manage VLANs under Linux at the 2011 Linux Beer Hike. I covered how VLANs work and the methods of configuring them. Its all very simple and you are welcome to download and &#8230; <a href="http://ams1.x31.com/~andy/2011/08/linux-vlans/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I delivered a short presentation on how to manage VLANs under Linux at the 2011 Linux Beer Hike.  I covered how VLANs work and the methods of configuring them. Its all very simple and you are welcome to <a href="http://ams1.x31.com/~andy/wp-content/uploads/2011/08/TLNX001-VLANs.pdf">download and share the PDF</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2011/08/linux-vlans/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Battery Charging</title>
		<link>http://ams1.x31.com/~andy/2011/04/battery-charging/</link>
		<comments>http://ams1.x31.com/~andy/2011/04/battery-charging/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 07:23:52 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Athens Airport]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2781</guid>
		<description><![CDATA[A couple of days ago I was going through Athens airport when I saw something which at first glance failed to make any sense. The airport has charging stations for cellphones &#8211; free for anyone to use. The person setting &#8230; <a href="http://ams1.x31.com/~andy/2011/04/battery-charging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago I was going through Athens airport when I saw something which at first glance failed to make any sense.  The airport has charging stations for cellphones &#8211; free for anyone to use.</p>
<p>The person setting up the stations didn&#8217;t see the obvious joke in the sign.</p>
<p><img src="http://ams1.x31.com/~andy/wp-content/uploads/2011/04/battery-charging.jpg" alt="Battery charging station at Athens Airport" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2011/04/battery-charging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to defend a NTP server against abusive clients</title>
		<link>http://ams1.x31.com/~andy/2011/03/how-to-defend-a-ntp-server-against-abusive-clients/</link>
		<comments>http://ams1.x31.com/~andy/2011/03/how-to-defend-a-ntp-server-against-abusive-clients/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 18:19:46 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NTP]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2661</guid>
		<description><![CDATA[I&#8217;ve been running a NTP server in the ntp.org pool project for several years now. However I&#8217;ve always been plagued by a few clients who put a continual stream of NTP requests into my server. Eventually I decided to do &#8230; <a href="http://ams1.x31.com/~andy/2011/03/how-to-defend-a-ntp-server-against-abusive-clients/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been running a NTP server in the ntp.org pool project for several years now. However I&#8217;ve always been plagued by a few clients who put a continual stream of NTP requests into my server. Eventually I decided to do something about it using the IP tables recent module.</p>
<p>The idea is that I drop incoming NTP packets from offenders who exceed a given number of packets per second averaged over a period. After a while they will give up and try a different server.</p>
<p>This has the advantage that it self resets once they get below the threshold, the two lines below will do this with my Debian server (adjust -i to match your interface)</p>
<p><code># iptables -A INPUT -i eth0 -p udp -m udp --dport 123  -m recent --set --name NTPTRAFFIC --rsource<br />
# iptables -A INPUT -i eth0 -p udp -m udp --dport 123  -m recent --update --seconds 60 --hitcount 7 --name NTPTRAFFIC --rsource -j DROP</code></p>
<p>You can view the connecting hosts by looking at the conntrack table:</p>
<p><code># cat /proc/net/ip_conntrack | grep dport=123</code></p>
<p>And you can see what sort of performance you are getting by looking at<br />
the iptables stats</p>
<p><code># iptables -n -L -v  | grep 123</code></p>
<p>I&#8217;ve been running this for a while and the abusive clients disappeared almost instantly. If I check now it shows very few attempts:</p>
<p><code># iptables -n -L -v  | grep 123</code></p>
<p><code>1038K   79M DROP       udp  --  eth0   *       0.0.0.0/0 0.0.0.0/0           udp dpt:123 state NEW recent: UPDATE seconds: 60 hit_count: 7 name: NTPTRAFFIC side: source<br />
  74M 5613M            udp  --  eth0   *       0.0.0.0/0 0.0.0.0/0           udp dpt:123 state NEW recent: SET name: NTPTRAFFIC side: source</code></p>
<p>But I&#8217;m serving a lot of ntp clients (between 5k and 8k different IPs per minute):</p>
<p><code># cat /proc/net/ip_conntrack | grep dport=123 | wc -l<br />
8104</code></p>
<p>There is a balance between conntrack table size and count period.  A limit of 7 packets in one minute for a client appears to work well and allows clients to use iburst without being dropped.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2011/03/how-to-defend-a-ntp-server-against-abusive-clients/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting around Athens Airport WiFi time limits</title>
		<link>http://ams1.x31.com/~andy/2010/08/getting-around-athens-airport-wifi-time-limits/</link>
		<comments>http://ams1.x31.com/~andy/2010/08/getting-around-athens-airport-wifi-time-limits/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 02:25:39 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2621</guid>
		<description><![CDATA[Athens airport (code ATH) offers free wireless which can be very useful. The only problem is it is time limited to 45 minutes at a time. After that time it stops you accessing the Internet. The solution to this is &#8230; <a href="http://ams1.x31.com/~andy/2010/08/getting-around-athens-airport-wifi-time-limits/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Athens airport (code ATH) offers free wireless which can be very useful.  The only problem is it is time limited to 45 minutes at a time.  After that time it stops you accessing the Internet.</p>
<p>The solution to this is to change your wireless MAC address every time it locks you out then reconnect.  I&#8217;m running Ubuntu so the easiest way is to use macchanger-gtk. The procedure is simple:</p>
<p>1. Disable wireless<br />
2. Run macchanger as root and set a fake MAC address<br />
3. Enable Wireless<br />
4. Reconnect to the Internet and accept the new 45 minutes.</p>
<p>I also flushed the browser cache and cookies just to be safe.</p>
<p>Hope it works well for you too. There are a lot of programs out there to change your MAC address.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2010/08/getting-around-athens-airport-wifi-time-limits/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ships and Gaza</title>
		<link>http://ams1.x31.com/~andy/2010/05/ships-and-gaza/</link>
		<comments>http://ams1.x31.com/~andy/2010/05/ships-and-gaza/#comments</comments>
		<pubDate>Mon, 31 May 2010 14:21:33 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Gaza]]></category>
		<category><![CDATA[Legal]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2431</guid>
		<description><![CDATA[The recent boarding of a Turkish ship by heavily armed Israeli gunmen and the resulting deaths have upset me enough to write publicly about this rogue state which thinks nothing of arranging an assassination in Dubai, kidnapping nuclear engineers in &#8230; <a href="http://ams1.x31.com/~andy/2010/05/ships-and-gaza/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The recent boarding of a Turkish ship by heavily armed Israeli gunmen and the resulting deaths have upset me enough to write publicly about this <a href="http://en.wikipedia.org/wiki/Rogue_state">rogue state</a> which thinks nothing of arranging an <a href="http://www.wired.com/threatlevel/2010/02/dubai-assassination-has-hallmarks-of-mossad/">assassination in Dubai</a>, kidnapping <a href="http://www.vanunu.com/">nuclear engineers</a> in Europe because they spoke about illegal state projects and regularly invading the surrounding countries whenever the poor places have started to get their economic act together.</p>
<p>Over the years I have been equally distressed by the unquestioning support governments of the UK[1] and USA for what amounts to regular breaches of human rights and international law by Israel. I know there is a long history in the Middle East and the UK doesn&#8217;t exactly stand out as a shining example of how to do things correctly.</p>
<p>One thing which continually surprises me is the deliberate cruelty of the Israeli state to Gaza and the West bank which constitutes an international crime and this doesn&#8217;t include the murders on unarmed people including children which were committed in Gaza in the last armed invasion. Its not surprising if they build little rockets and fire them over the border when you keep them in what amounts to a large prison (Gaza) for years. Even the UN say that the &#8216;permitted&#8217; imports are a quarter of what is required for a civilised life in the area. Theft of land and degrading treatment of the resident Arabs are only part of it. Jews have suffered persecution for hundreds of years in various countries and they know what it is like to be on the receiving end of such treatment. More shame on them for making others endure such things.</p>
<p>Then we have the Nuclear issue, Israel is a nuclear state with an estimated 200 warheads in the hands of an aggressive administration who appear to have tried to sell the technology to the Apartheid South African Government in the past. Yet there are no sanctions imposed on them, indeed the UK and USA finance the country and appear to give them whatever technology they want on generous terms. I get angry when I consider the treatment meted out to Iran on the nuclear issue who are trying to build up an industry. As far as I am concerned Iran is perfectly entitled to build such weapons up to and including the number that Israel has. Anyone wanting them to reduce their planned stockpile should enforce the same reductions on Israel! Anything else is both grossly unfair and unreasonable.</p>
<p>What should be done?  Well, in the first case Israel should be treated in the same way as Apartheid South African, trade should be limited to essential food and medicines. All other commerce prohibited and all loans should be called in by the lenders. The leaders of Israel should be summoned to the international court (they probably won&#8217;t go) in the same way as other war criminals have been prosecuted in the past. Whilst this won&#8217;t immediately fix things it delivers an unmistakable message.  Finally Lebanon, Gaza, West Bank and other states should have their international borders guaranteed and enforced by force by the international community.</p>
<p>This is the first time I&#8217;ve written about this situation. The killings on the Turkish ship in an attack which I regard as state sponsored piracy in International waters finally pushed me over the tipping point. Maybe the international reaction these events might finally bring real pressure on Israel, it certainly made me speak out for the first time.  I suppose I&#8217;ll have my website attacked as a result of writing this.</p>
<p>Andy</p>
<p>[1] Yes I am British and frequently feel a mixture of shame and anger about our politicians from both main parties. Trade and commerce is important but you shouldn&#8217;t sacrifice your essential principles of right and wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2010/05/ships-and-gaza/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>QNB (Qatar National Bank) sucks</title>
		<link>http://ams1.x31.com/~andy/2010/03/qnb-qatar-national-bank-sucks/</link>
		<comments>http://ams1.x31.com/~andy/2010/03/qnb-qatar-national-bank-sucks/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:17:48 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Banks]]></category>
		<category><![CDATA[Qatar]]></category>
		<category><![CDATA[QNB]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2361</guid>
		<description><![CDATA[Today I closed my account with QNB. I opened the account when I came over to Qatar a year ago. Since then I&#8217;ve had nothing but trouble with them. On the face of it they offer an attractive package including &#8230; <a href="http://ams1.x31.com/~andy/2010/03/qnb-qatar-national-bank-sucks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I closed my account with QNB. I opened the account when I came over to Qatar a year ago.  Since then I&#8217;ve had nothing but trouble with them.</p>
<p>On the face of it they offer an attractive package including online banking, good interest rates on deposits and a Credit card after 3 months.</p>
<p>Unfortunately they did not live up to expectations. The ATM card they issued did not work outside Qatar despite repeated assurance that it was working &#8211; every time I went to their branch I ended up waiting for an hour before being able to see anyone and then didn&#8217;t get any practical assistance. I never got a Credit card from them either.</p>
<p>Eventually I requested an ATM card with my name on it rather than a default name – its hard getting retailers to accept a debit card with the name “Speed” apparently this new card was guaranteed to work abroad.  Well I never got chance to find out.  The replacement card which I paid QAR50 for never arrived in my post box and they cancelled my old card within a week of me asking for a new card leaving me with no way of accessing my money. After checking my post for two weeks I went to the branch again to sort it out they said that they could issue me an unnamed  “Speed” card for QAR50 straight away only I would have to come back the next day because they didn&#8217;t have one.</p>
<p>I pointed out that I was going to be travelling in three days time and I didn&#8217;t have time to spend another hour waiting the next day for a card which might be there (she couldn&#8217;t guarantee that they would have them the next day) and therefore would they please arrange to transfer the balance of my account to another person I was travelling with.  Her response was that they couldn&#8217;t do transfers that day (it was Saturday) or even schedule a transfer for the next day – I would have to come in again.</p>
<p>At that point I had had enough, with the non existent service and requested that they paid me the balance of my account and immediately close the account.  She was unable to do that too.  I had to go to the reception counter and get them to write me a cheque for cash and then wait 90 minutes for my turn at the cashier to convert it to cash.  However during this 90 minutes they decided to close the branch for an hour and threw everyone who was waiting for service out until they reopened it.</p>
<p>There were also had problems with their Internet security and reliability.   About half the time I tried to use the online banking service to make a transfer it came up with service unavailable. The method for adding payees for transfers was laughable.  You added a new payee to the system and entered a telephone number for them to confirm it with you.  They then phoned you within a day or so and asked you to confirm your identity number to authenticate yourself and permit transfers to the payee.  Just in case you forgot your identity number they helpfully displayed it at the top of the page where you entered the telephone number.  Anyone see the basic flaw?</p>
<p>At least I got my money back.  Its now been paid into a non-QNB bank account of a friend ready for my next trip.</p>
<p>I&#8217;ve now got to find another bank.  Maybe I&#8217;ll try IBQ this time.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2010/03/qnb-qatar-national-bank-sucks/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>When your ISP blocks incoming SMTP Connections</title>
		<link>http://ams1.x31.com/~andy/2010/01/when-your-isp-blocks-incoming-smtp-connections/</link>
		<comments>http://ams1.x31.com/~andy/2010/01/when-your-isp-blocks-incoming-smtp-connections/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 10:34:09 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[Qatar]]></category>

		<guid isPermaLink="false">http://ams1.x31.com/~andy/?p=2291</guid>
		<description><![CDATA[Things keep changing in Qatar. Just before Christmas the local ISP (QTEL) decided to start blocking inbound port 25 connections to the DSL line I use for work. This posed a problem for me as I run a mail server &#8230; <a href="http://ams1.x31.com/~andy/2010/01/when-your-isp-blocks-incoming-smtp-connections/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Things keep changing in Qatar. Just before Christmas the local ISP (QTEL) decided to start blocking inbound port 25 connections to the DSL line I use for work.  This posed a problem for me as I run a mail server on it using Dynamic DNS for about 80 users. What was particularly irksome was they blocked incoming connections only for locations outside Qatar, not other DSL connections in country.</p>
<p>I don&#8217;t have a problem with ISPs blocking outbound port 25 other than their own mail servers &#8211; that is a sensible anti-spam precaution. However blocking inbound connections can only be used to prevent the running of mail servers and the only reason I can think of for them preventing this is to force people to use their MPLS based Internet leased line which cost over USD 1500/month for 512K last time I looked at the price.</p>
<p>Using <a href="http://nmap.org/">nmap </a> on a server in Amsterdam I quickly discovered it was only port 25 which was blocked. Other ports remained unaffected.</p>
<p>So my problem was to find a way of getting mail into my server using a port other than 25 (SMTP).  Internet mail requires access to port 25 so I had to find another machine to forward mail into my ADSL line in Qatar. Fortunately I have access to such machines running <a href="http://www.debian.org/">Debian </a> and <a href="http://www.postfix.org/">postfix </a>in Amsterdam.</p>
<p>The solution turned out to be surprisingly easy:</p>
<p>1. Arrange for the ADSL link gateway to port forward traffic from a free port (I chose 200) to port 25 on the  internal mail server.  I used <a href="http://www.netfilter.org/">IPTABLES </a>to do this but the same can be done with almost any ADSL gateway &#8211; look for &#8220;Application Sharing&#8221;.   This can be tested by using <a href="http://netcat.sourceforge.net/">netcat </a>(nc) to the gateway from a machine in the outside world (some names obscured):</p>
<p><code> ams1:~# nc www.mydomain.com 200<br />
220 www.mydomain.com ESMTP Postfix (Debian/GNU)<br />
helo www.x31.com<br />
250 www.mydomain.com<br />
quit<br />
221 2.0.0 Bye</code></p>
<p>2. Configure the relay machine (mine is in Amsterdam) to accept mail for the ADSL connected system (my system in Qatar). To do this edit /etc/postfix/main.cf and add the domain to the end of the line (note the use of the comma &#8216;,&#8217;):</p>
<p><code>relay_domains = $mydestination, mydomain.com</code></p>
<p>3. Setup a special delivery transport for mydomain.com. To do this edit /etc/postfix/transport and add the following lines (myddnshost.dyndns.org is the dynamic dns hostname for my system in Qatar and the 200 is the port number I am using):</p>
<p><code>mydomain.com       smtp:[myddnshost.dyndns.org]:200<br />
.mydomain.com      smtp:[myddnshost.dyndns.org]:200<br />
</code></p>
<p>Now rebuild the map file:<br />
<code>$ postmap /etc/postfix/transport<br />
</code></p>
<p>and edit /etc/postfix/main.cf again. Ensure the following line is present:<br />
<code>transport_maps = hash:/etc/postfix/transport</code></p>
<p>Finally restart postfix:<br />
<code>$ /etc/init.d/postfix restart</code></p>
<p>4. Now update your DNS and point the MX record at the relay machine. Wait for things to settle down (can take a few hours) and your mail will start to be delivered into your ADSL connected server.</p>
<p>I run Debian Etch and Lenny systems with a mostly standard postfix configuration which uses hash tables. If your system is different then you may need to specify a different format. The /etc/postfix/transport file is extremely powerful and I recommend you look at &#8220;man transport&#8221; before making changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://ams1.x31.com/~andy/2010/01/when-your-isp-blocks-incoming-smtp-connections/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

