<?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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"><channel><title>Disruptive Library Technology Jester &#187; networking</title> <atom:link href="http://dltj.org/tag/networking/feed/" rel="self" type="application/rss+xml" /><link>http://dltj.org</link> <description>We&#039;re Disrupted, We&#039;re Librarians, and We&#039;re Not Going to Take It Anymore</description> <lastBuildDate>Mon, 06 Feb 2012 20:04:22 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <cloud domain='dltj.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' /> <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/us/</creativeCommons:license> <item><title>Thursday Threads: Publisher/Librarian Rights, Cultural Commons, HTML5 Web Apps, Wifi Management</title><link>http://dltj.org/article/thursday-threads-2011w25/</link> <comments>http://dltj.org/article/thursday-threads-2011w25/#comments</comments> <pubDate>Thu, 23 Jun 2011 21:36:52 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Thursday Threads]]></category> <category><![CDATA[Digital Public Library of America]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[International Coalition of Library Consortia]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[publishing]]></category> <category><![CDATA[wifi]]></category><guid isPermaLink="false">http://dltj.org/?p=3035</guid> <description><![CDATA[Receive DLTJ Thursday Threads:by&#160;E-mailby&#160;RSSDelivered by FeedBurnerThis week&#8217;s list of threads starts with a pointer a statement by the International Coalition of Library Consortia on the growing pressure between publishers and libraries over the appropriate rights and permissions for scholarly material. &#8230; <a href="http://dltj.org/article/thursday-threads-2011w25/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=3035"></abbr><div id="feedburner-thursday-threads-email-2011w25" class="wp-caption alignright noprint noFrontPage" style="width: 230px;;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><form style="border: 1px solid rgb(204, 204, 204); padding: 3px; margin: 0pt; text-align: center;" action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=thursday-threads', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true"><p>Receive <i><acronym title="Disruptive Library Technology Jester">DLTJ</acronym></i> Thursday Threads:</p><p>by&nbsp;<a href="http://feedburner.google.com/fb/a/mailverify?uri=thursday-threads&amp;loc=en_US" title="D.L.T.J. Thursday Threads Email Subscription">E-mail</a><br /><input style="width: 140px;" name="email" value="Your e-mail address" onfocus="if (this.defaultValue==this.value) this.value = ''" type="text"/><input value="thursday-threads" name="uri" type="hidden"/><input name="loc" value="en_US" type="hidden"/><input value="Subscribe" type="submit"/></p><p>by&nbsp;<a href="http://feeds.dltj.org/thursday-threads/" title="D.L.T.J. Thursday Threads RSS Feed">RSS</a></p><p style="font-size: 80%;">Delivered by <a href="http://feedburner.google.com" target="_blank" title="Google Feedburner Service">FeedBurner</a></p></form></div><p>This week&#8217;s list of threads starts with a pointer a <a href="#p3035-icolc">statement</a> by the International Coalition of Library Consortia on the growing pressure between publishers and libraries over the appropriate rights and permissions for scholarly material.  In that same vein, Joe Lucia writes about his <a href="#p3035-dpla">vision for libraries and the cultural commons</a> to the Digital Public Library of America mailing list.  On the more geeker side is a third link to an article with the <a href="#p3035-html5">experience of content producers creating HTML5-enabled web apps</a>.  And finally, on the far geeky side, is a view of what happens when a whole lot of new wireless devices &#8212; smartphones, tablets, and the like &#8212; <a href="#p3035-wifi">show up on a wifi network</a>.</p><p>Feel free to send this to others you think might be interested in the topics.  If you find these threads interesting and useful, you might want to add the <a href="http://feeds.dltj.org/thursday-threads/" title="RSS Feed for DLTJ Thursday Threads">Thursday Threads RSS Feed</a> to your feed reader or subscribe to e-mail delivery using the form to the right.  If you would like a more raw and immediate version of these types of stories, watch <a href="http://friendfeed.com/dltj" title="Peter Murray - FriendFeed">my FriendFeed stream</a> (or subscribe to <a href="http://friendfeed.com/dltj?format=atom" title="Atom feed for Peter Murray's FriendFeed account">its feed</a> in your feed reader).  Comments and tips, as always, are <a href="http://dltj.org/contact">welcome</a>.</p><p><h2 id="p3035-icolc">ICOLC Response to the International Association of Scientific Technical and Medical (STM) Statement</h2></p><blockquote><p>A recent statement by the International Association of Scientific Technical and Medical Publishers (STM) advocates a set of new guidelines for document delivery (<a href="http://www.stm-assoc.org/industry-news/stm-statement-on-document-delivery/" title="STM Statement on Document Delivery | STM">http://www.stm-assoc.org/industry-news/stm-statement-on-document-delivery/)</a>. While intellectual property laws vary from country to country, STM&#8217;s approach would radically alter well-established library practices that advance knowledge, support scholarship, and are compliant with current copyright laws.  The STM recommendations are in conflict with widely held principles that provide a copyright exception for interlibrary loan (ILL) activities. The regime anticipated by the STM statement would place unfair restrictions on researchers&#8217; access to information. In particular, ICOLC contends that:</p><ol type="1" start="1"><li>interlibrary loan, under existing principles and laws, is consistent with the three-step test of Berne;</li><li>cross-border deliveries are adequately and appropriately governed by current copyright law;</li><li>digital document delivery directly to an end-user is best coordinated through the end-user&#8217;s library or community of learners;</li><li>libraries are able to deliver on-site articles to library walk-up patrons in any format, including both digital and print;</li><li>current copyright law appropriately places the burden on the library user to affirm that the documents they receive are for private, non-commercial use.</li></ol><p>The ICOLC strongly supports IFLA&#8217;s Draft Library Treaty, Article 7, which states &#8220;It shall be permissible for a library or archive to supply a copy of any work. . . lawfully acquired or accessed by the library or archive, to another library or archive for subsequent supply to any of its users, by any means . . . provided that such use is compatible with fair practice as determined in national law&#8221; (<a href="http://www.ifla.org/files/clm/publications/tlib.pdf" title="http://www.ifla.org/files/clm/publications/tlib.pdf">http://www.ifla.org/files/clm/publications/tlib.pdf</a>). See also ARL&#8217;s statement clarifying legal protections afforded to libraries for national and international ILL use (<a href="http://publications.arl.org/rli275/18" title="Research Library Issues, no. 275 (June 2011)<br /> page 18">http://publications.arl.org/rli275/18</a>), and related documents (<a href="http://publications.arl.org/rli275/4" title="Research Library Issues, no. 275 (June 2011)<br /> page 4">http://publications.arl.org/rli275/4</a> and <a href="http://publications.arl.org/rli275" title="Research Library Issues, no. 275 (June 2011)">http://publications.arl.org/rli275</a>).</p><div style="text-align: right; width: 100%;"><cite>- <a href="http://www.library.yale.edu/consortia/2011-stm-ill.htm" title="http://www.library.yale.edu/consortia/2011-stm-ill.htm">ICOLC Response to the International Association of Scientific Technical and Medical (STM) Statement</a>, International Coalition of Library Consortia, issued June 22, 2011</cite></div></blockquote><p>On the heels of <a href="http://dltj.org/article/thursday-threads-2011w24/#p3020-copyright">last week&#8217;s frightening copyright scenario</a> comes this statement from the International Coalition of Library Consortia.  It was short, so the main content of the statement is posted above.  Follow the link in the citation to find contact information for the ICOLC statement. <a href="http://www.libraryjournal.com/lj/home/891083-264/coalition_of_library_consortia_joins.html.csp" title="Coalition of Library Consortia Joins ARL in Opposing Publishers' Position on International ILL | Library Journal"><i>Library Journal</i> also has an article on the statement</a> with quotes from Tracy Thompson-Przylucki and Ann Okerson.</p><p><h2 id="p3035-dpla">Libraries &amp; the Cultural Commons</h2></p><blockquote><p>Reduced to its medium-independent core, the mission of libraries is to subsidize and sustain barrier-free access to intellectual and cultural resources for our constituents and communities. In that sense, libraries establish a bridge between the proprietary realm of commercially supplied intellectual property and the gift economies of intellectual and cultural expression. From my perspective, everything we do flows from that core function. The DPLA will be, in effect, a new global networked digital face of the library as cultural and intellectual commons.<div style="text-align: right; width: 100%;"><cite>- <a href="https://cyber.law.harvard.edu/lists/arc/dpla-discussion/2011-06/msg00109.html">Libraries &amp; the Cultural Commons</a>, by Joe Lucia, DPLA mailing list, 22-Jun-2011</cite></div></blockquote><p>Joe Lucia, University Librarian at Villanova University, posted this broad and, frankly, <em>energizing</em> view of the role for libraries to the Digital Public Library of America mailing list.  If you want a concise view of how libraries are about content and services and not the historical carrier and delivery mechanisms, then take a look at this message.</p><p><h2 id="p3035-html5">The FT and NPR: HTML5 as part of a multi-platform strategy</h2></p><blockquote><p>I had heard that the FT and Apple were struggling to come to an agreement on digital subscriptions, so it came as no surprise to me that the FT has launched an HTML5 web app. Some folks have added sneer quotes around app, but I’m not going to. The HTML5 version of the FT’s app looks, behaves and has even more functionality than their native iPad app.<div style="text-align: right; width: 100%;"><cite>- <a href="http://charman-anderson.com/2011/06/07/the-ft-and-npr-html5-as-part-of-a-multi-platform-strategy/" title="The FT and NPR: HTML5 as part of a multi-platform strategy | Strange Attractor blog">The FT and NPR: HTML5 as part of a multi-platform strategy</a>, Strange Attractor blog, 7-Jun-2011</cite></div></blockquote><p>I think there is a strong future in common agreement of web markup standards over proprietary app development.  I&#8217;ve made that point serveral times on <i><acronym title="Disruptive Library Technology Jester">DLTJ</acronym></i>, so I remain attuned to stories that point in that direction.  This article points to how the U.K.&#8217;s <i>Financial Times</i> built an iPad app using the built-in Safari browser and the HTML5 tools like advanced cascading stylesheets and offline storage for reading when you are off the net (just like the old Financial Times native app).  And, of course, the techniques work on other tablet platforms with minimal modification.  NPR is experimenting with the same technique using Google&#8217;s Chrome web browser.</p><p><h2 id="p3035-wifi">Wi-Fi client surge forcing fresh wireless LAN thinking</h2></p><blockquote><p>IDC reports that twice as many smartphones and tablets, nearly all with Wi-Fi, will ship compared to laptops this year. The number of Wi-Fi certified handsets in 2010 was almost 10 times the number certified in 2007, according to the Wi-Fi Alliance. Tablets, e-readers and portable audio devices are helping to drive this growth.</p><p>The result is a very different wireless environment in terms of radio behaviors, Wi-Fi implementations, applications, usage and traffic compared to just a year or two ago. This raises a different set of issues from simply managing these mobile devices with tools from vendors&#8230;</p><div style="text-align: right; width: 100%;"><cite>- <a href="http://www.networkworld.com/news/2011/062011-wifi-explosion.html" title="Wi-Fi client surge forcing fresh wireless LAN thinking | Network World">Wi-Fi client surge forcing fresh wireless LAN thinking</a>, by John Cox, Network World</cite></div></blockquote><p>Long ago I used to have to manage network infrastructure.  That was back in the days when, for a small organization, one person could be the unix system administrator, the network administrator, and help with desktop support.  With the complexity and pervasiveness of devices, though, I don&#8217;t think one person can do all of that any more.  It is articles like this one that talk about the difficulties managing wireless networks that are bursting at the seams with new devices that make me realize how far networking has come in the past two decades.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/thursday-threads-2011w25/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>PPTP VPN for iOS with AT&amp;T Uverse and DD-WRT</title><link>http://dltj.org/article/pptp-uverse-ddwrt/</link> <comments>http://dltj.org/article/pptp-uverse-ddwrt/#comments</comments> <pubDate>Fri, 17 Jun 2011 16:41:33 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[pptp]]></category> <category><![CDATA[security]]></category> <category><![CDATA[vpn]]></category><guid isPermaLink="false">http://dltj.org/?p=3025</guid> <description><![CDATA[Wandering into public or semi-public wireless networks makes me nervous because I know how my network traffic can be easily watched, and because I&#8217;m a geek with control issues I&#8217;m even more nervous when using devices that I can&#8217;t get &#8230; <a href="http://dltj.org/article/pptp-uverse-ddwrt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=3025"></abbr><p>Wandering into public or semi-public wireless networks makes me nervous because I know how my network traffic can be easily watched, and because I&#8217;m a geek with control issues I&#8217;m even more nervous when using devices that I can&#8217;t get to the insides of (like phones and tablets).  One way to tamp down my concerns is to use a Virtual Private Network (VPN) to tunnel the device&#8217;s network connection through the public wireless network to a trusted end-point, but most of those options require a subscription to a VPN service or a VPN installed in a corporate network.  I thought about using one of the open source VPN implementations with an Amazon EC2 instance, but it isn&#8217;t possible with the EC2 network configuration judging from the comments on the Amazon Web Services support forums.  (Besides, installing one of the open source VPN software implementations looks far from turnkey.)  Just before I lost hope, though, I saw a reference to using the open source DD-WRT consumer router firmware to do this.  After plugging away at it for an hour or so, I made it work with my home router, a AT&#038;T U-verse internet connection, and iOS devices.  It wasn&#8217;t easy, so I&#8217;m documenting the steps here in case I need to set this up again.</p><p><h2>Prerequisites</h2><br />To make this happen, I&#8217;m using a <a href="http://www.dlink.com/DIR-825" title="D-Link Xtreme N Dual Band Gigabit Router">D-Link DIR-825</a> that has been flashed with &#8220;v24-sp2 (04/23/10) std&#8221; of the <a href="http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F" title="What is DD-WRT? - DD-WRT Wiki">DD-WRT firmware</a>.  For my internet connection I have a <a href="http://www.att.com/u-verse/explore/residential-gateway.jsp" title="AT&amp;T Residential Gateway">AT&#038;T U-verse residential gateway</a> and a &#8220;Max Turbo&#8221; plan (I work from home so I need the 3 Mbps uplink speed that is only available with &#8220;Max Turbo&#8221;, although that added uplink capacity is certainly helpful for this road-warrior VPN use).  I also have a pair of iOS version 4.3.3 devices; this setup might work for other handheld operating systems (e.g. Android or Windows Mobile), but I don&#8217;t have any of those to test with.</p><p>DD-WRT comes with support for a point-to-point-tunneling-protocol (PPTP) server.  I know <a href="http://pptpclient.sourceforge.net/protocol-security.phtml" title="PPTP Protocol Security">PPTP has some inherent security risks</a>.  At this point I&#8217;m just aiming to be harder for someone passively listening on the public wireless network to eavesdrop on my connections.  I&#8217;m not doing anything ultra-sensitive that I need advanced encryption; I just don&#8217;t want to make it easy to watch what my devices are doing.</p><p><h2>Setting up the AT&#038;T U-verse Residential Gateway</h2><br />Since the D-Link router is behind the U-verse residential gateway, we need to punch a couple holes through its firewall to allow downstream connections from the iOS devices to reach the D-Link router.  Specifically, one needs to forward ports 1723/TCP and 1723/UDP through the residential gateway firewall to the internal D-Link router.  To do this:</p><ol type="1" start="1"><li>Connect to the web interface of the residential gateway, select the <em>Settings</em> tab followed by the <em>Firewall</em> tab then the <em>Applications, Pinholes and DMZ</em> tab.</li><li>This screen has two steps:  1) Select a computer; then 2) Edit firewall settings for this computer.  Click on the link to &#8220;Choose&#8221; the DIR-825 router (by name).</li><li>In the second step choose the &#8220;Add a new user-defined application&#8221; link.  Use &#8220;PPTP&#8221; for the <em>Application Profile Name</em>.</li><li>Select &#8220;TCP&#8221; and put &#8220;1723&#8243; in the <em>From</em> text box, under <em>Application Type</em> select <em>PPTP virtual private network server</em> and leave the rest of the boxes blank for the defaults; click on <em>Add to List</em>.</li><li>Repeat everything in the last step except choose <em>UDP</em> in place of <em>TCP</em>.</li><li>Click on the <em>Back</em> button to return to the <em>Allow device application traffic to pass through firewall</em> screen.</li><li>Select the <em>Allow individual application(s)</em> radio button, click on the <em>User-defined</em> applications list, pick &#8220;PPTP&#8221; from the Application List, and click on <em>Add</em>.</li><li>Click <em>Save</em>.</li></ol><p>The U-verse residential gateway will now pass everything inbound on ports 1723/TCP and 1723/UDP to the D-Link router.  You&#8217;re done with the residential gateway setup now.</p><p><h2>Setting up the PPTP Service on DD-WRT</h2><br />Now we need to set up the DD-WRT PPTP service.  This is harder than it probably should be, but given the geeky focus of the DD-WRT effort (in my humble opinion), features seem to come before user interface and documentation niceties.  This works for me, but it isn&#8217;t entirely clear or easy, and I can&#8217;t offer troubleshooting insights if it doesn&#8217;t work for you.  It has two main steps &#8212; first, turn on and configure the PPTP server; and second, patch the PPTP server configuration with a start-up script so that it actually works.  First, the PPTP server configuration:</p><ol type="1" start="1"><li>Log onto the DD-WRT web interface, select the <em>Services</em> tab then the <em>VPN</em> tab.</li><li>Enable <em>PPTP Server</em>, <em>Broadcast support</em>, and <em>Force MPPE Encryption</em>.</li><li>Put in the WAN IP (listed in the upper right corner of the web page) in the <em>Server IP</em> box.  (Some instructions I have seen said that this can be left blank and the firmware will automatically pick it up.  That didn&#8217;t work for me.)</li><li>For Client IPs, put in a range of LAN-side IPs that aren&#8217;t being used by the DHCP server.  In my case I&#8217;m using &#8220;192.168.68.200-210&#8243;.</li><li>Put in one or more <em>CHAP-Secrets</em>.  These are the username and passwords used on the PPTP client to connect to this server, and they follow a weird form:  username-space-asterisk-space-password-space-asterisk.  For example:<pre>username * password *</pre></li><li>Leave <em>Radius</em> disabled.</li><li>At the bottom of the screen, pick <em>Apply Settings</em>.</li></ol><p>The second step is the startup script:</p><ol type="1" start="1"><li>Select the <em>Administration</em> tab then the <em>Commands</em> tab.</li><li>Put this in the <em>Commands</em> text box, then select <em>Save Startup</em>:<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/mppe .*/mppe required,stateless/'</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pptpd<span style="color: #000000; font-weight: bold;">/</span>options.pptpd
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;nopcomp&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pptpd<span style="color: #000000; font-weight: bold;">/</span>options.pptpd
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;noaccomp&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pptpd<span style="color: #000000; font-weight: bold;">/</span>options.pptpd
<span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ps</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> pptp <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">' '</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
pptpd <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pptpd<span style="color: #000000; font-weight: bold;">/</span>pptpd.conf <span style="color: #660033;">-o</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pptpd<span style="color: #000000; font-weight: bold;">/</span>options.pptpd</pre></div></div></li><li>Go to the <em>Management</em> subtab of <em>Administration</em> and at the bottom select <em>Reboot Router</em>.</li></ol><p>This script comes from the <a href="http://www.dd-wrt.com/wiki/index.php/PPTP_Server_Configuration" title="PPTP Server Configuration | DD-WRT Wiki">PPTP Server Configuration</a> page.  The bulk of it is from the <a href="http://www.dd-wrt.com/wiki/index.php/PPTP_Server_Configuration#iOS_4.3" title="PPTP Server Configuration | DD-WRT Wiki">iOS 4.3</a> heading with the addition of the <code>sed</code> line to <a href="http://www.dd-wrt.com/wiki/index.php/PPTP_Server_Configuration#Force_Encryption" title="PPTP Server Configuration | DD-WRT Wiki">force encryption</a>.</p><p><h2>Configuring the iOS Device</h2><br /><div id="attachment_3029" class="wp-caption alignright" style="width: 330px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><img src="http://cdn.dltj.org/wp-content/uploads/2011/06/IMG_0267.png" alt="iOS PPTP VPN Configuration" title="IMG_0267" width="320" height="480" class="size-full wp-image-3029" /><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">iOS PPTP VPN Configuration</p></div>The iOS device was pretty straight forward (particularly compared to the previous steps):</p><ol type="1" start="1"><li>In the <em>Settings</em> app, choose <em>General</em> then <em>Network</em> then <em>VPN</em>.</li><li>Select <em>Add VPN Configuration&#8230;</em></li><li>At the top choose <em>PPTP</em> and give this configuration a descriptive label.</li><li>For <em>Server</em> put in the IP address of your U-verse residential gateway.  (Setting up something like Dynamic DNS with DD-WRT is left as an exercise to the reader.)</li><li>For <em>Account</em> put in the username field from the CHAP-Secrets text box above.</li><li>Leave <em>RSA SecurID</em> off and put in the password field from the CHAP-Secrets text box.</li><li>Under <em>Encryption Level</em> select <em>Maximum</em>.</li><li>Select <em>Save</em> in the upper right hand corner.</li></ol><p>Now when you connect to a public network, before starting any applications that will access the internet, go into the <em>Settings</em> app and near the top will be a choice to turn on the VPN.  Give it about five or six seconds to make the connection, and you&#8217;ll then see a blue VPN icon in the status bar at the top next to the WiFi icon.</p><p><h2>Acknowledgements</h2><br />The <a href="http://www.dd-wrt.com/wiki/index.php/PPTP_Server_Configuration" title="PPTP Server Configuration | DD-WRT Wiki">PPTP Server Configuration</a> was much more helpful than the built in documentation for figuring out what was needed to make this work.  A series of posts on the Whirlpool Forums starting with <a href="http://forums.whirlpool.net.au/forum-replies.cfm?t=1260916&amp;p=2&amp;#r28" title="DD-WRT VPN / PPTP Server - Networking - Whirlpool Forums" class="broken_link" rel="nofollow">this reply</a> and continuing through a half-dozen more had the final pieces.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/pptp-uverse-ddwrt/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>IPv4 Address Space Disappearing, Here Comes IPv6</title><link>http://dltj.org/article/ipv4-ipv6-transition/</link> <comments>http://dltj.org/article/ipv4-ipv6-transition/#comments</comments> <pubDate>Sun, 13 Feb 2011 02:13:11 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[internet]]></category> <category><![CDATA[ipv4]]></category> <category><![CDATA[ipv6]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[Vint Cerf]]></category><guid isPermaLink="false">http://dltj.org/?p=2546</guid> <description><![CDATA[Last week in DLTJ Thursday Threads I posted an entry about running out of IP addresses. Since I posted that, I&#8217;ve run across a couple of other stories and websites that bring a little more context to the consequences of &#8230; <a href="http://dltj.org/article/ipv4-ipv6-transition/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=2546"></abbr><p>Last week in <i><acronym title="Disruptive Library Technology Jester">DLTJ</acronym> Thursday Threads</i> I posted an entry about <a href="http://dltj.org/article/thursday-threads-2011w5/#p2525-ipv4-addresses">running out of IP addresses</a>.  Since I posted that, I&#8217;ve run across a couple of other stories and websites that bring a little more context to the consequences of last week&#8217;s distribution of the last blocks of IP addresses from the world-wide pool of available addresses.  The short version: channel any panic you might be feeling into making sure your systems are ready to communicate using both the existing network standard (IPv4) and the new network standard (IPv6).</p><p><h2 id="p2546-ifaq">The Imagined Frequently Asked Questions</h2><br />I haven&#8217;t actually been asked questions about this, so these are the Questions that I Imagine are Frequently Asked.<br /><div id="attachment_2546_video" class="wp-caption alignright" style="width: 310px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><iframe title="YouTube video player" width="300" height="199" src="http://www.youtube.com/embed/2wa7y3W2DI0" frameborder="0" allowfullscreen></iframe><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">What is IPv6? (6 minutes)</p></div></p><p><h3 id="p2546-stop-working">Will the internet stop working?</h3><br />It is highly unlikely that the internet will stop working.  There are various tricks that can be used to maximize the usage of the IPv4 addresses.  (Massive deployment of Network Address Translation, or NAT, for one.)  And the deployment of IPv6 is going to happen gradually over time and space. <sup><a href="http://dltj.org/article/ipv4-ipv6-transition/#footnote_0_2546" id="identifier_0_2546" class="footnote-link footnote-identifier-link" title="Adapted from the SANS Internet Storm Center entry The End Of IP As We Know It.  Check it out for more techie questions and answers.">1</a></sup></p><p>There will not be a so-called &#8220;flag day&#8221; when everyone&#8217;s computers switch from IPv4 to IPv6.  (There wasn&#8217;t the last time the internet went through a similar upheaval in the 1980s &#8212; see the &#8220;<a href="#p2546-history">History</a>&#8221; section below.)  IPv6 will coexist with IPv4 for probably most of this decade, based on what I&#8217;m reading, as computers at the edges will communicate over both IPv4 and IPv6.  Some <a href="http://www.tcpipguide.com/free/t_DNSChangesToSupportIPVersion6.htm" title="http://www.tcpipguide.com/free/t_DNSChangesToSupportIPVersion6.htm">magic in the Domain Name Service (DNS)</a> will enable this to happen.  There will come a day, though, when IPv4 addresses are truly exhausted and new services will only be reachable via IPv6.  Whether we get there before IPv6 is widely deployed is a topic of much debate.</p><p><h3 id="p2546-ready">Am I ready now?</h3><br />Maybe, but probably not.  There is a website that tests <a href="http://test-ipv6.com/" title="Test your IPv6">IPv6 connectivity</a>.  This website gives to general responses &#8212; can your computer access resources that are offered on both IPv4 and IPv6, and can your computer access resources that are only offered on IPv6.</p><p>The Internet Society is calling for a <a href="http://isoc.org/wp/worldipv6day/" title="World IPv6 Day | Internet Society">World IPv6 Day</a> on June 8, 2011. &#8220;<a href="http://googleblog.blogspot.com/2011/01/world-ipv6-day-firing-up-engines-on-new.html" title="World IPv6 Day: firing up the engines on the new Internet protocol | Official Google Blog">Google</a>, <a href="http://www.facebook.com/notes/facebook-engineering/world-ipv6-day-solving-the-ip-address-chicken-and-egg-challenge/484445583919" title="World IPv6 Day: Solving the IP Address Chicken-and-Egg Challenge | Facebook">Facebook</a>, <a href="http://www.yahoo.com" title="Yahoo!">Yahoo!</a>, <a href="http://www.akamai.com/ipv6" title="IPv6 | Akamai">Akamai</a> and <a href="http://blog.llnw.com/2011/01/ready-to-celebrate-world-ipv6-day-we-are/" title="Ready to Celebrate World IPv6 Day? We Are. | In the Limelight">Limelight Networks</a> will be amongst some of the <a href="http://isoc.org/wp/worldipv6day/participants/" title="World IPv6 Day participants | Internet Society">major organisations</a> that will offer their content over IPv6 for a 24-hour &#8216;test flight&#8217;. The goal of the Test Flight Day is to motivate organizations across the industry – Internet service providers, hardware makers, operating system vendors and web companies – to prepare their services for IPv6 to ensure a successful transition as IPv4 addresses run out.&#8221;</p><p><h3 id="p2546-networks">I manage networks.  Should I care?</h3><br />Dude!  This is all about you.  It is your chance to get new network gear that will support IPv6!</p><p>Okay, that probably won&#8217;t happen.  Your gear either supports IPv6 addressing and routing (perhaps with a software upgrade), or as you phase in new gear it will support IPv6.  You do have a lot of work ahead of you, though, to get your network ready.  The <a href="http://www.ipv6actnow.org/info/how-to/" title="How To Act Now | IPv6 Act Now">IPv6 Act Now</a> has suggestions and links.</p><p><h3 id="p2546-hardware">I manage hardware.  Should I care?</h3><br />Modern operating systems have support for IPv6 as part of the operating system, and you won&#8217;t need new hardware (unless you also manage the network, see above).  You&#8217;ll also need to work with the folks that make you software (see below) to coordinate the transition.  DSLreports.com has <a href="http://www.dslreports.com/faq/ipvsix" title="IPv6 FAQ | DSLReports.com, ISP Information">information about enabling IPv6 for various operating systems</a>.</p><p><h3 id="p2546-software">I write software.  Should I care?</h3><br />Remember the year-2000 problem?  Did you scoff at the short-sightedness of those older developers for only using two digits to represent the year?  You are about to get your due.  The move to IPv6 means a change to the size of IP addresses from 48-bits to 128-bits.  Code that is storing, comparing, or outputting addresses is going to have to be reviewed and probably changed to handle <em>both</em> IPv4 and IPv6 addresses.  Hurricane Electric has some <a href="http://owend.corp.he.net/ipv6/" title="IPv6 Porting Information">information on porting code to IPv6</a>.</p><p><h3 id="p2546-help">How can I help?</h3><br />Reddit notes that &#8220;There has been no strong business case for the cost of moving to IPv6, as up until now there have been enough IP addresses available&#8221;, and it also answers the question <a href="http://code.reddit.com/wiki/help/faqs/ipv6#HowcanIhelptheadoptionofIPv6" title="Reddit IPv6 FAQ">How can I help the adoption of IPv6?</a>.</p><p><h2 id="p2546-history">Bits of History</h2><br />The last time the internet faced a major restructuring like this was when IPv4 replace the ARPANET Network Control Protocol (NCP).  In November 1981, Jon Postel published <a href="http://tools.ietf.org/html/rfc801" title="RFC 801 - NCP/TCP transition plan">RFC 801 on the transition plan from NCP to TCP</a>.  In the introduction to that document, Dr. Postel wrote:<br /><blockquote>ARPA sponsored research on computer networks led to the development of the ARPANET.  The installation of the ARPANET began in September 1969, and regular operational use was underway by 1971.  The ARPANET has been an operational service for at least 10 years.  Even while it has provided a reliable service in support of a variety of computer research activities, it has itself been a subject of continuing research, and has evolved significantly during that time.</p><p>In the past several years ARPA has sponsored additional research on computer networks, principally networks based on different underlying communication techniques, in particular, digital packet broadcast radio and satellite networks.  Also, in the ARPA community there has been significant work on local networks.</p><p>It was clear from the start of this research on other networks that the base host-to-host protocol used in the ARPANET was inadequate for use in these networks.  In 1973 work was initiated on a host-to-host protocol for use across all these networks.  The result of this long effort is the Internet Protocol (IP) and the Transmission Control Protocol (TCP).</p><p>These protocols allow all hosts in the interconnected set of these networks to share a common interprocess communication environment. The collection of interconnected networks is called the ARPA Internet (sometimes called the &#8220;Catenet&#8221;).</p><p>The Department of Defense has recently adopted the internet concept and the IP and TCP protocols in particular as DoD wide standards for all DoD packet networks, and will be transitioning to this architecture over the next several years.  All new DoD packet networks will be using these protocols exclusively.</p><p>The time has come to put these protocols into use in the operational ARPANET, and extend the logical connectivity of the ARPANET hosts to include hosts in other networks participating in the ARPA Internet.</p><p>As with all new systems, there will be some aspects which are not as robust and efficient as we would like (just as with the initial ARPANET).  But with your help, these problems can be solved and we can move into an environment with significantly broader communication services.</p></blockquote><p>The transition plan for NCP to TCP called for roughly a year-long process in 1982 to transition hosts from one network stack to the other.  There were gateways between the two networks during that time.  In January 1983 all the gateways between the NCP-based hosts and the IP-based hosts were turned off.</p><p>Vint Cerf, one of the parents of what we call the &#8220;Internet&#8221;, reflected on IPv4 addressing at the <a href="http://www.youtube.com/watch?v=mZo69JQoLb8" title="YouTube - Google IPv6 Conference 2008:  What will the IPv6 Internet look like?">2008 IPv6 conference</a>.  A <a href="http://dltj.org/article/vint-cerf-ip-addressing/"><i><acronym title="Vint Cerf on the Origins of 32-bit IP Addressing | Disruptive Library Technology Jester">DLTJ</acronym></i> post from 2008 has a transcript</a> of Dr. Cerf&#8217;s comments.</p><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_2546" class="footnote">Adapted from the SANS Internet Storm Center entry <a href="http://isc.sans.edu/diary.html?storyid=10342" title="The End Of IP As We Know It | SANS Internet Storm Center">The End Of IP As We Know It</a>.  Check it out for more techie questions and answers.</li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/ipv4-ipv6-transition/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Thursday Threads: So-called &#8220;Internet Kill-switch&#8221;, IP address exhaustion, demographics of P2P piracy</title><link>http://dltj.org/article/thursday-threads-2011w5/</link> <comments>http://dltj.org/article/thursday-threads-2011w5/#comments</comments> <pubDate>Thu, 03 Feb 2011 11:53:01 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Thursday Threads]]></category> <category><![CDATA[BitTorrent]]></category> <category><![CDATA[ipv4]]></category> <category><![CDATA[ipv6]]></category> <category><![CDATA[kill switch]]></category> <category><![CDATA[legislation]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[Peer-to-Peer Networks]]></category> <category><![CDATA[piracy]]></category> <category><![CDATA[Senate Bill 191 (112th Congress)]]></category><guid isPermaLink="false">http://dltj.org/?p=2525</guid> <description><![CDATA[Receive DLTJ Thursday Threads:by&#160;E-mailby&#160;RSSDelivered by FeedBurnerThis week of DLTJ Thursday Threads covers a wide range of topics. First, from a public policy perspective, is news that the U.S. Senate has a bill proposing the study of an internet &#8220;kill-switch&#8221; that &#8230; <a href="http://dltj.org/article/thursday-threads-2011w5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=2525"></abbr><div id="feedburner-thursday-threads-email-2011w05" class="wp-caption alignright noprint noFrontPage" style="width: 230px;;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><form style="border: 1px solid rgb(204, 204, 204); padding: 3px; margin: 0pt; text-align: center;" action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=thursday-threads', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true"><p>Receive <i><acronym title="Disruptive Library Technology Jester">DLTJ</acronym></i> Thursday Threads:</p><p>by&nbsp;<a href="http://feedburner.google.com/fb/a/mailverify?uri=thursday-threads&amp;loc=en_US" title="D.L.T.J. Thursday Threads Email Subscription">E-mail</a><br /><input style="width: 140px;" name="email" value="Your e-mail address" onfocus="if (this.defaultValue==this.value) this.value = ''" type="text"/><input value="thursday-threads" name="uri" type="hidden"/><input name="loc" value="en_US" type="hidden"/><input value="Subscribe" type="submit"/></p><p>by&nbsp;<a href="http://feeds.dltj.org/thursday-threads/" title="D.L.T.J. Thursday Threads RSS Feed">RSS</a></p><p style="font-size: 80%;">Delivered by <a href="http://feedburner.google.com" target="_blank" title="Google Feedburner Service">FeedBurner</a></p></form></div><p>This week of <i><a href="http://dltj.org/category/thursday-threads/"><acronym title="Disruptive Library Technology Jester">DLTJ</acronym> Thursday Threads</a></i> covers a wide range of topics.  First, from a public policy perspective, is news that the U.S. Senate has a bill proposing the <a href="#p2525-inet-kill-switch">study of an internet &#8220;kill-switch&#8221;</a> that some are speculating could behave like what happened in Egypt last week.  Next, from a technical perspective, is the fact that we&#8217;re <a href="#p2525-ipv4-addresses">running out of IP addresses</a>, which is going to make some engineers&#8217; lives pretty messy before it is ultimately fixed.  Lastly, from a research perspective, is a paper that characterizes the <a href="#p2525-p2p-piracy">demographics of users using peer-to-peer for piracy</a>.</p><p>Continuing last week&#8217;s sidenote, I think I have found the fundamental problem of why Thursday Threads hasn&#8217;t been coming out via e-mail on, well, Thursday.  Although the <a href="http://wordpress.org/support/topic/w3-total-cache-prevents-rss-updating" title="WordPress &amp;#8250; Support &amp;raquo; W3 Total Cache Prevents RSS Updating">underlying issue</a> still remains, a workaround has been put in place that will hopefully eliminate the symptomps.</p><p><h2 id="p2525-inet-kill-switch">Internet ‘Kill Switch’ Legislation Back in Play</h2></p><div style=' float: right;'  class="alignright"><script type="text/javascript">oc_host_url="http://www.opencongress.org/";oc_bill_id="112-s191";oc_frame_height="231";oc_bgcolor="ffffff";oc_textcolor="333333";oc_bordercolor="999999";</script><br /><script type="text/javascript" src="http://www.opencongress.org/javascripts/widgets/bill_status.js"></script></div><blockquote><p>Legislation granting the president internet-killing powers is to be re-introduced soon to a Senate committee, the proposal’s chief sponsor told Wired.com on Friday.</p><p>The resurgence of the so-called “kill switch” legislation came the same day Egyptians <a href="http://www.wired.com/dangerroom/2011/01/egypts-internet-shutdown-cant-stop-mass-protests/" title="Egypt&#8217;s Internet Shutdown Can&#8217;t Stop Mass Protests | Danger Room | Wired.com">faced an internet blackout</a> designed to counter massive demonstrations in that country.</p><p>The bill, which has bipartisan support, is being floated by Sen. Susan Collins, the Republican ranking member on the Homeland Security and Governmental Affairs Committee. The proposed legislation, which Collins said would not give the president the same power <a href="http://www.wired.com/threatlevel/2011/01/egypt-isp-shutdown/" title="Egypt Shut Down Its Net With a Series of Phone Calls | Threat Level | Wired.com">Egypt’s Hosni Mubarak is exercising</a> to quell dissent, sailed through the Homeland Security Committee in December but expired with the new Congress weeks later.</p><p>The bill is designed to protect against “significant” cyber threats before they cause damage, Collins said.</p></blockquote><p>Wired.com has <a href="http://www.wired.com/threatlevel/2011/01/kill-switch-legislation" title="Internet ‘Kill Switch’ Legislation Back in Play | Threat Level | Wired.com">this article</a> about <a href="http://hdl.loc.gov/loc.uscongress/legislation.112s191" title="Bill Summary &amp; Status | 112th Congress (2011 - 2012) | S.191 | THOMAS (Library of Congress)">proposed legislation</a> to &#8220;direct the Department of Homeland Security to undertake a study on emergency communications&#8221; (the bill&#8217;s title).   The text of the legislation is not available at this time, but when a similar topic was debated in the <a href="http://hdl.loc.gov/loc.uscongress/legislation.111s3480" title="Bill Summary &amp; Status | 111th Congress (2009 - 2010) | S.3480 | THOMAS (Library of Congress"">last congressional session</a>, the United States Senate Committee on Homeland Security and Governmental Affairs &#8212; chaired by Senator Joseph I. Lieberman with Senator Susan M. Collins as ranking minority member &#8212; issued a four-page <a href="http://cdn.dltj.org/wp-content/uploads/2011/02/111-s3480-Myth-v-Reality.pdf" title="Myth vs. Reality, The Facts About S. 3480, &#039;Protecting Cyberspace as a National Asset Act of 2010&#039;">Myth-v-Reality document</a> [PDF].  That bill also seemed to do more than simply request a study &#8212; it actually established in the Executive Office of the President an Office of Cyberspace Policy.  The bill died before coming up for a vote in the final days of the session.  At the time, the American Library Association joined with dozens of other groups to <a href="http://www.cdt.org/files/pdfs/20100624_joint_cybersec_letter.pdf" title="Civil Liberties Issues in Cybersecurity Bill">send a letter</a> [PDF] to the committee expression concerns with that version.</p><p>There is some really wacky stuff going on here.  For instance, the Wired.com article reports on an aide to the Homeland Security committee gave an example when the limited power given to the President would be used:  &#8220;An example, the aide said, would require infrastructure connected to &#8216;the system that controls the floodgates to the Hoover dam&#8217; to cut its connection to the net if the government detected an imminent cyber attack.&#8221;  This, of course, begs the question of &#8220;Is the system that controls the floodgates of the Hoover Dam connected to the public internet?&#8221; followed closely by &#8220;If so, why?&#8221;  I think this one is going to be worth following to see what happens.</p><p><h2 id="p2525-ipv4-addresses">No more IPv4 addresses</h2></p><blockquote><p>The Internet has run out of IPv4 address space.</p><p>The Internet Assigned Numbers Authority (<a href="http://www.iana.org/" title="IANA &mdash; Internet Assigned Numbers Authority">IANA</a>) assigned two of the remaining blocks of IPv4 addresses &#8211; each containing 16.7 million addresses &#8211; to the Asia Pacific Network Information Centre (<a href="http://www.apnic.net/" title="APNIC - Home">APNIC</a>) on  Tuesday, as predicted.</p><p>This action sparks an immediate distribution of the remaining five blocks of IPv4 address space, with one block going to each of the five Regional Internet Registries (RIR).</p></blockquote><p>Internet Protocol (or &#8220;IP&#8221;) addresses are the unique identifiers that direct traffic from one computer on the network to another.  When the experiment that we now know as the Internet was created &#8212; known as IP version 4 or &#8220;IPv4&#8243; &#8212; the number of possible unique addresses was set as 4,294,967,296<sup><a href="http://dltj.org/article/thursday-threads-2011w5/#footnote_0_2525" id="identifier_0_2525" class="footnote-link footnote-identifier-link" title="Okay, when one takes out the reserved private addresses and the multicast addresses, the number is somewhere around 4,006,000,000, but who is counting?">1</a></sup>.  It was thought that such a number would be sufficient for experimental purposes.  The internet, of course, has taken on a life of its own, and with the assignment of unique addresses to home computers and cell phones, it was only a matter of time before we ran out.</p><p>Well, as stated in the <a href="http://www.networkworld.com/news/2011/020111-ipv4-apnic.html" title="No more IPv4 addresses | Network World">article from Network World</a> where the above quote came from, that time is quickly coming.  The very top layer of the IP address bureaucracy assigns addresses in blocks of about 16.8 million to five regional registries that correspond to roughly continental boundaries.  Those registries then assign smaller blocks to various internet services providers to use.  How long it takes for each regional registry to run out of addresses varies from months to years, but with the exhaustion of the top-level registry the internet engineers know that we have reached the first milestone on that path.</p><p>There are various techniques that can be used to stretch the number of addresses, but the end-game is going to be the adoption of IP version 6.  IPv6 will give us 340,282,366,920,938,463,463,374,607,431,768,211,456 unique addresses.  That&#8217;s 340 undecillion, 282 decillion, 366 nonillion, 920 octillion, 938 septillion, 463 sextillion, 463 quintillion, 374 quadrillion, 607 trillion, 431 billion, 768 million, 211 thousand and 456 addresses.  Think that will be enough?</p><p><h2 id="p2525-p2p-piracy">A research study identifies who uploads the majority of the content to the P2P piracy networks</h2></p><blockquote><p>Users who publish contents on BitTorrent dedicate a large part of their own resources (bandwidth, storage capacity) and assume the risks involved in publishing contents that are protected by copyright laws. So, is this altruistic behavior or is there some type of economic incentive at work? &#8220;The success of BitTorrent is due to the fact that a few users make a large number of contents available in exchange for receiving economic benefits”, explain the authors of a study carried out by the Telematic Engineering Department of the UC3M, Professors Rubén Cuevas, Carmen Guerrero and Ángel Cuevas. Their analysis demonstrates that a small group of users of these applications (around one hundred) is responsible for 66 percent of the content that is published and 75 percent of the downloads. In other words: the great success of a massively used application like BitTorrent depends on a few users.</p></blockquote><p>This quote comes from a <a href="http://www.uc3m.es/portal/page/portal/actualidad_cientifica/noticias/P2P_network" title="A research study identifies who uploads the majority of the content to the P2P piracy networks">summary</a> of a <a href="http://arxiv.org/abs/1007.2327" title="Is Content Publishing in BitTorrent Altruistic or Profit-Driven | arXiv">research study</a> presented at <a href="http://conferences.sigcomm.org/co-next/2010/" title="CoNext 2010 - Welcome - ACM SIGCOMM">6th International Conference on emerging Networking EXperiments and Technologies (CoNEXT)</a> late last year.  It would seem to suggest that if one wanted to shut down piracy on peer-to-peer (P2P) file sharing networks such as BitTorrent that it would only take convincing or eliminating &#8220;a few users&#8221; to make it happen.  That this hasn&#8217;t happened perhaps points to the difficulty in locating and stopping those users, but still I thought this made for an interesting read none the less.  [Via <a href="http://technews.acm.org/" title="ACM TechNews">ACM TechNews</a> from <a href="http://technews.acm.org/archives.cfm?fo=2011-01-jan/jan-26-2011.html#503594" title="ACM TechNews for January 26, 2011">January 26, 2011</a>]</p><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_2525" class="footnote">Okay, when one takes out the reserved private addresses and the multicast addresses, the number is somewhere around 4,006,000,000, but who is counting?</li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/thursday-threads-2011w5/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Bandwidth of Large Airplanes</title><link>http://dltj.org/article/bandwidth-of-large-airplanes/</link> <comments>http://dltj.org/article/bandwidth-of-large-airplanes/#comments</comments> <pubDate>Wed, 09 Jun 2010 01:40:55 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[internet2]]></category> <category><![CDATA[networking]]></category><guid isPermaLink="false">http://dltj.org/?p=1600</guid> <description><![CDATA[Back in the early days of this blog, I had a post on Buzzwords Galore and Bandwidth that May Rival Your Station Wagon. The topic was a &#8220;hybrid optical and packet network&#8221; being deployed by Internet2 in 2006, and in &#8230; <a href="http://dltj.org/article/bandwidth-of-large-airplanes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=1600"></abbr><p>Back in the early days of this blog, I had a post on <a href="http://dltj.org/article/internet2-hopi-network/" title="DLTJ Blog Post: Buzzwords Galore and Bandwidth that May Rival Your Station Wagon">Buzzwords Galore and Bandwidth that May Rival Your Station Wagon</a>.  The topic was a &#8220;hybrid optical and packet network&#8221; being deployed by Internet2 in 2006, and in the tail end of the post text I explained the reference to the station wagon part of the post title:<br /><blockquote> When you think you have a really zippy network connection, someone will (should?) bring up an <a href="http://www.bpfh.net/sysadmin/never-underestimate-bandwidth.html" title="Never underestimate the bandwidth....">old internet adage</a> which says “Never underestimate the bandwidth of a station wagon full of tapes.”</p></blockquote><p> In the post comments, Walt Crawford asked &#8220;How about a 747 full of BluRay discs?&#8221;  I must have been bored, because <a href="http://dltj.org/article/internet2-hopi-network/#comment-2142">I calculated that bandwidth as 37Tb/s</a>, and I even showed my work.  Last week an internet citizen going by the name &#8220;Steveo&#8221; <a href="http://dltj.org/article/internet2-hopi-network/#comment-72083">updated the table</a> for an <a href="http://www.aerospace-technology.com/projects/airbus_a380/" title="Airbus A380-800F Wide-Bodied Freighter">Airbus A38-800F</a>.  He (or she) and I arrived at different numbers (Steveo seems to have mistaken cubic feet for cubic meters in the calculation and didn&#8217;t update the maximum airspeed figure), so perhaps it is time to revisit this topic.  (And while we&#8217;re at it, we&#8217;ll throw in numbers for Boeing&#8217;s latest freighter aircraft: the 747-8F.)</p><table><thead><tr><th></th><th valign="bottom"><a href="http://www.boeing.com/commercial/747family/freighter/index.html" title="Boeing 747-400 Freighter Family">Boeing 747-400F</a></th><th valign="bottom"><a href="http://www.boeing.com/commercial/747family/747-8_facts.html" title="Boeing 747-8 Intercontinental and 747-8 Freighter">Boeing 747-8, Freighter</a></th><th valign="bottom"><a href="http://www.airbus.com/en/aircraftfamilies/a380/a380f/home/" title="Airbus A380F">Airbus A380-800F</a> (proposed)</th></tr></thead><tbody><tr class="odd"><td>Cargo capacity of aircraft, in cargo configuration, in cubic meters</td><td align="right"><a href="http://www.boeing.com/commercial/747family/pf/pf_400f_prod.html" title="Boeing Commercial Airplanes -- 747 Freighter Technical Characteristics"><span class="sourceLink">Source</span></a><sup><a href="http://dltj.org/article/bandwidth-of-large-airplanes/#footnote_0_1600" id="identifier_0_1600" class="footnote-link footnote-identifier-link" title="The original posting listed 159 as the capacity using a source that is no longer on the web.  According to the Boeing site, 159 is the capacity of the lower deck, which doesn&amp;#8217;t include the 605 cubic meters of capacity on the main deck.  Go figure.">1</a></sup> &nbsp;&nbsp;764</td><td align="right"><a href="http://www.boeing.com/commercial/747family/747-8_fact_sheet.html" title="Boeing 747-8 Fact Sheet"><span class="sourceLink">Source</span></a>&nbsp;&nbsp;857.7</td><td align="right"><a href="http://www.aerospace-technology.com/projects/airbus_a380/" title="Airbus A380-800F Wide-Bodied Freighter"><span class="sourceLink">Source</span></a>&nbsp;&nbsp;1,134</td></tr><tr><td>Volume of a carton of 200 slim jewel cases (53cm by 26cm by 15.5cm), <a href="http://www.wolframalpha.com/input/?i=cubic+meter+volume+of+a+cube+53+cm+by+26+cm+by+15.5+cm" title="cubic meter volume of a cube 53 cm by 26 cm by 15.5 cm - Wolfram|Alpha">in cubic meters</a>&nbsp;&nbsp;<a href="http://yfdvd.en.alibaba.com/product/50050678/50231342/CD_Cases/5_2mm_Slim_CD_Case.html" title="Detailed info for 5.2mm Slim CD Jewel Case,CD holder,5.2mm Slim CD Jewel Case,YF-E24D on Alibaba.com"><span class="sourceLink">Source</span></a></td><td align="center" colspan="3">&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;0.021359&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;</td></tr><tr class="odd"><td>Number of cartons of slim jewel cases per aircraft</td><td align="right">35,769</td><td align="right">40,156</td><td align="right">53,092</td></tr><tr><td>Number of slim jewel cases, each with one Blu-ray DVD, per aircraft</td><td align="right">7,153,800</td><td align="right">8,031,200</td><td align="right">10,618,400</td></tr><tr class="odd"><td>Data capacity of one Blu-ray DVD, dual layer, in Gigabytes&nbsp;&nbsp;<a href="http://www.blu-ray.com/faq/#bluray_capacity_data" title="Blu-ray FAQ"><span class="sourceLink">Source</span></a></td><td align="center" colspan="3">&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;50&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;</td></tr><tr><td>Same, in Gigabits (8 bits per byte)</td><td align="center" colspan="3">&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;400&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;-&nbsp;</td></tr><tr class="odd"><td>Data capacity of one aircraft, in the cargo configuration, filled with dual-layer Blu-ray DVDs in slim jewel cases, in gigabits</td><td align="right">2,851,520,000</td><td align="right">3,212,480,000</td><td align="right">4,247,360,000</td></tr><tr><td>Maximum cruising speed of aircraft, in knots</td><td align="right"><a href="http://www.airliners.net/aircraft-data/stats.main?id=100" title="Boeing 747-400 | Airliners.net"><span class="sourceLink">Source</span></a>&nbsp;&nbsp;507</td><td align="right"><a href="http://www.boeing.com/commercial/747family/747-8_fact_sheet.html" rel="nofollow" title="Boeing 747-8 Fact Sheet"><span class="sourceLink">Source</span></a><sup><a href="http://dltj.org/article/bandwidth-of-large-airplanes/#footnote_1_1600" id="identifier_1_1600" class="footnote-link footnote-identifier-link" title="Converted from Mach to knots via Google.">2</a></sup>&nbsp;&nbsp;559</td><td align="right"><a href="http://www.aerospace-technology.com/projects/airbus_a380/specs.html" rel="nofollow" title="Specifications: Airbus A380-800F Wide-Bodied Freighter" class="broken_link"><span class="sourceLink">Source</span></a><sup><a href="http://dltj.org/article/bandwidth-of-large-airplanes/#footnote_2_1600" id="identifier_2_1600" class="footnote-link footnote-identifier-link" title="&amp;#8220;Maximum Level Speed&amp;#8221; from specs converted from mach to knots via Google.">3</a></sup>&nbsp;&nbsp;589</td></tr><tr class="odd"><td>Flight time between New York’s JFK airport and Los Angeles’ LAX airport at maximum cruising, in seconds<sup><a href="http://dltj.org/article/bandwidth-of-large-airplanes/#footnote_3_1600" id="identifier_3_1600" class="footnote-link footnote-identifier-link" title="&amp;#8220;Includes 15 minute bias&amp;#8221;">4</a></sup></td><td align="right"><a href="http://www.airrouting.com/content/TimeDistanceForm.aspx?__EVENTTARGET=&amp;__EVENTARGUMENT=&amp;__VIEWSTATE=%2FwEPDwUKMTc5NDA3Mzg0NWRkiNLSAWDfhkw1vjYUq4%2Bf5%2FFERGA%3D&amp;__EVENTVALIDATION=%2FwEWBgLmhKjYAgKw5o7sCQKl0K2%2FDQLk4daGDgLY7aXMBALc09TDBfiq%2FElvteLG94cR98Y8oxeXwGWX&amp;ctl00%24ContentPlaceHolder1%24txtDepartureICAO=JFK&amp;ctl00%24ContentPlaceHolder1%24txtArrivalICAO=LAX&amp;ctl00%24ContentPlaceHolder1%24txtAirSpeed=507&amp;ctl00%24ContentPlaceHolder1%24BtnSubmit=Submit" title="Time and Distance Calculator Results: JFK to LAX at 507 knots"><span class="sourceLink">Source</span></a>&nbsp;&nbsp;16,200</td><td align="right"><a href="http://www.airrouting.com/content/TimeDistanceForm.aspx?__EVENTTARGET=&amp;__EVENTARGUMENT=&amp;__VIEWSTATE=%2FwEPDwUKMTc5NDA3Mzg0NWRkiNLSAWDfhkw1vjYUq4%2Bf5%2FFERGA%3D&amp;__EVENTVALIDATION=%2FwEWBgLmhKjYAgKw5o7sCQKl0K2%2FDQLk4daGDgLY7aXMBALc09TDBfiq%2FElvteLG94cR98Y8oxeXwGWX&amp;ctl00%24ContentPlaceHolder1%24txtDepartureICAO=JFK&amp;ctl00%24ContentPlaceHolder1%24txtArrivalICAO=LAX&amp;ctl00%24ContentPlaceHolder1%24txtAirSpeed=559&amp;ctl00%24ContentPlaceHolder1%24BtnSubmit=Submit" title="Time and Distance Calculator Results: JFK to LAX at 559 knots"><span class="sourceLink">Source</span></a>&nbsp;&nbsp;14,760</td><td align="right"><a href="http://www.airrouting.com/content/TimeDistanceForm.aspx?__EVENTTARGET=&amp;__EVENTARGUMENT=&amp;__VIEWSTATE=%2FwEPDwUKMTc5NDA3Mzg0NWRkiNLSAWDfhkw1vjYUq4%2Bf5%2FFERGA%3D&amp;__EVENTVALIDATION=%2FwEWBgLmhKjYAgKw5o7sCQKl0K2%2FDQLk4daGDgLY7aXMBALc09TDBfiq%2FElvteLG94cR98Y8oxeXwGWX&amp;ctl00%24ContentPlaceHolder1%24txtDepartureICAO=JFK&amp;ctl00%24ContentPlaceHolder1%24txtArrivalICAO=LAX&amp;ctl00%24ContentPlaceHolder1%24txtAirSpeed=589&amp;ctl00%24ContentPlaceHolder1%24BtnSubmit=Submit" title="Time and Distance Calculator Results: JFK to LAX at 589 knots"><span class="sourceLink">Source</span></a>&nbsp;&nbsp;14,040</td></tr><tr><td>Bandwidth of cargo aircraft filled to capacity with Blu-ray discs in slim jewel cases traveling at maximum rated cruising speed between John F Kennedy Intl airport and Los Angeles Intl airport, in gigabits per second</td><td align="right"><strong>176,637</strong></td><td align="right"><strong>217,648</strong></td><td align="right"><strong>302,519</strong></td></tr></tbody></table><p><div id="attachment_1628" class="wp-caption alignright" style="width: 160px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><a href="http://www.boeing.com/commercial/747family/freighter/freighter4.html" title="Boeing: Commercial Airplanes - 747-400 Freighters"><img src="http://cdn.dltj.org/wp-content/uploads/2010/06/400f_k61246_n-150x150.jpg" alt="Picture of the Main Cargo Deck of a Boeing 747-400F" title="Main Cargo Deck of a Boeing 747-400F" width="150" height="150" class="size-thumbnail wp-image-1628" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Boeing 747-400F Main Cargo Deck. How many rectangular boxes can we fit in a round space?</p></div>As with the first post, this of course assumes a negligible time to load and unload said Boeing 747-400, no airport congestion, a frictionless plane and a perfect spherical earth, along with several other typical <a href="http://www.halexandria.org/dward125.htm" title="Physics &#038;039;Assumptions&#038;039;">assumptions from the world of physics</a>.  It also assumes that your can fit rectangular-shaped cartons in a cargo space that is clearly curved while still maximizing space.  Check my math and let me know if I made a mistake.</p><p>Now, by contrast, the latest notice I could find of high-speed data transfer over a network was a mention in December last year.  In a press release from Caltech with the title &#8220;<a href="http://media.caltech.edu/press_releases/13309" title="High Energy Physicists Set New Record for Network Data Transfer -  Caltech">High Energy Physicists Set New Record for Network Data Transfer</a>&#8221; is this paragraph:<br /><blockquote>The focus of the exhibit was the [High Energy Physics] team&#8217;s record-breaking demonstration of storage-to-storage data transfer over wide area networks from two racks of servers and a network switch-router on the exhibit floor [of SuperComputing 2009 in Portland, Oregon]. The high-energy physics team&#8217;s demonstration, &#8220;Moving Towards Terabit/Sec Transfers of Scientific Datasets: The LHC Challenge,&#8221; achieved a bidirectional peak throughput of 119 gigabits per second (Gbps) and a data flow of more than 110 Gbps that could be sustained indefinitely among clusters of servers on the show floor and at Caltech, Michigan, San Diego, Florida, Fermilab, Brookhaven, CERN, Brazil, Korea, and Estonia.</p></blockquote><p>So, 110 Gbps from a network and 217,648 Gbps from a Boeing 747-8 Freighter.  (We&#8217;re not counting yet the capacity of the theoretical Airbus A380-800F.) Only three orders of magnitude before the proverbial station wagon full of tapes is put to rest.</p><p><h2>Updates</h2><br /><em>10-Jun-2010</em>. If you have read this far, be sure to check out <a href="http://walt.lishost.org/2010/06/bandwidth-of-large-airplanes-take-2/" title="Bandwidth of Large Airplanes, Take 2 from Walt at Random">&#8220;Bandwidth of Large Airplanes, Take 2&#8243;</a> by Walt Crawford.  He takes on the points of 100-disc spindles, 2TB hard drives, and whether weight is a limiting factor in this scheme.  Thanks, Walt!</p><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_1600" class="footnote">The original posting listed 159 as the capacity using a source that is no longer on the web.  According to the <a href="http://www.boeing.com/commercial/747family/pf/pf_400f_prod.html" title="Boeing Commercial Airplanes -- 747 Freighter Technical Characteristics">Boeing site</a>, 159 is the capacity of the lower deck, which doesn&#8217;t include the 605 cubic meters of capacity on the main deck.  Go figure.</li><li id="footnote_1_1600" class="footnote"><a href="http://www.google.com/search?q=Mach+0.845+in+knots" title="Mach 0.845 in knots - Google Search">Converted from Mach to knots via Google</a>.</li><li id="footnote_2_1600" class="footnote">&#8220;Maximum Level Speed&#8221; from specs <a href="http://www.google.com/search?q=Mach+0.89+in+knots" title="Mach 0.89 in knots - Google Search">converted from mach to knots via Google</a>.</li><li id="footnote_3_1600" class="footnote">&#8220;Includes 15 minute bias&#8221;</li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/bandwidth-of-large-airplanes/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Split Routing with OpenVPN</title><link>http://dltj.org/article/openvpn-split-routing/</link> <comments>http://dltj.org/article/openvpn-split-routing/#comments</comments> <pubDate>Mon, 15 Feb 2010 16:47:06 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[openvpn]]></category> <category><![CDATA[system administration]]></category><guid isPermaLink="false">http://dltj.org/?p=1524</guid> <description><![CDATA[My place of work has installed a VPN that moderates our access to the server network using the OpenVPN protocol. This is a good thing, but in its default configuration it would send all traffic &#8212; even that not destined &#8230; <a href="http://dltj.org/article/openvpn-split-routing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=1524"></abbr><p>My place of work has installed a <acronym title="Virtual Private Network">VPN</acronym> that moderates our access to the server network using the <a href="http://en.wikipedia.org/wiki/OpenVPN" title="OpenVPN - Wikipedia, the free encyclopedia">OpenVPN protocol</a>.  This is a good thing, but in its default configuration it would send all traffic &#8212; even that not destined for the machine room network &#8212; through the VPN.  Since most of what I do doesn&#8217;t involve servers in the machine room, I wanted to change the configuration of the OpenVPN client to only send the machine room traffic through the VPN and everything else through the (original) default gateway.  As it turns out, this involves tweaking the routing tables.<br /><span id="more-1524"></span><br />In its default configuration, the OpenVPN client establishes a default route pointing to the OpenVPN server as the gateway.  What I needed to do is remove that default route to the OpenVPN server gateway, recreate the original default route to the underlying interface&#8217;s gateway, and add a new specific route for the machine room network using the OpenVPN server gateway.  These additions to the &#8220;ovpn&#8221; file were:</p><div class="wp_syntax"><div class="code"><pre class="config" style="font-family:monospace;">route-delay 2
route-up &quot;/some/location/openvpn-default-route-reset.sh&quot;
route 193.20.135.0/24 255.255.255.0 vpn_gateway</pre></div></div><p>The &#8220;route-delay&#8221; line forces the two subsequent changes to happen after all of the OpenVPN-driven routing changes are made.  The &#8220;route-up&#8221; line runs a shell script that deletes the OpenVPN-supplied default route and adds the one pointing back to the underlying interface&#8217;s gateway.  (More on this shell script below.)  The &#8220;route&#8221; line adds the machine room specific network through the OpenVPN tunnel. <sup><a href="http://dltj.org/article/openvpn-split-routing/#footnote_0_1524" id="identifier_0_1524" class="footnote-link footnote-identifier-link" title="Note, this really isn&amp;#8217;t the machine room network of my place of work.">1</a></sup> (The &#8220;vpn_gateway&#8221; is a keyword in the configuration file that is replaced by the gateway address of the OpenVPN tunnel at runtime.)</p><p>For reasons I don&#8217;t understand, I couldn&#8217;t delete and re-add the default route via the OpenVPN configuration file.  Instead, I needed to create an external shell script with those commands and execute that script via the &#8220;route-up&#8221; configuration line.  The contents of the shell script are really simple:</p><div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>route delete default
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>route add default <span style="color: #007800;">$route_net_gateway</span></pre></div></div><p>OpenVPN will push a bunch of environment variables in to the subprocess, and one of them is <code>$route_net_gateway</code> that gets the &#8220;pre-existing default IP gateway in the system routing table.&#8221;  That value is used in the third line to reset the default gateway.  This script gets run as root, so perform due diligence to protect the script (<abbrev title="change file access permissions">chmod</abbrev> it to &#8220;700&#8243; and <abbrev title="change file owner and group">chown</abbrev> it to &#8220;root&#8221;).</p><p>With that in place, my network routing tables look something like this:</p><div class="wp_syntax"><div class="code"><pre class="config" style="font-family:monospace;">Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.2.1        UGSc           40        0     en1
10.242.2.1/32      10.242.2.9         UGSc            0        0    tun0
10.242.2.9         10.242.2.10        UH              4        1    tun0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             12 15704029     lo0
192.168.2          link#5             UCS             2        0     en1
192.168.2.1        0:c0:49:ff:8c:c5   UHLWI          42      108     en1   1158
192.168.2.3        127.0.0.1          UHS             0        9     lo0
193.20.135         10.242.2.9         UGSc            2        0    tun0
193.20.135.2/32    192.168.2.1        UGSc            1        0     en1</pre></div></div><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_1524" class="footnote">Note, this really isn&#8217;t the machine room network of my place of work.</li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/openvpn-split-routing/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>On the Internet, How Do You Know If You Are Talking to a Dog?</title><link>http://dltj.org/article/dns-vulnerabilities/</link> <comments>http://dltj.org/article/dns-vulnerabilities/#comments</comments> <pubDate>Wed, 16 Jul 2008 02:51:10 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[domain name service]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[opendns]]></category><guid isPermaLink="false">https://dltj.org/?p=387</guid> <description><![CDATA[Published in The New Yorker July 5, 1993.Image from The Cartoon BankThe famous 1993 cartoon from The New Yorker has the caption “On the Internet, nobody knows you’re a dog.” The question at the moment is: when you&#8217;re on the &#8230; <a href="http://dltj.org/article/dns-vulnerabilities/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="https://dltj.org/?p=387"></abbr><div style="width:440px; font-size:85%; float: right; padding: 0 0 1.5em 2em;"><embed type="application/x-shockwave-flash" src="http://www.cartoonbank.com/content/ebiz/cartoonbank/resources/fluidretail/standard/v2/swf/cengage_preloader.swf" style="" id="display_detail_1295491413913_176827" name="display_detail_1295491413913_176827" bgcolor="#ffffff" quality="high" swliveconnect="true" allowscriptaccess="always" wmode="opaque" base="." flashvars="productViewXML=../../../customers/c892/10/61/97/106197_detail/pview_106197_detail.xml&amp;productId=106197&amp;width=440&amp;height=350&amp;bgColor=#ffffff&amp;preloaderBGColor=6710886&amp;preloaderFGColor=13421772&amp;logFunction=handleDisplayLogEvent&amp;onLoadHandler=handleDisplayLoaded&amp;onErrorHandler=handleDisplayError&amp;extraVariables=p_id%3D106197%26p_path%3D10/61/97/&amp;htmlURL=www.cartoonbank.com&amp;zoomWinLCID=_lcid_display_detail_1295491413913_176827" width="440" height="350">Published in <i>The New Yorker</i> July 5, 1993.<br />Image from <a href="http://www.cartoonbank.com/item/22230" title="Peter Steiner : &amp;#8220;On the Internet, nobody knows you&amp;#8217;re a dog.&amp;#8221; - Cartoonbank.com">The Cartoon Bank</a></embed></div><p>The famous 1993 cartoon from The New Yorker has the caption “On the Internet, nobody knows you’re a dog.”  The question at the moment is:  when you&#8217;re on the internet, how do you know you are not talking to a dog?  When you ask to connect to a remote service, you expect to connect to that remote service.  You probably don&#8217;t even think about the possibility that &#8220;myspace.com&#8221; might not be &#8220;myspace.com&#8221;.  But what if you couldn&#8217;t rely on that?  How about &#8220;mybank.com&#8221;?  Believe it or not, you may exist in such a world today.  Last week, US-CERT issued a &#8220;Vulnerability Note&#8221; on <a href="http://www.kb.cert.org/vuls/id/800113" title="US-CERT Vulnerability Note VU#800113">Multiple DNS implementations vulnerable to cache poisoning</a>.  What does that mean?  Read on&#8230;<br /><span id="more-387"></span><br /><h2>DNS:  The Internet&#8217;s Addressbook</h2><br />Your computer (or, in some special cases such as a home network setup, &#8220;your entire network&#8221;<sup><a href="http://dltj.org/article/dns-vulnerabilities/#footnote_0_387" id="identifier_0_387" class="footnote-link footnote-identifier-link" title="This happens with a technique called &amp;#8220;Network Address Translation&amp;#8221; or NAT.  NAT was created to conserve the internet address space (among other reasons) by putting multiple computers behind a device that makes all of the computers look like one machine to the outside world.  If you connect to the rest of the world via a small hub, you&amp;#8217;re probably using NAT.  If the IP address of your computer starts with &amp;#8220;10&amp;#8243; or &amp;#8220;192.168&amp;#8243; you are definitely using NAT.">1</a></sup>) is uniquely defined on the internet by an &#8220;IP address&#8221;.  It is a series of four numbers separated by a period; something like &#8220;216.178.38.116&#8243;.  Every computer on the network has one.  The issue is that these numbers are not as easy to remember as names like &#8220;myspace.com&#8221;.  Enter DNS&#8230;</p><p>It is the Domain Name System, or DNS, that translates an easily recognizable name to an IP address.  DNS is a distributed database of names-to-numbers (and numbers-to-names and all sorts of other mappings).  A network machine &#8212; say, your desktop computer &#8212; is running a program (a web browser) that needs to connect to a server.  It relies on a DNS client to perform the name-to-number mapping.  This figure shows a simplified relationship between all of the parts.</p><div id="attachment_390" class="wp-caption alignnone" style="width: 510px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;"><img src="http://cdn.dltj.org/wp-content/uploads/2008/07/dns-normal.png" alt="Sequence Diagram Showing Normal DNS Operation" title="DNS-Normal" width="500" height="318" class="size-full wp-image-390" /><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Sequence Diagram Showing Normal DNS Operation</p></div><p>On your computer, the web browser makes a request with the local DNS client to one of the DNS servers it knows.  (You&#8217;ll see this DNS service listed if you look at the network properties on your computer.)  DNS servers can, and typically do, remember the answers to recently asked questions from other DNS clients (a feature called &#8220;caching&#8221;); if the DNS server can answer the question from its cache, it will.  If not, one of two things can happen:  1) DNS Server 1 can send a message back saying it doesn&#8217;t know but suggest where it might go to find an answer; or 2) attempt to find the answer itself and send it back to the DNS client.  The latter is what is pictured above and is called &#8220;recursive name resolution&#8221;.  DNS Server 1 can also cache the information so as to answer a subsequent question for the same information without having to go out and ask another DNS server for it. <sup><a href="http://dltj.org/article/dns-vulnerabilities/#footnote_1_387" id="identifier_1_387" class="footnote-link footnote-identifier-link" title="The amount of time a caching DNS server can hold onto information on behalf of an &amp;#8220;authoritative&amp;#8221; DNS server is specified as part of the DNS protocol, but such consideration is outside the scope of what is being talked about here.">2</a></sup></p><p><h2>When DNS Goes Bad</h2><br />So what is the problem?  The United States Computer Emergency Readiness Team (<a href="http://www.us-cert.gov/aboutus.html" title="US-CERT: About Us">US-CERT</a>) <a href="http://www.us-cert.gov/cas/techalerts/TA08-190B.html" title="US-CERT Technical Cyber Security Alert TA08-190B -- Multiple DNS implementations vulnerable to cache poisoning">describes it this way</a>:<br /><blockquote>An attacker with the ability to conduct a successful cache poisoning attack can cause a nameserver&#8217;s clients to contact the incorrect, and possibly malicious, hosts for particular services. Consequently, web traffic, email, and other important network data can be redirected to systems under the attacker&#8217;s control.</p></blockquote><p>In other words, some rogue agent out on the net tries to inject bad information into a DNS cache by sending specially constructed answers to questions that the caching DNS server never asked.  That looks something like this.</p><div id="attachment_391" class="wp-caption alignnone" style="width: 510px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;"><img src="http://cdn.dltj.org/wp-content/uploads/2008/07/dns-poison.png" alt="Sequence Diagram Showing the Effect of DNS Cache Poisoning" title="DNS-Poison" width="500" height="318" class="size-full wp-image-391" /><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Sequence Diagram Showing the Effect of DNS Cache Poisoning</p></div><p>As the US-CERT advisory points out, this is a bad thing.  Many internet services rely on the fact that when they ask to connect to a host with a specified name that they will in fact be talking to a host with that name.  You want to know that you are sending and receiving e-mail from the servers you expect and that the websites you get information from are the true, correct servers.  DNS cache poisoning effectively hides this because the address bar in the browser <em>looks</em> correct.</p><p><h2>Beyond Phishing</h2><br />Note that this scheme is different from the &#8220;phishing&#8221; technique.  In that technique, you might be ask to go to a URL like <code>http://badguys.crimesyndication.org/banking.yourbank.com/</code>, which would look and behave like the &#8220;banking.yourbank.com&#8221; site that you know, but it is really a website on &#8220;badguys.crimesyndication.org&#8221; that is simply made to look like your online banking site.  Careful inspection of the URL and the hints supplied by the browser about the security certificate would show that you are connecting to the wrong place.  The &#8220;DNS Poisoning&#8221; vulnerability is much worse because <em>your computer</em> was fooled into connecting to the wrong site and is passing that tomfoolery back to you.</p><p><h2>One Possible Workaround, One Possible Problem</h2><br />One of the possible workarounds is to configure your computer to use a DNS server that is not vulnerable to the problem of DNS cache poisoning.  One such service is called <a href="http://www.opendns.com/" title="OpenDNS homepage">OpenDNS</a>, and they made quite a big point about <a href="http://blog.opendns.com/2008/07/08/opendns-keeping-you-safe/" title="OpenDNS – Keeping you safe day after day | OpenDNS blog">not being vulnerable to this problem</a>.  At a very basic level, you use OpenDNS by <a href="https://www.opendns.com/start" title="OpenDNS Setup Instructions">setting your DNS servers</a> to 208.67.222.222 and 208.67.220.220.  Of course, they also offer <a href="http://www.opendns.com/features/" title="OpenDNS features page">more services</a> layered on top of the basic name-to-address resolution service.</p><p><em>However</em>, in the course of writing this posting, I discovered that OpenDNS itself is engaging in something moderately equivalent to DNS cache poisoning itself, and it is doing it with the address of the most popular website:  www.google.com.  The problem seems to stem from issues that OpenDNS users were having with hidden software installed on Dell machines as a result of a Dell/Google agreement.  David Ulevitch, <a href="http://www.opendns.com/about/david/" title="OpenDNS &amp;gt; About Us &amp;gt; David Ulevitch, Founder and CEO">Founder and CEO of OpenDNS</a>, posted about <a href="http://blog.opendns.com/2007/05/22/google-turns-the-page/" title="Google turns the page... in a bad way. | OpenDNS blog">the impact of Dell/Google&#8217;s actions and OpenDNS&#8217;s response</a> on the OpenDNS blog last year.<br /><blockquote>About a year ago Google and Dell announced a partnership to include the Google Toolbar on new Dell computers. At the same time, Google was trying to convince the Department of Justice that changing the default search engine in the (then) new IE7 was too difficult (when in reality it’s really simple). Installing the toolbar meant that users would have Google as their default search engine in IE7. It also meant that Dell and Google would share some of the revenue from the advertising clicks that resulted from these installations, much like The Mozilla Foundation does with its Firefox browser. &#8230;</p><p>The solution to this problem was to route Google requests through a machine we run to check if the request is a typo or one of your shortcuts. If it is a typo or shortcut then we do what we always do, just fix the typo or launch your shortcut and send you off on your way. If it’s not one of those two things, we pass it on to Google for them to give you search results. This solution provides the best of both worlds: OpenDNS users get back the features that they love and Google continues to operate without problems.</p></blockquote><p>This is what it looks like in a picture:</p><div id="attachment_392" class="wp-caption alignnone" style="width: 510px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;"><img src="http://cdn.dltj.org/wp-content/uploads/2008/07/dns-opendns-google.png" alt="Sequence Diagram Showing the OpenDNS Response to Dell/Google" title="DNS OpenDNS Google" width="500" height="318" class="size-full wp-image-392" /><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Sequence Diagram Showing the OpenDNS Response to Dell/Google</p></div><p>Danny Sullivan of Search Engine Land has a more <a href="http://searchengineland.com/070523-083042.php" title="Google &amp; Dell&#039;s Revenue-Generating URL Error Pages Drawing Fire">in-depth analysis of Google&#8217;s and Dell&#8217;s actions</a>.  David offers a defense of OpenDNS&#8217;s response in a comments on <a href="http://yro.slashdot.org/article.pl?sid=07/05/24/0342246" title="OpenDNS Says Google-Dell Browser Tool is Spyware | Slashdot">a post to Slashdot</a> (<a href="http://slashdot.org/comments.pl?sid=235955&amp;cid=19251937" title="Comments on OpenDNS Says Google-Dell Browser Tool is Spyware">this is the sharpest and most poignant</a>).  If offering OpenDNS as a fix for DNS cache poisoning is two steps forward, then OpenDNS&#8217;s response to the Dell/Google action is, at best, one step back.  I would prefer that Dell not automatically install functionality like this on my PC.  I would also strongly prefer that DNS resolvers not try to be too cute.  Fortunately, it is <a href="http://blowery.org/2008/04/08/opendns-is-proxying-google/" title="OpenDNS is proxying Google?">possible to turn off this behavior in OpenDNS</a>, which I prefer to do.  But, all told, this is just one more lesson about how important the Domain Name Services is to the fundamental operation of the internet, and how easy it is to take for granted.</p><p><h2>Updates</h2><br /><b>18-Jul-2008</b>:  I exchanged e-mail with David Ulevitch, Founder and CEO of OpenDNS, that focused on the latter part this posting.  He noted that &#8220;everything in our service, including the Google proxy, is an option that can be enabled or disabled in a (free, of course) user account.&#8221;  I implied that by linking to <a href="http://blowery.org/2008/04/08/opendns-is-proxying-google/" title="OpenDNS is proxying Google?">Ben Lowery&#8217;s posting</a> with instructions on &#8220;flipping the &#8216;Enable OpenDNS proxy&#8217; toggle&#8221;.  So I wanted to explicitly call that out.   David also pointed out OpenDNS is working with Google to create favorable peering arrangements at <a href="http://system.opendns.com/" title="OpenDNS &amp;gt; System (also available at http://208.67.219.60/)">their distributed sites</a>; doing so is decreasing the latency introduced by the proxy.</p><p>Also, there is a <a href="http://news.cnet.com/8301-10789_3-9989292-57.html?tag=bl" title="The man who changed Internet security | CNet News">C|Net news article</a> talking about how this broad, deep, and important problem was discovered and incrementally disclosed.  It is a very interesting read for those who like to know about how internet security happens.</p><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_387" class="footnote">This happens with a technique called &#8220;Network Address Translation&#8221; or NAT.  NAT was created to conserve the internet address space (among other reasons) by putting multiple computers behind a device that makes all of the computers look like one machine to the outside world.  If you connect to the rest of the world via a small hub, you&#8217;re probably using NAT.  If the IP address of your computer starts with &#8220;10&#8243; or &#8220;192.168&#8243; you are definitely using NAT.</li><li id="footnote_1_387" class="footnote">The amount of time a caching DNS server can hold onto information on behalf of an &#8220;authoritative&#8221; DNS server is specified as part of the DNS protocol, but such consideration is outside the scope of what is being talked about here.</li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/dns-vulnerabilities/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Vint Cerf on the Origins of 32-bit IP Addressing</title><link>http://dltj.org/article/vint-cerf-ip-addressing/</link> <comments>http://dltj.org/article/vint-cerf-ip-addressing/#comments</comments> <pubDate>Sat, 08 Mar 2008 03:55:42 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[digitization]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[internet]]></category> <category><![CDATA[ipv6]]></category> <category><![CDATA[networking]]></category><guid isPermaLink="false">https://dltj.org/article/vint-cerf-ip-addressing/</guid> <description><![CDATA[Via a weekly wrap-up post by Dion Almaer on the Google Code Blog comes mention of a Google Tech Talk video from their IPv6 Conference 2008. It is a panel discussion called &#8220;What will the IPv6 Internet look like?&#8221; and &#8230; <a href="http://dltj.org/article/vint-cerf-ip-addressing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="https://dltj.org/article/vint-cerf-ip-addressing/"></abbr><p>Via a <a href="http://google-code-updates.blogspot.com/2008/03/code-review-no-more-contact-scraping.html" title="Google Code Blog: The Code Review: No more contact scraping, sync your calendar, and Gears in your pocket">weekly wrap-up post by Dion Almaer on the Google Code Blog</a> comes mention of a Google Tech Talk video from their IPv6 Conference 2008.   It is a panel discussion called &#8220;<a href="http://www.youtube.com/watch?v=mZo69JQoLb8" title="YouTube - Google IPv6 Conference 2008:  What will the IPv6 Internet look like?">What will the IPv6 Internet look like?</a>&#8221; and it offers insight into the difficulties of transitioning to <a href="http://www.ipv6.org/" title="IPv6: The Next Generation Internet!">the next generation IP transport protocol</a>.  Although it has been years since I&#8217;ve seen the business end of managing an actual IP network, I found the discussion a fascinating look at the issues that are ahead of network engineers and device manufacturers around the world.</p><div style="float:right;width:410;padding:0 0 2.5em 3.5em"><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/mZo69JQoLb8#13m1s" width="400" height="326"><param name="movie" value="http://www.youtube.com/v/mZo69JQoLb8#13m1s" /><param name="FlashVars" value="playerMode=embedded" /></object></div><p>The part that caught my ears, though, was an exchange between <a href="http://en.wikipedia.org/wiki/Vinton_Cerf" title="Vint Cerf article on Wikipedia">Vint Cerf</a>, vice president and chief internet evangelist at Google, and Bob Hinden, chief internet technologist at Nokia Networks.  It starts at 13 minutes and one second into the video with Vint as moderator of the panel addressing a question from the audience about whether the panelists are proud of the work done on IPv6.</p><dl><dt class="speaker">Vint Cerf</dt><dd>Well, just speaking for myself &#8212; like I said earlier this morning &#8212; I believe that v6 is the only thing that we can do right now to make sure that address space is available and that we preserve as much as possible the end to end structure of the network.</dd><dt class="speaker">Bob Hinden</dt><dd>Can I get one other comment in here?  You reminded me of something.  So back when Vint and everyone was starting the v4 &#8212; the current internet &#8212; was not a sure thing.  Back, you know, 15, 20 years ago.  And there were lots of &#8211;</dd><dt class="speaker">Vint Cerf</dt><dd>I&#8217;m sorry, it&#8217;s 30 years ago because the decision &#8212; [laughter].  No, I&#8217;m serious, the decision to put a 32-bit address space on there was the result of a year&#8217;s battle among a bunch of engineers who couldn&#8217;t make up their minds about 32, 128 or variable length.  And after a year of fighting I said &#8212; I&#8217;m now at ARPA, I&#8217;m running the program, I&#8217;m paying for this stuff and using American tax dollars &#8212; and I wanted some progress because we didn&#8217;t know if this is going to work.  So I said 32 bits, it is enough for an experiment, it is 4.3 billion terminations &#8212; even the defense department doesn&#8217;t need 4.3 billion of anything and it couldn&#8217;t afford to buy 4.3 billion edge devices to do a test anyway.  So at the time I thought we were doing a experiment to prove the technology and that if it worked we&#8217;d have an opportunity to do a production version of it.  Well &#8212; [laughter] &#8212; it just escaped! &#8212; it got out and people started to use it and then it became a commercial thing.  So, this [IPv6] is the production attempt at making the network scalable.  Only 30 years later.</dd></dl>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/vint-cerf-ip-addressing/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Note to Future Self:  Use `ssh -D` to bypass annoying interception proxies</title><link>http://dltj.org/article/ssh-as-socks-proxy/</link> <comments>http://dltj.org/article/ssh-as-socks-proxy/#comments</comments> <pubDate>Mon, 18 Feb 2008 22:12:56 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Disruption in Libraries]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[openssh]]></category> <category><![CDATA[proxy]]></category> <category><![CDATA[system administration]]></category><guid isPermaLink="false">https://dltj.org/article/ssh-as-socks-proxy/</guid> <description><![CDATA[Dear future self,If you are reading this, you are remembering a time when you ran into a really nasty interception proxy1 and you are looking for a way around it. Do you remember when you were sitting in the Denver &#8230; <a href="http://dltj.org/article/ssh-as-socks-proxy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="https://dltj.org/article/ssh-as-socks-proxy/"></abbr><p>Dear future self,</p><p>If you are reading this, you are remembering a time when you ran into a really nasty <a href="http://en.wikipedia.org/wiki/Proxy_server#Intercepting_proxy_server" title="Proxy server - Wikipedia">interception proxy</a><sup><a href="http://dltj.org/article/ssh-as-socks-proxy/#footnote_0_329" id="identifier_0_329" class="footnote-link footnote-identifier-link" title="Version of the &amp;#8220;Proxy Server&amp;#8221; Wikipedia page when this posting was written">1</a></sup> and you are looking for a way around it.  Do you remember when you were sitting in the Denver International Airport using their free wireless service?  And remember how it inserted advertising banners in HTML frames at the top of random web pages as you surfed?</p><p>After about a half an hour of this, you started looking for solutions and found that the secure shell client can act as a <a href="http://en.wikipedia.org/wiki/SOCKS" title="SOCKS - Wikipedia">SOCKS proxy</a><sup><a href="http://dltj.org/article/ssh-as-socks-proxy/#footnote_1_329" id="identifier_1_329" class="footnote-link footnote-identifier-link" title="Version of the SOCKS Wikipedia page when this posting was written">2</a></sup>.  Using &#8216;ssh&#8217;, you set up a tunnel between your laptop and a server in the office that encrypted and effectively hid all of your network communications from the interception proxy.  And if you are reading this again you want to remember how you did it.</p><p><h2>Set up the SOCKS proxy</h2><br />SOCKS is a client protocol that can be used to tunnel all of your traffic to a remote host before it fans out across the internet.  The <a href="http://www.openssh.com/" title="OpenSSH homepage">OpenSSH client</a> can set up a local SOCKS proxy that uses an &#8216;ssh&#8217; session as the network tunnel.  To set up the tunnel, use the <code>-D</code> option followed by a local port number:</p><div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-D</span> <span style="color: #000000;">9050</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>username<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>remote.server.name<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div><p>To refresh your memory, here is an extract from the &#8216;ssh&#8217; manual page for the -D option:<br /><blockquote><dl><dt>-D [<code>bind_address</code>:]<code>port</code></dt><dd>Specifies a local &#8220;dynamic&#8221; application-level port forwarding. This works by allocating a socket to listen to <code>port</code> on the local side, optionally bound to the specified <code>bind_address</code>.  Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine.  Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server.  Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.</dd></dl></blockquote><p><h2>Using the SOCKS proxy</h2></p><div style="float:right;border:1px solid #CCC; margin:0 0 1.5em 2.5em; padding: .75em; width:35%;"><a href="http://cdn.dltj.org/wp-content/uploads/2008/02/airport-advanced-settings-proxy.png" title="MacOSX 10.5 Proxy screen"><img src="http://cdn.dltj.org/wp-content/uploads/2008/02/airport-advanced-settings-proxy.png" alt="MacOSX 10.5 Proxy screen" /></a></div><p>Next you need to tell the applications to use the SOCKS proxy.  If you are still using a Mac when you are reading this, you&#8217;ll probably have it pretty easy.  Mac OSX lets you set a proxy system-wide that all well-written Mac applications will use to get their parameters.  It is in the &#8220;Proxies&#8221; tab of the Advanced&#8230; network settings.  On Mac OSX version 10.5 (Leopard), it looks like the graphic to the right.</p><p>If you&#8217;re using some sort of UNIX variant, the application may have a setting to use a SOCKS client, or you may need to use the &#8216;<a href="http://tsocks.sourceforge.net/" title="tsocks - Transparent SOCKS Proxying Library">tsocks</a>&#8216; <a href="http://www.linux.com/articles/54894" title="&#039;Creating virtual private networks with tsocks and VTun&#039; from Linux.com" class="broken_link" rel="nofollow">shim</a> that intercepts the network calls of the application.  And, future self, if you are using a Microsoft Windows box right now, please remember how much simpler life was when you used a Mac or Linux desktop.  If you find yourself in such a spot, some reader of this blog posting may have left a comment for you below that will help you use a SOCKS proxy with a Windows platform.</p><p>Hope this helps.  Sincerely,</p><p>Self, circa February 2008</p><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_329" class="footnote">Version of the <a href="http://en.wikipedia.org/wiki/Proxy_server?oldid=192282546#Intercepting_proxy_server" title="">&#8220;Proxy Server&#8221; Wikipedia page when this posting was written</a></li><li id="footnote_1_329" class="footnote">Version of the <a href="http://en.wikipedia.org/wiki/SOCKS?oldid=192280146" title="">SOCKS Wikipedia page when this posting was written</a></li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/ssh-as-socks-proxy/feed/</wfw:commentRss> <slash:comments>26</slash:comments> </item> <item><title>Getting Around Drupal&#8217;s Prohibition of @ Characters in User Ids</title><link>http://dltj.org/article/drupal-at-sign/</link> <comments>http://dltj.org/article/drupal-at-sign/#comments</comments> <pubDate>Fri, 19 Jan 2007 16:46:06 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[networking]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[system administration]]></category><guid isPermaLink="false">http://dltj.org/2007/01/drupal-at-sign/</guid> <description><![CDATA[A while back we created an LDAP directory to consolidate account information for various back-room services, and when we created it we decided to use the individual&#8217;s e-mail address as the account identifier (uid in LDAP-speak). It seemed like the &#8230; <a href="http://dltj.org/article/drupal-at-sign/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/2007/01/drupal-at-sign/"></abbr><p>A while back we created an LDAP directory to consolidate account information for various back-room services, and when we created it we decided to use the individual&#8217;s e-mail address as the account identifier (<tt>uid</tt> in LDAP-speak).  It seemed like the logical thing to do &#8212; it is something that the user knows and it is a cheap and easy way to assume that the account identifiers will be unique.  This is not uncommon for many internet services, of course.</p><p>Now we&#8217;re bring up a <a href="http://drupal.org/" title="drupal.org | Community plumbing">Drupal</a> content management system and of course want to tie the authentication into the existing LDAP directory.  The initial configuration appeared to work, but there were odd, unexplained failures &#8212; most notably, Drupal would not consider it a &#8216;real&#8217; account because it didn&#8217;t have an e-mail field.  Even weirder was the fact that we configured Drupal to know exactly which LDAP attribute to use as the e-mail address (<tt>mail</tt>, in LDAP-speak).  It wasn&#8217;t until one of our system engineers wondered out loud if the at-sign (&#8216;@&#8217;) in the user id wasn&#8217;t causing problems that we started making progress towards a solution.</p><p>As it turns out, he was right.  Without spending so much time in the guts of the Drupal code to know exactly if this is true, it seems like Drupal wants to reserve the &#8216;<tt>@something</tt>&#8216; construct for inter-Drupal authentication.  In other words, if you have an account on one Drupal server (let&#8217;s call it <em>DrupalA</em>) and want to access a second (let&#8217;s call it <em>DrupalB</em>) &mdash; and if the two servers agree to share user accounts &mdash; the account from <em>DrupalA</em> would be recorded in the database of <em>DrupalB</em> as &#8220;<tt>UserId@DrupalA</tt>&#8220;.</p><p>The &#8216;at&#8217; symbol for us, though, is just a normal part of an e-mail address.  We really didn&#8217;t want to reconstruct our LDAP account scheme, so the best choice seemed to be to find a way to trick Drupal into accepting these account identifiers.  This, unfortunately, was no easy task.  I couldn&#8217;t find the root cause of the problem, but did diagnose enough of the symptoms to force a patch into the system.  The patch, in the form of a new module (code included below) forces the account to have two necessary attributes that seem to go missing whenever a &#8216;@&#8217; character appears in the user id.  If you have similar problems, I can&#8217;t claim that this will work for you, nor can I guarantee this approach will be supportable in the future.  All&#8217;s I know is that it seems to work for us in our situation right now.</p><div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> olinkldap_help<span style="color: #009900;">&#40;</span><span style="color: #000088;">$section</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$section</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'admin/modules#olinkldap'</span><span style="color: #339933;">:</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'olinkldap;
      break;
    case '</span>admin<span style="color: #339933;">/</span>modules<span style="color: #666666; font-style: italic;">#description':
</span>    <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'admin/help#olinkldap'</span><span style="color: #339933;">:</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> t<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Sets up OhioLINK-specific LDAP parameters.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$output</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> olinkldap_settings<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> olinkldap_user<span style="color: #009900;">&#40;</span><span style="color: #000088;">$op</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$edit</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$user</span><span style="color: #339933;">,</span> <span style="color: #000088;">$category</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$op</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'load'</span><span style="color: #339933;">:</span>
      olinkldap_user_load<span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> olinkldap_user_load<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$user</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// Calculate the DN for the user -- you'll need to adjust this to match your LDAP base DN</span>
  <span style="color: #000088;">$ldap_dn</span><span style="color: #339933;">=</span><span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;uid=<span style="color: #009933; font-weight: bold;">%s</span>,ou=People,dc=somewhere,dc=outthere&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>name<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Create a new array with the two LDAP-specific values that seem to be missing.</span>
  <span style="color: #000088;">$forced_data</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ldap_authentified'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ldap_dn'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$ldap_dn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// It seems like this should work, but it doesn't (it throws a segmentation fault)</span>
    <span style="color: #666666; font-style: italic;">//  user_save($user_edit,array($forced_data);</span>
    <span style="color: #666666; font-style: italic;">// so we're going to interact directly with the database</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>uid<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Get the 'data' field for the user and put it in the $data array</span>
    <span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">unserialize</span><span style="color: #009900;">&#40;</span>db_result<span style="color: #009900;">&#40;</span>db_query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SELECT data FROM {users} WHERE uid = %d'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>uid<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// Put all of the attributes from $forced_data into $data</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$forced_data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;">// Reserialize the $data array and update it in the database</span>
    <span style="color: #000088;">$v</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">serialize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    db_query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE {users} SET data='<span style="color: #009933; font-weight: bold;">%s</span>' WHERE uid=<span style="color: #009933; font-weight: bold;">%d</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>uid<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div><p>Save this as &#8216;olinkldap.module&#8217;, update the DN to reflect your LDAP server&#8217;s base DN (see comment in code), copy it into your Drupal modules directory, and activate it.  Your &#8216;@&#8217;-impaired userids should start working again.  If you are using the inter-Drupal account sharing (we&#8217;re not) this might break something for you.  That&#8217;s not interesting for us, so I&#8217;m not testing it against that condition.  If you use this and find that it works or doesn&#8217;t work, or you have a better way of solving the problem, please leave a comment or traceback&#8230;</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/drupal-at-sign/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: dltj.org @ 2012-02-11 12:05:30 by W3 Total Cache -->
