<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-837199696072152343</id><updated>2012-01-04T18:00:03.157Z</updated><category term='mobile'/><category term='gre'/><category term='jobhunting'/><category term='transport'/><category term='ripe'/><category term='bt'/><category term='sharedock'/><category term='ipv4'/><category term='competition'/><category term='info'/><category term='scaling'/><category term='open source'/><category term='ais'/><category term='ip'/><category term='buzz'/><category term='elreg'/><category term='cisco'/><category term='vlan'/><category term='viatel'/><category term='tokenring'/><category term='latitude'/><category term='study'/><category term='spam'/><category term='rss'/><category term='t-mobile'/><category term='21cn'/><category term='performance'/><category term='neutrality'/><category term='opera'/><category term='rant'/><category term='anarchism'/><category term='ipv5'/><category term='future'/><category term='end to end'/><category term='facebook'/><category term='vpls'/><category term='wifi'/><category term='hci'/><category term='security'/><category term='traffic management'/><category term='policy'/><category term='dwdm'/><category term='nanog'/><category term='experiment'/><category term='networking'/><category term='andoid'/><category term='industry'/><category term='exhaustion'/><category term='googletv'/><category term='rrg'/><category term='android'/><category term='juniper'/><category term='addressing'/><category term='internet draft'/><category term='europe'/><category term='coding'/><category term='dsl'/><category term='mtu'/><category term='statistics'/><category term='ubuntu'/><category term='architecture'/><category term='consultation'/><category term='musings'/><category term='jailbreak'/><category term='froyo'/><category term='rojo'/><category term='google'/><category term='bgp'/><category term='iknow'/><category term='intense debate'/><category term='huawei'/><category term='cupcake'/><category term='apple'/><category term='cricket'/><category term='perl'/><category term='sony'/><category term='ipad'/><category term='qos'/><category term='rfc'/><category term='ietf'/><category term='gadget'/><category term='social'/><category term='mpls'/><category term='googlephone'/><category term='telecoms'/><category term='fair-use'/><category term='flow label'/><category term='python'/><category term='pna'/><category term='g1'/><category term='ccie'/><category term='internet'/><category term='debian'/><category term='provider independence'/><category term='oha'/><category term='learning'/><category term='comments'/><category term='qinq'/><category term='update'/><category term='web20'/><category term='ofcom'/><category term='linux'/><category term='ethernet'/><category term='tech'/><category term='ilnp'/><category term='peering'/><category term='comcast'/><category term='broadband'/><category term='migration'/><category term='verizon'/><category term='mst'/><category term='lisp'/><category term='fibre'/><category term='packet pushers'/><category term='optical'/><category term='nat'/><category term='locator identifier split'/><category term='cidr'/><category term='bluetooth'/><category term='metablog'/><category term='sfi'/><category term='firewalls'/><category term='switching'/><category term='spanningtree'/><category term='history'/><category term='listen'/><category term='browsing'/><category term='routing'/><category term='standards'/><category term='keyboards'/><category term='ipam'/><category term='open handset alliance'/><category term='monkey patching'/><category term='virtualisation'/><category term='iana'/><category term='gmail'/><category term='ipv6'/><title type='text'>Chewtoy's Technical Musings</title><subtitle type='html'>A network engineer's ramblings on technology.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3809069804315858400</id><published>2011-03-17T21:44:00.000Z</published><updated>2011-03-17T21:44:02.137Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='monkey patching'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Monkeying Around with IPv6</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://lh4.googleusercontent.com/-fv_Zbnm90ZU/TYJuYclkqVI/AAAAAAAABKs/20k3z1KeXig/s1600/Monkey.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh4.googleusercontent.com/-fv_Zbnm90ZU/TYJuYclkqVI/AAAAAAAABKs/20k3z1KeXig/s1600/Monkey.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
Part of the reason I haven't been posting much here recently is because I am buggering around in my spare time trying to polish up the programming skills that I have been neglecting over the past couple of years.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
If I ever get my current project finished I will post more about it here; however in the mean time though I came across an issue that I just had to share.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I am currently writing a networked application. &amp;nbsp;To be honest I am just interested in the program logic and was aiming to completely bypass the low level stuff by using an application framework. &amp;nbsp;In theory this is exactly what&amp;nbsp;&lt;a href="http://twistedmatrix.com/trac/"&gt;Twisted&lt;/a&gt;&amp;nbsp;is for.&lt;br /&gt;
&lt;br /&gt;
Things were going well until I threw a spanner in the works. &amp;nbsp;I noticed that my app was only listening on an IPv4 socket and wanted to change this. &amp;nbsp;It turns out that Twisted does not have any support for IPv6. &amp;nbsp;There is a &lt;a href="http://twistedmatrix.com/trac/wiki/IPv6"&gt;wiki article&lt;/a&gt;, and it appears that more talented coders than I have been submitting patches for &lt;a href="http://twistedmatrix.com/trac/ticket/3014"&gt;at least 3 years&lt;/a&gt;, yet one of the most common networked application frameworks on one of the most popular scripting languages is still IPv4 only.&lt;br /&gt;
&lt;br /&gt;
There are a number of ways forward here, and I considered three main alternatives.&lt;br /&gt;
&lt;br /&gt;
The first is the morally right position. &amp;nbsp;Open source works because of contributions from the community. &amp;nbsp;If I am going to be taking advantage of this framework then I should be willing to give something back. &amp;nbsp;After several hours of picking apart the various modules making up the framework I basically came to the conclusion that I just don't have the skills. &amp;nbsp;Being good enough to use a module doesn't make you good enough to contribute. &amp;nbsp;Given that one of my stated aims on this project was to avoid getting bogged down in the low level details, I just don't have the time or experience to do the right thing here.&lt;br /&gt;
&lt;br /&gt;
The second option is to change framework. &amp;nbsp;I spent another couple of hours researching this one (this blog post has a good overview of some of the &lt;a href="http://nichol.as/asynchronous-servers-in-python"&gt;alternative options&lt;/a&gt;). &amp;nbsp;I even made a start on getting what I have so far ported to &lt;a href="http://www.gevent.org/"&gt;gevent&lt;/a&gt;&amp;nbsp;but it didn't seem to match what I was doing as well as the Twisted approach did, so I aborted this effort.&lt;br /&gt;
&lt;br /&gt;
This brings me to the third option: doing as little as possible to get Twisted working for IPv6 in my particular situation. &amp;nbsp;I started off trying to do this cleanly by deriving IPv6 capable classes that inherit from the IPv4 classes in the standard distribution. &amp;nbsp;Twisted is a big package and this looked like it would rapidly become a massive undertaking. &amp;nbsp;So I gave up on the clean way and started directly replacing variables and methods in the Twisted classes. &amp;nbsp;A practice known as &lt;a href="http://en.wikipedia.org/wiki/Monkey_patch"&gt;Monkey Patching&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It turns out it only took a few lines of code to get things working to a suitable level.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;import socket&lt;br /&gt;from twisted.internet import tcp&lt;br /&gt;&lt;br /&gt;def monkeypatch_method(cls):&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;def decorator(func):&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setattr(cls, func.__name__, func)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return func&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return decorator&lt;br /&gt;&lt;br /&gt;# !!! Wind up your windows, here be monkeys !!! &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;tcp.Port.addressFamily = socket.AF_UNSPEC&lt;br /&gt;@monkeypatch_method(tcp.Port)&lt;br /&gt;def _buildAddr(self, peer):&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;host, port = peer[:2]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return address._ServerFactoryIPv4Address('TCP', host, port)&lt;br /&gt;&lt;br /&gt;# !!! End monkeys. Please report to the visitor centre for cleansing. !!! &lt;/span&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Monkey_patch"&gt;&lt;/a&gt;This has scratched my itch and got me past a log jam that has been holding me up for a couple of days. &amp;nbsp;It also highlights a bigger problem though.&lt;br /&gt;
&lt;br /&gt;
In the networking industry, especially when talking about the capital 'I' Internet it is generally accepted that IPv6 isn't just a curiosity any more, it is a real part of daily operations. &amp;nbsp;My experience over the past few days has shown me that the supporting work needed in the development community to take advantage of IPv6 when it is available seems to be lagging behind. &amp;nbsp;Sure it is easy to write an IPv6 compatible application if you use the low level socket API directly, but unless the high level frameworks start providing the hooks to take advantage of this there will continue to be a lack of compatible applications. &lt;br /&gt;
&lt;br /&gt;
And yes, I do recognise that I am part of the problem but I'm not sure what I can do about it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3809069804315858400?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3809069804315858400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3809069804315858400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3809069804315858400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3809069804315858400'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/03/monkeying-around-with-ipv6.html' title='Monkeying Around with IPv6'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-fv_Zbnm90ZU/TYJuYclkqVI/AAAAAAAABKs/20k3z1KeXig/s72-c/Monkey.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-166057223210793811</id><published>2011-02-09T23:30:00.000Z</published><updated>2011-02-09T23:30:31.195Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ripe'/><category scheme='http://www.blogger.com/atom/ns#' term='policy'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv4'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><title type='text'>What next for RIPE post IPv4?</title><content type='html'>This is sort of a follow up to my last post on "&lt;a href="http://perlmonkey.blogspot.com/2011/02/what-happened-to-ipv5-what-is-iana.html"&gt;What next for IANA&lt;/a&gt;". &amp;nbsp;The idea was prompted by a project that &lt;a href="http://etherealmind.com/got-questions-nics/"&gt;Greg is working on&lt;/a&gt; for an upcoming episode of &lt;a href="http://packetpushers.net/"&gt;Packet Pushers&lt;/a&gt;. &amp;nbsp;Basically the idea is to get together a list of questions for the RIRs present at &lt;a href="http://meetings.apnic.net/31"&gt;APNIC31&lt;/a&gt;&amp;nbsp;in a couple of weeks.&lt;br /&gt;
&lt;br /&gt;
Having worked for a number of LIRs with responsibility for communications with RIPE over the past 15 years I looked at the list of questions and could see that maybe some of the questions weren't phrased correctly, or in some cases showed a fundamental misunderstanding of how the RIRs function. &amp;nbsp;As a good netizen I left a comment pointing out the difference between allocation and assignment but in general I think that the list of questions is a good one and while I think I know how RIPE will answer, I have had only a little interaction with ARIN and virtually none with APNIC, AfriNIC or LACNIC. &amp;nbsp;I am looking forward to the episode to get these other views.&lt;br /&gt;
&lt;br /&gt;
I did want to have a go at an answer to this question though:&lt;br /&gt;
&lt;blockquote&gt;
Given that ipv6 is so expansive and that enteprises are likely to only ever get one allocation from their RIR – how does your RIR plan on generating re-occuring revenue’&lt;/blockquote&gt;
In the last post I pointed out that maintaining the 256 IPv4 /8 blocks is only a small part of what IANA does. &amp;nbsp;In this post I will concentrate on how direct assignment of PI space is not the primary revenue stream for the RIRs.&lt;br /&gt;
&lt;br /&gt;
Lets start with a simple question: What is RIPE? &amp;nbsp;The proper name for the RIR commonly known as RIPE is actually the RIPE NCC (RIPE Network Coordination Centre). &amp;nbsp;RIPE NCC are a not for profit organisation funded by its members (LIRs), with the purpose of administering resources on behalf of the RIPE community and &amp;nbsp;according to the policies set by the community. &amp;nbsp;This is an important point. &amp;nbsp;RIPE NCC do not set policy, they only apply it. &lt;br /&gt;
&lt;br /&gt;
What is the RIPE community? &amp;nbsp;The RIPE community is basically anyone with an interest in the management of Internet resources within the RIPE region. Policies within the RIPE community are generated using a consensus model in various working groups, much like in the IETF. &amp;nbsp;The policy working groups are open to everyone, not just to paying members of the RIPE NCC. &amp;nbsp;If you disagree with the IPv6 PI assignment policy, you are free to join up to the &lt;a href="http://www.ripe.net/ripe/groups/wg/ap"&gt;Address Policy working group&lt;/a&gt; and submit a proposal to modify the policy. &amp;nbsp;If you can argue your case and gain consensus then you could end up changing policy.&lt;br /&gt;
&lt;br /&gt;
RIPE policies are published openly in the&amp;nbsp;&lt;a href="http://www.ripe.net/ripe/docs"&gt;RIPE Document Store&lt;/a&gt;. &amp;nbsp;There are a large number of documents here and alongside the policies, request forms and guidance notes you will also find documents such as&amp;nbsp;&lt;a href="http://www.ripe.net/ripe/docs/ripe-506"&gt;RIPE NCC Activity Plan&lt;/a&gt;, (which gives answers to several of the questions in Greg's post), the&amp;nbsp;&lt;a href="http://www.ripe.net/ripe/docs/ripe-507"&gt;RIPE NCC Budget&lt;/a&gt;&amp;nbsp;and the &lt;a href="http://www.ripe.net/ripe/docs/ripe-499"&gt;RIPE NCC Charging Scheme&lt;/a&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Next: What is an LIR? &amp;nbsp;That's easy right? &amp;nbsp;An LIR is an ISP. &amp;nbsp;Actually it isn't as simple as that. &amp;nbsp;RIPE state in their FAQs:&lt;br /&gt;
&lt;br /&gt;
&lt;dt style="color: #262626; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 12px; font-weight: bold; line-height: 16px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 1em; position: relative;"&gt;&lt;a href="http://www.ripe.net/lir-services/resource-management/faq/internet-resources/faq-general-resources" style="color: #005895; font-size: 1.1em; left: 2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 2em; padding-top: 0px; position: relative; text-decoration: none;"&gt;Do I need to become an LIR?&lt;/a&gt;&lt;/dt&gt;
&lt;dd class="faq_question" style="color: #262626; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-left: 2em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/dd&gt;&lt;dd class="faq_answer" id="faq_2" style="background-color: #eaedf4; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: thin; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: thin; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: thin; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: thin; color: #262626; display: block; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 12px; line-height: 16px; margin-bottom: 1em; margin-left: 2em; margin-right: 0px; margin-top: 0px; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;"&gt;&lt;div style="font-size: 13px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
The RIPE NCC leaves the decision whether or not to become a Local Internet Registry (LIR) up to the organisation itself. Any organisation with a&amp;nbsp;&lt;b style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;legally established office&lt;/b&gt;&amp;nbsp;in the RIPE NCC service region can become an LIR.&lt;/div&gt;
&lt;div style="font-size: 13px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
We advise organisations who require their own&amp;nbsp;&lt;b style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;routeable block&lt;/b&gt;&amp;nbsp;and are in need of a&amp;nbsp;&lt;b style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;large amount of addresses&lt;/b&gt;&amp;nbsp;(/21) to become an LIR. In other cases an organisation in need of addresses should first try to acquire address-space from an upstream provider to ensure the conservation and aggregation goals as promoted by the RIPE community.&lt;/div&gt;
&lt;div style="font-size: 13px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
For more information regarding the setup of a Local Internet Registry, please visit our&amp;nbsp;&lt;a class="internal-link" href="http://www.ripe.net/lir-services/member-support/become-a-member" style="color: #005895; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;new members area&lt;/a&gt;.&lt;/div&gt;
&lt;/dd&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
So an LIR is not an ISP. &amp;nbsp;It is an organisation that requires a large amount of address space (i.e. it could be you).&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
Getting back to the original question: if you look at the 2011 budget you will see that Independent number resources account for €1.2M of the RIPE NCC income. &amp;nbsp;This isn't pocket change; however it is actually only around 7% of the total income. &amp;nbsp;The bulk of the income come from LIRs paying their membership dues. &amp;nbsp;This money is not going to go away because people aren't getting extra IPv6 assignments. One thing that you always need to keep in mind is that you do not buy IP addresses. &amp;nbsp;When you pay RIPE for registration you are paying them administration fees to grant you a license to use those addresses. That license is subject to your justification for needing the addresses remaining valid and you keeping up to date with your fees.&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
When you request direct resources from RIPE, they will charge you at a rate equivalent to the smallest size category of LIR. &amp;nbsp;For the same amount you could become a full LIR with voting rights at the RIPE NCC general meeting as well as free training and tickets to the RIPE meeting. &amp;nbsp;Bear in mind that with great power comes great responsibility. &amp;nbsp;By becoming an LIR you are agreeing to abide by the&amp;nbsp;&lt;a href="http://www.ripe.net/ripe/docs/ripe-509"&gt;IPv4&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.ripe.net/ripe/docs/ripe-512"&gt;IPv6&lt;/a&gt;&amp;nbsp;allocation and assignment policies. &amp;nbsp;Alternatively you could ask your service provider to sponsor your application for these resources. &amp;nbsp;LIRs are only charged €50 a year per independent resource, there is a fair amount of administration involved though so don't be surprised if they actually charge you more than this. &amp;nbsp;It will still be considerably cheaper than going direct though.&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
Hopefully this post will make the role of the RIPE NCC clearer. &amp;nbsp;They do an important job, and I personally do not begrudge paying the membership fee.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-166057223210793811?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/166057223210793811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=166057223210793811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/166057223210793811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/166057223210793811'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/02/what-next-for-ripe-post-ipv4.html' title='What next for RIPE post IPv4?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1056998214250837685</id><published>2011-02-04T18:30:00.000Z</published><updated>2011-02-04T18:30:02.009Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ipv5'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv4'/><category scheme='http://www.blogger.com/atom/ns#' term='iana'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><title type='text'>What happened to IPv5? What is IANA going to do now?</title><content type='html'>A couple of comments that I see all the time are "What was IPv5?" and
"What are IANA going to do now there is no more IPv4 to allocate?".&lt;br /&gt;
&lt;br /&gt;
I'm not really going to attempt to answer the first one as many people
have already done so.  What I will do is tell you how to find out
yourself while answering the second question.&lt;br /&gt;
&lt;br /&gt;
If you have been reading the news recently you probably know that
&lt;a href="http://www.iana.org/"&gt;IANA, the Internet Assigned Numbers Authority&lt;/a&gt; has run out of IPv4
addresses to allocate to the Regional Internet Registries.  From
reading these stories you could probably also be forgiven for thinking
that this was their entire purpose.  The clue is in the name though.
IP addresses are far from the only numbering resource for which a
central directory is required.&lt;br /&gt;
Every time that an RFC document defines an option that has a
pre-defined value that information needs to be captured so that there
are no conflicts.  TCP / UDP port numbers, IP protocol numbers, BGP
AFI/SAFI values, these all need to be tracked and if you go to the
IANA website you will find an easy interface for navigating these
registrations.  A short period of time should confirm to you that
there is actually a hell of a lot of information in the registries
that they maintain, and the 256 IPv4 /8 networks are actually only a
tiny fraction.  IANA has plenty of work to get on with post IPv4
distribution.&lt;br /&gt;
&lt;br /&gt;
As a specific example of how to use the IANA database lets take a look
at the &lt;a href="http://www.iana.org/assignments/version-numbers/version-numbers.xhtml"&gt;IP version number&lt;/a&gt;.&amp;nbsp;Here we see:&lt;br /&gt;
&lt;br /&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Decimal&lt;/th&gt;&lt;th&gt;Keyword&lt;/th&gt;&lt;th&gt;Version&lt;/th&gt;&lt;th&gt;Reference&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;0-1&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Reserved&lt;/td&gt;&lt;td&gt;[Jon_Postel][RFC4928]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2-3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Unassigned&lt;/td&gt;&lt;td&gt;[Jon_Postel]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;IP&lt;/td&gt;&lt;td&gt;Internet Protocol&lt;/td&gt;&lt;td&gt;[RFC791][Jon_Postel]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;ST&lt;/td&gt;&lt;td&gt;ST Datagram Mode&lt;/td&gt;&lt;td&gt;[RFC1190][Jim_Forgie]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;IPv6&lt;/td&gt;&lt;td&gt;Internet Protocol version 6&lt;/td&gt;&lt;td&gt;[RFC1752]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;TP/IX&lt;/td&gt;&lt;td&gt;TP/IX: The Next Internet&lt;/td&gt;&lt;td&gt;[RFC1475]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;PIP&lt;/td&gt;&lt;td&gt;The P Internet Protocol&lt;/td&gt;&lt;td&gt;[RFC1621]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;TUBA&lt;/td&gt;&lt;td&gt;TUBA&lt;/td&gt;&lt;td&gt;[RFC1347]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10-14&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Unassigned&lt;/td&gt;&lt;td&gt;[Jon_Postel]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;Reserved&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Jon_Postel]&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
So you can see here that version 4 is IP, version 5 is ST Datagram
Mode (defined in RFC1190) and version 6 is IPv6 defined in RFC1752.
An interesting thing to note here is that IP versions 7-9 have also
been allocated.  This means that when something beyond IPv6 is
required we will need to jump at least to IPv10.  I doubt that I will
ever have to answer an end user asking "What happened to IPv7?" in my
lifetime though (have I just sounded the death knell of IPv6 by making
that prediction?).&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1056998214250837685?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1056998214250837685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1056998214250837685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1056998214250837685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1056998214250837685'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/02/what-happened-to-ipv5-what-is-iana.html' title='What happened to IPv5? What is IANA going to do now?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8167953161231332005</id><published>2011-02-02T23:14:00.003Z</published><updated>2011-02-05T00:22:41.466Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='provider independence'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>So what is this IPv6 thing and does it affect me?</title><content type='html'>It depends on who you are.&lt;br /&gt;
&lt;br /&gt;
Lets start at the beginning. &amp;nbsp;How much do you understand about IPv4? &amp;nbsp;If you don't know your CIDR from your FCoTR then you really shouldn't worry too much. &amp;nbsp;The main thing you should know is that your service provider needs to understand IPv6 and you may need to make some changes to your computer or router hardware in the next year or two. &amp;nbsp;If done right the transition from IPv4 to IPv6 can be transparent to the end user (you) and there is nothing to worry about. &amp;nbsp;Sit back and enjoy the media running around like headless chickens trying to make a scare story out of something they have no understanding of... &amp;nbsp;Actually that is another point - the media do not understand this any better than you do. &amp;nbsp;I have read some truly shocking coverage over the last few weeks making it obvious that even the tech press really don't understand how this stuff works so don't worry if it is going over your head.&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The next step up is the power user. &amp;nbsp;Do you understand how to configure your home router? &amp;nbsp;Do you tweak your NAT settings or have a separate network segment for your open wifi network? &amp;nbsp;You should probably check out some basic IPv6 tutorials. &amp;nbsp;I found the &lt;a href="http://ipv6.he.net/certification/"&gt;Hurricane Electric certification&lt;/a&gt; quite good to get some guided practice on IPv6 network configuration. &amp;nbsp;It isn't going to turn you into a network engineer but it will give you a grounding. &amp;nbsp;You may want to get IPv6 access now using a tunnel (he.net and sixxs.net are both good options. &amp;nbsp;SixXS will even work through NAT or on a dynamic IP).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you can get native IPv6 from your provider this should always be preferred over a tunnel. &amp;nbsp;Make sure that your provider give you more than a single /64 prefix. &amp;nbsp;Push for at least a /56 so that you have the ability to split your network even if you don't have plans to do so straight away.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Make sure you have a router that is IPv6 capable. &amp;nbsp;This might be an ebay special (my home Cisco 1801 came from ebay) or it might be a Linksys running the OpenWRT / Tomato firmware. &amp;nbsp;It could be an FB2700 from &lt;a href="http://www.firebrick.co.uk/"&gt;Firebrick&lt;/a&gt; or it could be one of the new generation of consumer grade CPEs that are finally starting to appear (beware of limited features here though). &amp;nbsp;For a home network stateless autoconfig (SLAAC) with router advertisements (RA) will probably do you. &amp;nbsp;DHCPv6 may make an interesting extra credit assignment.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
By the way: a thought came to me today. &amp;nbsp;The APNIC region is the region first set to run out of addresses. &amp;nbsp;Some estimate put them into their final /8 policy by July / August this year. &amp;nbsp;Given that the APNIC region is the home territory of many of the biggest manufacturers of consumer electronic devices in the world. &amp;nbsp;I would be very surprised if there is not a &lt;i&gt;huge&lt;/i&gt; influx of devices from this market by the end of the year.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The next sector I want to talk about is the service provider market. &amp;nbsp;You guys are doing it already, right? &amp;nbsp;If you are in the SP market, or any other area where offering services across the "capital I" Internet, then you should be deploying now, if not already deployed. &amp;nbsp;Visit your local operator group. &amp;nbsp;The past month has seen both &lt;a href="http://www.uknof.org.uk/uknof18/"&gt;UKNOF&lt;/a&gt; and &lt;a href="http://nanog.org/meetings/nanog51/agenda.php"&gt;Nanog&lt;/a&gt; meetings. &amp;nbsp;Real world experience of IPv6 was freely given at both meetings. &amp;nbsp;The Internet is IP of all versions. &amp;nbsp;If you do not deploy IPv6 you do not offer Internet access. &amp;nbsp;Simple as that.  If you need native IPv6 transit drop me a line ;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Before I delve into a few more specific technologies just a quick comment on Enterprise networks. &amp;nbsp;Your ease of IPv6 deployment is going to vary based on your network size. &amp;nbsp;You have a lot of decisions to make and a lot of technologies to investigate. &amp;nbsp;Think about any services you offer over the Internet first. &amp;nbsp;Devices on your DMZ. &amp;nbsp;IPv4 is likely to get painful in certain places of the world. &amp;nbsp;Have a CEO who regularly travels to China? &amp;nbsp;Your support desk will probably appreciate you making the VPN concentrator IPv6 capable so they don't have to troubleshoot running IPSec over a doubly NATed IPv4 connection...&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Do not feel pressured into pushing IPv6 out to everything too fast though. &amp;nbsp;When did you last need to ask your ISP for more addresses? &amp;nbsp;If you have enough to satisfy your growth requirements for a couple of years and your internal communications are currently working on IPv4, why rush things? &amp;nbsp;Take your time, plan carefully and get it right. &amp;nbsp;You &lt;i&gt;are&lt;/i&gt; going to have to roll out IPv6 though, and likely within the operational lifespan of the equipment you are buying today. &amp;nbsp;Make sure you are buying IPv6 capable hardware. &amp;nbsp;Take a hard line with your supplier and do not accept them charging a premium. &amp;nbsp;IPv6 is not Internet HD, there is only one Internet.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Think carefully about how you want your network to function. &amp;nbsp;Do you want to go dual stack on everything? &amp;nbsp;Or do you want to go single stack? &amp;nbsp;Each has trade-offs. &amp;nbsp;Dual stack is the easiest to deploy and removes the need for gateway / CGN devices &lt;i&gt;within&lt;/i&gt; your network infrastructure but it means that you need to run two stacks on your end-points, and potentially need to maintain multiple sets of access lists in your firewalls. &amp;nbsp;If you stay single stack IPv4 you will probably work fine for a long time to come. &amp;nbsp;You will need to account for protocol translation at the edge though. &amp;nbsp;If you take service from an IPv6 enabled cloud service then you need to be careful how your users access it. &amp;nbsp;Things will gradually get more painful for IPv4 users as additional layers of translation get added and support starts to get dropped as demand tails off. &amp;nbsp;The remaining option is to go single stack IPv6. &amp;nbsp;This will probably start painful as the majority of your traffic needs to go through NAT64 or some form of ALG. &amp;nbsp;As more and more IPv6 content becomes available the pain will lessen. &amp;nbsp;You will need to upgrade any legacy devices though. &amp;nbsp;Windows XP is still common in the enterprise and needs IPv4 for DNS resolution. Many IP phones are IPv4 only. &amp;nbsp;While you transition sites from IPv4 only to IPv6 only you will need to use translation for internal traffic as well as external traffic.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
After all this waffle we finally get to the original topic I wanted to cover. &amp;nbsp;Addressing and translation / migration strategies.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
First the simplest. &amp;nbsp;Pure dual stack. &amp;nbsp;IPv4 and IPv6 addresses running&amp;nbsp;on the same network segments and passing each other on the wire. The IPv4 may be on globally routed addresses or behind a single layer of NAT. &amp;nbsp;This is the most commonly deployed method in service provider networks today. &amp;nbsp;It pretty much Just Works(TM).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As discussed previously the type of addressing factors in here. &amp;nbsp;There is no NAT in IPv6 (there is an internet draft for &lt;a href="http://tools.ietf.org/html/draft-mrw-nat66-06"&gt;NPTv6&lt;/a&gt; but there is a lot of resistance to NAT in IPv6 and may never make it to RFC). &amp;nbsp;So this leaves a couple of options.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can number your network using PA space from your provider. &amp;nbsp;This is simple and cheap initially, but if you have a large network renumbering is not easy which ties you to your provider.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can go all out and get yourself some PI space. &amp;nbsp;This may not be cheap, although looking at the &lt;a href="http://ripe.net/ripe/docs/ripe-499.html"&gt;RIPE schedule of charges&lt;/a&gt; it doesn't seem too bad to me given the benefits (~€1300 per annum for direct assignment). This cost can be a lot lower if you get one of your providers to sponsor you. &amp;nbsp;I say providers because there is a limitation: in order to get IPv6 PI space you need to be multi-homed. &amp;nbsp;If you run BGP and are multihomed today PI is probably your best choice. &amp;nbsp;If you are not then you need to weigh up the costs of renumbering against the costs of becoming multihomed.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The other cited method is as follows: Get yourself a PA assignment from your ISP to use for Internet communications. &amp;nbsp;Use ULA addressing (equivalent to RFC1918 in IPv4) for your internal communications. &amp;nbsp;If you need to change provider your internal services will remain available continuously during renumbering. &amp;nbsp; This may or may not answer your needs.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The other side of dual stack is the question of how the IPv4 is delivered.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Today you generally have public addresses for the outside of your firewall or router with RFC1918 inside. &amp;nbsp;In certain cases in the future you may actually find that you need to put RFC1918 space on the&amp;nbsp;outside too and get access to IPv4 Internet services via a second&amp;nbsp;Carrier grade NAT (CGN) within the service provider core. This is commonly known as NAT444. &amp;nbsp;This probably won't affect your enterprise sites, but is already common for mobile broadband and may start to become the case for home users on consumer broadband connections too.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
NAT444 generally assumes dual stack in the access network. &amp;nbsp;There are also options that have a single stack access network. &amp;nbsp;&lt;a href="http://tools.ietf.org/html/rfc5969"&gt;RFC5969&lt;/a&gt; &amp;nbsp;defines 6RD, which is a way of delivering dual stack to end users across an IPv4 network using techniques similar to 6to4. &amp;nbsp;The converse of this is &lt;a href="http://tools.ietf.org/html/draft-ietf-softwire-dual-stack-lite-06"&gt;DS-Lite&lt;/a&gt; which allows IPv4 access across a pure IPv6 access network.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you want to go single stack you will likely need &lt;a href="http://tools.ietf.org/html/draft-ietf-behave-v6v4-framework-10"&gt;NAT64&lt;/a&gt;. Read the framework carefully and be aware of the limitations.  NAT64 works pretty well when going from a v6 client to a v4 server, but can be troublesome in the other direction.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Other options open to you are use of ALGs (SIP SBC, Cacheing Web Proxy, use of a load balancing  appliance with dual stack on outside talking to back end servers using single protocol) but the application specific nature here is likely to be limiting.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If the fact that fundamental parts of the transition methodology are still only drafts rather than RFCs... well done. &amp;nbsp;Much of what is neede for Internet IPv6 use is perfectly workable but there are a lot of less mainstream elements of deployment that are not yet baked.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Be cautious about standards track progress and equipment support but do not be scared. &amp;nbsp;Many people are already using IPv6 on a daily basis without trouble.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The Internet is not over. &amp;nbsp;It is just beginning.&lt;br /&gt;
&lt;br /&gt;
P.S. &amp;nbsp;The fact that IPv6 does not have NAT is &lt;i&gt;not &lt;/i&gt;a security hole. &amp;nbsp;NAT provides obscurity, not security. &amp;nbsp;A stateful firewall with no NAT will provide much more security than NAPT with no firewalling. &amp;nbsp;This is all I am going to say on this.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8167953161231332005?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8167953161231332005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8167953161231332005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8167953161231332005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8167953161231332005'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/02/so-what-is-this-ipv6-thing-and-does-it.html' title='So what is this IPv6 thing and does it affect me?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3470816412845124034</id><published>2011-01-28T17:42:00.002Z</published><updated>2011-01-28T18:40:02.300Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='nat'/><category scheme='http://www.blogger.com/atom/ns#' term='provider independence'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><title type='text'>Fear and Loathing in IPv6</title><content type='html'>So I flew off a bit half-cocked on Twitter last night. &amp;nbsp;I read this post on&amp;nbsp;&lt;a href="http://etherealmind.com/importance-provider-independent-ipv6-addresses/"&gt;the importance of PI addressing&lt;/a&gt; from Greg Ferro.&lt;br /&gt;
&lt;br /&gt;
My reaction was classic head in the sand thinking. &amp;nbsp;"PI addressing for everyone? &amp;nbsp;Oh the humanity! Think of the border routers!".&lt;br /&gt;
&lt;br /&gt;
The main cause of this was the heading "Service Providers want to lock you in". &amp;nbsp;I work for&amp;nbsp;a service provider so my eyes immediately gravitated on this heading to find out what my&amp;nbsp;motivation are... &lt;br /&gt;
&lt;blockquote&gt;
It makes it harder to move to another provider because your project would need resources to&amp;nbsp;readdress a lot of equipment&lt;/blockquote&gt;
My reaction: This concern does not appear on my list of benefits to PA. &amp;nbsp;Any such method I use&amp;nbsp;to lock in my customers also restricts my ability to win new business because everyone else will&amp;nbsp;do it too. &amp;nbsp;Not saying other people don't think this way, but it is certainly not a globally&amp;nbsp;held belief in the service provider industry.&lt;br /&gt;
&lt;blockquote&gt;
It uses less routing table memory in their core networks and allows them to delay network&amp;nbsp;infrastructure upgrades.&lt;/blockquote&gt;
My Reaction: The memory used in the global table is only one concern and far from the biggest, RAM is cheap (although you wouldn't think it looking at the Cisco or Juniper price lists). &amp;nbsp;I won't deny that sometimes infrastructure upgrades are delayed to save money, but this is a very short term strategy. There is plenty of competition in the SP industry, and anyone who relies on sweating assets too far isn't going to be around long. &amp;nbsp;The main concern for me isn't saving CAPEX, it is that there are fundamental issues in the control plane protocols in use.&lt;br /&gt;
&lt;br /&gt;
The global routing table is already set to grow at an accelerating rate over the next few years as IPv4 depletion drives de-aggregation. &amp;nbsp;Doubling up this de-aggregation by mirroring (or&amp;nbsp;exceeding) it in the IPv6 table concurrently will lead to growth that it may not be possible to&amp;nbsp;address just by adding memory, and as the number of prefixes grow the complexity of filtering&amp;nbsp;and the risk of a single prefix that can cause global reachability issues also grow. &lt;br /&gt;
&lt;br /&gt;
Most of you probably already know that the global BGP routing infrastruture is starting to creak a little. &amp;nbsp;Rob Shakir of Cable and Wireless recently gave a good presentation on what is required for better &lt;a href="http://www.uknof.org.uk/uknof18/Shakir-BGP_Error_Handling.pdf"&gt;BGP error handling&lt;/a&gt; at the &lt;a href="http://www.uknof.org.uk/uknof18/"&gt;UKNOF18&lt;/a&gt; meeting. &amp;nbsp;(by the way, he is also soliciting feedback on &lt;a href="http://tools.ietf.org/html/draft-shakir-idr-ops-reqs-for-bgp-error-handling-00"&gt;his associated Internet Draft&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
More robust and scalable protocols are needed, and taking these protocols from current early drafts (I have &amp;nbsp;discussed some of the potential candidates such as LISP and ILNP on this blog before) to global deployment in production grade networks is something that will take years. &amp;nbsp;This needs to happen anyway but increasing the rate of IPv6 PI assignments alters the timetable.&lt;br /&gt;
&lt;br /&gt;
Enough defending my initial reaction though... &amp;nbsp;After exchanges with Greg on Twitter and Skype&amp;nbsp;and on more careful reflection I find that the main reason the post made me feel uncomfortable&amp;nbsp;is that it is pretty much spot on. After all, if not PI then what is the alternative?&lt;br /&gt;
&lt;br /&gt;
Today enterprise networks largely achieve provider independence and avoid renumbering by means&amp;nbsp;of NAT. &amp;nbsp;This does not exist in IPv6. &amp;nbsp;This has lead to numerous calls for NAT66 as a&amp;nbsp;requirement but as yet the IETF has stood firm against it.&lt;br /&gt;
&lt;br /&gt;
Pretty much everyone in the IETF wants to avoid NAT66 and retain end-to-end addressing as a&amp;nbsp;fundamental architectural requirement. &amp;nbsp;Many protocols rely on this principle and embed&amp;nbsp;addressing information within their protocol messages. &amp;nbsp;Technically there is a layer violation&amp;nbsp;here but the overloaded semantics of the IP address make such violations difficult to avoid. &amp;nbsp;In&amp;nbsp;order to allow such protocols to function across NAT the device performing the translation needs&amp;nbsp;to understand the protocol and be able to modify any embedded addresses the same way that it&amp;nbsp;modifies the outer header.&lt;br /&gt;
&lt;br /&gt;
In the IETF world where the endpoints have the responsibility to maintain communications state&amp;nbsp;and security, playing with packets on the wire like this is frowned upon. &amp;nbsp;It is not necessarily&amp;nbsp;the simple rewriting of the addresses in the outer header that is objected to - it is the&amp;nbsp;requirement of network layer devices in the path needing to understand application layer&amp;nbsp;protocols that they object to because it puts obstacles in the way of innovation.&lt;br /&gt;
&lt;br /&gt;
In the enterprise world much of the duty of state and security tracking is delegated from the&amp;nbsp;endpoint to border middleboxes such as firewalls. &amp;nbsp;The user *wants* his firewall to understand&amp;nbsp;all the protocols passing through it. &amp;nbsp;If the firewall doesn't understand a protocol in this&amp;nbsp;world it should be dropping it anyway. &amp;nbsp;NAT66 looks good here.&lt;br /&gt;
&lt;br /&gt;
This difference of viewpoint is at the heart of why any attempt to introduce NAT66 is strongly&amp;nbsp;opposed. From the IETF groups dealing with Internet communications, which are also the groups&amp;nbsp;with the responsibility for NAT in the IPv4 world, NAT is evil because it removes end-to-end&amp;nbsp;addressability and hampers the development of new services. &amp;nbsp;For the enterprise user it is a&amp;nbsp;useful tool as part of their operational toolkit today and losing it is painful.&lt;br /&gt;
&lt;br /&gt;
What if the enterprise community banded together and stood up at an IETF meeting with one voice&amp;nbsp;shouting "We demand NAT"? &amp;nbsp;The IETF is not the IEEE, the ITU or ISO, it is an open community working for&amp;nbsp;consensus and anyone is welcome be they operators, vendors, academics, enterprise network&amp;nbsp;admins, or just interested individuals. &amp;nbsp;None are turned away and the only requirement for&amp;nbsp;participation is that you take the time to join discussions, review documents, etc. &amp;nbsp;It would be&amp;nbsp;perfectly possible for a group of enterprise network engineers to band together and put their&amp;nbsp;point across and maybe even get a standard approved. &amp;nbsp;That wouldn't make it the right choice&amp;nbsp;though for the reasons given above. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, the danger of PI assignments is to the routing infrastructure and while it is&amp;nbsp;concerning, it is also a problem that is fairly well understood and work is already underway to&amp;nbsp;find alternatives. &amp;nbsp;As the IAB stated in &lt;a href="https://tools.ietf.org/html/rfc5902"&gt;RFC5902&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;
Concerning routing scalability, although there is no immediate&amp;nbsp;danger, routing scalability has been a longtime concern in&amp;nbsp;operational communities, and an effective and deployable solution&amp;nbsp;must be found. &amp;nbsp;We observe that the question at hand is not about&amp;nbsp;whether some parties can run NAT, but rather, whether the Internet as&amp;nbsp;a whole would be willing to rely on NAT to curtail the routing&amp;nbsp;&amp;nbsp;&amp;nbsp; scalability problem, and whether we have investigated all the&amp;nbsp;potential impacts of doing so to understand its cost on the overall&amp;nbsp;architecture. &amp;nbsp;If effective solutions can be deployed in time to&amp;nbsp;allow assigning provider-independent IPv6 addresses to all user&amp;nbsp;communities, the Internet can avoid the complexity and fragility and&amp;nbsp;other unforeseen problems introduced by NAT.&lt;/blockquote&gt;
I have posted before on the importance of standing back and looking at the big picture. &amp;nbsp;I should really have taken my own advice here and considered further before firing out tweets... &lt;br /&gt;
&lt;br /&gt;
I also need to bear in mind another fact that I have mentioned before, the Internet has always "only just worked". &amp;nbsp;Taking the infrastructure to the brink of failure is always what it takes&amp;nbsp;to get new developments deployed. &amp;nbsp;It is the reason that many people are only just thinking of&amp;nbsp;IPv6 migration now: until getting IPv4 is painful why change things? &amp;nbsp;It is a fundamental&amp;nbsp;outcome of the "if it ain't broke, don't fix it" principle.&lt;br /&gt;
&lt;br /&gt;
In conclusion I concur with Greg and with the IAB that for IPv6 deployments in enterprise&amp;nbsp;networks today PI is the only workable solution. &amp;nbsp;Admitting this still makes me feel &amp;nbsp;uncomfortable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3470816412845124034?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3470816412845124034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3470816412845124034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3470816412845124034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3470816412845124034'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/01/fear-and-loathing-in-ipv6.html' title='Fear and Loathing in IPv6'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-424870983996983044</id><published>2011-01-26T23:27:00.000Z</published><updated>2011-01-26T23:27:58.793Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>The IPocalypse is coming. But is it news?</title><content type='html'>Momentum seems to be gathering on IPv6 deployment. &amp;nbsp;Which is good given that we are likely to see the exhaustion of the IANA pool of IPv4 addresses any day. &lt;br /&gt;
&lt;br /&gt;
The thing is that the more mainstream news articles I see butchering the explanations (&lt;a href="http://www.foxnews.com/scitech/2011/01/26/internet-run-ip-addresses-happens-anyones-guess/?test=latestnews"&gt;this is a particularly bad one&lt;/a&gt;) the more I think "Why should the user care?". &amp;nbsp;The only constructive aspect of this media coverage is that it shames network admins into getting IPv6 transition plans into place. &amp;nbsp;One of the things I have always loved about networking is keeping up with the technological developments in the industry. &amp;nbsp;I like to think that I don't need to be shamed into action. &amp;nbsp;The fact that my peers may need this makes me despair sometimes.&lt;br /&gt;
&lt;br /&gt;
Frankly I see the fact that we are relying on media hysteria to drive development really reflects badly on us network administrators. &amp;nbsp;As a group we often seem to forget that our end-users do not think the way we do. &amp;nbsp;The vast majority of end users don't even really know what a bit is, let alone why using 128 of them is better than 32 of them. &amp;nbsp;Does a sales person need to know whether they are using DHCPv6 or SLAAC for their address assignment? &amp;nbsp;If you mention DS-Lite to them their first thought will be of the Nintendo console, not a transition technology.&lt;br /&gt;
&lt;br /&gt;
When my 9 year old son searches Google at home using IPv6 he gets exactly the same service as when he searches using IPv4 at school. &amp;nbsp; IPv6 doesn't make his searches more relevant or make completing his homework any simpler. &amp;nbsp;It is the same service to the end user, and if done right should be totally transparent.&lt;br /&gt;
&lt;br /&gt;
I was using telephones successfully for years before I learnt anything about the signalling methods used in the public telephony network. &amp;nbsp;Telesales people continue to bring in business to their employers every day without knowing if their calls are signalled using C7, H.248 or SIP; whether the codec used is PCM or CS-ACELP. &amp;nbsp;So why do we think that end users need to know the difference between IPv4 and IPv6?&lt;br /&gt;
&lt;br /&gt;
My opinion is that it is our job as network admins to make sure that things work the way that our users expect. &amp;nbsp;We do not need to expose anything below layer 7. &amp;nbsp;It is not our job to scare the users with tales of the IPocalypse or to try and force them to learn how the sausage is made when they have no desire to know.&lt;br /&gt;
&lt;br /&gt;
If you work in the Internet Service Provision market or develop networked applications and you don't have IPv6 deployed at least in a lab then you are behind the curve and need to pick up the pace. &amp;nbsp;If you are an enterprise network admin and you don't understand IPv6 then hit the books now so when you need to roll out you aren't taken by surprise. &amp;nbsp;Make sure all kit you buy is IPv6 ready and insist that you should pay no extra for IPv6 features. &amp;nbsp;You probably still have a year or two before you need to deploy anything. &lt;br /&gt;
&lt;br /&gt;
I am a firm believer in the "If it ain't broke, don't fix it" principle. &amp;nbsp;IPv4 is not broken today; however any network plan that doesn't include IPv6 as a major component within 2-5 years &lt;i&gt;is&lt;/i&gt; broken. &amp;nbsp;Fix it.&lt;br /&gt;
&lt;br /&gt;
I guess in summary I would like to issue a challenge: aim to deploy IPv6 without your users even needing to know. &amp;nbsp;Don't wait until you are shamed into action and don't spread the FUD.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-424870983996983044?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/424870983996983044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=424870983996983044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/424870983996983044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/424870983996983044'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/01/ipocalypse-is-coming-but-is-it-news.html' title='The IPocalypse is coming. But is it news?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-6291702059000037777</id><published>2011-01-11T08:03:00.000Z</published><updated>2011-01-11T08:03:25.685Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='fair-use'/><category scheme='http://www.blogger.com/atom/ns#' term='qos'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>"Fair" use?</title><content type='html'>&lt;br /&gt;
I have been neglecting the blog for a couple of months, which I intend to rectify when I get back on top of things, but I just couldn't let this one go.&lt;br /&gt;
&lt;br /&gt;
I recieved an SMS message from T-Mobile yesterday telling me that from the beginning of next month the fair-use data limit will be dropping to 500Mb. &amp;nbsp;Per month. &amp;nbsp;Previously owners of Android phones were on the "Internet on your phone plus" service which has a fair use of 3Gb per month.&lt;br /&gt;
&lt;br /&gt;
I have nothing against fair use policies to the right definition of fair; however this policy does not seem to use the right definition of fair.&lt;br /&gt;
&lt;br /&gt;
In my experience of running networks the 80:20 rule is usually a pretty good guideline. &amp;nbsp;If you look at your data consumption per user and set your fair use volume at around the 80th percentile then most of your users will be unaffected and it will just be the outliers that you need to either throttle or charge extra. &amp;nbsp;This seems fair to me.&lt;br /&gt;
&lt;br /&gt;
Of course one property of this model is that as data demand rises the 80th percentile figure will also rise. &amp;nbsp;It would be pretty unusual with this model for the fair use figure to drop, especially a drop of the magnitude that T-Mobile are making.&lt;br /&gt;
&lt;br /&gt;
Mobile data demand is growing exponentially and this is largely driven (much like the rest of the Internet) by video consumption. &amp;nbsp;What do T-Mobile have to say about this?&lt;br /&gt;
&lt;br /&gt;
"If you want to download, stream and watch video clips, save that stuff for your home broadband."&amp;nbsp;&lt;a href="http://support.t-mobile.co.uk/help-and-support/index?page=home&amp;amp;cat=DATA_CHANGES"&gt;[see here]&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Guess we won't be seeing always on media consumption devices such as the iPad on T-Mobile anytime soon...&lt;br /&gt;
&lt;br /&gt;
So who is T-Mobile's fair use data limit being fair too? &amp;nbsp;It seems to me that it is being fair to the network and to the shareholders by discriminating equally (but not fairly) against all users.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-6291702059000037777?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/6291702059000037777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=6291702059000037777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6291702059000037777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6291702059000037777'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2011/01/fair-use.html' title='&quot;Fair&quot; use?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2935673772823911308</id><published>2010-11-01T10:51:00.000Z</published><updated>2010-11-01T10:51:37.181Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='packet pushers'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='peering'/><category scheme='http://www.blogger.com/atom/ns#' term='internet draft'/><title type='text'>Advanced Exchange Topics</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/_gP9MmdQkD6U/TMc06lhKj3I/AAAAAAAABJw/WE1G8Y_mWHs/s1600/IMAG0401.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_gP9MmdQkD6U/TMc06lhKj3I/AAAAAAAABJw/WE1G8Y_mWHs/s200/IMAG0401.jpg" width="183" /&gt;&lt;/a&gt;&lt;/div&gt;
So I was a guest on the &lt;a href="http://packetpushers.net/"&gt;Packet Pushers&lt;/a&gt;&amp;nbsp;podcast again this week. &amp;nbsp;The topic was &lt;a href="http://packetpushers.net/show-24-internet-exchanges-peering/"&gt;Internet exchanges&lt;/a&gt; and Greg, myself and Stephen Wilcox covered topics such as what peering is, what exchanges are and some of the technical and non-technical benefits of joining an exchange.&lt;br /&gt;
&lt;br /&gt;
We briefly touched on the subject of multilateral peering using route servers. &amp;nbsp;This is an area that I find very interesting but was a bit too niche a subject to go into detail on during a general introduction to exchanges. &amp;nbsp;Today I noticed that a second revision of an Internet Draft aiming to provide a &lt;a href="http://tools.ietf.org/html/draft-jasinska-ix-bgp-route-server-01"&gt;specification of what Internet exchanges require in a route server&lt;/a&gt; was published. &amp;nbsp;The timing seems too coincidental here. &amp;nbsp;Seems like a subject hint to me...&lt;br /&gt;
&lt;br /&gt;
A quick aside before I dive into the main body of the post. Two of the authors of the draft – Elisa Jasinska and Nick Hilliard – both gave presentations at the 16th UK Network Operator's Forum (&lt;a href="http://www.uknof.org.uk/"&gt;UKNOF16&lt;/a&gt;) giving technical updates on the AMS-IX and INEX exchanges. &amp;nbsp;Both are interesting talks and available from the UKNOF site. &amp;nbsp;If you are involved with the UK networking industry I would highly recommend the UKNOF meetings, they have a lot of very interesting content. &amp;nbsp;I haven't managed to make it along to a meeting in person yet but I try to watch as much of the meeting as I can on the live stream.&lt;br /&gt;
&lt;br /&gt;
So route servers.&lt;br /&gt;
&lt;br /&gt;
The peering LAN at an Internet exchange is generally some sort of Ethernet broadcast domain. &amp;nbsp;The exact technology doesn't really matter. &amp;nbsp;This could be built using bog standard spanning tree, vendor specific ring technologies or newer technologies such as VPLS (and it won't be long until there exchanges out there built on TRILL or 802.1aq). &amp;nbsp;The exchange gets an allocation of IP address space (the RIRs have specific policies for allocating to exchanges, distinct from the LIR or PI direct allocation policies). &amp;nbsp;Each customer connected to the exchange will be assigned an address (most exchanges will carry IPv4 and IPv6 these days. &amp;nbsp;This may be on the same LAN or the families may be segregated into different VLANs).&lt;br /&gt;
&lt;br /&gt;
The traditional way to exchange routes over the exchange is for each individual to look at the members list, and to choose a number of names on the list that you exchange traffic with. &amp;nbsp;If the other party is amenable to peering then you move on and set up a BGP session using the IP address, AS number, AS-SET / route set, MD5 Secret, etc. &amp;nbsp;Once this session comes up you will be exchanging traffic with each other directly over the exchange fabric. &amp;nbsp;Job done. &amp;nbsp;Time to move on to the next peer.&lt;br /&gt;
&lt;br /&gt;
This works pretty well and it gives you a good level of control over your peers. &amp;nbsp;On some of the larger exchanges it can lead to you having hundreds of eBGP sessions on your peering router and keeping track of sessions going up and down can present quite a significant management overhead.&lt;br /&gt;
&lt;br /&gt;
What about if the exchange themselves were to install a router? You peer once with the exchange and get the benefit of only having one or two BGP sessions. &amp;nbsp;These sessions are stable and easy to manage. &amp;nbsp;If you operate a restrictive / selective peering policy then this is not necessarily that useful because route filtering can become complex. &amp;nbsp;Another downside of doing this is that the exchange AS ends up getting included in the AS Path of the routes (this is why DE-CIX ranks so highly in the &lt;a href="http://as-rank.caida.org/?mode1=as-rank-search&amp;amp;table-number-as=100&amp;amp;ranksort=number%20of%20ASes%20in%20customer%20cone&amp;amp;as=6695&amp;amp;mode0=as-info"&gt;CAIDA AS-Rank listings&lt;/a&gt;). &lt;br /&gt;
&lt;br /&gt;
So we begin to see that standard eBGP behaviour is not necessarily the best match.&lt;br /&gt;
&lt;br /&gt;
The nexthop information needs to be preserved (we only want the control plane crossing the exchange router - if we try and push the data / forwarding plane that way then things are going to get swamped very quickly).&lt;br /&gt;
&lt;br /&gt;
The AS_PATH needs to be preserved. &amp;nbsp;We don't want the exchange appearing here. &amp;nbsp;A discussion point that is currently open with the IX route server draft is how to handle the AS4_PATH. &amp;nbsp;If one peer has AS4 support but another doesn't the route server is going to intelligently handle the use of AS_TRANS. &amp;nbsp;AS_PATH preservation may require modification to the peer router as well as the route server. &amp;nbsp;If your BGP implementation verifies that the first AS in the path is the configured peer AS then it isn't going to like the advertisements coming from the route server. &lt;br /&gt;
&lt;br /&gt;
There should be support for distribution of routes intelligently based on community tagging. &amp;nbsp;If you give the users the chance to restrict distribution of their routes you will pick up people with selective routing policies. &amp;nbsp;If everyone has to announce their routes to everyone else then many people will just pass on the option.&amp;nbsp;This is another area where AS4 paths get interesting. &amp;nbsp;the standard ASN:COMM format of communities is well established; however extension of this to support AS4:COMM communities is less well supported.&lt;br /&gt;
&lt;br /&gt;
The route server needs to pass on all routes. &amp;nbsp;Not all routes will be allowed to pass to all peers. &amp;nbsp;If your best path to a destination has a restrictive distribution policy you will shadow routes which should be more widely distributed. &amp;nbsp;This could be managed through multiple RIBs or through holding &amp;nbsp;multiple active paths active in the RIB. &amp;nbsp;There is quite a bit of detail on ways to do this in the draft, I recommend reading the references there rather than me covering it here. &lt;br /&gt;
&lt;br /&gt;
The other really important point is the ability to scale. &amp;nbsp;The standard vendor supported bgp implementations such as Cisco, Juniper, etc. do not support route server operation. &amp;nbsp;Exchanges running route servers today are generally running open source solutions such as &lt;a href="http://www.quagga.net/"&gt;Quagga&lt;/a&gt;, &lt;a href="http://bird.network.cz/"&gt;Bird&lt;/a&gt; or &lt;a href="http://www.openbgpd.org/"&gt;OpenBGP&lt;/a&gt;. &amp;nbsp;In a lot of ways this has been very successful; however there has been a lot of pain along the way. &amp;nbsp;When you are running an exchange of the size of LINX or AMS-IX there are a lot of peers and a lot of routes. &amp;nbsp;This should be coupled with the fact that almost every message gets multiplied (an update from one peer then needs to be passed on to every other peer that can see that route). &amp;nbsp;Putting this on an open source, community developed platform and stressing areas of the code that few other people use was always going to be a bumpy ride. &amp;nbsp;But this is an example of where the not-for-profit member owned model of the exchanges works well. &amp;nbsp;When they hit these problems the various exchanges got together (through &lt;a href="http://www.euro-ix.net/"&gt;Euro-IX&lt;/a&gt;) and have funded development of these features. &amp;nbsp;This gives us more stable exchanges as well as more robust open source routing software. &amp;nbsp;Seems to be win-win to me.&lt;br /&gt;
&lt;br /&gt;
After all that deep tech, here are a couple of videos to end on.&lt;br /&gt;
&lt;br /&gt;
Euro-IX have put up a video on how the Internet and peering works:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="295" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/a5837LcDHfE?fs=1&amp;amp;hl=en_GB"&gt;


&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;


&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;


&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/a5837LcDHfE?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Personally I prefer this explanation:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="295" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zi8VTeDHjcM?fs=1&amp;amp;hl=en_GB"&gt;


&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;


&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;


&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/zi8VTeDHjcM?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2935673772823911308?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2935673772823911308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2935673772823911308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2935673772823911308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2935673772823911308'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/10/advanced-exchange-topics.html' title='Advanced Exchange Topics'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gP9MmdQkD6U/TMc06lhKj3I/AAAAAAAABJw/WE1G8Y_mWHs/s72-c/IMAG0401.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3302859255799806971</id><published>2010-10-21T23:41:00.000+01:00</published><updated>2010-10-21T23:41:06.763+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='dwdm'/><category scheme='http://www.blogger.com/atom/ns#' term='fibre'/><title type='text'>Why Mobile is Different</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://imgs.xkcd.com/comics/laser_pointer.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://imgs.xkcd.com/comics/laser_pointer.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Network neutrality is a topic I have discussed a number of times on&amp;nbsp;this blog. &amp;nbsp;Generally I don't have a problem reconciling my belief in&amp;nbsp;a free and open Internet and commercial concerns that come from the&amp;nbsp;fact that I earn my wage from the proceeds of selling access to said&amp;nbsp;Internet. &amp;nbsp;I think that the commercial concerns of an ISP or Telco are&amp;nbsp;actually helped by the phenominal growth of the 'Net.&lt;br /&gt;
&lt;br /&gt;
These days most of us access the Internet in one form or another using&amp;nbsp;our phones and when we don't get the same level of freedom that we do&amp;nbsp;on our wired connections we cry foul. &amp;nbsp;Is it fair for us to do so?&lt;br /&gt;
&lt;br /&gt;
In this post I will discuss some of the differences between mobile and&amp;nbsp;fixed data and some of the high levels physics involved. I will focus&amp;nbsp;on the types of optical networks used at the core of todays network.&amp;nbsp;A similar comparison between copper and wireless is left as an&amp;nbsp;exercise for the reader.&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I think that the fundamental differences between fixed and mobile&amp;nbsp;essentially mean that unlimited mobile data is unsustainable.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lets start off with the similarities and differences between the way&amp;nbsp;that these technologies encode data. &amp;nbsp;The light and radio waves used&amp;nbsp;are both forms of electromagnetic radiation; however the transmitters&amp;nbsp;in an optical network component and in our mobile phones are&amp;nbsp;fundamentally different.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Firstly there is directionality.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A mobile phone transmitter sends data out in all directions&amp;nbsp;simultaneously. &amp;nbsp;This lack of directionality all phones in an area&amp;nbsp;will have overlapping signals which limits the bandwidth available to&amp;nbsp;each device. &amp;nbsp;In some cases the signal can bounce off of obstacles and&amp;nbsp;interfere with itself leading to areas with particularly high or low&amp;nbsp;levels of signal. &amp;nbsp;When transmitting without direction, the amount of&amp;nbsp;power at the receiver varies &amp;nbsp;according to an inverse cube law. &amp;nbsp;This&amp;nbsp;means that a large number of towers are required to keep the power&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
requirements of the handset low.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Optical transmitters in fixed line devices light up fibres using&amp;nbsp;lasers. &amp;nbsp;The fundamental properties of a laser are that the signal&amp;nbsp;generated is coherent (meaning it has a very precise and constant&amp;nbsp;frequency) and is also highly directional. &amp;nbsp;These properties together&amp;nbsp;mean that you can pack a number of signals together within a pretty&amp;nbsp;narrow frequency band. &amp;nbsp;Signals also travel a lot further before they&amp;nbsp;attenuate. &amp;nbsp;Another benefit of fibre is that the individual fibres are&amp;nbsp;very small - even with a protective sleeve only the size of a human&amp;nbsp;hair - signals with the same frequency on different fibres will never&amp;nbsp;interfere meaning that a huge amount of bandwidth can be concentrated&amp;nbsp;into a very small space.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lets consider the medium through which the signal propagates next.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Optical fibre is a relatively recent invention and is the result of a&amp;nbsp;huge amount of scientific research. &amp;nbsp;Many types of fibre exist and&amp;nbsp;they can be structurally modified at the molecular level to provide an&amp;nbsp;ideal medium for a specific frequency of light. &amp;nbsp;Fibres are available&amp;nbsp;that can limit the attenuation and dispersion of the signal. &amp;nbsp;Because&amp;nbsp;of this modern DWDM systems can put 160 signals with frequencies&amp;nbsp;differing by 25GHz on a single fibre.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The medium for propagation of mobile data signals is the atmosphere.&amp;nbsp;There isn't much you can do to modify the properties or composition of&amp;nbsp;the atmosphere. &amp;nbsp;People tend to get upset if you try.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Strike two for fibre. &amp;nbsp;Materials science is an active research area&amp;nbsp;and I am sure we have not seen the ultimate fibre optic cable. &amp;nbsp;We can&amp;nbsp;play with encoding types to compensate for attenuation in the&amp;nbsp;atmosphere but we cannot fundamentally change things as we can on&amp;nbsp;fibre.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The theoretical amount of data you can encode on a wave is &amp;nbsp;related to the&amp;nbsp;frequency of that wave (I am over simplifying here&amp;nbsp;c.f. &lt;a href="http://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem"&gt;Nyquist - Shannon sampling theorem&lt;/a&gt;&amp;nbsp;for more info)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Mobile phone signals are generally in the 800MHz-2.2GHz range.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Optical signals on DWDM fibre systems are generally in the 190-200THz range.&amp;nbsp;The application to the discussion at hand is pretty obvious.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Mobile has distinct benefits. &amp;nbsp;I am typing this while connected by&amp;nbsp;wifi and have been checking email on my phone simultaneously. &amp;nbsp;When it&amp;nbsp;comes to data transfer speeds though there are physical limitations&amp;nbsp;with RF frequency signals in the atmosphere that will always restrict&amp;nbsp;supply. &amp;nbsp;Basic economics tells us when demand is high and supply is&amp;nbsp;limited the price goes up. &amp;nbsp;If we want to keep our mobile affordable&amp;nbsp;and accessible some other method of removing demand will need to be&amp;nbsp;found and the obvious answer here is to limit functionality.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I don't like this conclusion but it seems unavoidable. &amp;nbsp;As a great&amp;nbsp;engineer once said "Ye cannae change the laws of physics cap'n!". &amp;nbsp;If&amp;nbsp;the growth trends we are currently seeing continue then it won't be&amp;nbsp;long until we hit a ceiling. &amp;nbsp;I might not like the thought of a wired&amp;nbsp;Internet and wireless schminternet but I find it hard to see another&amp;nbsp;alternative.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3302859255799806971?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3302859255799806971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3302859255799806971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3302859255799806971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3302859255799806971'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/10/why-mobile-is-different.html' title='Why Mobile is Different'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-6117814421563821781</id><published>2010-10-11T23:18:00.000+01:00</published><updated>2010-10-11T23:18:32.430+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ethernet'/><category scheme='http://www.blogger.com/atom/ns#' term='juniper'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='vpls'/><category scheme='http://www.blogger.com/atom/ns#' term='internet draft'/><title type='text'>Weaving a Better Fabric</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_gP9MmdQkD6U/TLN2rsAWOSI/AAAAAAAABJo/w7fvRqtibkI/s1600/IMAG0385.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="190" src="http://2.bp.blogspot.com/_gP9MmdQkD6U/TLN2rsAWOSI/AAAAAAAABJo/w7fvRqtibkI/s320/IMAG0385.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
So last week I had the opportunity to attend Juniper Network's J-Tech Club event. &amp;nbsp;An event where engineers from Juniper customers are invited to get together and drink the Kool-Aid. &amp;nbsp;Technical presentations on new and future developments from the guys from Sunnyvale.&lt;br /&gt;
&lt;br /&gt;
Unfortunately some of the most interesting content was under NDA so I can't write about it here yet. &amp;nbsp;The keynote presentation was a presentation on an Internet Draft document though so I consider that fair game.&lt;br /&gt;
&lt;br /&gt;
Distinguished engineer Rahul Aggarwal has been heavily involved in the development of MPLS technologies such as Traffic engineering, MPLS OAM and P2MP LSPs. &amp;nbsp;Recently he has been looking at a better way of doing wide area ethernet fabrics; namely a replacement for VPLS that distributes MAC addresses through BGP rather than using independent local data-plane learning on each node. &amp;nbsp;This technology is outlined in&amp;nbsp;&lt;a href="https://datatracker.ietf.org/doc/draft-raggarwa-mac-vpn/"&gt;https://datatracker.ietf.org/doc/draft-raggarwa-mac-vpn/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The presentation was interrupted a number of times and I think it is fair to say that many people in the room were dubious at the proposition. &amp;nbsp;If there is any protocol I would trust to distribute a table of destinations in the 10^5 order of magnitude it would be BGP; however just because something might be possible doesn't make it a good idea. &amp;nbsp;As I said to Rahul during the presentation - many of the methods used to manage routing in large IP networks do not apply to MAC addresses as there is no way to aggregate them. &amp;nbsp;And putting ACLs in place is also a problem. &amp;nbsp;You can list all MAC addresses individually or you can restrict to certain manufacturer OUIs but that is about it.&lt;br /&gt;
&lt;br /&gt;
I have read through the draft. &amp;nbsp;I think it could probably be made to work but am still not convinced. &amp;nbsp;Here are a few thoughts I have on the draft:&lt;br /&gt;
&lt;br /&gt;
First off I will include the terminology section of the draft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&amp;nbsp;MES: MPLS Edge Switch&lt;br class="kix-line-break" /&gt; &amp;nbsp;&amp;nbsp;CE: Host or router or switch &lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;   MVI: MAC VPN Instance&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;  &amp;nbsp;&amp;nbsp;ESI: Ethernet segment identifier &lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Another term used frequently in the document is "Ethernet Tag".  My understanding is that in most cases this will equate to an 802.1Q VLAN.  I am not sure what else it may equate to...  S-TAG perhaps?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Before addresses can be advertised into the network, they need to be detected somehow.  The draft suggests a couple of methods to do the initial MAC discovery.  Standard data-plane learning and modified data-plane methods (e.g. a modified version of LLDP allowing a device to advertise reachable MACs).  The second is an interesting idea and could get around some of the convergence time issues.  I trust BGP to find a stable topology eventually, but I don't expect it to do it quickly.  Section 9.1 only seems to allow support of control plane learning if the CE is a host.  This seems to be a bit limiting.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;There are some interesting restrictions around route distinguishers and route targets.  RDs need to be type 1 (i.e. using the loopback IP of the MES).  RTs mandate the use of 2-octet ASN based communities.  Not sure on the recommendation for networks with a 4-octet ASN.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The draft allows ethernet segments to be multi-homed and I have to admit that the ESI concept required to do this seems massively complicated.  I probably just need to re-read things a few more times though.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;The split horizon rules seem to be the same as the &lt;a href="http://perlmonkey.blogspot.com/2010/08/travelling-in-strange-directions-or-is.html"&gt;potentally flawed&lt;/a&gt; rules in RFC4761; however the announcements of MACs via BGP stop the network from stabilising on a non-optimal topology.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span id="internal-source-marker_0.33626689785160124" style="background-color: transparent; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;The final concern I have is regarding a bit of a corner case which is a bit of a hobby-horse for me.  The same MAC being present in different locations for different VLANs.  When the customer is in control of the network this isn't uncommon.  The usual cause is the use of HSRP or VRRP.  My first concern is that there are references to doing a MAC lookup if there is no Ethernet Tag assocated with the MPLS label.  As long as the MAC lookup referred to is a &amp;lt;VLAN ID, DST MAC&amp;gt; tuple this shouldn't be an issue.  Similarly, in section 16 on MAC moves the logic should be that if a MAC update being seen on an &amp;lt;ESI, Ethernet Tag&amp;gt; tuple where the ESI differs from the existing value known for that &amp;lt;MAC, VLAN&amp;gt; tuple then the MAC move process should be triggered.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;Will this work for large datacentre networks with hundreds of thousands of MACs?  I have my doubts.  I do think that this is potentially a more stable solution than VPLS for a network with thousands of MACs though.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-6117814421563821781?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/6117814421563821781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=6117814421563821781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6117814421563821781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6117814421563821781'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/10/weaving-better-fabric.html' title='Weaving a Better Fabric'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gP9MmdQkD6U/TLN2rsAWOSI/AAAAAAAABJo/w7fvRqtibkI/s72-c/IMAG0385.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2680754274674916254</id><published>2010-10-06T00:10:00.000+01:00</published><updated>2010-10-06T00:10:05.564+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualisation'/><category scheme='http://www.blogger.com/atom/ns#' term='nanog'/><category scheme='http://www.blogger.com/atom/ns#' term='juniper'/><category scheme='http://www.blogger.com/atom/ns#' term='switching'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><title type='text'>Centralising the Control Plane</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_gP9MmdQkD6U/TKuUvdTbq2I/AAAAAAAABJY/FrZdlObtwxE/s1600/IMAG0354.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="119" src="http://2.bp.blogspot.com/_gP9MmdQkD6U/TKuUvdTbq2I/AAAAAAAABJY/FrZdlObtwxE/s200/IMAG0354.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
So I have been looking at some of the presentation files from &lt;a href="http://www.nanog.org/meetings/nanog50/agenda.php"&gt;NANOG 50&lt;/a&gt; and there are some real Gems in there. &lt;br /&gt;
&lt;br /&gt;
First off a simple reference paper. &amp;nbsp;The first day is for tutorials but sometimes there are some great general purpose sessions. &amp;nbsp;The presentation by Philip Smith from Cisco on&amp;nbsp;&lt;a href="http://www.nanog.org/meetings/nanog50/presentations/Sunday/NANOG50.Talk33.NANOG50-BGP-Techniques.pdf"&gt;Service Provider BGP&lt;/a&gt;&amp;nbsp;certainly falls in this category.&lt;br /&gt;
&lt;br /&gt;
None of the material is going to be new to most people involved in managing the backbone of a medium to large ISP network... but for people that haven't had that chance it is a great summary of best practices for building your BGP network (or trying to figure out why someone else did it that way). &amp;nbsp;I know I have a few readers here who are interested in service provider networks. &amp;nbsp;I can confirm that I have seen and used almost all of the design techniques in this document in a number of production networks. &lt;br /&gt;
&lt;br /&gt;
Another thread I have seen in the presentations is to do with &lt;a href="http://www.openflowswitch.org/"&gt;OpenFlow&lt;/a&gt;. &amp;nbsp;First we have Tom Scholl from nLayer presenting on building&amp;nbsp;&lt;a href="http://www.nanog.org/meetings/nanog50/presentations/Monday/NANOG50.Talk34.Scholl-Talk34.cheaper.pdf"&gt;Scalable Peering Routers&lt;/a&gt;. &amp;nbsp;There are many cases where budget top of rack hardware is admirably suited for applications like this. &amp;nbsp;The main stumbling block is the software. &amp;nbsp;Tom does a good job of outlining the pitfalls and where things don't quite work. &amp;nbsp;The more conspiracy-theory minded folks might even think that the vendors are deliberately crippling the software in their low end gear in order to force us to buy more expensive kit... &amp;nbsp;surely not...&lt;br /&gt;
&lt;br /&gt;
Of course if these theories are well grounded then we should expect the major vendors to avoid OpenFlow like the plague. &amp;nbsp;The ability to put your own innovative features into the platform without waiting for the new software release? (and possibly more compelling is being able to do it without having to pay a license for the right to use).&lt;br /&gt;
&lt;br /&gt;
Network vendors have traditionally used a monolithic model with all software coming from them. &amp;nbsp;Juniper have been making steps recently to allow SDK access to JunOS in order to allow approved apps to run on the platform (the apple model). &amp;nbsp;If OpenFlow takes off we could have fully open control plane logic and the ability to get in there and fix what is broken or build new protocols ourselves. &amp;nbsp;This sounds fantastic to me. &amp;nbsp;Especially considering a project recently that has heavy MPLS control plane virtualisation that just isn't available in any of the major operating systems.&lt;br /&gt;
&lt;br /&gt;
Which feeds into the next NANOG presentation I wanted to mention: Google's&amp;nbsp;&lt;a href="http://www.nanog.org/meetings/nanog50/presentations/Monday/NANOG50.Talk17.swhyte_Opensource_LSR_Presentation.pdf"&gt;Open Source LSR&lt;/a&gt;. &amp;nbsp;Generic MPLS support is pretty lacking in the open source router space thus far. &amp;nbsp;This project does a lot to address that. &amp;nbsp;There are still a few things that are missing that mean that I can't really answer my own problem with this. It is getting close enough for me to consider pitching in myself... &amp;nbsp;although I would need to find the time to get familiar with the code and also to dust off my coding skills before doing anything on those lines...&lt;br /&gt;
&lt;br /&gt;
I am very interested by OpenFlow. &amp;nbsp;Looking at the site they seem to be missing a virtualisation type though. &amp;nbsp;They have a model with one controller per device... &amp;nbsp;Then they have a model with a controller managing mulitple devices. &amp;nbsp;My particular interest is in a large number of controllers managing a single device. &amp;nbsp;I will post again on this after reading more, I am sure.&lt;br /&gt;
&lt;br /&gt;
On the subject of "one controller - many devices", this is a technique that I am generally not too fond of; however that is because most times I have seen it suggested it has been meant to&amp;nbsp;propagate old traditional telco connection oriented paradigms (e.g. MPLS-TP). &amp;nbsp;I am generally a fan of the distributed model with each node making its own decisions. &amp;nbsp;In my experience the larger the system the more chance of something breaking. &amp;nbsp;Centralising the control plane gives you a fewer larger systems. &amp;nbsp;I would rather put time into automating the management of a large number of nodes, each with a smaller impact radius, than into consolidation into large boxes each with the capability of taking down a greater proportion of the network.&lt;br /&gt;
&lt;br /&gt;
There are a lot of factors in these decisions though. &amp;nbsp;This is where my multi-controller desire comes in. &amp;nbsp;Imagine a big chassis switch with a number customers. &amp;nbsp;You run a controller per customer in a VM, each of which has control of a couple of ports (or perhaps down to logical port level) &amp;nbsp;You have the hardware resilience, redundant power, etc of the chassis hardware combined with the knowledge of full control plane isolation. &amp;nbsp;A bug with Cust-A's NAPT won't take down Cust-B's OSPF, in fact Cust-B doesn't even have the NAT module loaded.&lt;br /&gt;
&lt;br /&gt;
Juniper already have a limited version of this on the T-series with the JCS platform; however the JunOS limit of 16 logical systems per physical RE is a pretty low number and prevents you bringing virtualisation to smaller customers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2680754274674916254?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2680754274674916254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2680754274674916254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2680754274674916254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2680754274674916254'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/10/centralising-control-plane.html' title='Centralising the Control Plane'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gP9MmdQkD6U/TKuUvdTbq2I/AAAAAAAABJY/FrZdlObtwxE/s72-c/IMAG0354.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-6812389443810829406</id><published>2010-09-28T21:18:00.000+01:00</published><updated>2010-09-28T21:18:54.989+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='googletv'/><category scheme='http://www.blogger.com/atom/ns#' term='froyo'/><category scheme='http://www.blogger.com/atom/ns#' term='listen'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Is anyone listening?</title><content type='html'>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_gP9MmdQkD6U/TKJF-TRR0tI/AAAAAAAABJA/2eJnCcsdIXE/s1600/Three_wise_monkeys_figure.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/_gP9MmdQkD6U/TKJF-TRR0tI/AAAAAAAABJA/2eJnCcsdIXE/s320/Three_wise_monkeys_figure.JPG" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Public domain image from Wikipedia page for "&lt;a href="http://en.wikipedia.org/wiki/Three_wise_monkeys"&gt;Three Wise Monkeys&lt;/a&gt;"&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Been a while since I posted anything on Android. &amp;nbsp;Have to say that generally I am loving the Froyo update that finally made its way to my T-Mobile HTC Desire a couple of weeks back. &amp;nbsp;I have a couple of complaints / annoyances though...&lt;br /&gt;
&lt;br /&gt;
Firstly there is the fact it took so long. &amp;nbsp;HTC Sense has a couple of nice features but nothing I can see that is worth an additional 3-4 months delay. &amp;nbsp;Will these vendors and the carriers ever give up on this crap? &amp;nbsp;Please?&lt;br /&gt;
&lt;br /&gt;
Secondly I am seeing some odd app misbehaviors that are cleared by a reboot of the phone. &amp;nbsp;There doesn't appear to be excessive memory usage so it isn't a memory leak. &amp;nbsp;The most annoying is Swype deciding that it isn't going to interpret any gestures. &amp;nbsp;Swype is a fantastic input method, but without gestures it makes a pretty third rate keyboard.&lt;br /&gt;
&lt;br /&gt;
The HTC keyboard has enabled speech recognition, which is cool; I can't quite bring myself to dictate notes while on a crowded train though (which seems to be where I spend a lot of my time).&lt;br /&gt;
&lt;br /&gt;
The last, and currently most frustrating is the radio silence over the Google Listen App. &amp;nbsp;I love this app. &amp;nbsp;It is a good podcasting app that with a little work could be great. &amp;nbsp;They were making regular updates up until the announcement of Google TV at the I/O conference. &amp;nbsp;The keynote showed Listen being used to deliver video podcasts to the TV. &amp;nbsp;Back in May I commented on the listen-discuss mailing list:&lt;br /&gt;
&lt;blockquote&gt;
&lt;div style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;
[...] the recent I/O keynote for Google TV showed listen being used for delivering Video podcasts to your television.&lt;/div&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;div style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;
I hope that Listen doesn't fragment and this ability comes to phones too when it becomes available.&lt;/div&gt;
&lt;/blockquote&gt;
Unfortunately it seems that not only has video support not made it to the phone, there have been no further updates to the audio capabilities either. &amp;nbsp;The developers haven't been seen on the list at all and the bug list seems to be growing as new phones are upgraded to Froyo.&lt;br /&gt;
&lt;br /&gt;
Hopefully when Google TV launches Listen will start getting updates again. &amp;nbsp;I am not holding my breath though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-6812389443810829406?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/6812389443810829406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=6812389443810829406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6812389443810829406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6812389443810829406'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/09/is-anyone-listening.html' title='Is anyone listening?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gP9MmdQkD6U/TKJF-TRR0tI/AAAAAAAABJA/2eJnCcsdIXE/s72-c/Three_wise_monkeys_figure.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1857876366941169844</id><published>2010-09-23T21:26:00.000+01:00</published><updated>2010-09-23T21:26:43.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hci'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='keyboards'/><category scheme='http://www.blogger.com/atom/ns#' term='experiment'/><title type='text'>Dvorak: An Interlude</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_gP9MmdQkD6U/TJujSm2uJ9I/AAAAAAAABIs/VNOzHYZq-tU/s1600/IMAG0359.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_gP9MmdQkD6U/TJujSm2uJ9I/AAAAAAAABIs/VNOzHYZq-tU/s320/IMAG0359.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I'm taking a little break from my dives into protocol development for a couple of weeks.&lt;br /&gt;
&lt;br /&gt;
I have decided for the sake of my hands (and to be honest another of my random whims) to make the switch to the &lt;a href="http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard"&gt;Dvorak keyboard layout.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
History lesson. &amp;nbsp;QWERTY came about through a combination of engineering and marketing requirements. &amp;nbsp;Ergonomics did not factor into it at all. The primary concern was avoiding mechanical jams while typing. &amp;nbsp;The letters where placed to avoid limitations with a &lt;a href="http://home.earthlink.net/~dcrehr/whyqwert.html"&gt;specific typewriter design&lt;/a&gt; not used since the 19th century. &amp;nbsp;The engineering based layout was then modified to make it easy for the salesman to find the letters required to type the word 'typewriter' all on the top row.&lt;br /&gt;
&lt;br /&gt;
The fact that people can learn to type at speed using QWERTY is a testament to human adaptability and has nothing to do with the layout itself.&lt;br /&gt;
&lt;br /&gt;
In the early years of the 20th Century Dr. August Dvorak and Dr. William Dealy investigated the effect of QWERTY and concluded that by applying some simple principles there were a number of improvements that could be made in order to make touch typing easier to learn, less prone to errors and faster. &amp;nbsp;The Dvorak layout was patented in 1936 but at the time it was seen as too expensive to switch from QWERTY and it didn't take off.&lt;br /&gt;
&lt;br /&gt;
When computer use picked up in popularity the ideas of Dvorak started to gain a little traction due to the ability to switch layouts without expensive mechanical changes. &amp;nbsp;The theory was the same, but some of the keys changed due to additional keys and changes in usage. &amp;nbsp;Dvorak was published as an ANSI standard in 1982 giving it some recognition.&lt;br /&gt;
&lt;br /&gt;
More recently another alternate layout has appeared called &lt;a href="http://mkweb.bcgsc.ca/carpalx/?colemak"&gt;Colemak&lt;/a&gt;. Colemak has some impressive stats and has more keys in common with QWERTY making the transition easier. &amp;nbsp;I was tempted by this; however the greater levels of support for Dvorak in standard OS builds won me over in the end.&lt;br /&gt;
&lt;br /&gt;
So having made the decision to switch I have been typing exclusively in Dvorak while at home for the past week. &amp;nbsp;I have been using a number of excellent tools including, &lt;a href="http://tux4kids.alioth.debian.org/tuxtyping.php"&gt;Tuxtype&lt;/a&gt;; Dvorak7min (available in all good Debian/Ubuntu repositories); &lt;a href="http://klavaro.sourceforge.net/en/index.html"&gt;Klavaro&lt;/a&gt;; &lt;a href="http://www.keyhero.com/"&gt;keyhero&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I am practising for a couple of hours a night and my speed is approaching 20wpm. &amp;nbsp;Low compared to my QWERTY speed but gaining quickly. &amp;nbsp;I am almost ready to switch during my day job.&lt;br /&gt;
&lt;br /&gt;
Physically I am relying on memory and don't have Dvorak keycaps. &amp;nbsp;I have a cheap keyboard with switched caps but am not actively using it. &amp;nbsp;I am considering some stick on letters as well.&lt;br /&gt;
&lt;br /&gt;
The keyswap option is a fun simple project. &amp;nbsp;One of the benefits of a flat non-ergonomic model is that you can move the keys without having to worry about the keys coming out level. &amp;nbsp;The model I used had keyed home keys, which was a pain. &amp;nbsp;I had to leave F and J in place which gave me nowhere to put U and H. &amp;nbsp;I just scratched off the letters on those keys. &amp;nbsp;I probably could have done something more fancy but was more concerned with getting it done quick.&lt;br /&gt;
&lt;br /&gt;
Being in the UK poses a couple of issues too. &amp;nbsp;Punctuation and even key positions are slightly modified. &amp;nbsp;I have gone for a simple variation with " and @ switched and the other usual UK oddities.&lt;br /&gt;
&lt;br /&gt;
So far I am favouring moving shortcuts to the new positions. &amp;nbsp;I may break down and remap hjkl to dhtn in vi though. Having J &amp;amp; K on one hand and H &amp;amp; L on the other is a little weird.&lt;br /&gt;
&lt;br /&gt;
An excellent reference site I have been using is:&amp;nbsp;&lt;a href="http://dvorak.mwbrooks.com/"&gt;http://dvorak.mwbrooks.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And finally a link to my current performance on Key Hero:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.keyhero.com/profile/chewtoy?ba" title="chewtoy's typing test profile"&gt;&lt;img alt="chewtoy's typing test WPM" src="http://static.keyhero.com/badges/8/typing-test-2540.png" style="vertical-align: middle;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
All in all I think this will be a successful experiment. &amp;nbsp;It is good to mix things up from time to time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1857876366941169844?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1857876366941169844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1857876366941169844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1857876366941169844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1857876366941169844'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/09/dvorak-interlude.html' title='Dvorak: An Interlude'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gP9MmdQkD6U/TJujSm2uJ9I/AAAAAAAABIs/VNOzHYZq-tU/s72-c/IMAG0359.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2915111528712789023</id><published>2010-09-14T22:52:00.001+01:00</published><updated>2010-09-14T22:52:56.435+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scaling'/><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>True Saviour or Hyperbole?</title><content type='html'>&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;a href="http://www.nature.com/ncomms/journal/v1/n6/full/ncomms1063.html"&gt;An interesting paper&lt;/a&gt;&amp;nbsp;was published in Nature recently looking at the&amp;nbsp;mathematical properties of the AS connection graph of the Internet and&amp;nbsp;whether this could be used to save the network from collapse.&lt;/div&gt;
&lt;br /&gt;
I am going to take a brief look at the paper and its conclusions,&amp;nbsp;comparing what is actually in the paper to some of the exaggerated&amp;nbsp;claims that have been made on other websites. &amp;nbsp;There seem to be some&amp;nbsp;first glance similarities to some of the desired properties of the ALT&amp;nbsp;overlay mapping network. &amp;nbsp;I also have some comments on whether the&amp;nbsp;connectivity metrics chosen are the best and have a couple of ideas&amp;nbsp;about variations I would like to see investigated.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Overall I think this is an interesting start on some important&amp;nbsp;research, but I do not feel that it is deserving of a lot of the "This&amp;nbsp;map will save the Internet" hype that it has been getting.&lt;br /&gt;
&lt;br /&gt;
The source paper makes some fairly ambitious claims. &amp;nbsp;It expands on&amp;nbsp;the authors' previous works on greedy routing within hypothetical&amp;nbsp;networks in hyperbolic space and applies it to the Internet. &amp;nbsp;I won't&amp;nbsp;try to explain the way that they map the Internet geography into&amp;nbsp;hyperbolic space (I'll leave that to them). &amp;nbsp;Greedy routing is&lt;br /&gt;
essentially "fire it off in the general direction of the destination". &amp;nbsp;This sort of routing can be dangerous when applied to current&amp;nbsp;production networks, if you hit a dead end and have to back up you&amp;nbsp;tend to end up looping until your TTL expires. &amp;nbsp;In this paper the&amp;nbsp;authors go into a lot of detail of how they perform the mapping but&lt;br /&gt;
they don't actually go into the practicalities of building a routing&amp;nbsp;architecture using these principles. &amp;nbsp;For this reason the billing of&amp;nbsp;the paper in various online locations as "&lt;a href="http://www.theregister.co.uk/2010/09/10/hyperbolic_map_to_save_the_net/"&gt;saving the Internet from&amp;nbsp;collapse&lt;/a&gt;" or as "&lt;a href="http://www.electronicsweekly.com/Articles/2010/09/14/49433/Internet-instability-foiled-by-hyperbolic-maths.htm"&gt;foiling internet instability&lt;/a&gt;" are over-egging the pudding a little. &amp;nbsp;Something about the paper that is very encouraging is that the&amp;nbsp;expected parameters of the model are extremely close to the actual&amp;nbsp;observed parameters of the public Internet. &amp;nbsp;Having consistent&amp;nbsp;empirical models for network connectivity is a definite move forward&amp;nbsp;from traditional "rule-of-thumb" methods of interdomain traffic&amp;nbsp;planning. &amp;nbsp;The authors are planning further papers on the&amp;nbsp;practicalities and I am looking forward to them but for the moment&amp;nbsp;this is just an interesting starting gambit.&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
When looking at the map and thinking about how this could be applied&amp;nbsp;practically my mind immediately went to LISPs ALT Alternative&amp;nbsp;topology. &amp;nbsp;As I explained in a &lt;a href="http://perlmonkey.blogspot.com/2010/08/alternative-topology.html"&gt;previous post&lt;/a&gt;, the ALT is essentially&amp;nbsp;an overlay network which is organised to maximise the ability to&amp;nbsp;aggregate prefixes. &amp;nbsp;Choosing who to put at the root of the ALT was&amp;nbsp;one of the main concerns that I had with using this technology in a&amp;nbsp;production environment. &amp;nbsp;If the ALT hierarchy were to be linked to&amp;nbsp;efforts to maintain an ongoing geometric map of the Internet then this&amp;nbsp;seems to be an ideal way to choose the nodes with greatest degree of&amp;nbsp;aggregation. &amp;nbsp;Those nodes closest to the centre of the map (i.e. those&amp;nbsp;with the greatest degree of connectivity) are likely to also be the&amp;nbsp;ones with the greatest capacity to aggregate. &amp;nbsp;Although this could&amp;nbsp;also lead to further concreting of the importance of the traditional&amp;nbsp;"Tier-One" carriers; a club that is already nearly impossible to join. &amp;nbsp;It is also interesting to note that the&amp;nbsp;hyperbolic map does not tend to put the national incumbents a&amp;nbsp;priviledged position. &amp;nbsp;Traditionally efforts to aggregate the Internet&amp;nbsp;have been based on geographic mapping rather than geometric mapping. &amp;nbsp;A geometric topography is likely to be a lot more practical in a&amp;nbsp;decentralised network like the Internet than any geographic approach&amp;nbsp;would have.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
While the paper does a good job of mapping the internet based on&amp;nbsp;degree of connectivity in the AS graph it does not take many useful&amp;nbsp;metrics into account. &amp;nbsp;In the real world choice of a path is rarely&amp;nbsp;only decided &amp;nbsp;based on natural AS-path length type flows. &amp;nbsp;Traffic&amp;nbsp;engineering is used to override default decisions based on alternate&amp;nbsp;metrics such as latency, bandwidth and cost. &amp;nbsp;Some of the geographic&amp;nbsp;placements of nodes also seem to be off in the graph. &amp;nbsp;Telianet&amp;nbsp;mapping to Russia for example, or Cogent to eastern Europe. &amp;nbsp;The&amp;nbsp;supplementary information sheet for the paper reveals that the&amp;nbsp;geographic mapping is done using a combination of&amp;nbsp;&lt;a href="http://www.digitalelement.com/our_technology/our_technology.html"&gt;Digital Element IP Mapping Technology&lt;/a&gt; and&amp;nbsp;whois data. &amp;nbsp;Some of the results tend to give me a gut feeling that&amp;nbsp;the databases are not all up to date. &amp;nbsp;I have other bad experiences&amp;nbsp;with GeoIP type lookups being badly wrong in the past. &amp;nbsp;I would be&amp;nbsp;very interested to see a mapping project such as this link up with a&amp;nbsp;project like the &lt;a href="http://labs.ripe.net/Members/dfk/a-small-probe-for-active-measurements"&gt;RIPE Active Measurements&lt;/a&gt; project in order to extend the&amp;nbsp;mapping to include "quality" factors in the definition of&amp;nbsp;connectedness.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To summarise: I think that the paper is a very interesting start in an&amp;nbsp;area of research that could help &amp;nbsp;complement other avenues such as&amp;nbsp;those being investigated within the routing research group of the&amp;nbsp;IRTF. &amp;nbsp;This appears to be backed up by the fact that the topography&amp;nbsp;shown in the hyberpolic map seems to be compatible with locator&amp;nbsp;mapping overlay networks such as the ALT. &amp;nbsp;I feel that in order to be&amp;nbsp;deployable in real world network it needs to pay a bit more attention&amp;nbsp;to other important traffic engineering factors such as network&amp;nbsp;latency. &amp;nbsp;I will be looking for the follow up papers on this subject&amp;nbsp;with interest.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2915111528712789023?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2915111528712789023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2915111528712789023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2915111528712789023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2915111528712789023'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/09/true-saviour-or-hyperbole.html' title='True Saviour or Hyperbole?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-721296776676736038</id><published>2010-09-13T21:31:00.003+01:00</published><updated>2010-09-13T21:51:24.294+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flow label'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='ietf'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Going with the Flow</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://lh3.ggpht.com/_QgCOrmy3AkE/S69GRVGS75I/AAAAAAAAT3Q/3sLCkfINYeM/s1600/2010-01-11%2017.00.42.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://lh3.ggpht.com/_QgCOrmy3AkE/S69GRVGS75I/AAAAAAAAT3Q/3sLCkfINYeM/s320/2010-01-11%2017.00.42.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
When the packet header for IPv6 was decided much of it was familiar&amp;nbsp;from the IPv4 header. &amp;nbsp;Sure, some of the fields changed size and&amp;nbsp;others changed their name but in general there wasn't too much&amp;nbsp;change. &amp;nbsp;One thing that was completely new was the Flow Label.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the time of publication of &lt;a href="http://www.ietf.org/rfc/rfc2460.txt"&gt;RFC2460&lt;/a&gt; the definition of the Flow Label&amp;nbsp;and the intended use were fairly loosely defined and the field was&amp;nbsp;essentially set aside for experimental purposes. &amp;nbsp;The original idea in&lt;br /&gt;
the RFC seems to have been for identifying traffic that requires&amp;nbsp;special treatment. &amp;nbsp;The vision was for either stateful establishment&amp;nbsp;of flows using RSVP or for &amp;nbsp;definition of required characteristics by&amp;nbsp;including a hop-by-hop option.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;a href="http://www.ietf.org/rfc/rfc3697.txt"&gt;RFC3697&lt;/a&gt; refines the definition of the Flow Label with stateless&amp;nbsp;semantics. &amp;nbsp;In RFC3697 speak a flow is a sequence of packets that the&amp;nbsp;source considers to be a flow. &amp;nbsp;This allows sub-flows with the same&amp;nbsp;5-tuple. to be identified as different flows. &amp;nbsp;This is good for load&amp;nbsp;balancing. &amp;nbsp;RFC3697 tightens up some of the properties of the flow&amp;nbsp;label, perhaps too much according to some.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So the field has slightly overloaded and mostly compatible semantics.&amp;nbsp;Since the publication of RFC3697 even more uses for the flow label&amp;nbsp;have been suggested. &amp;nbsp;The &lt;a href="http://datatracker.ietf.org/doc/draft-hu-flow-label-cases/"&gt;land grab&lt;/a&gt; on these 20 bits of the header&amp;nbsp;seems to be generating a bit of noise in the 6man working group at the&amp;nbsp;moment so I thought I would get my thoughts together and put a post up here&amp;nbsp;here.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
One of the first suggestions for the flow label was that it could be used for QoS treatment. &amp;nbsp;I have to admit that I'm a bit confused by this one. &amp;nbsp;I tend to favour&amp;nbsp;the Diffserv QoS model. &amp;nbsp;I am certainly not a fan of hop-by-hop&amp;nbsp;options which tend to push packets into the slow path on the router.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The general theory goes that if you signal a QoS channel (either with&amp;nbsp;RSVP or by use of a hop-by-hop option on the initial packet of the&amp;nbsp;flow).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As long as flow labels are sufficiently unique the SRC Address, DST&amp;nbsp;Address, FL 3-tuple should be suitable for this form of traffic&amp;nbsp;pattern matching. &amp;nbsp;If a host were to reuse a flow label value, or a&amp;nbsp;malevolent router were to rewrite other flows to this single flow&amp;nbsp;label it could potentially inject other traffic into the traffic&amp;nbsp;class. &amp;nbsp;I am dubious as to the real world application of this idea but&amp;nbsp;if an implementation becomes available I'll take a look at it with an&amp;nbsp;open mind.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Using the flow label for load balancing is the most obvious and&amp;nbsp;immediately aplicable use.&lt;br /&gt;
&lt;br /&gt;
The IPv6 Header stack makes things flexible and extendable but it also&amp;nbsp;makes forwarding in silicon harder. &amp;nbsp;The layer 4 information such as&amp;nbsp;SRC/DST port are hidden away with a variable offset deep in the&amp;nbsp;packet. &amp;nbsp;This makes traditional 5-tuple based load balancing trickier&amp;nbsp;and could potentially limit scalability in the future.&lt;br /&gt;
&lt;br /&gt;
If the flow label can be relied on to be a suitably unique value on a&amp;nbsp;per-flow or even per-subflow level then it makes a perfect input to a&amp;nbsp;load balancing algorithm.&lt;br /&gt;
&lt;br /&gt;
The only down side is that the RFCs define that a packet which is not&amp;nbsp;part of a defined flow should have the flow label set to zero.&amp;nbsp;Constants are not going to cut it for providing entropy to a balancing&amp;nbsp;algorithm. &amp;nbsp;A better default would be some sort of pseudo-random&amp;nbsp;value, or some hash of the 5-tuple. &amp;nbsp;The requirement from RFC3697 that&amp;nbsp;flow labels not be re-used for 120 seconds could be a problem here.&lt;br /&gt;
&lt;br /&gt;
One suggestion is to use a similar method for FL assignement as is&amp;nbsp;used for TCP ephemeral port allocation, using a combination of a&amp;nbsp;counter and a hash function. (see&amp;nbsp;&lt;a href="http://datatracker.ietf.org/doc/draft-gont-6man-flowlabel-security/"&gt;ID draft-gont-6man-flowlabel-security&lt;/a&gt;)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
If information is encoded into the flow label then there is a&amp;nbsp;possibility that passing this information outside of an administrative&amp;nbsp;boundary may lead to unwanted exposure. &amp;nbsp;Or perhaps source nodes could&amp;nbsp;use steganography to encode data into an apparently random field and&amp;nbsp;all of our important datas could escape onto teh intertubes! &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Yes.&amp;nbsp;This is how security people think. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And because of this people want to&amp;nbsp;be able to remap or zero flow labels at the network border.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There seems to be a belief that service providers will also want this&amp;nbsp;capability. &amp;nbsp;To be honest I don't see this. &amp;nbsp;Service providers will&amp;nbsp;want &amp;nbsp;flow label distribution suitable for load balancing. &amp;nbsp;As long as&amp;nbsp;this is present I can't see any call for rewriting the flow label. &amp;nbsp;Writing values into zero labelled fields will be required anything&amp;nbsp;more that that seems like too much work.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In conclusion I am watching the development of&amp;nbsp;&lt;a href="http://datatracker.ietf.org/doc/draft-carpenter-6man-flow-update/"&gt;updates to the flow label&lt;/a&gt;&amp;nbsp;with great interest. &amp;nbsp;And I have to admit that the fact that the semantics of the flow label are still not set is a little concerning. &amp;nbsp;As is anything to do with the low uptake levels of IPv6 to be honest...&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-721296776676736038?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/721296776676736038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=721296776676736038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/721296776676736038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/721296776676736038'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/09/going-with-flow.html' title='Going with the Flow'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_QgCOrmy3AkE/S69GRVGS75I/AAAAAAAAT3Q/3sLCkfINYeM/s72-c/2010-01-11%2017.00.42.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1751061237369337813</id><published>2010-08-31T22:13:00.000+01:00</published><updated>2010-08-31T22:13:17.153+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Unexpected Consequences</title><content type='html'>On Friday, a &lt;a href="http://labs.ripe.net/Members/erik/ripe-ncc-and-duke-university-bgp-experiment"&gt;little experiment carried out using RIPE infrastructure&lt;/a&gt;&amp;nbsp;caused a bit of confusion in the global BGP table. &amp;nbsp;This isn't the first time something like this has caused routing problems. &amp;nbsp;In fact one of the most surprising things about the global routing table is how stable it tends to be given that it is essentially dependant on mutual trust between thousands of different network providers.&lt;br /&gt;
&lt;br /&gt;
This particular incident provides good examples of a number of the issues in the BGP routing system.&lt;br /&gt;
&lt;br /&gt;
First we have the cause. &amp;nbsp;RIPE injected a prefix with an experimental attribute. &amp;nbsp;This attribute was an optional transitive attribute. &amp;nbsp;The rules for processing unrecognised attributes are quite clear in the RFC (latest is &lt;a href="http://www.ietf.org/rfc/rfc4271"&gt;RFC 4271&lt;/a&gt;&amp;nbsp;but the text is almost unchanged from &lt;a href="http://www.ietf.org/rfc/rfc1771"&gt;RFC 1771&lt;/a&gt;):&lt;br /&gt;
&lt;blockquote&gt;
Paths with unrecognized transitive optional attributes SHOULD be accepted. If a path with an unrecognized transitive optional attribute is accepted and passed to other BGP peers, then the unrecognized transitive optional attribute of that path MUST be passed, along with the path, to other BGP peers with the Partial bit in the Attribute Flags octet set to 1.&lt;/blockquote&gt;
This behavior is part of what makes BGP such a flexible and enduring protocol. &amp;nbsp;This behavior is absolutely fundamental to the operation of 4 byte ASNs in today's Internet. &amp;nbsp;Without this deploying 4 byte ASNs would have involved coordinated upgrades across the Internet core. &lt;br /&gt;
&lt;br /&gt;
So why did this break during the experiment on Friday?&lt;br /&gt;
&lt;br /&gt;
Well it turns out there was a bug in the Cisco IOS XR software. &amp;nbsp;The original attribute advertised from RIPE was correctly formed; however when an XR device (such as the Cisco CSR-1 Core router) processed the prefix it mangled the attribute, and when it advertised it on to its peers the length field of the attribute was mangled, leading to the peer resetting the session with a "malformed update" notification.&lt;br /&gt;
&lt;br /&gt;
Here we get to the crux of it. &amp;nbsp;This is not the first time that a bug in a specific Vendor's routers (Cisco this time, Quagga has been at the root of similar issues in the past) has caused significant disruption to the global routing system. &amp;nbsp;It can be seen from the RIPE report that the actual impact was fairly limited when you look at the number of prefixes affected; however some of the networks affected were actually carrying a large volume of traffic. &amp;nbsp;The AMSIX Internet exchange in Amsterdam saw a traffic drop of around 80-100Gb/s at the time of the disruption.&lt;br /&gt;
&lt;br /&gt;
So why did this cause disruption? &amp;nbsp;Many people believe it is because BGP is overreacting. &amp;nbsp;There are a number of attempts to add a soft notification to the BGP spec. &amp;nbsp;In the current deployed versions of BGP the only way to deal with a malformed update is to send a NOTIFICATION message to the peer and then reset the session. &amp;nbsp;In cases where the peer believes that it has good data this can result in a cycle of bringing the session up, starting to exchange routes and then generating a new NOTIFICATION and reset when the malformed route is sent again. &lt;br /&gt;
&lt;br /&gt;
There are two sides to the argument. &amp;nbsp;One side says that the hard reset behaviour is too harsh when the implications are so high. &amp;nbsp;The other side says that if you detect garbage from your peer, do you really want to trust that the rest of what you recieve is good?&lt;br /&gt;
&lt;br /&gt;
This specific case actually puts a strong argument forward for the latter stance. &amp;nbsp;The malformed update had an incorrect length field. &amp;nbsp;You have a TCP segment which potentially holds multiple BGP messages. &amp;nbsp;You read an UPDATE with a malformed prefix. &amp;nbsp;What do you do? &amp;nbsp;If you discard the whole segment then you might be discarding multiple messages, and you will be out of sync with your peer. &amp;nbsp;If you discard only the bad message, how do you know when the next message starts? &amp;nbsp;The length field is bad so there is no reliable way to detect the next message. &amp;nbsp;If the length has been mangled upwards you will skip past it. &amp;nbsp;If the length is mangled downwards then potentially the payload of the unrecognised attribute could be formed to include an apparently valid message. &amp;nbsp;This could be a major security vulnerability.&lt;br /&gt;
&lt;br /&gt;
Personally I lean towards the hard failure with NOTIFICATION. &amp;nbsp;Who knows how long the IOS XR bug could have hung around undetected if the mangled experimental attribute had been ignored rather than having caused an issue?&lt;br /&gt;
&lt;br /&gt;
Another interesting angle to this is explored over on&amp;nbsp;&lt;a href="http://blog.ioshints.info/2010/08/bgp-time-to-grow-up.html"&gt;Ivan Pepelnjak's blog&lt;/a&gt;. &amp;nbsp;The ability of any BGP speaker to attach arbitrary large transitive attributes to routes could potentially be a vector for large scale DoS attacks. &amp;nbsp;A lot of providers are running their BGP routers fairly close to the wind when it comes to free memory. &amp;nbsp;Inject enough of these prefixes and you could probably knock over a number of peering routers. &amp;nbsp;There is no allowance in the RFC to block these attributes; however there is allowance to block the entire prefix.&lt;br /&gt;
&lt;br /&gt;
I think it would be a useful extension from the vendors to allow blocking prefixes based on unknown transitive attributes. &amp;nbsp;I would prefer if it could be done by size of transitive attributes rather than just whether they are unknown. &amp;nbsp;Being able to say "reject any prefixes with more than 1k of unknown attributes" would be a lot less disruptive to new protocol extension deployments. &amp;nbsp;Blocking the prefix is a much better action than acceptig the prefix and dropping the attribute. &amp;nbsp;The former has recognisable effects (destination may not be globally reachable), the latter will cause more subtle failures and require more time to diagnose.&lt;br /&gt;
&lt;br /&gt;
Of course the other thing that is sitting in the back of my mind is the whole question of securing the BGP system. &amp;nbsp;I can remember reading about initial attempts at SBGP / SO-BGP over ten years ago. &amp;nbsp;Yet they are still not available. &amp;nbsp;The most security the BGP has is protection of the TCP sessions using the MD5 authentication option. &amp;nbsp;This protects individual sessions but provides no protection at all to the content of messages advertised to peers. &amp;nbsp;Requiring origin signatures could go a long way to protecting BGP. &amp;nbsp;Full PKI authentication of routes will be very expensive on resources (probably requiring large optional transitive attributes to carry the signatures... taking us full circle).&lt;br /&gt;
&lt;br /&gt;
One thing we can't get away from is that we are going to continue to need larger and larger volumes of RAM in our DFZ routers to keep up with both routing table growth and the addition of any new attributes. &amp;nbsp;This is bound to keep the vendors happy given the ridiculous premiums they charge for routing system RAM.&lt;br /&gt;
&lt;br /&gt;
To finish: the following video, while long, is an excellent overview of the development of BGP from one of the original creators. &amp;nbsp;Well worth a watch.&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HAOVNYSnL7k?fs=1&amp;amp;hl=en_GB"&gt;

&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;

&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;

&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/HAOVNYSnL7k?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1751061237369337813?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1751061237369337813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1751061237369337813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1751061237369337813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1751061237369337813'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/unexpected-consequences.html' title='Unexpected Consequences'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3081175736042054020</id><published>2010-08-31T00:37:00.000+01:00</published><updated>2010-08-31T00:37:54.935+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ietf'/><category scheme='http://www.blogger.com/atom/ns#' term='ilnp'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><category scheme='http://www.blogger.com/atom/ns#' term='rrg'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Managing a Split Identity</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_gP9MmdQkD6U/THwb4NGDN_I/AAAAAAAABII/47-6zrq2Ia4/s1600/ILNP+Header.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://2.bp.blogspot.com/_gP9MmdQkD6U/THwb4NGDN_I/AAAAAAAABII/47-6zrq2Ia4/s400/ILNP+Header.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So last time I did a brief run through of the ILNP draft. &amp;nbsp;First off, a bit of a correction. &amp;nbsp;I incorrectly said that ILNP is a member of the Map/Encap family. &amp;nbsp;This is not the case. &amp;nbsp;With ILNP the Locator / Identifier split is clear within the packet headers, it is not hidden away by adding a layer of indirection.&lt;br /&gt;
&lt;br /&gt;
The draft that I was working from in the last post was a high level overview. &amp;nbsp;This time I'll go into a bit more detail and take a look at three supporting drafts. &amp;nbsp;Rather than building a new mapping database from scratch, &lt;a href="http://datatracker.ietf.org/doc/draft-rja-ilnp-dns/"&gt;ILNP uses the DNS&lt;/a&gt; to store the locators and identifiers as DNS resource records. &amp;nbsp;In order to support the multi-homing and mobility aspects of ILNP methods are required to &lt;a href="http://datatracker.ietf.org/doc/draft-rja-ilnp-icmp/"&gt;inform correspondants of locator changes&lt;/a&gt;&amp;nbsp;and to &lt;a href="http://datatracker.ietf.org/doc/draft-rja-ilnp-nonce/"&gt;verify authenticity of communications&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I'm going to take these in order. &amp;nbsp;They are all actually pretty brief drafts. &amp;nbsp;Including the standard legal boilerplate and references section they barely break the 10 page barrier.&lt;br /&gt;
&lt;br /&gt;
First up is the DNS draft. &amp;nbsp;The document starts out by pointing out that with DNSSEC (&lt;a href="http://www.ietf.org/rfc/rfc4033.txt"&gt;RFC 4033&lt;/a&gt;) and Secure DNS Updates (&lt;a href="http://www.ietf.org/rfc/rfc3007.txt"&gt;RFC 3007&lt;/a&gt;) the tools are in place for systems to update their information in the DNS and for them to rely on the information recieved from the DNS. &amp;nbsp;This may be a little optimistic about the actual deployment of the technologies, but I think a little leeway can be granted hear. &amp;nbsp;DNSSEC&amp;nbsp;deployment has been really picking up over the last year or so. &amp;nbsp;So what is the ILNP specific requirement on the DNS? &amp;nbsp;Basically the draft is asking for four new resource record types. &amp;nbsp;ID, L32, L64 and LP.&lt;br /&gt;
&lt;br /&gt;
Lets have a look at each of these in turn.&lt;br /&gt;
&lt;br /&gt;
First the ID RR. &amp;nbsp;This takes the format:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
&amp;lt;owner-name&amp;gt; &amp;nbsp;IN &amp;nbsp;ID &amp;nbsp;&amp;lt;preference&amp;gt; &amp;lt;ID&amp;gt;&lt;br /&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
The distinction between a host name and an owner name seems pretty subtle, and I think in most cases the owner will simply be the end system; however in some situations this may be an intermediate router. &amp;nbsp;In some cases it may be a collection of machines. &amp;nbsp;The inclusion of a preference will allow you to say something along the lines of:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
www &amp;nbsp;IN &amp;nbsp;ID 5 1234:1234:1234:1234&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; IN &amp;nbsp;ID 5 1234:1234:1234:1235&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; IN ID 10 1234:1234:fffc:9184&lt;br /&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
In this situation the LHS is a service rather than a host. &amp;nbsp;This can already be done of course with multiple A records, but the addition of a preference here is quite nice.&lt;br /&gt;
&lt;br /&gt;
In the example above I am assuming that the identifier in the DNS server will use an IPv6 address like textual format for the display of addresses. It will of course be an adjusted IPv6 notation because there are only 64 bits rather than 128. &amp;nbsp;The draft doesn't actually have anything to say about the textual representation, it simply states that it is an unsigned 64 bit integer.&lt;br /&gt;
&lt;br /&gt;
Next come L32 and L64. &amp;nbsp;I will deal with these together because they are very similar. &amp;nbsp;The primary difference between them of course is that one it 32 bit and the other is 64 bit. &amp;nbsp;Nothing is said about textual representation again; however I assume that the L32 will be represented using dotted quad like an IPv4 address and that L64 will use colon separated 16-bit hex fields like IPv6.&lt;br /&gt;
&lt;br /&gt;
Like with the ID field, these records also contain preference values. &amp;nbsp;An interesting extension here is that the draft states that the preference should be compared between unlike record types, so a node that has both L32 and L64 locators could do something like the following&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
gandalf IN L64 10 dead:beef::1&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IN L32 20 222.173.190.239&lt;br /&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Remote hosts capable of ILNPv6 will see the better preference and only hosts that are ILNPv4 only will use v4. &amp;nbsp;Likewise if the host has known bad v6 connectivity (e.g. if it is behind a tunnel) then it would be a simple matter to reverse these preferences in which case any dual-stack remote hosts would prefer v4 connectivity.&lt;br /&gt;
&lt;br /&gt;
The final record type is LP (a vinyl comeback?). &amp;nbsp;The LP record is an indirection type. &amp;nbsp;The RHS of the LP record is not a directly specified locator, it is a pointer to another owner name. &amp;nbsp;One example use might be to set up an owner name for a network, which contains all of the locators. &amp;nbsp;You can then set up individual hosts within the network with only two records, an ID and an LP, rather than having to configure each possible locator for each possible host. &amp;nbsp;The LP record also has a preference, allowing you to define additional records for an individual station if you want to (at either higher or lower preference than the LP record).&lt;br /&gt;
&lt;br /&gt;
The draft makes mention of using wildcard records. &amp;nbsp;Wildcard records tend to make me feel a little uneasy, so I doubt I will ever configure things that way. &amp;nbsp;I'll take their word for it.&lt;br /&gt;
&lt;br /&gt;
The final point I found interesting about this draft was in the usage example section. &amp;nbsp;It is stated that there is some evidence that not all resolvers pass on the full contents of the Additional Data section of the DNS reply. The draft advises that when people ask for one of the ILNP resource records, that any other ILNP records are sent back as additional information. &amp;nbsp;This makes sense because you don't want to be doing multiple lookups when setting up a connection. &amp;nbsp;The more data you can get in that first packet the less time it is going to take to get your session up and running. &amp;nbsp;The recommendation is to ask for everything you will need in the initial request, and if any of the information doesn't come back to ask again for just that information.&lt;br /&gt;
&lt;br /&gt;
Another thing to keep in mind is that L32 and L64 records will likely have low TTL values in order to maximise the mobility capabilities. &amp;nbsp;ID and LP records are not as likely to have low TTL values. &amp;nbsp;If you ask your local cache for information they may well only have ID / LP records so it is worth asking again for the L32/L64 records because they will likely have to recurse for that information.&lt;br /&gt;
&lt;br /&gt;
The ICMP draft has a little more meat on the bones when it comes to understanding the operation of ILNP.&lt;br /&gt;
&lt;br /&gt;
The ICMP and Nonce drafts are tightly related and it is difficult to cover one without the other. &amp;nbsp;I am going to look at the ICMP draft first because it is the shorter of the two.&lt;br /&gt;
&lt;br /&gt;
The ILNP ICMP draft defines a new ICMPv6 message type for Locator Update Messages. &amp;nbsp;This message type is sent when an ILNP capable node detects a change in its locators. &amp;nbsp;It sends a new ICMPv6 Locator Update Message containing the list of known locators so that the far end node can update its&amp;nbsp;correspondent&amp;nbsp;cache and recieve messages from the new locator set. &amp;nbsp;The first field within the message payload is a message length. &amp;nbsp;This is an eight bit field allowing for 255 locators. &amp;nbsp;I would imagine that this will be sufficient for some time to come ;). &amp;nbsp;Each 64-bit locator has a 16-bit preference value against it in the message. &amp;nbsp;There are also some reserved fields in the message which serve to pad the messages to 32-bit boundaries and also allow for future expansion.&lt;br /&gt;
&lt;br /&gt;
These messages MUST only be sent to hosts involved in ILNP sessions (and therefore known to support the message time). &amp;nbsp;They also MUST include the Nonce IP destination option for authentication purposes (see below). &amp;nbsp;They can also use AH if additional authentication is required. &amp;nbsp;Nonce is mandatory even if AH is used.&lt;br /&gt;
&lt;br /&gt;
Next up is the Nonce draft. &amp;nbsp;Before I start I have a little admission to make. &amp;nbsp;I have grown up in the UK just north of London. &amp;nbsp;Now, I am aware of the use of the term Nonce within mathematics and security to mean a one time number; however for the first 20+ years of my life my only experience of the word nonce was the &lt;a href="http://www.urbandictionary.com/define.php?term=nonce"&gt;UK slang meaning&lt;/a&gt;. &amp;nbsp;This means that whenever I see the word the first thing that comes into my mind isn't security - it is a sex offender. &amp;nbsp;This also leads to the concept of a correspondent cache being a bit of a source of amusement, because every time I think of new sessions needing to be added to the nonce register I start visualising packets as scout masters and catholic priests... &amp;nbsp;Anyway, that's enough of the aside. &amp;nbsp;Time to tackle the nonces...&lt;br /&gt;
&lt;br /&gt;
Like with the ICMP draft, the Nonces draft specifically applies to IPv6 sessions. &amp;nbsp;The nonce is inserted in packets as an IP Destination Option header. &amp;nbsp;The Nonce is generated per session, and is unidirectional. &amp;nbsp;This means that for a given correspondent cache, if there are multiple sessions taking place there will be multiple Nonces stored. &amp;nbsp;The length of Nonce to be generated and specific generation methods are not covered. &amp;nbsp;There is a link to &lt;a href="http://www.ietf.org/rfc/rfc4086.txt"&gt;RFC 4086&lt;/a&gt;&amp;nbsp;and it is stated that ILNP capable nodes must(sic) be able to support 32 and 96-bit nonces.&lt;br /&gt;
&lt;br /&gt;
Packets with more than one Nonce option SHOULD be discarded.&lt;br /&gt;
&lt;br /&gt;
When an ILNP capable host opens a new session, the first step should be to take a look at the DNS. &amp;nbsp;The required destination should be looked up in order to find any ID/L32/L64/LP records. &amp;nbsp;If these records are found then a new Nonce should be generated and included in the initial session setup (SYN/SYNACK) messages.&lt;br /&gt;
&lt;br /&gt;
When opening a new session, if the ILNP capable Network layer software detects an Nonce option it treats the connection as ILNP capable and will zero the locator fields of the packet before passing it to the transport layer. &amp;nbsp;If the network layer is not ILNP capable then it MUST reply with an ICMP Parameter Problem message. &amp;nbsp;If an ILNP capable network layer recieves a new setup with no Nonce option then it MUST treat the connection as a classic mode connection.&lt;br /&gt;
&lt;br /&gt;
The Nonce option is required in the initial packets for session setup. &amp;nbsp;After this the session should be present in the correspondent cache, and as long as the locators being used stay the same there is no need to include the Nonce option. &amp;nbsp;If a node detects a change to the local locators then an ICMP Locator Update Message needs to be sent with the updated locators. &amp;nbsp;This packet will need to have the Nonce option included for authentication of the update. &amp;nbsp;The Nonce option should also be set on any other packets being sent for a short while (at least 3 RTTs) so that packets can be authorised and accepted in the case of out of order packet delivery and during the processing time required to update the correspondent cache.&lt;br /&gt;
&lt;br /&gt;
If a packet is recieved from an unknown correspondent then it MUST be discarded unless it has a valid Nonce option. &amp;nbsp;A valid Nonce option on a data packet will not cause updates to the correspondent cache. &amp;nbsp;This can only be updated by an authenticated ICMP Locator Update Message.&lt;br /&gt;
&lt;br /&gt;
I was already getting the impression last time that ILNPv4 was a bit of a red headed step child, hidden away in the attic and kept away from polite company. &amp;nbsp;Reading further into the supporting drafts does nothing to get rid of this feeling. &amp;nbsp;The ICMP and Nonce drafts barely even mention that IPv4 exists. &amp;nbsp;The DNS draft throws us a bone by including the L32 resource record. &lt;br /&gt;
&lt;br /&gt;
One interesting thing I note in the Nonce draft is that all ICMP messages related to ILNP sessions MUST be authenticated using the Nonce. &amp;nbsp;This seems to be a problem to me. &amp;nbsp;Not all ICMP messages are end-to-end. Sometimes a mid-point box needs to send an ICMP message back to the source (e.g. path MTU discovery, or TTL expiry).&lt;br /&gt;
&lt;br /&gt;
It will be interesting to see if the ILNP drafts have potential impacts on things such as traceroute or PMTUD.&lt;br /&gt;
&lt;br /&gt;
While I quite like the architecture of ILNP, the more I read about it the harder it seems to deploy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3081175736042054020?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3081175736042054020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3081175736042054020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3081175736042054020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3081175736042054020'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/managing-split-identity.html' title='Managing a Split Identity'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gP9MmdQkD6U/THwb4NGDN_I/AAAAAAAABII/47-6zrq2Ia4/s72-c/ILNP+Header.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8904672928091927464</id><published>2010-08-23T23:31:00.000+01:00</published><updated>2010-08-23T23:31:30.183+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rfc'/><category scheme='http://www.blogger.com/atom/ns#' term='ip'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><category scheme='http://www.blogger.com/atom/ns#' term='rrg'/><title type='text'>Down, down, down the Rabbit Hole</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/_gP9MmdQkD6U/THLZWPZmgHI/AAAAAAAABHU/Y9iCcU-9uBk/s1600/54_1362_m.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_gP9MmdQkD6U/THLZWPZmgHI/AAAAAAAABHU/Y9iCcU-9uBk/s200/54_1362_m.jpg" width="172" /&gt;&lt;/a&gt;&lt;/div&gt;
Time for the next entry in my investigation into building a more scalable Internet.&amp;nbsp;&lt;a href="http://tools.ietf.org/html/draft-rja-ilnp-intro-06"&gt;Identifier Locator Network Protocol&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Similar to LISP ILNP is another member of the Map and Encapsulate family of scaling proposals. &amp;nbsp;Saving the world through tunnels. &amp;nbsp;Chasing the white rabbit of a stable core topology.&lt;br /&gt;
&lt;br /&gt;
Enough Alice references. &amp;nbsp;Lets get on with reading the draft.&lt;br /&gt;
&lt;br /&gt;
ILNP is based from various ideas that were bouncing around IPng working group around fifteen years ago. &amp;nbsp;While ILNP supports both IPv4 and IPv6, the implementation is a little cleaner in IPv6 so its probably better to start there.&lt;br /&gt;
&lt;br /&gt;
Essentially ILNP takes the existing IPv6 header and adjusts the semantics of the addresses fields. &amp;nbsp;The 128bit IPv6 address is split into two 64 bit fields. &amp;nbsp;The Locator and the Identifier. &amp;nbsp;Given that the RFCs recommend /64s are used for links this doesn't sound like much of a change so far. &amp;nbsp;Although it is controversial given how strenuously some people fight against the idea of standard /64 link addresses... (there is &lt;a href="http://www.ietf.org/mail-archive/web/ipv6/current/msg12251.html"&gt;yet another argument&lt;/a&gt; going on currently in the IETF IPv6 working group around the use of /127 prefixes for point-to-point links).&lt;br /&gt;
&lt;br /&gt;
The subtle distinction is that an IPv6 address is a point-of-attachment identifier and it identifies a network interface. &amp;nbsp;In ILNP the Locator is a subnet identifier, and the Identifier is a host identifier. &amp;nbsp;While I like the idea of a host identifier, I think tying it to the hardware address of a single interface could cause problems. &amp;nbsp;Sure it makes it easier to maintain uniqueness; however it also means that if that particular interface is removed from the node then the Identifier changes. &amp;nbsp;Of course there are also the various arguments that people make about using global scope MAC addresses as an identifier could be a privacy issue, support for &lt;a href="http://tools.ietf.org/html/rfc4941"&gt;RFC4941 Privacy Extensions&lt;/a&gt;&amp;nbsp;is included.&lt;br /&gt;
&lt;br /&gt;
This is all pretty straight forward, and for the IPv6 case has the immediate benefit over LISP that there is no encapsulation overhead. &amp;nbsp;Things are a little less straight forward when considering IPv4. &amp;nbsp;Obviously there isn't room in the IPv4 header to install a pair of 64bit identifiers. &amp;nbsp;For ILNPv4 the IPv4 header becomes the 32-bit source and destination locators, with an additional encapsulation header inside the IP header containing the ILNP identifiers.&lt;br /&gt;
&lt;br /&gt;
So what about higher layer protocols? &amp;nbsp;This is where it gets interesting. &amp;nbsp;In ILNP the upper layer protocol is only supposed to bind to the identifier. &amp;nbsp;Lets take a second to consider this. &lt;br /&gt;
&lt;br /&gt;
Lets start with a TCPv6 connection from [2001:db8:1:1::dead:beef]:80 to [2001:db8:2:1::deaf:beef]:43126.&lt;br /&gt;
&lt;br /&gt;
In traditional IPv6 the sockets at each end would be identified by the 128bit address + the 16 bit port number. &amp;nbsp;In ILNP the sockets are bound to [::dead:beef]:80 and [::deaf:beef]:43126. &amp;nbsp;If the second node loses its connection to the 2001:db8:2:1::/64 subnet then it can continue the session using its address on the 2001:db8:2:2::/64 subnet without having to tear down and reestablish.&lt;br /&gt;
&lt;br /&gt;
This is nice.&lt;br /&gt;
&lt;br /&gt;
Of course to fully take advantage of this ability updates are required to hosts as well as new ICMP messages to allow for the locator updates to take place are required. &amp;nbsp;This is not something that can be done straight away; however it is something that can be done incrementally and there is no flag-day requirement.&lt;br /&gt;
&lt;br /&gt;
ILNP mapping relies quite heavily on DNS (I haven't read the DNS draft yet and will save that for a future post). &amp;nbsp;Personally I don't have a problem with this. &amp;nbsp;I know that some people do, and there are certainly bootstrap issues to be taken into account. &amp;nbsp;To those that say that we are overloading the DNS I would point out that DNS has had the concept of record classes for a long time. &amp;nbsp;Adding resource records that don't correspond with the traditional IN class is not going beyond the scope of the system.&lt;br /&gt;
&lt;br /&gt;
On mobility, the suggestion is that each host would maintain a correspondent cache. &amp;nbsp;By including a random nonce in the cache, the (identifier, nonce) tuple maintains uniqueness even when correspondent identifiers are not unique. &amp;nbsp;If a correspondent changes locator then knowledge of the nonce can be used to authorise the hand-over.&lt;br /&gt;
&lt;br /&gt;
ILNP has some interesting implications for NAT. &amp;nbsp;Removal of the locator from the transport layer binding basically means that it doesn't matter that much if the locator changes in transport... &amp;nbsp;So this could restore end-to-end communications in the world of IPv4 NATs. &amp;nbsp;Equally it also opens the gates to the concept of NAT in IPv6. &amp;nbsp;Which isn't quite as nice. &amp;nbsp;But then if NAT doesn't break communications then maybe it stops being evil...&lt;br /&gt;
&lt;br /&gt;
All in all I quite like what I have read of ILNP so far. &amp;nbsp;I have to admit that it doesn't seem to enforce route aggregation in the locator space as strictly as LISP though so it wouldn't necessarily deal with the prefix creep&amp;nbsp;plaguing&amp;nbsp;the DFZ. &amp;nbsp;I think by making multi-homing and mobility easier it does remove a lot of the drive to fragmentation, but need to implement host changes to fully realise these benefits could defer the gain for quite a while.&lt;br /&gt;
&lt;br /&gt;
Next up: DNS and ICMP and Nonces (Oh My!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8904672928091927464?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8904672928091927464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8904672928091927464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8904672928091927464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8904672928091927464'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/down-down-down-rabbit-hole.html' title='Down, down, down the Rabbit Hole'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gP9MmdQkD6U/THLZWPZmgHI/AAAAAAAABHU/Y9iCcU-9uBk/s72-c/54_1362_m.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2893465311211312127</id><published>2010-08-23T23:30:00.000+01:00</published><updated>2010-08-23T23:30:06.284+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><title type='text'>LISP from the Horses Mouth</title><content type='html'>&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;Three excellent videos of Dino Farinacci explaining LISP to Google. I love the Google TechTalks channel on Youtube. There is some fantastic content in there.
&lt;/span&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;LISP Part 1: Problem Statement, Architecture and Protocol Description&lt;/b&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: large;"&gt;
&lt;object height="260" width="430"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/WSl1RAlFU3s?fs=1&amp;amp;hl=en_GB"&gt;





&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;





&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;





&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/WSl1RAlFU3s?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="430" height="260"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;LISP Part 2 - Mapping Database Infrastructure and Interworking&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: large;"&gt;
&lt;object height="260" width="430"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/_bz4cRuAcak?fs=1&amp;amp;hl=en_GB"&gt;




&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;




&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;




&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/_bz4cRuAcak?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="430" height="260"&gt;&lt;/embed&gt;
&lt;/object&gt;

&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;LISP Part 3 - Deployed Network and Use-Cases&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span class="Apple-style-span" style="font-size: 20px;"&gt;
&lt;object height="260" width="430"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/fxdm-Xouu-k?fs=1&amp;amp;hl=en_GB"&gt;




&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;




&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;




&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/fxdm-Xouu-k?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="430" height="260"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2893465311211312127?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2893465311211312127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2893465311211312127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2893465311211312127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2893465311211312127'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/lisp-from-horses-mouth.html' title='LISP from the Horses Mouth'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3516662981137226755</id><published>2010-08-17T23:06:00.000+01:00</published><updated>2010-08-17T23:06:09.659+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='verizon'/><category scheme='http://www.blogger.com/atom/ns#' term='qos'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>When is Video Prioritisation Good vs Evil</title><content type='html'>&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/_gP9MmdQkD6U/TGrrPgFW9NI/AAAAAAAABHE/gHKNf2YNkPs/s1600/IMG311-zoom.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://1.bp.blogspot.com/_gP9MmdQkD6U/TGrrPgFW9NI/AAAAAAAABHE/gHKNf2YNkPs/s200/IMG311-zoom.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Given the current bruhaha over the whole Google/Verizon "classification of classes of Internet traffic" thing, I thought it might be time for me to do a post on QoS and traffic queueing.&lt;br /&gt;
&lt;br /&gt;
I will focus on the queueing methods for congested access networks because that has the most relevance for the neutrality debate. &amp;nbsp;QoS has its place in the core of the network but it generally only affects packet ordering in a minor way and should rarely drop anything.&lt;br /&gt;
&lt;br /&gt;
So what does QoS actually mean?&lt;br /&gt;
&lt;br /&gt;
QoS generally refers to a whole suite of techniques used to provide certain performance guarantees for a certain type of traffic. &amp;nbsp;For some traffic, such as VoIP, the most important thing is that traffic arrives on time – a little delay is not a problem. &amp;nbsp;For other applications some variation in delay can be tolerated as long as the traffic does get through eventually. &amp;nbsp;Internet traffic generally falls into the "best effort" category – there are no guarantees at all on the delay bounds, or indeed whether the packet will arrive at all.&lt;br /&gt;
&lt;br /&gt;
To deliver QoS requires three main components. &amp;nbsp;Classification, marking and scheduling.&lt;br /&gt;
&lt;br /&gt;
Classification is the act of looking at an incoming packet and deciding how to treat it. &amp;nbsp;This could be as simple as looking at which interface it entered the router, it could be pre-marked traffic with an agreed marking in a &amp;nbsp;header field, it could use simple 5-tuple type matching (src, dest address, protocol, port) or it could use DPI to look well into the packet payload. &amp;nbsp;Once you have done this inspection a configured class of forwarding behaviour can be selected. &lt;br /&gt;
&lt;br /&gt;
The position of the marking action varies. &amp;nbsp;Sometimes it is done at ingress, sometimes at egress. &amp;nbsp;Basically marking is a shortcut to make sure that routers further into the network can rely on your markings in the header to do their classification rather than having to do detailed packet matching again. &amp;nbsp;The best place to do deep classification is as close as possible to the ingress edge. &amp;nbsp;The marking could be using standard IP header fields such as the TOS byte / DSCP, or it could be the EXP bits on an MPLS network, or some other layer 2 marking scheme such as 802.1p.&lt;br /&gt;
&lt;br /&gt;
These two stages are pretty straight forward and fairly low impact on the traffic itself. &amp;nbsp;This is not true of the next stage.&lt;br /&gt;
&lt;br /&gt;
The simplest form of scheduling is a simple FIFO queue.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://docs.google.com/drawings/pub?id=1ot3drSnS1Df8gjYByJUIDfqS2YJjzL_CfiZ5af9-ly4&amp;amp;w=410&amp;amp;h=654" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://docs.google.com/drawings/pub?id=1ot3drSnS1Df8gjYByJUIDfqS2YJjzL_CfiZ5af9-ly4&amp;amp;w=410&amp;amp;h=654" width="200" /&gt;&lt;/a&gt;One of the simplest ways to envision scheduling is to think of a leaky bucket. &amp;nbsp;with a FIFO queue you have packets dropping into the bucket at random rates. &amp;nbsp;Sometimes they will be bunched together, sometimes they will be spaced apart.&lt;br /&gt;
&lt;br /&gt;
If the packets arrive faster than the leak in the bottom of the bucket they will start to build up. &amp;nbsp;Packets leave the bucket in the order they arrive. &amp;nbsp;If the bucket is empty then packets will drop out of the bottom pretty much as soon as they arrive. &amp;nbsp;If they arrive in bursts and are held temporarily in the bucket then they will leave onto the wire at even spacings.&lt;br /&gt;
&lt;br /&gt;
In many cases the rate that the bucket leaks will be the rate of the underlying interface. &amp;nbsp;Sometimes the bucket will be manually configured to leak at a slower rate than the underlying interface. &amp;nbsp;This is known as traffic shaping. &amp;nbsp;It is important to remember that a traffic shaper does not affect the rate of any single packet on the wire. &amp;nbsp;It only affects the spacing between packets. &amp;nbsp;Any individual packet will always travel at wire speed. When a gigabit interface is shaped to 300Mb/s, the individual frames will always travel down the wire at 1Gb/s, the shaping only affects the macroscopic traffic flows by spacing the packets out to give an average rate of 300Mb/s. &amp;nbsp;There are generally two methods of rate limiting traffic. &amp;nbsp;Shaping is generally the most traffic friendly, there is also policing. &amp;nbsp;With policing any traffic arriving too quickly will be immediately discarded or remarked. &amp;nbsp;This is harsher on the traffic flows, but light on network resource usage. &amp;nbsp;Often policing is done on ingress and the customer can be advised to shape their traffic to within the policer profile to avoid drops.&lt;br /&gt;
&lt;br /&gt;
The next level of scheduling complexity would come with so-called "fair-queuing". &amp;nbsp;Fair queuing tries to maintain a macroscopic level of fairness by giving parallel flows of traffic an equal crack at the scheduler. &amp;nbsp;In the example shown above, if packets one and 3 were part of the same traffic flow, then packet 3 would be held up because it is part of a recently serviced flow. &amp;nbsp;Packet 4 would sneak in front and the packets would leave the interface in the order 1, 2, 4, 3.&lt;br /&gt;
&lt;br /&gt;
An alternative method of giving per-flow fairness in a congested network is with Random Early Detection (RED – originally outlined in &lt;a href="http://www.icir.org/floyd/papers/red/red.html"&gt;this paper&lt;/a&gt;&amp;nbsp;by Sally Floyd and Van Jacobson). &amp;nbsp;This technique is sometimes incorrectly referred to as Random Early Discard because the most common way to deal with congestion detected using this method is to drop it. &amp;nbsp;This is not mandated by the paper though. &amp;nbsp;Marking the packet in some way is just as acceptable.&lt;br /&gt;
&lt;br /&gt;
Basically with RED you keep an eye on the average fill level of your bucket. &amp;nbsp;The fuller the bucket, the more likely a packet is to be selected for RED treatment. &amp;nbsp;The original paper (and the Cisco implementation) state that the weighted average utilisation should be used. &amp;nbsp;The Juniper implementation of "drop profiles" use instantaneous queue utilisation and is more sensitive to small traffic bursts.&lt;br /&gt;
&lt;br /&gt;
By randomly discarding or marking packets in the aggregate you ensure fairness through the principle that a flow with more traffic will have more packets in the queue and therefore more chance of being affected. &amp;nbsp;One of the major benefits of this method is that the random factor leads to less likelihood of multiple flows backing off simultaneously and synchronising, leading to an oscillating traffic pattern (for an in depth look at TCP including synchronisation effects see &lt;a href="http://ispcolumn.isoc.org/2005-06/faster.html"&gt;this ISOC paper from Geoff Huston&lt;/a&gt;.)&lt;br /&gt;
&lt;br /&gt;
This is all well and good, but how do we extend this model to deal with the multiple classes of traffic we defined earlier?&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;u style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img height="240" src="https://docs.google.com/drawings/pub?id=1QSWOmsNmRq24lhVTPXqDPIGD2fx86NMIrXYUaPNos_A&amp;amp;w=960&amp;amp;h=720" width="320" /&gt;&lt;/u&gt;&lt;span class="Apple-style-span" style="color: #0000ee;"&gt;&lt;/span&gt;&lt;/div&gt;
Basically we set up a system of buckets to feed into other buckets. &amp;nbsp;Each of our traffic classes gets its own bucket to hold packets from that class. &amp;nbsp;When it comes to choose a packet to drop onto the wire the interface queue will select the next packet from the buckets using a priority selection mechanism. &amp;nbsp;Often voice traffic will be strict high priority, meaning that if there is anything in the queue it will always be serviced first. &amp;nbsp;This is because the most important metric for voice is generally the latency, so you want packets to be queued for as little time as possible.&lt;br /&gt;
&lt;br /&gt;
Any other queues will be processed according to priority. &amp;nbsp;If the High priority queue has a priority of 20 and the best effort queue has a priority of 10, then for every packet transmitted from the best effort queue, two will be sent from the high priority queue.&lt;br /&gt;
&lt;br /&gt;
An important thing to bear in mind here is that usually the priority queues are not shaped (the voice queue might be policed – because the voice queue will always be processed first it can lead to the other queues being starved if no limits are set). &amp;nbsp;If a queue is empty then the other queues on the system will still be able to use the full bandwidth of the interface.&lt;br /&gt;
&lt;br /&gt;
The next step is to imagine a broadband congested access network. &amp;nbsp;If you think of the queue described above, you could apply this to an IP interface with multiple customers behind it.&lt;br /&gt;
&lt;br /&gt;
If we consider what would happen in this situation if video traffic was classified into the high priority queue, things do not look good. &amp;nbsp;A couple of people watching HD video streams could potentially slow down the web browsing of thousands of other users on that same port. &amp;nbsp;That isn't going to fly in any network.&lt;br /&gt;
&lt;br /&gt;
Lets consider an alternative.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://docs.google.com/drawings/pub?id=1g-ZwLlKqGwrMKSR1DD3AlNh7_lF0vBV9XHhf2g1y-0U&amp;amp;w=960&amp;amp;h=720" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://docs.google.com/drawings/pub?id=1g-ZwLlKqGwrMKSR1DD3AlNh7_lF0vBV9XHhf2g1y-0U&amp;amp;w=960&amp;amp;h=720" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
In this model each user gets a bucket which is filled according to priority. &amp;nbsp;These user queues can then be served in a round-robin basis, giving each user a fair crack at the access network bandwidth.&lt;br /&gt;
&lt;br /&gt;
Personally I don't see a problem with using this last form of queueing on a broadband connection. &amp;nbsp;If we use the example of video traffic being mapped into the high priority queue. &amp;nbsp;A well established video provider such as Youtube will be put into this queue. &amp;nbsp;The performance will be consistent whether you are watching the video exclusively, or if you start doing some browsing in the background. &amp;nbsp;If you go to some new video service that has not yet made it into the classification list, it will get equal priority with other traffic such as web. &amp;nbsp;This service is only disadvantaged if you use it concurrently with the high priority service. &amp;nbsp;If it offers something new and unique then there is no disadvantage. &amp;nbsp;At worst it is on an equal footing with the rest of the best effort internet, which is exactly the situation that will be in place under strict Network Neutrality.&lt;br /&gt;
&lt;br /&gt;
This is why I have no problem with prioritisation of single defined services, so long as the prioritisation is only amongst a single user's traffic. &amp;nbsp;If the best effort service offers better features than the prioritised service it will still win out with the users.&lt;br /&gt;
&lt;br /&gt;
There are other options here that are more distasteful though.&lt;br /&gt;
&lt;br /&gt;
Putting specific services into a lower than best effort priority class would be a bad thing. &amp;nbsp;If this new innovative video service were marked down to below web traffic then it would be at a large disadvantage, no matter the offered features. &amp;nbsp;Marking down services in this way just would not scale though. &amp;nbsp;There is no way that some traffic de-preferencing list could keep up at an Internet scale. &amp;nbsp;Sure this behaviour is possible, and sure it would be a bad thing. &amp;nbsp;But in the real world it also just wouldn't happen.&lt;br /&gt;
&lt;br /&gt;
Today at the meeting of the London Internet Exchange (LINX) there was a debate on Network Neutrality. &amp;nbsp;One of the contributors stated: In engineering we generally say "If it ain't broke, don't fix it". &amp;nbsp;The question is what is broken that we need to fix? &amp;nbsp;I am still not sure that I see anything broken.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3516662981137226755?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3516662981137226755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3516662981137226755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3516662981137226755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3516662981137226755'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/when-is-video-prioritisation-good-vs.html' title='When is Video Prioritisation Good vs Evil'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gP9MmdQkD6U/TGrrPgFW9NI/AAAAAAAABHE/gHKNf2YNkPs/s72-c/IMG311-zoom.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3331564036274235380</id><published>2010-08-10T20:55:00.000+01:00</published><updated>2010-08-10T20:55:12.147+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ethernet'/><category scheme='http://www.blogger.com/atom/ns#' term='mpls'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='vpls'/><title type='text'>Travelling in Strange Directions (or is RFC4761 broken)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_gP9MmdQkD6U/TGGipxXvBaI/AAAAAAAABGo/aCFXdS-Cib0/s1600/Image(058).jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/_gP9MmdQkD6U/TGGipxXvBaI/AAAAAAAABGo/aCFXdS-Cib0/s200/Image(058).jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
After a week or so of thinking "How could they make such a bonehead mistake" I have hit the RFCs and come to an interesting conclusion. &amp;nbsp;I think &lt;a href="https://tools.ietf.org/html/rfc4761"&gt;RFC4761&lt;/a&gt; (VPLS using BGP) is broken.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://tools.ietf.org/html/rfc4762"&gt;RFC4762&lt;/a&gt; (VPLS using LDP) is pretty explicit about forwarding traffic between remote PE devices.&lt;br /&gt;
&lt;blockquote&gt;
Since every PE is now directly connected to every other PE in the VPLS via a PW, there is no longer any need to relay packets, and we can instantiate a simpler loop-breaking rule: the "split horizon" rule, whereby a PE MUST NOT forward traffic from one PW to another in the same VPLS mesh.&lt;/blockquote&gt;
It appears that RFC4761 implements a less straightforward split horizon rule.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;4.2.5. "Split Horizon" Forwarding&amp;nbsp;&lt;/b&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
When a PE capable of flooding (say PEx) receives a broadcast Ethernet frame, or one with an unknown destination MAC address, it must flood the frame. If the frame arrived from an attached CE, PEx must send a copy of the frame to every other attached CE, as well as to all other PEs participating in the VPLS. If, on the other hand, the frame arrived from another PE (say PEy), PEx must send a copy of the packet only to attached CEs. PEx MUST NOT send the frame to other PEs, since PEy would have already done so. &amp;nbsp;This notion has been termed "split horizon" forwarding and is a consequence of the PEs being logically fully meshed for VPLS.&lt;/blockquote&gt;
&lt;blockquote&gt;
Split horizon forwarding rules apply to broadcast and multicast&amp;nbsp;packets, as well as packets to an unknown MAC address.&lt;/blockquote&gt;
Here is the root of the problem. &amp;nbsp;For some reason it was decided in RFC4761 that known unicast frames could be relayed by a PE device. &amp;nbsp;This shouldn't be a problem, right? &amp;nbsp;After all, it doesn't allow flooding or broadcast to be relayed, so that should break any potential loops, right?&lt;br /&gt;
&lt;br /&gt;
Actually, no. &amp;nbsp;Consider the following network:&lt;br /&gt;
&lt;br /&gt;
&lt;img src="https://docs.google.com/drawings/pub?id=1dQYbXg7sNWvrk3rQQeHsv3bkLd_UJNLydBqEKubvUEs&amp;amp;w=480&amp;amp;h=360" /&gt;&lt;br /&gt;
The VPLS PE devices are all configured with a common MAC aging time of 5 minutes. &amp;nbsp;The devices connected to the PEs have an ARP timeout of 10 minutes.&lt;br /&gt;
&lt;br /&gt;
The devices connected to PE1 and PE3 have both communicated with the device behind PE2 within the last 3 minutes. &amp;nbsp;They have not communicated with each other for 7 minutes.&lt;br /&gt;
&lt;br /&gt;
The devices connected to PE1 and PE3 coincidentally both try sending each other traffic at almost the same time. &amp;nbsp;The devices still have cached ARP entries for each other so do not need to send a broadcast ARP request; however neither PE device has an association for the remote MAC address. &amp;nbsp;The frames are flooded. &amp;nbsp;PE1 sends a frame from 0000.5e00.0101 to 0000.5e00.0103 to both PE2 and PE3.&amp;nbsp;PE3 sends a frame from 0000.5e00.0103 to 0000.5e00.0101 to both PE1 and PE2.&lt;br /&gt;
&lt;br /&gt;
When the frame from PE1 arrives PE3 installs 0000.5e00.0101 in its forwarding table against the pseudowire to PE1. &amp;nbsp;Likewise when the frame from PE3 arrives at PE1 it installs 0000.5e00.0103 against the pseudowire to PE3. &amp;nbsp;The interesting part is when PE2 receives the two frames. &amp;nbsp;It already has valid entries for these MAC addresses in its forwarding table. &amp;nbsp;The RFC only says that unknown unicast frames should not be relayed. &amp;nbsp;When the known unicast frames arrive they are sent back out according to the forwarding table.&lt;br /&gt;
&lt;br /&gt;
PE1 shortly receives another frame from 0000.5e00.0103, this time over the pseudowire associated with PE2. &amp;nbsp;It updates its forwarding table. &amp;nbsp;This duplicate frame is seen by the host and discarded. &amp;nbsp;At PE3 the same thing has happened. &amp;nbsp;PE3 now holds an entry associating 0000.5e00.0101 facing PE2.&lt;br /&gt;
&lt;br /&gt;
When PE1 responds to the packet from PE3 the packet is sent unicast to PE2, where there is still a valid entry to PE3 and it happily relays the frame to its correct destination. &amp;nbsp;The reply from PE3 to PE1 also bounces off of PE2.&lt;br /&gt;
&lt;br /&gt;
Frames between PE1 and PE3 now have a stable path across the network. &amp;nbsp;Traffic is not taking the optimum path, but it is flowing. &amp;nbsp;Unless one of the devices sends a broadcast frame the traffic between their MAC addresses will continue to be relayed via PE2. &amp;nbsp;Because there is no TTL in Ethernet the only symptom to the end devices is that the round trip time has increased. &amp;nbsp;If the initial flooded traffic was a ping then the customer may have noticed the duplicate arrive.&lt;br /&gt;
&lt;br /&gt;
It seems that some of the frustration I have been feeling towards a vendor is not entirely justified. &amp;nbsp;They have implemented the RFC as written, the behaviour is seemingly boneheaded; however it is consistent. &amp;nbsp;Of course given that the vendor in question is also the employer of both authors of the RFC means that the frustration is not entirely misdirected...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3331564036274235380?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3331564036274235380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3331564036274235380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3331564036274235380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3331564036274235380'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/travelling-in-strange-directions-or-is.html' title='Travelling in Strange Directions (or is RFC4761 broken)'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gP9MmdQkD6U/TGGipxXvBaI/AAAAAAAABGo/aCFXdS-Cib0/s72-c/Image(058).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1094814932016807736</id><published>2010-08-10T07:10:00.000+01:00</published><updated>2010-08-10T07:10:34.352+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='verizon'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Neutrality Quick Bite</title><content type='html'>I haven't really had much time to look at it, but an interesting new development in Net Neutrality&lt;br /&gt;
&lt;a href="http://www.scribd.com/doc/35599242/Verizon-Google-Legislative-Framework-Proposal"&gt;Verizon Google Legislative Framework Proposal&lt;/a&gt;. &amp;nbsp;Interesting idea. &amp;nbsp;This is essentially public lobbying, right? &amp;nbsp;Legislation is often written in draft by lobbyists before being amended by politicians and passed into law. &amp;nbsp;The chances of the US legislature taking this proposal as is and voting it into law is zero. &amp;nbsp;I want to hear whether a) legislators are interested and b) what amendments they propose before getting too interested in this.&lt;br /&gt;
&lt;br /&gt;
One key point: &amp;nbsp;They don't think wireless should have regulated neutrality. They do however think that it should have transparency requirements. &amp;nbsp;I think this approach can work because there is more competition in the mobile space.&lt;br /&gt;
&lt;br /&gt;
Which reminds me of a thought I had a couple of years ago.&lt;br /&gt;
&lt;br /&gt;
A while back &lt;a href="http://news.cnet.com/8301-1035_3-10053045-94.html"&gt;some Australian ISPs&lt;/a&gt; &amp;nbsp;got slammed for claiming that Net Neutrality was an American problem. &amp;nbsp;Actually I largely agree with this. &amp;nbsp;Here in the UK there is a much wider selection of DSL providers. &amp;nbsp;If you don't like the service of your ISP you get a migration reference, pass it to a new provider and bish, bash, bosh on the same line you are on a different SP network. &amp;nbsp;This competition provides strong incentive to deliver what the customer wants rather than forcing what you want down the customer's throat.&lt;br /&gt;
&lt;br /&gt;
Perhaps a better way to address the neutrality issue is to regulate to make wholesale network access a requirement, then if people don't like the retail offering of a big player, someone can start up a competing service over the same copper, this could be a local cooperative or an alternative player that wants to expand into an area without having to build out network.&lt;br /&gt;
&lt;br /&gt;
There are probably plenty of reasons why this model works in the UK but not in the US. &amp;nbsp;Feel free to point them out in the comments...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1094814932016807736?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1094814932016807736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1094814932016807736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1094814932016807736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1094814932016807736'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/neutrality-quick-bite.html' title='Neutrality Quick Bite'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-9105368262642570468</id><published>2010-08-09T23:29:00.001+01:00</published><updated>2010-08-09T23:30:43.820+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='gre'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Alternative Topology</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;script src="http://www.freefoto.com/imagelink/?ffid=21-19-19&amp;amp;s=s" type="text/javascript"&gt;
&lt;/script&gt;
&lt;/span&gt;&lt;/div&gt;
So in the last scaling the Internet post I did a brief overview of LISP. &amp;nbsp;It was pretty shallow in detail because at the heart of it LISP is just an encapsulation method like any other. &amp;nbsp;The clever stuff is in the interactions with the mapping protocols.&lt;br /&gt;
&lt;br /&gt;
A number of different mapping protocols are being investigated with greater and lesser degrees of complexity. &amp;nbsp;In order to get systems out there and experience with the protocols, a base mapping protocol has been written called "&lt;a bitly="BITLY_PROCESSED" href="http://tools.ietf.org/html/draft-fuller-lisp-alt-05"&gt;LISP Alternative Topology (LISP+ALT)&lt;/a&gt;".&lt;br /&gt;
&lt;br /&gt;
Quoting from the abstract:&lt;br /&gt;
&lt;blockquote&gt;
An important design goal for LISP+ALT is to allow for the relatively easy deployment of an efficient mapping system while minimizing changes to existing hardware and software.&lt;/blockquote&gt;
&lt;br /&gt;
While LISP+ALT has its faults, it is felt that having a complete and functional mapping protocol in place is an important step in order to gain experience with using the protocols in real networks (as explained in &lt;a bitly="BITLY_PROCESSED" href="http://datatracker.ietf.org/doc/draft-irtf-rrg-recommendation/"&gt;the RRG recommendation draft&lt;/a&gt;)&lt;br /&gt;
&lt;blockquote&gt;
LISP has a standardized mapping system interface, in part to allow reasonably smooth deployment of whatever new mapping system(s) experience might show are required. At least one other mapping system (LISP-TREE), which avoids ALT's problems (such as query load concentration at high-level nodes), has already been laid out and extensively simulated. Exactly what mixture of mapping system(s) is optimal is not really answerable without more extensive experience, but LISP is designed to allow evolutionary changes to other mapping system(s).&lt;/blockquote&gt;
So what is LISP+ALT and how does it work?&lt;br /&gt;
&lt;br /&gt;
Packets travel between endpoints. &amp;nbsp;When a LISP ITR (ingress tunnel router) receives a packet it needs to map the destination endpoint identifier (EID) to a routing locator (RLOC) so that it can encapsulate the packet and forward it across the LISP network to the ETR (egress tunnel router).&lt;br /&gt;
&lt;br /&gt;
ALT defines a method of building an overlay network using GRE tunnels. &amp;nbsp;This overlay network is built with a strong hierarchy to ensure that EID advertisements are aggregated as much as possible. &amp;nbsp;By doing this the routing table of any individual LISP+ALT router should only hold specific EID prefixes for nearby networks and a smaller number of aggregated routes. &amp;nbsp;The overlay network is used only as a control plane for the forwarding of LISP map-request messages. &amp;nbsp;No data plane traffic is forwarded over this network (actually the draft does define the capability to forward traffic for unknown EID-RLOC mappings rather than dropping the initial packet [known as data probes]; however this behaviour is experimental and the recommendation is to disable this by default.)&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img height="300" src="https://docs.google.com/drawings/pub?id=10FKp2agvEy2YeLdrVqBmapvvE8A56zd4vhK4649R81o&amp;amp;w=960&amp;amp;h=720" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example ALT Topology&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Here is an example topology. &amp;nbsp;The logical connections between LISP+ALT routers are made using GRE tunnels. &amp;nbsp;Exchange of information related to the LISP Endpoint Identifiers (EIDs) is done using BGP.&lt;br /&gt;
&lt;br /&gt;
A LISP ITR in AS960 receives a packet destined for 10.1.64.25 which is part of the network 10.1.64.0/24 originated from AS9. &amp;nbsp;The ITR in AS960 forwards a Map-Request into the ALT overlay network. &amp;nbsp;It follows the aggregated route to the top of the hierarchy, when it gets to AS10 the prefix gets de-aggregated and the Map-Request makes its way back down the chain to AS9. &amp;nbsp;Once the packet reaches AS9 the EID to RLOC mapping can be looked up. &amp;nbsp;Because the Map-Request contains the RLOC of the ITR, the Map-Reply message is sent back over the LISP network directly rather than passing over the ALT overlay.&lt;br /&gt;
&lt;br /&gt;
When the first packet received by the ITR there was no mapping available, the default action in this situation is to drop the packet. &amp;nbsp;When no response is received the host will try again, and this time the Map-Reply should have been received and added to the local cache. &amp;nbsp;The ITR is now able to encapsulate the packet and forward it to the correct ETR across the LISP network.&lt;br /&gt;
&lt;br /&gt;
In a network with frequent communication between a relatively small number of source and destination EIDs this is a pretty good match. &amp;nbsp;Some limitations though are:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Dropping the initial packet is fine for TCP (retransmitted); however not so good for UDP (e.g. lost syslog messages)&lt;/li&gt;
&lt;li&gt;The hierarchy of the ALT means that a Map-Request could take a very long path to the egress ALT node. &amp;nbsp;Delay could mean more than just an initial packet drop.&lt;/li&gt;
&lt;li&gt;The ALT draft indicates that the Autonomous system numbers for ALT would be assigned independently from AS numbers used in the global Internet. &amp;nbsp;Could cause problems as most routers only support a single AS number.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
DFZ and get rid of its benefits.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
My opinion? &amp;nbsp;I think the LISP+ALT solution is clever and quite elegant; however I think it is too far from current network practicalities to be widely accepted. &amp;nbsp;Coupling ALT with the &lt;a bitly="BITLY_PROCESSED" href="http://tools.ietf.org/id/draft-zhang-evolution-02.txt"&gt;AIS&lt;/a&gt;&amp;nbsp;to get rid of the requirement for central aggregators could potentially be an interesting alternative. &amp;nbsp;I will take a look at some alternative mapping methods for LISP but next in this series I will be taking a deeper look at ILNP.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-9105368262642570468?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/9105368262642570468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=9105368262642570468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/9105368262642570468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/9105368262642570468'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/alternative-topology.html' title='Alternative Topology'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-4503212465790414219</id><published>2010-08-04T23:07:00.000+01:00</published><updated>2010-08-04T23:07:34.852+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='comcast'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><title type='text'>Paved with Good Intentions</title><content type='html'>&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://imgs.xkcd.com/comics/random_number.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="115" src="http://imgs.xkcd.com/comics/random_number.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;© &lt;a bitly="BITLY_PROCESSED" href="http://xkcd.com/"&gt;xkcd&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I'm going to take a step back from the actual consultations for a post and have a look at the big picture. &amp;nbsp;The big picture is important. &amp;nbsp;In my opinion it is not stopping to look at the big picture that has got us into this mess.&lt;br /&gt;
&lt;br /&gt;
There have been rumblings about net neutrality for a long time. &amp;nbsp;It was always there, people generally thought it was probably a good idea but people seem to be doing the right thing anyway, so what is the point?&lt;br /&gt;
&lt;br /&gt;
Then comes "&lt;a bitly="BITLY_PROCESSED" href="http://www.eff.org/wp/packet-forgery-isps-report-comcast-affair"&gt;The Comcast Affair&lt;/a&gt;". &amp;nbsp;I don't think anyone would try and justify Comcast's actions in this instance; however I just want to play devils advocate for a moment and set out a series of events that could (almost) lead me to implement something similar.&lt;br /&gt;
&lt;br /&gt;
As an engineering department you are approached by a product manager: "Guys, we just can't sell bandwidth to consumers at these prices. &amp;nbsp;How can we bring the price down.". &amp;nbsp;You have a bit of a look at the network utilisation, the number of current users, do a bit of number crunching... &amp;nbsp;"Well looking at today's traffic patterns our userbase are using significantly less than we have provisioned. &amp;nbsp;Assuming traffic patterns remain constant I think we could survive with a contention rate of 20-30:1 without negatively impacting the customer's performance. &amp;nbsp;This would bring our costs down by a significant margin but we would need to keep a very careful eye on the traffic mix to make sure this doesn't come back to bite us.". &amp;nbsp;The product manager turned off when he heard "significant margin".&lt;br /&gt;
&lt;br /&gt;
Move on 6-9 months. &amp;nbsp;The lines have been bumbling along with similar traffic patterns. &amp;nbsp;You are still generating the reports but no-one outside of engineering is looking at them. &amp;nbsp;After a while you don't even have time to look at them yourself. &amp;nbsp;Or maybe the guy who wrote the script moves on and no-one notices when his cron job generating the report stops.&lt;br /&gt;
&lt;br /&gt;
Move on another 6-9 months. &amp;nbsp;The pipes in the broadband network are starting to run a bit hot. &amp;nbsp;When you ask for upgrades you get a surprised look "We paid for an upgrade 3 months ago. &amp;nbsp;Why are you back so soon? &amp;nbsp;We don't have the customer revenue to justify an upgrade right now." &amp;nbsp;Maybe it is time to revisit those reports. &lt;br /&gt;
&lt;br /&gt;
When you look at the report you notice two things. &amp;nbsp;Firstly you notice that the average usage per customer has gone up significantly. &amp;nbsp;Next you notice that if you ignore the top 5% of customers the average hasn't actually changed that much. &amp;nbsp;What are those top 5% up to? &amp;nbsp;Time for some traffic analysis.&lt;br /&gt;
&lt;br /&gt;
You dig out your favourite traffic analysis tool (in a broadband access network this probably won't be &lt;a bitly="BITLY_PROCESSED" href="http://wireshark.org/"&gt;Wireshark&lt;/a&gt;. &amp;nbsp;It will probably be something based on Netflow. &amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://nfsen.sf.net/"&gt;NfSen&lt;/a&gt; is a personal favourite in this area). &amp;nbsp;You notice that these subscribers seem to have a massive number of TCP connections on ports 6969 and 6881-6889. &amp;nbsp;These connections go all over the world. &amp;nbsp;This doesn't look like a typical user traffic pattern, are these guys compromised and part of a botnet? &amp;nbsp;A quick Google search shows not. &amp;nbsp;BitTorrent. &amp;nbsp;That's one of them thar peer to peer networks that people use to steal music and movies. &amp;nbsp;Stuff like this wasting bandwidth was why we stopped carrying the binary news groups a few years back and now it is back causing problems for customers again.&lt;br /&gt;
&lt;br /&gt;
Internet congestion management has traditionally held one concept fundamental. &amp;nbsp;The best way to be fair to traffic is to give each flow equal precedence. &amp;nbsp;If you give each flow an equal crack at the bandwidth then any drops are random and no-one can accuse you of discrimination. &amp;nbsp;These peer to peer users are gaming that. &amp;nbsp;In a congested network the subscriber with 10 connections will get twice the bandwidth allocation of a customer with only 5 connection. &amp;nbsp;To paraphrase Orwell: "All subscribers are equal, but some are more equal than others."&lt;br /&gt;
&lt;br /&gt;
So we have a small number of subscribers grabbing a disproportionate share of the limited bandwidth. &amp;nbsp;How do we spoil their fun? &amp;nbsp;What about a simple port block?&lt;br /&gt;
&lt;br /&gt;
And so the game is on. &amp;nbsp;Each time you do something to block the traffic the user does something to avoid the limits. &amp;nbsp;This is what I like to think of a "whack-a-mole network management". &amp;nbsp;It rapidly escalates to the point where you have installed DPI and start spoofing RST packets when certain protocols are detected.&lt;br /&gt;
&lt;br /&gt;
The problem is that deciding to stand against the bandwidth leeches was a blinkered choice. &amp;nbsp;By focusing too closely on the problem we ended up moving away from the reasonable path one step at a time, and by the end of it we were way out in the wilderness with no hope of justifying our position.&lt;br /&gt;
&lt;br /&gt;
When I found myself in the position of tackling access network congestion a few years back I approached it from a different angle. &amp;nbsp;I tried to keep an eye on the big picture and rather than questioning the intentions of the users, I questioned the underlying assumption that per flow fairness is the right approach. &amp;nbsp;When it comes to the access network I still question this assumption. &amp;nbsp;If you have a congested access network and you can't upgrade it, then you need to ensure that access fairness is on a per subscriber basis rather than a per flow basis. &amp;nbsp;This allows your customer's to do whatever they feel like. &amp;nbsp;They lose the ability to game the system. &amp;nbsp;Maybe it isn't a case of "everybody wins", but at least it doesn't end with you looking like the loser.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
Almost all of the cases where people have claimed a "violation of net neutrality" could be explained by wrong-headed technical decisions made by overworked engineers. &amp;nbsp;One of the biggest problems with network neutrality is that most engineers don't get enough time to look at the big picture. &amp;nbsp;People are paid to keep networks running by whatever means necessary, and people are rarely willing to stand up for a principle when doing so will mean threatening revenue, that way leads to a P45. One case often cited of business driven blocking is VoIP services over 3G networks. &amp;nbsp;Personally I am not convinced. &amp;nbsp;Knowing a little about how mobile networks are built, an also having personally experienced GPRS networks with round trip times counted in seconds rather than milliseconds, I tend to think that the reason mobile networks don't allow VoIP is because they know it won't work and that it will generate a deluge of support calls. &amp;nbsp;I do think that if this is the case they should just come out and say it though.&lt;/div&gt;
&lt;br /&gt;
Personally I think the people best placed to ensure network neutrality are those of us that design and operate networks. &amp;nbsp;I also believe that unless we are careful we are also the people most likely to break things. &amp;nbsp;I believe that we need to take the time to step back and look at the big picture from time to time. &amp;nbsp;I believe we also need to remember the KISS principle. &amp;nbsp;A clever configuration might be good for your job security but it probably isn't good for the sanity of your ops team.&lt;br /&gt;
&lt;br /&gt;
What we need to do is to foster an environment where giving people time to looking at the big picture can help the bottom line. &amp;nbsp;If only we had an independent organisation focused on the good of the Internet that could maybe give us some &lt;a bitly="BITLY_PROCESSED" href="http://www.faqs.org/rfcs/rfc4084.html"&gt;standard naming conventions&lt;/a&gt; for Internet access types so that we could better inform consumers of what they are buying. &amp;nbsp;Maybe we could call it the &lt;a bitly="BITLY_PROCESSED" href="http://www.isoc.org/"&gt;Internet Society&lt;/a&gt;. &amp;nbsp;If only these things existed so that instead of governments focusing on legislation to use as a stick to keep evil ISPs in line, they could instead help develop the carrots that could encourage people to do TheRightThing™.&lt;br /&gt;
&lt;br /&gt;
If government want to help then the best thing they can do is sponsor independent research and provide funding or incentives for community outreach. &amp;nbsp;A combination of competition, clearly defined terminology and transparent metrics will create a market where there are business drivers to do things right.&lt;br /&gt;
&lt;br /&gt;
Here endeth the sermon (for now anyway...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-4503212465790414219?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/4503212465790414219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=4503212465790414219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4503212465790414219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4503212465790414219'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/paved-with-good-intentions.html' title='Paved with Good Intentions'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3880717068884850242</id><published>2010-08-04T00:17:00.002+01:00</published><updated>2010-08-04T19:38:10.129+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='ofcom'/><category scheme='http://www.blogger.com/atom/ns#' term='consultation'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Maintaining a Balance</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_gP9MmdQkD6U/TFiG7rIxf3I/AAAAAAAAADs/0724BlQAAUU/s1600/IMAG0225.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://2.bp.blogspot.com/_gP9MmdQkD6U/TFiG7rIxf3I/AAAAAAAAADs/0724BlQAAUU/s320/IMAG0225.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Only five weeks to go until the deadline for submissions on the Ofcom Net Neutrality Consultation. &amp;nbsp;I need to pull my finger out and crack through this...&lt;br /&gt;
&lt;br /&gt;
The problem is that whenever I start I seem to get steamed up about it. &amp;nbsp;The wording in the documents is always leading.&lt;br /&gt;
&lt;br /&gt;
Take the following:&lt;br /&gt;
&lt;blockquote&gt;
Even in the longer term, as next generation networks are deployed, there may continue to be congestion problems particularly in wireless networks.&lt;/blockquote&gt;
Why is there congestion in access networks? &amp;nbsp;Is it because the technology can't keep up? &amp;nbsp;No. &amp;nbsp;It is possible to put terabits of information over a single fibre. 10Gb/s routed interfaces are mainstream. &amp;nbsp;100Gb/s interfaces are starting to hit production. &amp;nbsp;This limiting factor here comes back to one of the networking truths: &amp;nbsp;"Good, Fast, Cheap. &amp;nbsp;Pick any two." &amp;nbsp;People want fast, people want cheap. &amp;nbsp;People are often willing to compromise on quality or in order to reduce the price. &amp;nbsp;Congestion in the access network exists because people are willing to buy a contended service if the price is right. &amp;nbsp;People buy £6.99 per month for a DSL line because they don't have the £££ available for an uncontended TDM or Ethernet access circuit. &amp;nbsp;In business, where reliability is often a more important factor than price, it is not hard to convince someone that a leased line is generally the right choice.&lt;br /&gt;
&lt;br /&gt;
I think the emphasis needs to shift when discussing this subject. &amp;nbsp;By casually dropping phrases like "congestion problems" we are implying that access networks are badly designed.&amp;nbsp;Congestion doesn't occur because of bad design, it occurs because the design parameters have to allow a certain amount of congestion in order to meet their economic limitations.&amp;nbsp;&amp;nbsp;The ways to address this are: raise prices or figure out how to handle congestion in a fair and transparent manner.&lt;br /&gt;
&lt;blockquote&gt;
In response, network operators and internet service providers (ISPs) are making greater use of traffic management techniques. These can allow them to handle traffic more efficiently, to prioritise traffic by type, to charge for guaranteed bandwidth or to block or degrade the quality of certain content. Whilst traffic management potentially offers some benefits to consumers there are also concerns that firms could use traffic management anti-competitively. The increasing use of traffic management also raises questions about consumers’ awareness and understanding of the impact that traffic management has on their broadband service.&lt;/blockquote&gt;
It isn't just ISPs that are implementing these types of measures. &amp;nbsp;It is actually pretty common for this sort of thing to be deployed within enterprise networks too. &amp;nbsp;Stopping staff clogging up the tubes by watching dancing kitteh videos is essential to many companies. &amp;nbsp;Blocking access to sites such as Twitter and Facebook from work PCs is seen by many business IT managers to be an essential tool to avoid lost productivity. &amp;nbsp;Does this count as anti-competitive? &amp;nbsp;Where do you draw the line between this corporate traffic management and ISP traffic management?&lt;br /&gt;
&lt;br /&gt;
What about when these private enterprise links are part of a service provider VPN? &amp;nbsp;What about when those links carry a mix of Internet traffic and intranet traffic? &amp;nbsp;Should this network still be subject to neutrality requirements? If not, then why not? &amp;nbsp;If so, then how do enterprise network administrators ensure the availability of their mission critical applications?&lt;br /&gt;
&lt;br /&gt;
This is a very complicated area. &amp;nbsp;Going back to the &lt;a bitly="BITLY_PROCESSED" href="http://www.faqs.org/rfcs/rfc1925.html"&gt;networking truths&lt;/a&gt;: One size never fits all, and It is more complicated than you think. &amp;nbsp;I am not sure of my opinions on this and networking is my life. &amp;nbsp;Are we supposed to believe that some politician, with only a rudimentary grasp of how to fill in an online expenses form, will be able to craft a piece of legislation that will promote neutrality while not stifling innovation? &amp;nbsp;The whole concept seems laughable to me. &amp;nbsp;Legislation is a very blunt instrument. &amp;nbsp;While I would happily take a hammer to many of the misconfigured firewalls out there, I can't feel comfortable with the idea of politicians or quangos poking holes through ACLs without any understanding of the subtle arts of traffic engineering or capacity planning.&lt;br /&gt;
&lt;br /&gt;
The more I think of it the more I see it this way:&lt;br /&gt;
&lt;br /&gt;
Traffic management is a layer 8 problem, primarily driven by politics and religion. If we build legislation to shape and limit traffic management we are essentially creating a layer 8 control plane, and in effect justifying the existence of the practises by default.&lt;br /&gt;
&lt;br /&gt;
Maybe this new layer 8 control protocol needs to be&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://www.faqs.org/rfcs/rfc3514.html"&gt;RFC3514&lt;/a&gt;&amp;nbsp;compliant. &amp;nbsp;Traffic management measures with the evil bit clear SHOULD be implemented. &amp;nbsp;Traffic management measures with the evil bit set MAY be implemented but MUST generate a warning message of the format:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;%WARNING: Network Karma Reduced - Consider alternative employment&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Moving on in the consultation document we come to:&lt;br /&gt;
&lt;blockquote&gt;
Proponents of ‘net neutrality’ argue that traffic management by network operators and ISPs could lead to discrimination, in turn harming what they see as essential features of today’s internet . The debate ranges widely including questions such as whether citizens have a ‘fundamental right’ to a neutral internet, or whether ‘net neutrality’ promotes economic competitiveness and growth. These are important questions, but also ones primarily for governments and legislators.&lt;/blockquote&gt;
I will grant that this &lt;i&gt;could&lt;/i&gt; lead to discrimination, is that really the basis for legislation? &amp;nbsp;I would have thought that a minimum requirement would be &lt;i&gt;is likely to&lt;/i&gt;&amp;nbsp;lead to discrimination. &amp;nbsp;I come across issues that restrict the end-to-end principle on a daily basis. &amp;nbsp;Protocols that are blocked or forwarded at a low priority. &amp;nbsp;The thing is that the problems I see are very rarely caused by some malicious traffic management policy designed to discriminate. &amp;nbsp;The most common problems I see are due to mis-configured firewalls that block valid traffic because the administrator that configured them had heard that ICMP was bad. &amp;nbsp;I see problems with NAT implementations that can only handle TCP and UDP. &amp;nbsp; Other protocols silently fail. &amp;nbsp;I see problems due to out of date software on ALGs that interpret newer protocol versions as invalid and terminate sessions. &amp;nbsp;I see DNS servers that return A records for holding pages when they should return NXDOMAIN.&lt;br /&gt;
&lt;br /&gt;
Does a right to neutral internet access mean that these problems will all be swept away? &amp;nbsp;Of course it doesn't.&lt;br /&gt;
&lt;br /&gt;
On the other side of the argument, I see a lot of traffic that I would prefer not to. &amp;nbsp;As soon as you connect a machine to the Internet you will start&amp;nbsp;receiving&amp;nbsp;connections from all over the world. &amp;nbsp;Attempts on port 1433, on port 445, on port 80, on port 25. &amp;nbsp;Packets being originated from machines infected with viruses and trojan horses. &amp;nbsp;Traffic with malicious intent. &amp;nbsp;Should this traffic be given the same right to neutrality? &amp;nbsp;A service provider that blocks such traffic would be providing a service that is safer for their customers, generate fewer support calls and fewer network abuse incidents. &amp;nbsp;This seems like quite a nice niche business model, but it is incompatible with true neutrality.&lt;br /&gt;
&lt;br /&gt;
The final parts of the opening part of the Ofcom document give a statement of requirements:&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Against the background of this wider debate, traffic management raises two key questions for Ofcom, in relation to our duty to promote the interests of citizens and consumers in carrying out our functions. These are:&lt;/blockquote&gt;
&lt;blockquote&gt;
i) What stance should Ofcom take on any potential discrimination?&lt;/blockquote&gt;
&lt;blockquote&gt;
ii) What is the best way to deliver consumer transparency?&lt;/blockquote&gt;
&lt;/blockquote&gt;
After all the information given to outline the problem, the actual goals seem to be surprisingly narrow. &amp;nbsp;What stance should they take, and how to deliver transparency. &amp;nbsp;Given the complexity of issues surrounding traffic management and the target audience of the transparency requirements (consumers), the second question will be by far the harder to answer.&lt;br /&gt;
&lt;br /&gt;
The Ofcom document is actually significantly longer than the EC document, and I have only covered the first 5 pages so far. &amp;nbsp;More to come later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3880717068884850242?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3880717068884850242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3880717068884850242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3880717068884850242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3880717068884850242'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/maintaining-balance.html' title='Maintaining a Balance'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gP9MmdQkD6U/TFiG7rIxf3I/AAAAAAAAADs/0724BlQAAUU/s72-c/IMAG0225.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-6242797515003474296</id><published>2010-08-02T23:32:00.000+01:00</published><updated>2010-08-02T23:32:38.202+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='nat'/><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='end to end'/><category scheme='http://www.blogger.com/atom/ns#' term='firewalls'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Living on the Edge</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_gP9MmdQkD6U/TFcy8ecGfuI/AAAAAAAAADk/nO_7XN-I8vo/s1600/IMAG0273.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/_gP9MmdQkD6U/TFcy8ecGfuI/AAAAAAAAADk/nO_7XN-I8vo/s320/IMAG0273.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Time for the next installment of my scaling the internet series. &amp;nbsp;It is time to move on to some specifics.&lt;br /&gt;
&lt;br /&gt;
The first proposal to the RRG that I will be taking a look at is LISP. &amp;nbsp;As mentioned in my &lt;a bitly="BITLY_PROCESSED" href="http://perlmonkey.blogspot.com/2010/07/simplifying-directions.html"&gt;last post&lt;/a&gt;, LISP is one of the proposals to investigate the possibility of splitting the Locator and Identifier semantics of the IP address (in fact LISP even stands for Locator Identifier Separation Protocol). &amp;nbsp;While LISP isn't the officially recommended technology, it is the one that has major vendor support from Cisco, where the proposal came from. &amp;nbsp;The protocol is supported in IOS 15.0 in regular routing platforms, and has also been &lt;a bitly="BITLY_PROCESSED" href="https://sites.google.com/site/ipv6implementors/2010/agenda/06_Lee_IPv6atFacebookgoogleconferencejun2010_012.pdf?attredirects=0"&gt;implemented by Facebook&lt;/a&gt; internally.&lt;br /&gt;
&lt;br /&gt;
So what's it all about?&lt;br /&gt;
&lt;br /&gt;
In LISP the Internet is segmented. &amp;nbsp;At the edge (although the definition of edge can be fairly fluid) everyone uses IP like usual. &amp;nbsp;In this region an IP address is still an interface identifier. &amp;nbsp;To all intents and purposes devices in this edge region do not see anything different. &amp;nbsp;This is a good thing because it was decided long ago that the Internet should not have any more flag days, all further deployments should be incremental and backwards compatible. &amp;nbsp;As use of the protocol grows the location of the LISP edge can move further out, starting in the ISP core, moving to the customer edge and potentially even to the individual host.&lt;br /&gt;
&lt;br /&gt;
When a packet is forwarded through a path that crosses a LISP network, the first LISP router (the ITR, or Ingress Tunnel Router) will encapsulate the packet. &amp;nbsp;The destination identifier will be used by the ITR to select an associated ETR (Egress Tunnel Router). &amp;nbsp;Routing to the ETR is via an aggregated RLOC (Routing LOCator). &amp;nbsp;RLOCs are largely analagous to routing prefixes but because they are never used as endpoint identifiers many of the drivers for routing table fragmentation, such as multi-homing and mobility, do not apply in this space. &amp;nbsp;This reduced fragmentation pressure means that a DFZ formed of RLOC entries will have fewer entries. &amp;nbsp;The ITR encapsulates traffic to the relevant ETR. &amp;nbsp;Core network devices will just see the encapsulated packet. &amp;nbsp;The encapsulated packet looks just like a standard IP packet, so the core of the network can use standard IP forwarding without change. &amp;nbsp;Only the ITR and ETR need to be LISP aware.&lt;br /&gt;
&lt;br /&gt;
In order to perform the mapping from an EID to the destination RLOC a mapping system is required. &amp;nbsp;A number of mapping systems have been suggested using different methods. &amp;nbsp;These methods each have their advantages and disadvantages, and to some extent can be considered separately from LISP and applied to other map and encap style locator / identifier separation protocols.&lt;br /&gt;
&lt;br /&gt;
The map and encap approach has advantages and disadvantages. &amp;nbsp;Some of the advantages have been mentioned, the end systems and core routers can remain unchanged for example. &amp;nbsp;The DFZ routing table can be made more stable by reducing the drivers for fragmentation and churn. &lt;br /&gt;
&lt;br /&gt;
In the disadvantages column we have issues such as the additional overhead of an extra set of headers. &amp;nbsp;In the network core the MTU is generally pretty high, so this is not necessarily an issue. &amp;nbsp;The mapping method chosen can also contribute to the disadvantages. &amp;nbsp;The ETR RLOC chosen may not be the closest to the destination EID, leading to a longer path through the network than would have been taken with hop-by-hop routing. &amp;nbsp;This is sometimes known as network stretch. &lt;br /&gt;
&lt;br /&gt;
There are also issues with mapping related to timing. &amp;nbsp;Does the ITR need to maintain a full set of EID/RLOC mappings at all times? &amp;nbsp;If so then we are essentially placing the same requirements on ITRs as we are currently seeing in the DFZ. &amp;nbsp;If it isn't acceptable or scalable in the current core, can we really maintain it in the ITR in future? &amp;nbsp;Possibly if the ITR is specially chosen custom hardware, but in many networks it is likely that ITR and core functions will often sit on the same box. &amp;nbsp;If we decide that the ITR does not have to store the information at all times then it needs to have some form of cache and a lookup method. &lt;br /&gt;
&lt;br /&gt;
The question then is what do you do if you don't yet have the correct RLOC for a packet? &amp;nbsp;Do you hold it and wait for a mapping response, or do you drop it and wait for the initiator to retransmit, hopefully after your map request has been answered? &amp;nbsp;The second is generally favoured because when working with large bandwidths buffer space is not cheap. &amp;nbsp;A large number of packets to uncached EIDs could quickly cause a denial of service. &amp;nbsp;Obviously any drop of initial packets is going to slow communications. &amp;nbsp;Especially if the communications profile involves many short duration connections.&lt;br /&gt;
&lt;br /&gt;
One of the design decisions in LISP has been taken for a reason that I have been meaning to blog about for a while.&lt;br /&gt;
&lt;br /&gt;
Firewalls. &amp;nbsp;The bane of the end-to-end principle.&lt;br /&gt;
&lt;br /&gt;
In the current Internet firewalls and NATs are unavoidable. &amp;nbsp;And in certain cases the assumption you have to make is that they are broken. &amp;nbsp;PMTU doesn't work because there are so many routers on the internet that block all ICMP because someone thinks that ping gives too much information about their network. &amp;nbsp;Technically advanced but not widely deployed protocols such as SCTP do not gain wide deployment because firewalls and NATs need to be updated to support them, and there is no reason to expect that this will be done in any reasonable time scale.&lt;br /&gt;
&lt;br /&gt;
Where does this factor into LISP? &amp;nbsp;LISP uses UDP for its encapsulation. &amp;nbsp;One of the primary reasons is for compatibility. &amp;nbsp;Choosing another protocol would make it much harder to ensure unhindered passage across today's Internet. &amp;nbsp;Another reason for the choice was to make sure that LISP would be compatible with ECMP (Equal Cost Multi-Path) implementations which largely use the 5-tuple (SRC IP, DST IP, PROTO, SRC PORT, DST PORT). &amp;nbsp;TCP and UDP play well with these load balancing decisions. &amp;nbsp;Other protocols may not be understood and will not be spread as well across link members.&lt;br /&gt;
&lt;br /&gt;
For performance reasons LISP specifies a zero UDP checksum. &amp;nbsp;This is a perfectly valid decision on UDP in IPv4; however with IPv6 the UDP checksum is mandatory. &amp;nbsp;There was quite a heated debate on the LISP lists about this at the time. &amp;nbsp;While I can see both sides of the argument, I believe that the choice to make UDPv6 checksum mandatory was the right one. &amp;nbsp;If LISP wanted no Checksum the right decision would have been to use something other than UDP at the transport layer. &amp;nbsp;In theory IPv6 shouldn't need the 5-tuple for load balancing on ECMP, it should be possible using the 3-tuple (SRC IP, DST IP, FLOW ID); however current early implementations of IPv6 cannot be relied on for a (pseudo)random flow id. &amp;nbsp;In theory a 3-tuple balancing implementation would balance traffic agnostic to the higher layer protocol, but in reality it would give little benefit because most flows would have a zero flow id.&lt;br /&gt;
&lt;br /&gt;
Next up I will be looking at the current leader in the mapping protocol race. &amp;nbsp;ALT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-6242797515003474296?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/6242797515003474296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=6242797515003474296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6242797515003474296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6242797515003474296'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/08/living-on-edge.html' title='Living on the Edge'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gP9MmdQkD6U/TFcy8ecGfuI/AAAAAAAAADk/nO_7XN-I8vo/s72-c/IMAG0273.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7771019636322952074</id><published>2010-07-26T23:26:00.000+01:00</published><updated>2010-07-26T23:26:17.369+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='locator identifier split'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Simplifying the Directions</title><content type='html'>&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_gP9MmdQkD6U/TE33FoYL0YI/AAAAAAAAADc/PdfXvgMcAEM/s1600/geograph-1283020-by-Roy-Hughes.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/_gP9MmdQkD6U/TE33FoYL0YI/AAAAAAAAADc/PdfXvgMcAEM/s200/geograph-1283020-by-Roy-Hughes.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;© Copyright&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://www.geograph.org.uk/profile/32682" title="View profile"&gt;Roy Hughes&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;and &amp;nbsp;licensed for&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;reuse&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;under this&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://creativecommons.org/licenses/by-sa/2.0/" rel="license"&gt;Creative Commons Licence&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;So there seems to be a consensus that it is a good idea to separate locator and identifier information. &amp;nbsp;What does this actually mean though? &amp;nbsp;I feel an explanation coming on.&lt;br /&gt;
&lt;br /&gt;
So. &amp;nbsp;Back to basics. &amp;nbsp;I'll keep it simple and stick with IPv4. &amp;nbsp;IPv6 has a few subtle differences but is generally the same. &amp;nbsp;Every IP packet has a source and destination address. An IP address is an interface identifier, it identifies the point of attachment to the network, not the host (this distinction is important when considering mobility). &amp;nbsp;IP routing is generally done on a hop by hop basis based on the destination address. &amp;nbsp;When a packet arrives at a gateway the destination address is compared with the local routing table using a longest match algorithm. &amp;nbsp;If the destination is not on the local network then the first couple of hops will probably be following a default route. &amp;nbsp;The packet will eventually reach the core level of routers running without a default (the default free zone or DFZ), routers that hold the full Internet routing table and carrying 300-400k routes in their FIB. &amp;nbsp;As the packet nears its destination and hits the destination AS the matches will get longer and it will eventually hit the egress router and arrive at the destination network interface and be passed up the stack to the host.&lt;br /&gt;
&lt;br /&gt;
This is all simple enough. &amp;nbsp;This is the way that the Internet has worked for decades. &amp;nbsp;The problem is that the DFZ routing table is growing at a rapid rate and this rate is likely to increase over the next couple of years as addresses become scarce and prefixes are split and traded.&lt;br /&gt;
&lt;br /&gt;
Lets take a step back and look at the DFZ routers. &amp;nbsp;Do these routers have 300-400k interfaces? &amp;nbsp;No. &amp;nbsp;Are there 300-400k destination AS numbers to go along with those routes? &amp;nbsp;No. If you look at the routing table prefix by prefix, and take a look at the next hop IP address, next hop autonomous system number, as path length,&amp;nbsp;etc.&amp;nbsp;you will find that the number of distinct paths through the network is vastly reduced.&lt;br /&gt;
&lt;br /&gt;
The number of active AS numbers is far smaller than the number of active prefixes in the table. &amp;nbsp;Even if we assume multiple partitions for each AS due to traffic engineering the table would still be vastly reduced. &amp;nbsp;As&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://www.faqs.org/rfcs/rfc1925.html"&gt;RFC1925&lt;/a&gt;&amp;nbsp;says: It is always possible to add another level of indirection. &amp;nbsp;The set of routes in the Internet can be split into multiple groups of destinations (call them locations). &amp;nbsp;The number of locations is smaller than the number of prefixes and also more stable.&lt;br /&gt;
&lt;br /&gt;
Abstracting the location semantics from the identifier semantics in the IP address seems to be a good idea but how do you do it? &amp;nbsp;That is an ongoing argument. &amp;nbsp;And I will looking at the leading proposals next time.&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7771019636322952074?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7771019636322952074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7771019636322952074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7771019636322952074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7771019636322952074'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/simplifying-directions.html' title='Simplifying the Directions'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gP9MmdQkD6U/TE33FoYL0YI/AAAAAAAAADc/PdfXvgMcAEM/s72-c/geograph-1283020-by-Roy-Hughes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3536773872987320039</id><published>2010-07-20T21:33:00.000+01:00</published><updated>2010-07-20T21:33:47.279+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='europe'/><category scheme='http://www.blogger.com/atom/ns#' term='consultation'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>A Gathering Storm?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_gP9MmdQkD6U/TEX1XLfDRXI/AAAAAAAAADI/DDkoVP8qkmM/s1600/IMAG0257.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://3.bp.blogspot.com/_gP9MmdQkD6U/TEX1XLfDRXI/AAAAAAAAADI/DDkoVP8qkmM/s320/IMAG0257.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
This should be the last part of my read through of the European Commission consultation into Network Neutrality. &amp;nbsp;Most of the contentious bits are behind us now.&lt;br /&gt;
&lt;br /&gt;
Section 4.3 Market Structure. &amp;nbsp;This section is fairly straight forward. &amp;nbsp;The Internet is not a collection of tubes. &amp;nbsp;It is a complex interconnected mesh of individual autonomous units with an array of contractual relationships governing the borders. No shit.&lt;br /&gt;
&lt;br /&gt;
Imagine travelling from London to Prague by land. &amp;nbsp;You will need to travel through a number of different countries. &amp;nbsp;You will use road networks with different rules. &amp;nbsp;You will pass through border checkpoints with different levels of security. &amp;nbsp;Someone else leaving at the same time for the same destination may end up taking significantly more or less time to get there. &amp;nbsp;In some locations you may be expected to pay to use a road. &amp;nbsp;Paying may or may not get you better service. &amp;nbsp;Where is the consultation on transport neutrality?&lt;br /&gt;
&lt;br /&gt;
The normal snipe at peering sneaks in at the end.&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
The flows of traffic over and between the networks that ultimately deliver content to the end&amp;nbsp;user are complex; they sometimes involve peering arrangements that do not involve monetary&amp;nbsp;flows, since traffic is presumed to be balanced. While peering agreements appear to be the&amp;nbsp;norm between internet backbone operators, network operators are also entering into such&amp;nbsp;agreements with internet companies even though traffic flows might be asymmetrical.&lt;/blockquote&gt;
&lt;/blockquote&gt;
A lot is made of balancing traffic flows and of symmetrical traffic. &amp;nbsp;Volume of traffic is not the only metric in a peering arrangement. &amp;nbsp;A peering arrangement between commercial providers is a commercial decision. &amp;nbsp;For some people minimising latency is more important than volume of traffic. &amp;nbsp;For others they peer as widely as they can as a marketing exercise. &amp;nbsp;At the end of the day a peering arrangement will come about when two networks think that exchanging traffic directly will be less costly than sending that same traffic via a third party. &amp;nbsp;Peering with asymmetric flows is nothing new. &amp;nbsp;It has been going on as long as I have been in the industry. &amp;nbsp;When I was first setting up peerings for the NetDirect network at LoNAP I don't think there was a single symmetric session.&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Question 10: Are the commercial arrangements that currently govern the provision of access&amp;nbsp;to the internet adequate, in order to ensure that the internet remains open and that&amp;nbsp;infrastructure investment is maintained? If not, how should they change?&lt;/blockquote&gt;
&lt;/blockquote&gt;
&amp;nbsp;4.4 Consumers — Quality of Service&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
From the point of view of end users, including domestic consumers, the private sector and&amp;nbsp;public administrations, the core issue is one related to transparency and quality of service.&lt;/blockquote&gt;
&lt;/blockquote&gt;
While transparency and quality of service are certainly concerns high on the list of many people I don't think I would agree that they are the core issue. &amp;nbsp;Most people, especially in the current climate, would put price far ahead of concerns about transparency.&lt;br /&gt;
&lt;br /&gt;
The rest of this section focuses on the ability of consumers to switch providers and how it may be limited by minimum contract terms or lack of competition. &amp;nbsp;This doesn't really seem to be related to any of the questions in this section. &lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Question 11: What instances could trigger intervention by national regulatory authorities in&amp;nbsp;setting minimum quality of service requirements on an undertaking or undertakings providing&amp;nbsp;public communications services?&lt;/blockquote&gt;
&lt;blockquote&gt;
Question 12: How should quality of service requirements be determined, and how could they&amp;nbsp;be monitored?&lt;/blockquote&gt;
&lt;blockquote&gt;
Question 13: In the case where NRAs find it necessary to intervene to impose minimum&amp;nbsp;quality of service requirements, what form should they take, and to what extent should there&amp;nbsp;be co-operation between NRAs to arrive at a common approach?&lt;/blockquote&gt;
&lt;blockquote&gt;
Question 14: What should transparency for consumers consist of? Should the standards&amp;nbsp;currently applied be further improved?&lt;/blockquote&gt;
&lt;/blockquote&gt;
&amp;nbsp;The final section is 4.5 — The&amp;nbsp;political, cultural and social dimension&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
The internet has become a vital platform for the political, cultural, and social participation of&amp;nbsp;European citizens. Any policy decision concerning the way in which the internet functions&amp;nbsp;must be framed keeping this basic premise very firmly in mind.&lt;/blockquote&gt;
&lt;/blockquote&gt;
This is a good control to maintain. &amp;nbsp;Any regulations imposed on the Internet should be formed to maintain free speech and openness. &amp;nbsp;I don't suppose someone could let the guys negotiating the ACTA treaty know about this requirement could they?&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Question 15: Besides the traffic management issues discussed above, are there any other&amp;nbsp;concerns affecting freedom of expression, media pluralism and cultural diversity on the&amp;nbsp;internet? If so, what further measures would be needed to safeguard those values?&lt;/blockquote&gt;
&lt;/blockquote&gt;
That is the end of the European consultation. &amp;nbsp;There were a couple of points that I would consider misleading, and some sections that seemed fairly irrelevant to the topic at hand; but in general it was pretty straight forward. &amp;nbsp;Next up I will be working through the Ofcom consultation document before attempting to build my responses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3536773872987320039?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3536773872987320039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3536773872987320039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3536773872987320039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3536773872987320039'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/gathering-storm.html' title='A Gathering Storm?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gP9MmdQkD6U/TEX1XLfDRXI/AAAAAAAAADI/DDkoVP8qkmM/s72-c/IMAG0257.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1896067331525027424</id><published>2010-07-19T23:39:00.000+01:00</published><updated>2010-07-19T23:39:09.976+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='ip'/><category scheme='http://www.blogger.com/atom/ns#' term='ais'/><category scheme='http://www.blogger.com/atom/ns#' term='standards'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='ilnp'/><category scheme='http://www.blogger.com/atom/ns#' term='rrg'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Just In Time</title><content type='html'>&lt;br /&gt;
&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://xkcd.com/466/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://imgs.xkcd.com/comics/moving.png" width="211" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The Internet is a finely tuned machine. &amp;nbsp;The most surprising thing about it is that it keeps going. &amp;nbsp;For years the Internet has been repeatedly patched just before it breaks. &amp;nbsp;I advise you to read &lt;a bitly="BITLY_PROCESSED" href="http://www.cs.ucl.ac.uk/staff/m.handley/papers/only-just-works.pdf"&gt;this paper&lt;/a&gt;, giving an overview of some of the disasters narrowly avoided in the past as well as a feel for the future. &amp;nbsp;Of course that paper is four years old now, so some of those concerns are already upon us.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
X-day is now less than a year away. &amp;nbsp;Poorly designed congestion control mechanisms have led to governments to start stepping in to enforce &lt;a bitly="BITLY_PROCESSED" href="http://perlmonkey.blogspot.com/2010/07/it-may-be-neutral-but-is-it-cricket.html"&gt;Net Neutrality&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As I posted last week, I am going to be looking in more depth at the investigations and recommendations of the&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://trac.tools.ietf.org/group/irtf/trac/wiki/RoutingResearchGroup"&gt;Routing Research Group&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
At IETF 77 in March, the RRG co-chairs Tony Li and Lixia Zhang presentation the conclusions reached after a number of years of discussion around the subject of building architectures for a more scalable internet. &amp;nbsp;There were a large number of proposals made, approaching the problems outlined from a number of different directions. &amp;nbsp;I will not be examining all of them here, I will be focusing on those recommended by the group.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are several primary problems to be addressed. &amp;nbsp;The growth in the size of the routing table is the main issue. &amp;nbsp;Some of the factors pushing growth include requirements for multi-homing, traffic engineering and mobility. &amp;nbsp;When discussing mobility it is important to understand the scope, this is not talking about full dynamic mobility with session handover, this is the ability to move an entire subnet from one location to another (i.e. moving between providers without having to renumber). &amp;nbsp;These problems exist today in the IPv4 Internet and they will also be an issue as the IPv6 routing table grows so any solution needs to apply to both protocols.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As the available free address pool reduces in size fragmentation effects are causing the average prefix length to increase. &amp;nbsp;Existing prefixes are being split into multiple smaller chunks leading to a larger routing table. &amp;nbsp;The first recommendation (Aggregation with Increasing Scopes, AIS). &amp;nbsp;AIS is actually a collection of methods that can be used to aggregate routing information. &amp;nbsp;These include route aggregation within the FIB to reduce the size of forwarding tables within individual routers, virtual-aggregation which can reduce the size of the RIB as well as shield edge routers from churn associated with a larger number of smaller prefixes and finally the aggregation can extend to inter-as routes. &amp;nbsp;These techniques are a controlled method of reducing information. This reduces the resources required; however it can also reduce the optimality of the routing decisions. &amp;nbsp;When a technique makes a network path longer in this manner it is termed "network stretch" or "stretch factor". &amp;nbsp;The more aggressive you are with your aggregation the longer the stretch factor. &amp;nbsp;In some cases you may even reduce the routing information so far that forwarding is no longer deterministic. &amp;nbsp;AIS is a useful set of tools and if used pragmatically &amp;nbsp;will probably be an essential part of running a network over the next decade or so. &amp;nbsp;This is not a long term solution though and should probably sit in the realms of "necessary evil" along with technologies like NAT.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To make a lasting impact on the problem we need to rethink how we address the Internet. &amp;nbsp;One of the recurring themes amongst the proposals is the concept of Locator and Identifier separation. &amp;nbsp;Right from the beginning the Internet protocols have overloaded the semantics of the address. &amp;nbsp;An IP address is an interface identifier; however it is also used as a node identifier and a network locator. &amp;nbsp;It is debatable whether the concept of node identifiers or host identifiers are within the remit of the RRG. &amp;nbsp;Such a concept probably exists at the session layer of the OSI model which is a layer that isn't really defined in the Internet model. &amp;nbsp;True mobility with seamless session hand-over would need additional host support and in my mind is outside of the scope of the RRG which should concern itself with the network layer.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In a way it would be nice to just go back to the drawing board and redesign our network communications from the ground up based on what we have learned over the past few decades. &amp;nbsp;We could probably build a bloody good set of protocols that way. &amp;nbsp;But noone would use them because they wouldn't be compatible with the existing deployed internet. &amp;nbsp;One of the primary requirements of the proposals to the RRG is that they must be deployable in an incremental manner. &amp;nbsp;That they mustn't break communications between existing hosts.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are many proposals around the split between locator and identifier; however there are two front runners. &amp;nbsp;The working group have recommended ILNP as the preferred medium-long term solution to the scaling issue; however the industry have put a lot of effort behind the LISP proposal. &amp;nbsp;Which of these will win out is yet to be seen; however the fact that Cisco have put LISP into IOS15.0 and that Facebook have a working LISP implementation, give LISP a strong position even though it isn't the favoured solution of the group. &amp;nbsp;I will cover more detail on the concept of locator/identifier split as well as some specifics of both of these proposals in future posts.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The final conclusion presented by the group is that more work is needed to address renumbering issues.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Next time. &amp;nbsp;An overview of Locator / Identifier Split and a brief look at the headline capabilities of LISP and ILNP.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The image above is of course from the mighty &lt;a bitly="BITLY_PROCESSED" href="http://xkcd.com/"&gt;xkcd&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1896067331525027424?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1896067331525027424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1896067331525027424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1896067331525027424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1896067331525027424'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/just-in-time.html' title='Just In Time'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-4832685650381503855</id><published>2010-07-16T00:08:00.002+01:00</published><updated>2010-07-16T00:24:38.668+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='traffic management'/><category scheme='http://www.blogger.com/atom/ns#' term='broadband'/><category scheme='http://www.blogger.com/atom/ns#' term='qos'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Clearing the Tubes</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_gP9MmdQkD6U/TD9y7tpLyZI/AAAAAAAAADA/YhXXQGkDhVA/s1600/IMAG0150.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://3.bp.blogspot.com/_gP9MmdQkD6U/TD9y7tpLyZI/AAAAAAAAADA/YhXXQGkDhVA/s320/IMAG0150.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So, time for part two of my EC net neutrality consultation read through. &lt;br /&gt;
&lt;br /&gt;
Section 4.2:&amp;nbsp;Traffic management/discrimination&lt;br /&gt;
&lt;br /&gt;
Traffic management is acceptable as long as it is transparent to the customer. &amp;nbsp;I can certainly agree with that concept. &amp;nbsp;The question is though is how do you visualise the complex world of statistical multiplexing and capacity management for your average consumer broadband user?&lt;br /&gt;
&lt;br /&gt;
I'm having a bit of trouble parsing this paragraph:&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
There are also constraints on prioritisation of traffic which stem from the nature of the&amp;nbsp;internet as a network of many different networks. This means that prioritisation can work only&amp;nbsp;if all the interconnected networks that link the provider to the consumer of content/services&amp;nbsp;agree on the methodologies and tools to implement such prioritisation. In practice, therefore,&amp;nbsp;up to now prioritisation of particular types of traffic seems to be an option only at a certain&amp;nbsp;level of the internet architecture, when the traffic reaches the network of the internet service&amp;nbsp;provider (ISP) to which a particular content provider or website is connected.&lt;/blockquote&gt;
&lt;/blockquote&gt;
I think they should have stopped after the first two sentences. &amp;nbsp;The remainder of the paragraph seems to be contradictory. &amp;nbsp;If prioritisation is only effective when done end-to-end then what benefit from prioritising at the content provider end? &amp;nbsp;And why would prioritisation at the customer end be any less effective? &amp;nbsp;Given that the link to the customer is likely to be the choke-point, this is actually the place that is most likely to benefit from prioritisation.&lt;br /&gt;
&lt;br /&gt;
I find the whole of page 6 of the consultation document hard to read. &amp;nbsp;It is mostly background material and in places tries to get quite technical. &amp;nbsp;It would greatly benefit from a bit of technical editing.&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Traffic management can take different forms and have different purposes. Traffic may be&amp;nbsp;managed to ensure a certain quality of service (for voice calls) or to ensure life-critical or&amp;nbsp;real-time services that might otherwise be jeopardised by bandwidth-hungry applications, e.g.&amp;nbsp;for access to emergency numbers.&lt;/blockquote&gt;
&lt;/blockquote&gt;
So traffic management can be used to ensure quality of voice calls. &amp;nbsp;Or to ensure quality of access to emergency numbers (generally a voice call too, no?). &amp;nbsp;Nothing here is false; however it is poorly worded and confusing.&lt;br /&gt;
&lt;br /&gt;
The paragraph continues:&lt;br /&gt;
&lt;blockquote&gt;
&amp;nbsp;In future, traffic may also be managed to ensure that legal&amp;nbsp;obligations are met in some Member States, particularly for example with regard to illegal&amp;nbsp;content. Traffic could also be managed to ensure for example that heavy users downloading&amp;nbsp;bandwidth-hungry content such as films or software will not degrade the service for other&amp;nbsp;users.&lt;/blockquote&gt;
A get out for illegal content is fair enough. &amp;nbsp;Interesting that they include films here though. &amp;nbsp;Video is set to be the most common type of traffic on the Internet, if it isn't already. &amp;nbsp;Allowing the bulk of traffic to be considered nuisance traffic suitable for traffic management doesn't seem particularly neutral.&lt;br /&gt;
&lt;br /&gt;
The next couple of paragraphs get to the meat of it. &amp;nbsp;First the explain that when a provider hosts both the service and the customer it can provide a higher level of "managed service". &amp;nbsp;It then goes on to paint a picture of access providers and content providers forming a partnership to deliver managed services across network boundaries. &amp;nbsp;Apparently "stakeholders" are concerned that this could undermine delivery of standard best-effort internet services. &amp;nbsp;True. &amp;nbsp;What this doesn't say is that sometimes that may be what the customer actually wants. &amp;nbsp;If a particular service is important to their business then they may require their provider to prioritise that traffic over other traffic.&lt;br /&gt;
&lt;br /&gt;
If I squint I can see the other side of this argument. &amp;nbsp;Certainly a level playing field helps new services come forward. &amp;nbsp;But a level playing field can lead to a boring game. &amp;nbsp;I think that innovative companies will always be able to find a way to break through. &amp;nbsp;I think that we should be free to innovate on the net and that legislating to halt the progress of useful technologies such as QoS is more likely to hold things back in the future.&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
The above concerns relate to offers by network operators of services offering enhanced&amp;nbsp;quality of service. However, concerns that the openness and neutrality of the internet may be&amp;nbsp;at risk have also arisen as a result of specific instances in which restrictions have been placed&amp;nbsp;on end users' ability to access particular applications over their internet connection. Examples&amp;nbsp;are the slowing of speeds for streaming of video content or for peer-to-peer applications&amp;nbsp;(allowing the downloading of content from one user to another), as well as restrictions&amp;nbsp;imposed by mobile operators on voice over internet protocol (VoIP) services offered by third&amp;nbsp;parties.&lt;/blockquote&gt;
&lt;/blockquote&gt;
This is an area I have more sympathy for. &amp;nbsp;If there is congestion being caused by a customer then throttle the customer. &amp;nbsp;Don't make an arbitrary decision about which protocols &lt;i&gt;you&lt;/i&gt;&amp;nbsp;as an operator feel should be less important. &amp;nbsp;The important thing is which protocols are important to the customer.&lt;br /&gt;
&lt;br /&gt;
In a way this is caused by some of the end-to-end principles that are being applauded here. &amp;nbsp;How do you manage congestion in a fair manner? &amp;nbsp;Well the end-to-end approach is to randomise which traffic you discard. &amp;nbsp;The queue management process that does this is named &lt;a bitly="BITLY_PROCESSED" href="http://www.icir.org/floyd/papers/red/red.html"&gt;Random Early Detection&lt;/a&gt; or RED. &amp;nbsp;The paper is very interesting and well worth a read but be warned, it is quite heavy stuff. &lt;br /&gt;
&lt;br /&gt;
RED was designed for a specific purpose, to avoid the problem known as TCP Synchronisation you need to try and ensure that you do not cause multiple TCP sessions to start backing off (and then building back up) at the same time. &amp;nbsp;The best way to do this is to drop randomly. &amp;nbsp;The problem here is that the system is designed to be fair to individual flows. &amp;nbsp;If you look at the typical congestion case in a broadband access network you will find that the outlying system abusers, the sort of people that use more than their fair share of the bandwidth, will generally be spreading their traffic across a large number of flows.&lt;br /&gt;
&lt;br /&gt;
I would argue that in order to be fair to subscribers, rather than to flows, you need to put the end-to-end principle to one side. &amp;nbsp;Feel free to match multiple flows to the single subscriber, and then to give each subscriber a fair share of the bandwidth. &amp;nbsp;Ignore the flows and the individual protocols.&lt;br /&gt;
&lt;br /&gt;
To address the last point mentioned, VoIP on mobile networks, this isn't necessarily just a power play. &amp;nbsp;Anyone that has paid attention to the performance of 3G and GPRS data networks will know that the jitter and latency can be abysmal. &amp;nbsp;VoIP isn't really practical on the current generation of mobile data networks. &amp;nbsp;The mobile operators are quite possibly reducing their support overhead by disallowing VoIP protocols. &amp;nbsp;Troubleshooting performance problems is far more resource intensive than simply saying no.&lt;br /&gt;
&lt;br /&gt;
I am probably being too generous to the mobile operators here though.&lt;br /&gt;
&lt;br /&gt;
In closing, the final paragraph of this section sums up as follows:&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
The practices and behaviour of network operators and ISPs with regard to internet traffic are&amp;nbsp;difficult to monitor and assess. Particularly as operators start to invest in Next Generation&amp;nbsp;Networks and increased traffic management capabilities, clarity may be needed as to what&amp;nbsp;constitutes ‘reasonable traffic management’ and what might be considered as unacceptable&amp;nbsp;both by regulators and consumers. It is therefore important to undertake such&amp;nbsp;monitoring/assessment, and that approaches in this area lead to comparable results across&amp;nbsp;Europe.&lt;/blockquote&gt;
&lt;/blockquote&gt;
I certainly agree that transparency of traffic management should be a priority. &amp;nbsp;In areas where there is a monopoly I agree that regulation may be required to maintain acceptable practices. &amp;nbsp;Where there is competition I believe that regulators should step away and let the consumers vote with their feet based on the available performance data.&lt;br /&gt;
&lt;br /&gt;
Questions for later:&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;b&gt;Question 4&lt;/b&gt;: To what extent is traffic management necessary from an operators' point of&amp;nbsp;view? How is it carried out in practice? What technologies are used to carry out such traffic&amp;nbsp;management?&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;b&gt;Question 5&lt;/b&gt;: To what extent will net neutrality concerns be allayed by the provision of&amp;nbsp;transparent information to end users, which distinguishes between managed services on the&amp;nbsp;one hand and services offering access to the public internet on a 'best efforts' basis, on the&amp;nbsp;other?&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;b&gt;Question 6&lt;/b&gt;: Should the principles governing traffic management be the same for fixed and&amp;nbsp;mobile networks?&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;b&gt;Question 7&lt;/b&gt;: What other forms of prioritisation are taking place? Do content and application&amp;nbsp;providers also try to prioritise their services? If so, how – and how does this prioritisation&amp;nbsp;affect other players in the value chain?&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;b&gt;Question 8&lt;/b&gt;: In the case of managed services, should the same quality of service conditions&amp;nbsp;and parameters be available to all content/application/online service providers which are in&amp;nbsp;the same situation? May exclusive agreements between network operators and&amp;nbsp;content/application/online service providers create problems for achieving that objective?&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;b&gt;Question 9&lt;/b&gt;: If the objective referred to in Question 8 is retained, are additional measures&amp;nbsp;needed to achieve it? If so, should such measures have a voluntary nature (such as, for&amp;nbsp;example, an industry code of conduct) or a regulatory one?&lt;/blockquote&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-4832685650381503855?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/4832685650381503855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=4832685650381503855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4832685650381503855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4832685650381503855'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/clearing-tubes.html' title='Clearing the Tubes'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gP9MmdQkD6U/TD9y7tpLyZI/AAAAAAAAADA/YhXXQGkDhVA/s72-c/IMAG0150.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1980203188872134610</id><published>2010-07-14T22:08:00.000+01:00</published><updated>2010-07-14T22:08:08.726+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='traffic management'/><category scheme='http://www.blogger.com/atom/ns#' term='consultation'/><category scheme='http://www.blogger.com/atom/ns#' term='qos'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>It May be Neutral, but is it Cricket?</title><content type='html'>&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_gP9MmdQkD6U/TD4Uwmfm_fI/AAAAAAAAACk/drJcYt6tz24/s1600/IMAG0195.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/_gP9MmdQkD6U/TD4Uwmfm_fI/AAAAAAAAACk/drJcYt6tz24/s320/IMAG0195.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There are a couple of related consultations going on at the moment that I have been meaning to get a handle on and respond to.&lt;br /&gt;
&lt;br /&gt;
Both Ofcom and the European commission have current consultations on the subject of net neutrality. &amp;nbsp;This is a sticky subject. &amp;nbsp;The term is used in a number of different ways by different people. &amp;nbsp;It can be a very positive thing giving consumers transparency and freedom, or it can be a chain around the service provider stifling their ability to innovate. &amp;nbsp;Working in the internet industry I can see both sides of this argument so I am interested in reading how the two bodies interpret the question of neutrality and think I might be able to bring some relevance to a response. &amp;nbsp;And of course I also want to be open with my thought processes so I am going to use the response documents and the ideas they raise to write a few entries here while I compose my response.&lt;br /&gt;
&lt;br /&gt;
Given that the&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://stakeholders.ofcom.org.uk/consultations/net-neutrality/"&gt;Ofcom consultation&lt;/a&gt; is essentially a response to the launch of the &lt;a bitly="BITLY_PROCESSED" href="http://ec.europa.eu/information_society/policy/ecomm/library/public_consult/net_neutrality/index_en.htm"&gt;European Commission consultation&lt;/a&gt;&amp;nbsp;I am planning this as follows. &amp;nbsp;First I will read through the European consultation document. &amp;nbsp;Next I will read the Ofcom document. &amp;nbsp;I will then work on my responses starting with the Ofcom consultation, then moving on to the European consultation.&lt;br /&gt;
&lt;br /&gt;
First up: European&amp;nbsp;Commission&amp;nbsp;Questionnaire for the Public Consultation on the Open Internet and Net Neutrality in Europe.&lt;br /&gt;
&lt;br /&gt;
So page 2. &amp;nbsp;Section 2 of the document "Net Neutrality and the Open Internet". &amp;nbsp;The first three paragraphs are typical stage setting marketese. &amp;nbsp;Paragraph four raises the first comment that feels slightly uncomfortable:&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Concerns have been raised that the openness of the internet, and&amp;nbsp;therefore its benefits to society and the economy, may be undermined if network operators&amp;nbsp;seek to treat traffic differently, for example on the basis of its origin, destination, the type of&amp;nbsp;service or content that is being transmitted, or other criteria.&lt;/blockquote&gt;
&lt;/blockquote&gt;
This seems pretty open to interpretation. &amp;nbsp;Traffic management technologies are built into the protocols of the Internet at a very low level. &amp;nbsp;Fields like the IP TOS / DSCP were developed for a reason. &amp;nbsp;There are situations where an internet may become congested and in such situations there are legitimate reasons why you may want to throw away one type of traffic before another type. &amp;nbsp;Even if you don't throw anything away you may want to dequeue certain traffic earlier to avoid jitter. &amp;nbsp;I'll park my concerns on this issue for the moment. &amp;nbsp;I'm sure I'll get a chance to return to them...&lt;br /&gt;
&lt;br /&gt;
A couple of definitions to remember in the next paragraph. &amp;nbsp;"Network Management" and "Traffic Management" seem to be interchangable terms for any technique used to prioritise one type of traffic over another. &amp;nbsp;"Net freedoms" refers to "ability to&amp;nbsp;access and distribute information or run applications and services of their choice". &amp;nbsp;Interesting. &amp;nbsp;They seem to mandating that users should be able to run services. &amp;nbsp;That could be interesting and have implications for homing subscribers behind NAT solutions.&lt;br /&gt;
&lt;br /&gt;
The final paragraph of this section outlines the objective of the consultation: "how best to preserve the open and neutral character of the&amp;nbsp;internet". &amp;nbsp;Am I the only one still bothered by the capitalisation here? &amp;nbsp;An internet, the Internet? &amp;nbsp;Most people aren't aware of the origin of the term internet and are only aware of the global public Internet. &amp;nbsp;I should probably give it up. &amp;nbsp;Interesting that the aim is to maintain the character of the Internet, not to ensure fairness to citizens.&lt;br /&gt;
&lt;br /&gt;
Section 3 (Background) lists a number of relevant existing directives. &amp;nbsp;Mostly articles of the "Universal Service Directive". &amp;nbsp;Reading them makes my head hurt. &amp;nbsp;I have no doubt that I will need to revisit them through the rest of the document and will avoid quoting them here.&lt;br /&gt;
&lt;br /&gt;
On to the meat of the consultation. &amp;nbsp;Section 4.&lt;br /&gt;
&lt;br /&gt;
We start with 4.1 "The open internet and the end-to-end principle". &amp;nbsp;I find the wording of this section a little disingenuous. &lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
The end-to-end principle is one of the central design principles of the internet. According to&amp;nbsp;this principle, whenever possible, communications protocol operations should be defined to&amp;nbsp;occur at the end-points of a communications system, or as close as possible to the resource&amp;nbsp;being controlled.&amp;nbsp;In practice, this means that network operators treat packets equally,&amp;nbsp;regardless of origin, content type or destination.&lt;/blockquote&gt;
&lt;/blockquote&gt;
This makes it sound as if the end-to-end principle is rigidly defined somewhere in a design manual for the internet. &amp;nbsp;No such document exists. &amp;nbsp;The closest I can find is in &lt;a bitly="BITLY_PROCESSED" href="http://tools.ietf.org/html/rfc1958"&gt;RFC1958&lt;/a&gt;&amp;nbsp;(note that this is an Informational RFC. &amp;nbsp;It is not a standard, and the abstract clearly states "&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This is intended for general guidance and general interest, and is in no way intended to be a formal or invariant reference model.").&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Section 2.3 covers the end-to-end principle and states:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
This principle has important consequences if we require applications to survive partial network failures. An end-to-end protocol design should not rely on the maintenance of state (i.e. information about the state of the end-to-end communication) inside the network. Such state should be maintained only in the endpoints, in such a way that the state can only be destroyed when the endpoint itelf breaks (known as fate-sharing). An immediate consequence of this is that datagrams are better than classical virtual circuits. The network's job is to transmit datagrams as efficiently and flexibly as possible.&amp;nbsp;&lt;/blockquote&gt;
This certainly advises against maintaining state in the network regarding individual network flows; however it in no way suggests that every datagram, or every protocol, should be equal. &amp;nbsp;In fact it goes on to state:&lt;br /&gt;&lt;blockquote&gt;
To perform its services, the network maintains some state information: routes, QoS guarantees that it makes, session information where that is used in header compression, compression histories for data compression, and the like.&lt;/blockquote&gt;
&amp;nbsp;The end-to-end guideline as applied to internet protocol design absolutely allows the network to identify individual communications for the purposes of QoS. &amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://tools.ietf.org/html/rfc2474"&gt;RFC2474&lt;/a&gt;&amp;nbsp;(which &lt;i&gt;is&lt;/i&gt;&amp;nbsp;a standards track document) explicitly defines methods of traffic discrimination in the Internet in a way that is compatible with the end-to-end principle:&lt;br /&gt;
&lt;blockquote&gt;
Differentiated services enhancements to the Internet protocol are intended to enable scalable service discrimination in the Internet without the need for per-flow state and signaling at every hop.&lt;/blockquote&gt;
&amp;nbsp;With this in mind, if I move on to the final paragraph in this section:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
However, as the volume of traffic passing over communications networks has increased, and&amp;nbsp;new forms of data services have developed which change the business models underpinning&amp;nbsp;the provision of services over those networks, a number of cases have emerged involving the&amp;nbsp;differentiated treatment by network operators of services or traffic which have led some&amp;nbsp;interested parties to question whether the principle of the openness or neutrality of the internet&amp;nbsp;may be at risk.&lt;/blockquote&gt;
Based on the previous RFC quotes, I would posit that the claim that there is any inherant "openness or neutrality" to the Internet is misguided.&lt;br /&gt;
&lt;br /&gt;
On the other hand I would say that when providing a general purpose connection to the public Internet the only reason for traffic differentiation should be for the purposes of congestion management.&lt;br /&gt;
&lt;br /&gt;
There are three questions in this section:&lt;br /&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
Question 1: Is there currently a problem of net neutrality and the openness of the internet in&amp;nbsp;Europe? If so, illustrate with concrete examples. Where are the bottlenecks, if any? Is the&amp;nbsp;problem such that it cannot be solved by the existing degree of competition in fixed and&amp;nbsp;mobile access markets?&lt;/blockquote&gt;
&lt;blockquote&gt;
Question 2: How might problems arise in future? Could these emerge in other parts of the&amp;nbsp;internet value chain? What would the causes be?&lt;/blockquote&gt;
&lt;blockquote&gt;
Question 3: Is the regulatory framework capable of dealing with the issues identified,&amp;nbsp;including in relation to monitoring/assessment and subsequent enforcement?&lt;/blockquote&gt;
&lt;/blockquote&gt;
I will leave these open for now and return to them after my response to the Ofcom consultation.&lt;br /&gt;
&lt;br /&gt;
Tomorrow I will continue with section 4.2.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1980203188872134610?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1980203188872134610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1980203188872134610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1980203188872134610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1980203188872134610'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/it-may-be-neutral-but-is-it-cricket.html' title='It May be Neutral, but is it Cricket?'/><author><name>Russell Heilling</name><uri>https://profiles.google.com/106763041812869545758</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-qHIet5b43EA/AAAAAAAAAAI/AAAAAAAAG0c/kRVcDTIw0es/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gP9MmdQkD6U/TD4Uwmfm_fI/AAAAAAAAACk/drJcYt6tz24/s72-c/IMAG0195.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7075958262710769007</id><published>2010-07-12T21:57:00.000+01:00</published><updated>2010-07-12T21:57:05.003+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='future'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Scaling the Internet</title><content type='html'>OK. &amp;nbsp;This is something I have been meaning to start for a while now and just haven't got around to. &amp;nbsp;As a network architect, part of my duty is to keep an eye to the future. &amp;nbsp;I need to know where the network may be going in the next five to ten years. &amp;nbsp;That is a long time in the Internet; however I have been doing this for about fifteen years now and it is actually quite scary how little things have changed at the network core. &amp;nbsp;Sure the number of the prefixes in the DFZ has gone up, and the IPng project finally seems to be gaining some momentum. &amp;nbsp;Tag switching seems to be more popular than I initially thought it would be after first reading about it in the pages of Network magazine. &amp;nbsp;And lets not forget the first time I encountered the web via a gopher gateway. &amp;nbsp;This will never catch on, too chaotic. &amp;nbsp;The menus of Gopher are much better.&lt;br /&gt;
&lt;br /&gt;
So now that we have established a bit of my predictive pedigree, what do I hope to achieve here. &amp;nbsp;The Internet has a number of crisis points approaching.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_QgCOrmy3AkE/TDt7-maIawI/AAAAAAAAUbA/OG3wMw7sX2I/s1600/fig30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_QgCOrmy3AkE/TDt7-maIawI/AAAAAAAAUbA/OG3wMw7sX2I/s400/fig30.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So here is the famous exhaustion graph from Geoff Huston's&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://www.potaroo.net/tools/ipv4/index.html"&gt;IPv4 Address Report&lt;/a&gt;. &amp;nbsp;This is the first crisis looming. &amp;nbsp;Plenty people have written about it, I'm not going to focus on this issue here. &amp;nbsp;If you don't know about it then you are probably too late to the party. &amp;nbsp;But this is far from the only problem approaching.&lt;br /&gt;
&lt;br /&gt;
When I first set up a router with the full default-free routing table I used a Cisco 4700M with 64Mb of RAM. &amp;nbsp;This was easily man enough for the ~45k routes in the DFZ at the time. &amp;nbsp;In the years since then the DFZ has been rapidly expanding. &amp;nbsp;There are a number of reasons for this expansion. &amp;nbsp;One is the exhaustion issue: as the amount of space reduces and LIRs modify their allocation policies people are being allocated smaller blocks. &amp;nbsp;Another driver is PI space. &amp;nbsp;As networks become more and more core to the ability of companies to do business they feel that they need to have their own provider independent space, so that they can multi-home, they can migrate between providers. &amp;nbsp;In some cases it is even because people have heard that these IPv4 addresses are getting scarce, time to get some while the getting is good. &amp;nbsp;The land grab is already starting and it is only going to get worse. &amp;nbsp;As policies change and it becomes possible for companies to return or transfer unused address space, older large blocks will start being split into smaller blocks. &amp;nbsp;There aren't that many big blocks of address space to allocate, but there are still plenty more prefixes that can be generated by splitting the space into smaller and smaller chunks. &amp;nbsp;As the number of prefixes grows exponentially, so does the memory usage in DFZ routers and the processing power required to scan these tables for freshness and bring forwarding tables into sync.&lt;br /&gt;
&lt;br /&gt;
So here we get to the point of the post series that I am aiming to start. &amp;nbsp;A number of years ago the Internet Research Task Force (IRTF) sponsored a working group named the Routing Research Group. &amp;nbsp;The remit of this group was to investigate both the reasons for routing growth and possible architectural solutions to handling the Internet routing table of the future. &amp;nbsp;This group has now essentially made its recommendation.&lt;br /&gt;
&lt;br /&gt;
The favoured long term recommendation made at the 77th IETF meeting was ILNP.&lt;br /&gt;
&lt;br /&gt;
What I am aiming to do in this series of posts is to look at the goals of the RRG, and to look at how the proposed solution ILNP achieves these goals, and also to take a look at how the most developed alternative (LISP) could answer the same issues.&lt;br /&gt;
&lt;br /&gt;
I have not yet set myself a schedule for this series of posts but I am aiming to put out at least one post a week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7075958262710769007?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7075958262710769007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7075958262710769007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7075958262710769007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7075958262710769007'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/scaling-internet.html' title='Scaling the Internet'/><author><name>Russell Heilling</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_QgCOrmy3AkE/S3MjhvUvV-I/AAAAAAAASvQ/8oZWnJ_R8lo/S220/DSCF4091.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QgCOrmy3AkE/TDt7-maIawI/AAAAAAAAUbA/OG3wMw7sX2I/s72-c/fig30.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5549652969248050310</id><published>2010-07-12T12:48:00.004+01:00</published><updated>2010-07-12T15:13:29.338+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ethernet'/><category scheme='http://www.blogger.com/atom/ns#' term='switching'/><category scheme='http://www.blogger.com/atom/ns#' term='qinq'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Cisco Versus IEEE QinQ</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_QgCOrmy3AkE/TDriX75jtZI/AAAAAAAAUa4/NIEGSwUY88k/s1600/800px-TCPIP_802.1ad_DoubleTag.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="56" src="http://3.bp.blogspot.com/_QgCOrmy3AkE/TDriX75jtZI/AAAAAAAAUa4/NIEGSwUY88k/s400/800px-TCPIP_802.1ad_DoubleTag.jpg" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This post is in response to&amp;nbsp;&lt;/span&gt;&lt;a bitly="BITLY_PROCESSED" href="http://packetlife.net/blog/2010/jul/12/ieee-802-1q-tunneling/"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;this packetlife post on 802.Q tunnelling&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. &amp;nbsp;It is a great introduction to the subject but having been doing this stuff for years now there are a few things that I would like to add to the explanation.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I would like to start with terminology. &amp;nbsp;Like most layer 2 vendors, Cisco developed their particular implementation of this technology before the IEEE standard was fully baked. &amp;nbsp;The IEEE standard for this is 802.1ad-2005, which is an amendment to 802.1Q-2005. &amp;nbsp;The official name for this technology is "Provider Bridges"; however vendors have used a number of different terminologies some of the more common being 802.1Q&amp;nbsp;tunnelling, VLAN Stacking or Q-in-Q. &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Another area where the wide range of competing pre-standard vendor specific implementations introduces complexity is with the Ethertype used. &amp;nbsp;The well known Ethertype for 802.1Q is 0x8100, the well known Ethertype for 802.1ad is 0x88a8. &amp;nbsp;Before this value was chosen vendors implemented a wide array of Ethertypes, including re-using 0x8100, using 0x9100, 0x9200, 0x9300 and more.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Treating the labels a stack or tunnel, and re-using the 0x8100 Ethertype introduces a painful problem. &amp;nbsp;802.1ad does not do any rewriting or encapsulation of MAC addresses. &amp;nbsp;The {DST MAC, SRC MAC} tuple stays the same from end-to-end. &amp;nbsp;For most cases this is not a problem (although it does increase the CAM usage in the provider core). &amp;nbsp;Where it starts to become a problem is with control frames. &amp;nbsp;When a switch generates a spanning tree BPDU, it sends it to a well known destination MAC address (01-80-C2-00-00-00). &amp;nbsp;When you build a network using Q-in-Q you do not generally want the customer ports to take part in the backbone spanning tree. &amp;nbsp;Most switches, if they see a frame come in for the all bridges group address, will punt the frame to the processor. &amp;nbsp;With Q-in-Q it is desirable to forward STP BPDUs (and other L2 control frames) across the network, but it is not desirable to punt these to the CPU at every hop.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;With a well-known Ethertype it is trivial to avoid unnecessary processing. &amp;nbsp;You make the decision to punt to the CPU based on the {DST MAC, Ethertype} tuple. &amp;nbsp;If you use the same Ethertype for the outer VLAN tag as you do for the inner (customer) VLAN tag then this won't work. &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Cisco have an extension that works around this. &amp;nbsp;Layer 2 protocol tunnelling. &amp;nbsp;Essentially the way it works is as follows. &amp;nbsp;A frame is recieved on an ingress port (dot1q-tunneling port) to a well known MAC. &amp;nbsp;If Layer 2 Protocol Tunneling for this MAC is enabled (e.g. &lt;tt&gt;l2protocol-tunnel stp&lt;/tt&gt; will enable MAC 01-80-C2-00-00-00) then the MAC address is rewritten to a Cisco proprietary multicast MAC address (01-00-0C-CD-CD-D0). &amp;nbsp;This frame can then be forwarded across the backbone network as usual. &amp;nbsp;When it gets to the egress port frames to the well known MAC have their destination MAC rewritten to the original well-known value for that protocol.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This is a good solution if you have an all Cisco network but, as with any proprietary technology, you need to be aware of potential problems if you have a multi-vendor network.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Another thing to be aware of here is whether you are generating local BPDUs. &amp;nbsp;Cisco recommend turning on BPDU filtering on the edge ports. This has two effects. &amp;nbsp;If you are &amp;nbsp;doing layer 2 protocol tunnelling for STP then this has no effect on the ingress traffic; however if you are not doing this tunnelling then this will make sure &amp;nbsp;that customer BPDUs do not eat your CPU cycles. &amp;nbsp;The other effect is that it stops you from sending out your own BPDUs on the port. &amp;nbsp;If you send local BPDUs as well as outputting the customer's tunnelled BPDUs you could cause some confusion.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The final issue I wanted to touch upon in this post is MTU.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I have written before (at length) about&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://perlmonkey.blogspot.com/2010/02/so-whats-mtu-on-that.html"&gt;MTU terminology problems&lt;/a&gt;&amp;nbsp;here on this blog. &amp;nbsp;The system MTU setting on Cisco catalyst switches is a good example of this confusion. &amp;nbsp;When using standard untagged&amp;nbsp;Ethernet, or 802.1Q single tagged VLAN traffic the system MTU is the maximum size of the&amp;nbsp;Ethernet&amp;nbsp;client data field (i.e. the payload). &amp;nbsp;When you configure 802.1Q&amp;nbsp;tunnelling&amp;nbsp;on a catalyst switch this will add an additional 4 bytes of header data to the frame; however this additional 4 bytes is not counted as header information for the purposes of the MTU calculation and is instead classed as payload. &amp;nbsp;So in order to maintain the same behaviour for tunnelled traffic as you have for non-tunnelled traffic you need to up your system MTU by 4 bytes.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The image above is taken from Wikipedia, follow this link for the full size image as well as&amp;nbsp;&lt;/span&gt;&lt;a bitly="BITLY_PROCESSED" href="http://en.wikipedia.org/wiki/File:TCPIP_802.1ad_DoubleTag.jpg"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Author and Licensing information&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5549652969248050310?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5549652969248050310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5549652969248050310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5549652969248050310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5549652969248050310'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/07/cisco-versus-ieee-qinq.html' title='Cisco Versus IEEE QinQ'/><author><name>Russell Heilling</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_QgCOrmy3AkE/S3MjhvUvV-I/AAAAAAAASvQ/8oZWnJ_R8lo/S220/DSCF4091.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QgCOrmy3AkE/TDriX75jtZI/AAAAAAAAUa4/NIEGSwUY88k/s72-c/800px-TCPIP_802.1ad_DoubleTag.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8482765565569245480</id><published>2010-04-08T21:48:00.000+01:00</published><updated>2010-04-08T21:48:24.401+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='andoid'/><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth'/><category scheme='http://www.blogger.com/atom/ns#' term='hci'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='keyboards'/><title type='text'>Musings on Human Computer Interaction</title><content type='html'>I love my G1, and have been using it heavily for the past 18 months. &amp;nbsp;In the past I have loved Palm and Psion touch screen devices. &amp;nbsp;I think that the touch interface is fantastic for selection of graphical interface elements and object manipulation.&lt;br /&gt;
&lt;br /&gt;
But I just cannot get on with touch-screen text input.&lt;br /&gt;
&lt;br /&gt;
I don't know what it is. &amp;nbsp;I taught myself to touch-type back when I was at University (is it really approaching 20 years ago?) &amp;nbsp;A free DOS copy of Mavis Beacon Teaches Typing on a magazine cover disc and a couple of weeks in the house alone during summer break and I was set. &amp;nbsp;Since then I have played with other input methods. &amp;nbsp;I used to do a lot of blogging (before blogging was a verb) using Graffiti input on my Palm Vx. &amp;nbsp;I found that I was making a lot of mistakes and going back to correct them was interrupting my flow. &amp;nbsp;It was especially bad when I tried to write entries while drunk, but that is probably not a good yardstick. &amp;nbsp;Fortunately there were a number of good folding keyboards for Palm devices and this was perfect for writing on the move.&lt;br /&gt;
&lt;br /&gt;
When I first got my G1 there was no onscreen keyboard in Android. &amp;nbsp;The first keyboardless Android phone was still a few months off and the physical keyboard was the only way to go. &amp;nbsp;A lot of people slammed it (the HTC chin makes it awkward, the fold-out mechanism leaves the screen crooked). &amp;nbsp;Personally I found that I got used to it very quickly, and although I may not be able to type on it as quickly as I can on a full sized keyboard, I can generally keep up with a train of thought and don't find myself getting frustrated by not being able to get the ideas down fast enough. &amp;nbsp;The touch keyboard is another matter entirely.&lt;br /&gt;
&lt;br /&gt;
I am probably guilty of not using it enough. &amp;nbsp;The ability to just flip out the G1 keyboard has spoiled me. &amp;nbsp;I have used the Android on-screen keyboard for a number of SMS and IM posts. &amp;nbsp;I generally steer well clear of it if I am going to write anything of length though because I just get frustrated. &lt;br /&gt;
&lt;br /&gt;
I have since tried alternative methods of input too. &amp;nbsp;Most recently I have been using shapewriter. &amp;nbsp;Although it is generally easier to enter text using shapewriter I have found that some of its guesses are a long way off the mark. &amp;nbsp;I can enter the shapes quickly enough; however I am having to scroll through the suggestions list after the majority of words, and sometimes it will take me two or three tries before the word I am going for is even in the list. &amp;nbsp;I also find that the symbol input is awful.&lt;br /&gt;
&lt;br /&gt;
So far I have never done any quantitative comparisons of my typing speeds using different input methods. &amp;nbsp;My qualitative yard-stick is frustration. &amp;nbsp;When I am entering the text, am I able to keep up with my thoughts? &amp;nbsp;Do I find myself having to interrupt what I am thinking in order to go back and correct mistakes, or having to hold thoughts in order to keep up? &amp;nbsp;On this test every touch screen text input method I have used has fallen down.&lt;br /&gt;
&lt;br /&gt;
Recently I have started to wonder whether it isn't the speed that is the issue. &amp;nbsp;Is it perhaps something more fundamental about the visual nature of entry? &amp;nbsp;When I touch type I have no need to actually pay attention to where my fingers are. &amp;nbsp;This is largely muscle memory which with patience could probably be reproduced on a touch screen; however with touch text input there is also the added factor that there is usually some degree of fuzziness involved. &amp;nbsp;With gesture based input it is usually a case of draw, select from choices, move on. &amp;nbsp;This is a lot more mentally involved that a simple keyboard. &amp;nbsp;I think this is likely to be my problem. &amp;nbsp;I have always found it difficult to switch modes. &amp;nbsp;If I am programming for example, or doing another task involving similar amounts of concentration, then my ability to communicate verbally drops to almost zero. &amp;nbsp;If you talk to me when I am concentrating you will usually get a furrowed brow while I adjust my thought processes to parse what you have said followed by a slow deliberate response while I switch modes. &amp;nbsp;Once I am back into speech mode things will get back to normal; however I will have a hard time again when I try to switch back to concentration mode. &amp;nbsp;This is just a quirk of how my brain works and I am largely used to it. &amp;nbsp;I wonder whether this has something to do with why I can touch type, but just cannot adjust to touch-screen text input.&lt;br /&gt;
&lt;br /&gt;
The keyboard has been around for centuries. &amp;nbsp;I checked Wikipedia earlier and the&amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://en.wikipedia.org/wiki/Typewriter"&gt;typewriter&lt;/a&gt;&amp;nbsp;could possibly have been around since 1714. &amp;nbsp;Something that has been around for so long with only minor iterative changes has to speak somehow to something fundamental in the human psyche. &amp;nbsp;I think those who try to dismiss the physical keyboard are ignoring something very important.&lt;br /&gt;
&lt;br /&gt;
There have been numerous innovations to improve the speed of entry using keyboards over the years. &amp;nbsp;Moving from mechanical devices needing considerable force to operate, to electronically assisted devices which reduce the travel and force required allowing for faster input. &amp;nbsp;This is pretty much where the computer keyboard takes over from the typewriter.&lt;br /&gt;
&lt;br /&gt;
There are other innovations since this that have been tried on the computer but never seem to have made it into the mainstream. &amp;nbsp;For a long time the input device of choice for live transcription (e.g. courts, subtitling of live events) has been some form of chorded keyboard. &amp;nbsp;This allows for text entry without having to move your fingers off of the keys, you simply have to press a certain number of keys simultaneously. &amp;nbsp;While there have been a number of attempts at chorded input devices for personal computers the method has a steep learning curve. &amp;nbsp;Anyone can sit at a standard qwerty keyboard. &amp;nbsp;If they don't know how to touch type they can simply use the hunt and peck method. &amp;nbsp;It may be slow, but it is an easy entry point. &amp;nbsp;With a chorded keyboard you don't have this. &amp;nbsp;You need to have a certain minimum skill level before you can even do basic text entry. &amp;nbsp;But if you put the effort in to learn then you can reap enormous benefits.&lt;br /&gt;
&lt;br /&gt;
Recent "innovations" in touch screen text input seem to want to have the cake and eat it. &amp;nbsp;But as far as I am concerned the cake is a lie. &amp;nbsp;At best a touch keyboard is simply a standard keyboard, but without the feedback of a physical set of keys with travel. &amp;nbsp;At worst it is a distraction as you try to figure out how to do simple things like punctuation, or even have to try trail and error simply to get it to recognise the gesture you made as the word you intended. &amp;nbsp;I have yet to see a touch-screen keyboard that even comes close to a physical keyboard in terms of speed accuracy or comfort.&lt;br /&gt;
&lt;br /&gt;
Some people seem to think that I am nuts for even thinking of trying to write long-form blog posts or similar while on the move. &amp;nbsp;Perhaps I am, but sometimes I have something I need to get off of my chest that Twitter will just not satisfy. &amp;nbsp;And frequently I find myself stuck in a cramped train carriage where there is certainly not enough room to get a laptop out. &amp;nbsp;To be honest there often wouldn't be enough room to get an iPad out. &amp;nbsp;This is partly why I doubt I will shell out for an iPad. &amp;nbsp;I will probably end up getting some form of cheap tablet for home casual browsing though.&lt;br /&gt;
&lt;br /&gt;
I fear that the on-screen keyboard will become the norm. &amp;nbsp;The lowest common denominator. &amp;nbsp;It will be good enough for most people so there will be no drive to develop anything better for the people it doesn't suit.&lt;br /&gt;
&lt;br /&gt;
I would love to have a convenient (bluetooth, single handed operation) chorded input device; however this seems unlikely to happen. &amp;nbsp;At least at any reasonable price.&lt;br /&gt;
&lt;br /&gt;
What I would really like in the mean time is for Google to get around to integrating support for bluetooth input devices into the stock android kernel. &amp;nbsp;At the moment there is a 3rd party bluetooth keyboard driver in the market. &amp;nbsp;I have heard that it works well; however it only supports older keyboards using the bluetooth SPP profile. &amp;nbsp;Newer keyboards use the bluetooth HID profile and apparently (as of Eclair at least) this is not yet supported.&lt;br /&gt;
&lt;br /&gt;
I have heard nothing about this being rolled into FroYo (I believe the main change in FroYo is the separation of the core apps from the OS kernel). &amp;nbsp;I really hope this makes it in by Gingerbread at the very latest.&lt;br /&gt;
&lt;br /&gt;
The iPad already does this, and appears to do this well. &amp;nbsp;The numerous Android tablets will not be serious competitors without this ability when it comes to getting money out of my pocket. &amp;nbsp;ChromeOS tablets will probably be better in this regard; however I don't like the always on assumption here. &amp;nbsp;I spend too much time out of signal while on the underground. &amp;nbsp;I want full featured local apps as well as the cloud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8482765565569245480?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8482765565569245480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8482765565569245480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8482765565569245480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8482765565569245480'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/04/musings-on-human-computer-interaction.html' title='Musings on Human Computer Interaction'/><author><name>Russell Heilling</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_QgCOrmy3AkE/S3MjhvUvV-I/AAAAAAAASvQ/8oZWnJ_R8lo/S220/DSCF4091.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-255915170417865937</id><published>2010-02-24T09:49:00.005Z</published><updated>2010-07-12T14:58:46.491+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='ethernet'/><category scheme='http://www.blogger.com/atom/ns#' term='vlan'/><category scheme='http://www.blogger.com/atom/ns#' term='ip'/><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='switching'/><category scheme='http://www.blogger.com/atom/ns#' term='mtu'/><title type='text'>So what's the MTU on that?</title><content type='html'>Gotta rant on this to clear it out of my system.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
The term 'MTU' is used too much.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
A lot of people seem to think that MTU and Maximum Frame Size (MFS) are interchangeable. When you are in an environment where you are providing layer 2 services across a layer 3 network the distinction here is very important.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
So, a quick recap.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
The Ethernet standard at time of writing (IEEE802.3-2008) defines the "MAC Client Data Field" (which I will call MCDF from here on).  This is the part of the frame that gets the user data and is wrapped up in the standard 18 byte Ethernet MAC header.  The standard defines three compliant sizes that could be supported by devices.  1500 bytes for plain vanilla ethernet, 1504 bytes for 802.1q frames with a VLAN tag and 2000 bytes for "Envelope" frames (this is all in section 3.2.7 of the document which should be available from &lt;a bitly="BITLY_PROCESSED" href="http://standards.ieee.org/getieee802/"&gt;the IEEE&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
The frame sizes that need to be supported for these three requirements are therefore the allowed MCDF size plus the 18 byte Ethernet header.  i.e. 1518/1522/2018.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
So the MCDF is just another name for the MTU, right?  Wrong.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
MTU is such a pervasive term currently, with different people using it in different ways, it is hard to track down concrete definitions.  I'm going to go all the way back to &lt;a bitly="BITLY_PROCESSED" href="http://www.ietf.org/rfc/rfc791.txt"&gt;RFC791&lt;/a&gt;.  On page 6 MTU is defined as:&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
"The maximum sized datagram that can be transmitted through the       next network is called the maximum transmission unit (MTU)."&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
From this definition the term MTU is used at the IP layer and refers to an IP datagram.  If we take this back to the MCDF this equates to:  MCDF 1500 = MTU 1500, MCDF 1504 = MTU 1500, MCDF 2000 = MTU 1500 (bear with me for this one).&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
The extra 4 bytes in the 802.1q case are for the VLAN tag, which is inserted at layer 2.  The IP layer MTU is unchanged.  In the 2000 byte case things are a little grey.  The intent from the IEEE is that end-stations should never be exposed to any more than 1500 bytes for their layer 3 traffic for compatibility reasons.  The extra space in the MCDF is for additional encapsulation (e.g. MAC-in-MAC, S-VLAN, arguably MPLS).&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
But I can get 9Kb Jumbo frames, right?  Maybe.  Most suppliers will allow this; however there is nothing in the standards to cover it.   The extended 2000 byte MCDF does allow jumbo frames compared to the original spec but the standards state that it shouldn't be passed on to the end user. &lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
When you are delivering Ethernet services to customers you need to be very careful with your terminology.  If you offer a transparent service and do not mandate how the customer uses it (i.e. 0, 1 or 2 VLANS as the customer prefers) then be careful not to guarantee an MTU of more that 1500 to the customer.  Your network probably has limits defined by the equipment manufacturer and these limits are probably defined in terms of either the MFS or MCDF (Cisco is particularly confusing in this regard.  On Catalyst switches the system MTU is closer to the MCDF; however the first VLAN is free, meaning a system MTU of 1500 allows for 1522 byte VLAN tagged frames.  If you use 2 VLAN tags, e.g. dot1q-tunnel, then you would need to raise the system MTU to compensate as a setting of 1500 would reduce the IP MTU to 1496).&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
It essentially boils down to two options:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Guarantee the customer 1500 and make sure that you can pass frames of at least 1526 bytes.&lt;/li&gt;
&lt;li&gt;Give the customer the MFS or MCDF value and leave it up to them to calculate the MTU for their encapsulation&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
But in all cases be absolutely clear about your terminology.  If your customer requests an MTU of 1600 and you deliver an MFS of 1600 they probably won't be happy...&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-255915170417865937?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/255915170417865937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=255915170417865937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/255915170417865937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/255915170417865937'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/02/so-whats-mtu-on-that.html' title='So what&apos;s the MTU on that?'/><author><name>Russell Heilling</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_QgCOrmy3AkE/S3MjhvUvV-I/AAAAAAAASvQ/8oZWnJ_R8lo/S220/DSCF4091.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-712925011825820012</id><published>2010-02-18T09:00:00.004Z</published><updated>2010-02-19T20:43:03.678Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='buzz'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Bzzt... *crackle* Bzzt... I think there is a loose connector here somewhere...</title><content type='html'>&lt;p&gt;So the buzz about Buzz seems to be subsiding after the initial backlash.  This post isn't going to cover any privacy issues, there have already been plenty of posts on that subject.&lt;/p&gt;
&lt;p&gt;One thing I have been using Buzz for is to probe the relationship between my apps account and the google account with the same username.&lt;/p&gt;
&lt;p&gt;Many moons ago I had a gmail account as a side effect of signing up for iGoogle and Reader.  I knew it was there but was running my own exim/courier install on a Linux box so never felt the urge to use it.&lt;/p&gt;
&lt;p&gt;After a couple of hard disk deaths I was getting tired of maintaining my own mail (its not my day job any more and I don't really want to be spending my spare time doing a job I'd left behind).  I initially forwarded to Gmail using a simple aliases file but when google launched Apps for domains (the free standard edition) I jumped at the chance to point my MX records straight at the Goog.&lt;/p&gt;
&lt;p&gt;Initially I had two personal domains pointing to the same apps account; however this wasn't really doing what I wanted.  So I signed up a second account and hosted the domains separately.  Things were getting a little crazy here with 3 accounts but I just set up forwarding rules to get all mail in one inbox and all was peachy.&lt;/p&gt;
&lt;p&gt;I then got my G1 Android phone and linked it to one of my 3 accounts (only version 2+ support multiple accounts, in version 1.0 that wasn't even an option).&lt;/p&gt;
&lt;p&gt;The account I was using was only for apps.  I soon found out that this caused a few problems with the phone, not least because paid apps in the market use google checkout, which doesn't support apps accounts.&lt;/p&gt;
&lt;p&gt;Fair enough I thought and linked a gmail account to the apps account.  This is where the fun started.&lt;/p&gt;
&lt;p&gt;The gmail address suddenly became my primary ID. I would sign into things with my apps email and the username would show up as the gmail address.  Not a big problem at the time, it just looked like a cosmetic issue, slightly annoying but no big deal.&lt;/p&gt;
&lt;p&gt;Next came Latitude.  I was jonesing for this as soon as I heard about it, and the archives already have plenty of my frustration over T-Mobile deciding not to launch it in the standard build.  I didn't notice it at first, but my apps account and my gmail account (which up until now I had considered as a single entity) showed up separately when I linked up with people.&lt;/p&gt;
&lt;p&gt;I fiddled around with it for a while and eventually came across a post in one of the google mobile support forums suggesting that the way to fix it was to create your google account with your apps email address rather than the default gmail address.&lt;/p&gt;
&lt;p&gt;So I de-link from my apps account and sign up again.  All seems to go smoothly and I now have a single username for all Google services.  As an experiment I use a different password.  My apps account keeps its password making it clear that while I have a single username I still have multiple accounts.&lt;/p&gt;
&lt;p&gt;I have also found that I have two ways to get to gDocs, the standard version acknowledges my paid storage, the apps version doesn't.  I have two sets of contacts.  The non-apps version has been pretty pointless because there is no way to sync the two. I also seem to have two gTalk accounts with the same username but different contact lists.  The non apps one only seems to work in the iGoogle side bar and is pointless because XMPP will route all messages to the apps account.&lt;/p&gt;
&lt;p&gt;This is all slightly annoying but still just cosmetic.&lt;/p&gt;
&lt;p&gt;Then Buzz launches.  I have public Google profiles on all the accounts I have actually used so I show up straight away.  To be honest everything I do on Google is public anyway (other than Latitude which is friends only) so the privacy issues didn't bother me.&lt;/p&gt;
&lt;p&gt;Buzz isn't launched for apps thus far, so I logged into my @gmail account to have a little play.  Just for giggles I go to the profile page while logged in with my apps account and make a comment.  It works.  I now have a semi-functional Buzz experience using my apps account.  There is no Buzz folder in my apps mail so I have no way to link external streams and no easy way to post (I generally use force=1 on the mobile web app).&lt;/p&gt;
&lt;p&gt;When I post using the Buzz feature on Maps 4 it seems to be posting from a completely separate account with a private profile and while I can see the buzz in my stream, it doesn't show up on any public buzz timelines on my profiles.&lt;/p&gt;
&lt;p&gt;What I find interesting is that it seems that the buzz features are all on my non-apps account; however to launch buzz for apps it seems they will need to do some pretty close integration between the apps and non-apps accounts.  Certainly more integration than they seem to have been able to do before.&lt;/p&gt;
&lt;p&gt;I can see a few possibilities:&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The apps and google accounts are fully integrated&lt;/li&gt;&lt;li&gt;When Buzz is enabled on apps and I lose the existing stuff. I also gain a new apps public profile.&lt;/li&gt;&lt;li&gt;Buzz for apps ends up as a Kludge that links a single non apps feed into your apps profile&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;A lot of people do what I initially did, and link to a gmail address for non-apps features; while other people don't use non-apps features at all and then there are people like me with a single username and a fragmented experience.  I don't see how they can solve this for people in all 3 categories.  The second option comes closest I guess but means I have to keep maintaining two profiles, two contact lists, etc.&lt;/p&gt;&lt;p&gt;Interesting times.&lt;/p&gt;Edit (18/2/2010 17:17): As if by magic Google Dashboard has been updated.  I can now access features such as Buzz connected sites via my dashboard.&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Still no access to Buzz via my apps mail though, so no easy access to friends timelines, etc...&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;I have put up a quick buzz &lt;a href="http://www.google.com/buzz/107842289266845678862/8yqMAajdsyp/How-I-enabled-Buzz-on-my-Google-Apps-account-Log"&gt;explaining how I enabled my apps account&lt;/a&gt; too.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Edit (19/02/2010 20:40): It seems Google were listening when this subject came up on TWiG last week and Gina Trapani got some inside scoop on the separation of Google Accounts and Apps accounts.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;&lt;a href="http://smarterware.org/5271/google-gmail-and-google-apps-accounts-explained/comment-page-1#comment-1917"&gt;http://smarterware.org/5271/google-gmail-and-google-apps-accounts-explained&lt;/a&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-712925011825820012?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/712925011825820012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=712925011825820012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/712925011825820012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/712925011825820012'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/02/bzzt-crackle-bzzt-i-think-there-is.html' title='Bzzt... *crackle* Bzzt... I think there is a loose connector here somewhere...'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3760419640709896421</id><published>2010-01-28T08:35:00.003Z</published><updated>2010-02-08T10:00:46.455Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Musings on the iPad</title><content type='html'>&lt;p&gt;Everyone and his dog is blogging about this so I might as well join in.  I am not an Apple fanboy. I look at their devices with awe. I have a great deal of respect for the company and for Steve Jobs. I just don't generally buy anything they produce.&lt;/p&gt;
&lt;p&gt;I don't think the iPad announcement met the pre-launch hype but then I don't think anything could have. I am currently unsure what its market is but I know it isn't me.  A large screen ipod touch? I'll stick with an ipod classic thanks.  An ebook reader? Great for indoor use but if you are going to be out in direct sunlight you can't beat e-ink. (More on ebooks coming later in this post). Living room laptop? Give me a camera for internet video calls (with my wife and son in Australia at the moment skype from the couch is an important part of my day).&lt;/p&gt;
&lt;p&gt;I have never been a fan of god boxes.  One box that does everything generally doesn't do anything as well as a dedicated device would.  For people who don't want to carry multiple devices around this might have value but then this isn't a phone, so you are still going to have to carry 2 devices around anyway...&lt;/p&gt;
&lt;p&gt;Even so I can see that for a lot of people this is good enough and it sure is purty so I have no doubt it will sell by the bucketload. Tent hire shops near apple stores have  busy time ahead. I recommend you to  &lt;a href="http://www.stephenfry.com/2010/01/28/ipad-about/"&gt;Stephen Fry's blog&lt;/a&gt; for a less jaded view of the box.&lt;/p&gt;
&lt;p&gt;The area that gives me most concern is ebooks (or ibooks?). The announcement says they will use epub which is great. The proprietary format DRM hell is the reason I will never buy a Kindle.  Epub is a nice format. Essentially it is a zip file with xhtml and images in it.  You can download them from Waterstones, WH Smiths, my local library service, Google Books, Project Gutenberg and many other places.  Publishers already have a lot of content in epub format and almost all of it has Adobe "ADEPT" DRM as used in their Digital Editions reader software. I don't think Apple can ignore this existing content so I expect that ADEPT protected content will be supported on the iPad. What I don't expect is for them to incorporate ADEPT into the itunes book store it is more likely to be a proprietary DRM something like their FairPlay system.&lt;/p&gt;
&lt;p&gt;I think the ipad will be great for electronic reading in the long term.  It will get the last few publishers which haven't embraced digital books on board. It will get the publishers to publish more and earlier (currently it is quite common for the ebook launch to be delayed until the paperback is available).&lt;/p&gt;
&lt;p&gt;In the short term it will be painful.  There will be exclusive deals done (want the latest harper collins publications on your e-ink device? Sorry, ipad only). Apple will be dealing direct with the publishers meaning that other booksellers will lose on sales.  I am not a big fan of Waterstones but I do like the opportunity of being able to browse the dead tree catalogue in one of their stores before heading home and buying the digital version through the website.&lt;/p&gt;
&lt;p&gt;A lot of people are saying that Apple will change the game with ebooks the same way they did with music downloads. I think the situations are different.  Momentum has been building around ebook distribution for a few years already.  Amazon and the Kindle have already given the ebook market the closed DRMed kick up the arse it needed to get it moving.  Apple wading in now is more likely to move things backwards.  &lt;/p&gt;
&lt;p&gt;My prediction is that it will dramatically increase the selection of content at the expense of pushing the level of openness back a couple of years. Having Amazon and Apple available as the evil face of big corporation will help reduce over zealous DRM in the long term.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3760419640709896421?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3760419640709896421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3760419640709896421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3760419640709896421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3760419640709896421'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2010/01/musings-on-th-ipad.html' title='Musings on the iPad'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3031061088495575083</id><published>2009-11-20T17:23:00.004Z</published><updated>2009-11-20T18:07:15.435Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sfi'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='peering'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Free (for all) Peering</title><content type='html'>&lt;p style="text-align: left;"&gt;Given that people keep bringing up the old "Peering is free Internet Access" chestnut, I thought I'd run through a quick pricing exercise.&lt;/p&gt;&lt;p style="text-align: left;"&gt;Let's imagine that you live in London Docklands.  You want some of this free Internet access you've been hearing about recently (e.g. this recent podcast: &lt;a href="http://twit.tv/twig12"&gt;TWiG 12&lt;/a&gt;).&lt;/p&gt;&lt;p style="text-align: left;"&gt;First off, you need to get into one of the many Colocation centres around London where there is a public internet exchange point. Lets choose Telehouse North.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;A 100Mb/s ethernet link to Telehouse from somewhere in Docklands is likely to cost you around £2500 to install, and then £500 a month to keep running.&lt;/p&gt;&lt;div style="text-align: left;"&gt;Now to peer at an IXP you need to talk BGP.  This means you need your own IP address range, and an autonomous system number.  The easiest way to get these things is to join the local internet registry for your region.  For London this would be &lt;a href="http://www.ripe.net/"&gt;RIPE&lt;/a&gt;.  Checking the &lt;a href="http://ripe.net/membership/billing/procedure-lir10.html"&gt;2010 fee schedule&lt;/a&gt; the sign-up fee is €2000 with an annual fee of €1300 for the extra-small registry class.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once you have this sorted out you can sign up to the exchange.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Current LINX &lt;a href="https://www.linx.net/service/servicefees.html"&gt;Membership fees&lt;/a&gt; for 100Mb/s ports are:   £1800 annual membership fee.  £160 per month for a 100Mb/s port.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;The install fee for a 100Mb/s port in Telehouse is: £550&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Lets add that up:&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;table style="text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Link to Telehouse:&lt;/th&gt;&lt;td&gt;£2500&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;RIPE Membership:&lt;/th&gt;&lt;td&gt;£1800 (exch rate 0.9)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;LINX Port:&lt;/th&gt;&lt;td&gt;£550&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Total Install:&lt;/th&gt;&lt;td&gt;£4850&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Link to Telehouse:&lt;/th&gt;&lt;td&gt;£500&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Ripe Membership:&lt;/th&gt;&lt;td&gt;£100&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;LINX Membership:&lt;/th&gt;&lt;td&gt;£150&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;LINX Port:&lt;/th&gt;&lt;td&gt;£160&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Total Monthly:&lt;/th&gt;&lt;td&gt;£910&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div&gt;&lt;p style="text-align: left;"&gt;So assuming a usage pattern of 60Mb/s you are looking at an initial outlay of nearly £5000 and getting your internet access at around £15 a month per Megabit/s. And you won't get all the sites you want either.  You will only get access to other LINX members that want to exchange traffic with you.&lt;/p&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Does peering still look free to you?  I'd rather take a limited service cheap DSL service at home myself.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;I have made a lot of assumptions in this email and the situation I have described is not realistic but I hope it has indicated that even though peering may not involve any cash changing hands between peers it does involve cost to all parties involved.&lt;/div&gt;&lt;div style="text-align: left;"&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Peering (a.k.a SFI) certainly makes very good sense when you are doing a lot of internet traffic.  It is not free though.  The costs do come down quite a lot when there are very large volumes of traffic but they never go to zero.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3031061088495575083?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3031061088495575083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3031061088495575083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3031061088495575083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3031061088495575083'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/11/free-for-all-peering.html' title='Free (for all) Peering'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7836562856782685804</id><published>2009-11-17T08:55:00.004Z</published><updated>2009-11-17T09:12:13.663Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='future'/><title type='text'>Ping and OSI Annoyances</title><content type='html'>&lt;p&gt;OK.  Its been a while since I had a rant here but the wording in a couple of stories grabbed from my google reader stream this morning have sparked me off again...&lt;/p&gt;&lt;p&gt;First off, Lifehacker &lt;a href="http://lifehacker.com/5405197/pingtest-assesses-the-quality-of-your-internet-connection"&gt;posted a recommendation&lt;/a&gt; for a tool called Pingtest.  The guys who wrote this are the same guys behind &lt;a href="http://speedtest.net/"&gt;speedtest.net&lt;/a&gt;  I am sure they know the limits of ping and have made sure this will be reliable; however I can't applaud perpetuating the myth that ping is a reliable performance monitoring tool rather than a simple connectivity checker.&lt;/p&gt;&lt;p&gt;Secondly.  Juniper and O'Reilly have just released a new book on green networking named &lt;a href="http://oreilly.com/catalog/9780596157043/"&gt;"The Sustainable Network"&lt;/a&gt;.  This in itself isn't bad, and I intend to check it out using my Safari account.  What annoyed me about the press release is the sentence: &lt;span style="font-style:italic;"&gt;"(The Global network)'s ... future depends on ... industry innovation at all layers of the OSI model"&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;The OSI 7 layer model is a conceptual model rather than a practical one.  It is still a useful learning tool but network designers and protocol architects will generally move past using it for actual deployments pretty rapidly.&lt;/p&gt;&lt;p&gt;The core Internet protocols have been around longer than the OSI model.  TCP/IP layers do not correspond with the OSI layers.  Even the ISO protocol designers had a hard time implementing the OSI model in real life and often utilised "pass through" funtions to skip pass layers they couldn't shoehorn in.&lt;/p&gt;&lt;p&gt;Network innovation doesn't depend on the OSI model.  It depends on finding the right recursive layering model and evolving the control plane so that the current exponential growth curve of the default free zone can be flattened out.&lt;/p&gt;&lt;p&gt;For more on these subjects see:&lt;/p&gt;&lt;p&gt;Day, John - &lt;a href="http://www.amazon.co.uk/Patterns-Network-Architecture-Return-Fundamentals/dp/0132252422/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1258448808&amp;amp;sr=8-1"&gt;Patterns in Network Architecture&lt;/a&gt; (Prentice Hall) (website at &lt;a href="http://pnabook.com/"&gt;http://pnabook.com/&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Various - Proposals to the &lt;a href="http://trac.tools.ietf.org/group/irtf/trac/wiki/RoutingResearchGroup"&gt;Routing Research Group&lt;/a&gt; on addressign routing table scaling&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7836562856782685804?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7836562856782685804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7836562856782685804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7836562856782685804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7836562856782685804'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/11/ping-and-osi-annoyances.html' title='Ping and OSI Annoyances'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7385717779635181059</id><published>2009-08-28T07:30:00.002+01:00</published><updated>2009-08-28T08:34:40.009+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='pna'/><category scheme='http://www.blogger.com/atom/ns#' term='mpls'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='future'/><category scheme='http://www.blogger.com/atom/ns#' term='rrg'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Layering in the Modern Internet</title><content type='html'>&lt;p&gt;OK, so I'm still reading Day's "Patterns in Network Architecture" and it's gradually bringing areas of what I do into better focus.&lt;/p&gt;

&lt;p&gt;Open any networking book and you'll immediately be shown the classic OSI 7 layer model.  As models go it does a pretty good job.  It doesn't match the architecture of the Internet protocols though.  Most of the books will point out that the OSI model came later. Few actually point out that the OSI model isn't flexible enough to model a scalable global Internet.&lt;/p&gt;

&lt;p&gt;In simple networks you have services, hosts, interfaces and links. If you have two hosts communicating you have service communication encapsulated in TCP/UDP/etc. IP doesn't have a host layer (see HIP/SHIM6 for a couple of proposals) but DNS allows a mapping of a host name to an interface identifier at the host communication layer (I.e. IP address). Interface level communication is trending towards Ethernet. This leads back to the simplified view: TCP is transport/session layer; IP is network layer; MAC is data-link layer.&lt;/p&gt;

&lt;p&gt;The Internet has a massive variety of configurations.  A better (but still vastly simplified) model could be: Hosts talk using IP and could be relayed at a number of aggregation levels such as: Network (e.g. IGP area), inter-area (e.g. BGP confederation member or RR cluster), inter-entity (e.g. External ASN). Going back 10 years or so these boundaries would primarily just be defined by routing at the IP layer but now there are real moves to encapsulating protocols at these boundaries too.  Within a service provider network the IGP is simply a bootstrap protocol for bringing up the MPLS infrastructure for intra-entity communication, BGP for intra-ASN MPLS (this is usually only seen in larger cores, this can also be used for inter-ASN MPLS but such uses are not generally for Internet applications). Inter-ASN communication today uses the same addressing scope as inter-host communication but there is active work to change this (See proposals under discussion in the routing research group such as LISP).&lt;/p&gt;

&lt;p&gt;Some of these encapsulations allow for flexible mappings for services. An example would be that the ethernet layer in the first example could actually be running over the MPLS layer of the second example.  For this reason I think that any inter-ASN method needs to support carrying more than just IPv4/IPv6 (the thought of configuring IPv4-over-Ethernet-over-MPLS-over-GRE-over-IPv6-over-LISP in the future leaves a bad taste in my mouth)&lt;/p&gt;

&lt;p&gt;Recursive layering is a powerful concept but care must be taken that there is a real architectural reason for the layer. Layers should be created to solve problems, not mask them.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7385717779635181059?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7385717779635181059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7385717779635181059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7385717779635181059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7385717779635181059'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/08/layering-in-modern-internet.html' title='Layering in the Modern Internet'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8984680345740239231</id><published>2009-08-11T21:38:00.004+01:00</published><updated>2009-08-11T21:57:25.434+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='exhaustion'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Save us Obi-Wan Torvalds, You're Our Only Hope</title><content type='html'>&lt;p&gt;OK, random thought time.&lt;/p&gt;
&lt;p&gt;I'm currently reading the extremely interesting &amp;quot;Patterns in Network Architecture: A Return to Fundamentals&amp;quot; by John Day.  In it he points out that one of the fundamental benefits that caused the internet protocol suite to win out is that it was designed by operating system people, rather than telecomms people.  He also puts forward that when addresses started getting low we missed a chance to go back to these principals and design a new scalable protocol using contemporary thinking on IPC, virtual addressing and the like and instead we just threw header bits at the problem.  I'm not sure I'm 100% convinced by all of the arguments in the book but it is certainly thought provoking.&lt;/p&gt;
&lt;p&gt;Now back to the title.&lt;/p&gt;
&lt;p&gt;We all know what happened when Linus Torvalds got the itch to improve on the Minix OS.  Many of us also know what happened when he got the itch to improve on the available distributed version control tools available a few years back.  I am wondering whether he is itching as much as I am over the lack of take-up of IPv6 and the number of features still missing to facilitate migration from a v4 Internet to a v6 Internet.&lt;/p&gt;
&lt;p&gt;If he is, and if Day is right, then an itchy Linus plus some time to code could be the best solution to the closing v4 exhaustion problem.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8984680345740239231?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8984680345740239231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8984680345740239231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8984680345740239231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8984680345740239231'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/08/save-us-obi-wan-torvalds-youre-our-only.html' title='Save us Obi-Wan Torvalds, You&apos;re Our Only Hope'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5428990187216891552</id><published>2009-08-10T10:24:00.001+01:00</published><updated>2009-08-10T10:24:54.921+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ethernet'/><category scheme='http://www.blogger.com/atom/ns#' term='21cn'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='dsl'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Does 21CN go far enough?</title><content type='html'>&lt;p&gt;I read a post on a mailing list that got me to thinking.  Recently there have been a  number of live events (e.g. Wimbledon, The Ashes) which have been broadcast live online by one means or another (I personally quite like the video scorecard the BBC are streaming alongside the Ashes coverage).  These events have caused a noticable rising of sustained traffic over business grade DSL during office hours (i.e. people tuning in while at work).&lt;/p&gt;
&lt;p&gt;The perennial argument against IP Multicast is that the massive growth in IP video content is primarily on-demand where multicast doesn't give any gain; however the peaks seen during live events, as well as &lt;a href="http://informitv.com/articles/2009/07/11/pvruserswatch/"&gt;other research&lt;/a&gt; shows that there would still be significant bandwidth savings if live content could leverage multicast proplerly.&lt;/p&gt;
&lt;p&gt;This moves on to my thoughts about 21CN.  The primary DSL delivery methods in 21CN are WBC and WMBC (there is also IPSC for access to 20CN IPstream services).  Largely these services mirror the IPStream service in that they are L2TP delivery of PPP services.  Because these services are delivered to the ISP as a point to point L2 service this means that the ISP has to aggregate traffic within their network and streams have to be replicated before being fed in to the BT network.  No cost saving to the ISP generally equals no driver to do any work on multicast services.&lt;/p&gt;
&lt;p&gt;Of course a lot of this cost saving argument is moot if the ISP are charging their customers correctly.  If you are being charged on a usage basis by your supplier, then you have to charge on a usage basis to your customer.  If you charge flat rate and then get pwned when the customers actually use what they are paying for then you have no right to complain...&lt;/p&gt;
&lt;p&gt;An alternative L2 for this could have been a VPLS or VLAN based ethernet broadcast network.  In this type of deployment (similar to many cable deployments but not usually used for DSL) multicast traffic could be sent out using ethernet level multicast (being careful not to flood, otherwise this traffic would be sent to users who don't want it).  This method of delivery would have a lot of positives but it is also very different from existing strategies.  Much of the resistance to this idea would be from inertia (I certainly cringed when the idea popped into my head); however the more I think about it the more I like the possibilities for future expansion.  The biggest scare factors would be direct customer to customer traffic at ethernet layer (could be mitigated by private vlan like split broadcast domain) and broadcast / flooded traffic.&lt;/p&gt;
&lt;p&gt;CPE support could also be an issue.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5428990187216891552?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5428990187216891552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5428990187216891552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5428990187216891552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5428990187216891552'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/08/does-21cn-go-far-enough.html' title='Does 21CN go far enough?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2545945428915728508</id><published>2009-05-22T13:35:00.003+01:00</published><updated>2009-05-22T13:40:17.185+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='cupcake'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>A Fresh Cupcake</title><content type='html'>&lt;p&gt;A new cupcake update just appeared on my mobile.  Appears to be a security update rather than feature update.&lt;/p&gt;

&lt;p&gt;Official build strings: Firmware version 1.5, Kernel Version: "2.6.27-00393-g6607056 san@sandroid #1" Build number: CRB43&lt;/p&gt;

&lt;p&gt;User agent: "Mozilla/5.0 (Linux; U; Android 1.5; en-gb; T-Mobile G1 Build/CRB43) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1" "-"&lt;/p&gt;

&lt;p&gt;Same webkit version, so not a browser vuln...  minor change in kernel version...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2545945428915728508?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2545945428915728508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2545945428915728508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2545945428915728508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2545945428915728508'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/05/fresh-cupcake.html' title='A Fresh Cupcake'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5841031004264086375</id><published>2009-05-20T23:14:00.004+01:00</published><updated>2009-05-20T23:40:57.081+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='optical'/><category scheme='http://www.blogger.com/atom/ns#' term='ethernet'/><category scheme='http://www.blogger.com/atom/ns#' term='transport'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>The Emperor's New Transport</title><content type='html'>&lt;p&gt;All of the hype in networking at the moment seems to be surrounding the move to packet based transport with particular emphasis on Ethernet.&lt;/p&gt;

&lt;p&gt;I have to admit to being confused.&lt;/p&gt;

&lt;p&gt;Don't get me wrong, I'm a packet guy through and through and can totally understand the benefits of moving to a packet core.  What I don't understand is the obsession on using Ethernet to do it.&lt;/p&gt;

&lt;p&gt;One quick pedantic point I want to get off my chest: Ethernet PDUs are "Frames" not "Packets".  That's just a terminology point though and just annoys me rather than being an argument for or against the applicability of Ethernet in the Packet Transport network.&lt;/p&gt;

&lt;p&gt;Ethernet is a great LAN protocol.  I have been working with it for years and have a pretty good understanding of it (there's a reason one of my unofficial job titles is "Switch Bitch").  But using the vanilla 802.1d and 803.3 standards it doesn't scale well.&lt;/p&gt;

&lt;p&gt;Ethernet is a CSMA/CD technology (Carrier Sense Multi-Access with Collision Detection).  These things are all important when considering the most basic setup with a number of devices communicating over a dumb hub/repeater.&lt;/p&gt;

&lt;p&gt;I real modern day networks the CD part has largely been rendered irrelevant due to the prevalence of micro-segmentation and full-duplex links; when operating in full duplex you don't get collisions.&lt;/p&gt;

&lt;p&gt;Lets imagine our next generation all-singing all-dancing packet transport network.  Each node in the network is a packet switch.  If you try and build this sort of network with Ethernet switches it won't work; spanning tree simply does not scale this way.  Future enhancements such as &lt;a href="http://www.ietf.org/html.charters/trill-charter.html"&gt;TRILL&lt;/a&gt; (see RFC5556) will allow further scaling at the Ethernet layer but the protocol designers only see this scaling up to high 100s of nodes in the network.  Plenty for a metro, but when talking of a National or International network that's not so much.&lt;/p&gt;

&lt;p&gt;Another solution that seems well liked is MPLS-TP.  I have nothing against this.  I've been working with MPLS in the IP world for years and it generally does what it says on the tin.  I tend to prefer an intelligently signalled MPLS network over an NMS configured MPLS-TP network but reducing complexity in the core allows for faster and cheaper boxes so it is forgivable.&lt;/p&gt;

&lt;p&gt;If the node is an MPLS LSR then forwarding decisions are made based on MPLS labels, not on MAC addresses and the links between nodes are point to point (meaning the MA in CSMA/CD becomes redundant, leaving us with CS - what L2 protocols don't have carrier sense?).  I suppose technically you could put a L2 switch between the nodes but why would you want to?&lt;/p&gt;

&lt;p&gt;I still believe that in a point to point network a point to point protocol makes more sense.  PPP over HDLC as done traditionally for POS certainly has its problems, the main one being unknown packing overhead due to having the escape the SOF/EOF flags.  If you use PPP over GFP though the downsides pretty much go away.  I would much rather see an international network built using some flavour of PPP over WDM than Ethernet over WDM.&lt;/p&gt;

&lt;p&gt;Ethernet just doesn't seem to fit the requirements and the standards groups all seem to be rapidly bolting new features on (e.g. MAC-in-MAC, Ethernet OAM, 1588 Synchronisation) to make it more and more like the networks it is trying to replace...&lt;/p&gt;

&lt;p&gt;I'm going to follow up on this post but I'll leave it for now with a question:&lt;/p&gt;

&lt;p&gt;Is my standpoint Bill Gates saying "No-one will need more than 640K" or am I the little boy saying "The Emperor has no Clothes!"?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5841031004264086375?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5841031004264086375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5841031004264086375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5841031004264086375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5841031004264086375'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/05/emperors-new-transport.html' title='The Emperor&apos;s New Transport'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2463725063237443103</id><published>2009-05-20T23:07:00.004+01:00</published><updated>2009-05-20T23:13:53.131+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='latitude'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>An Explanation for the Lack of Latitude in T-Mobile Cupcake</title><content type='html'>&lt;p&gt;I found a reasonable explanation for the lack of latitude in the T-Mobile G1 version of the Android software.&lt;/p&gt;

&lt;p&gt;On a &lt;a href="http://ping.fm/6jmP2"&gt;thread on the Google Mobile support forum&lt;/a&gt; user GerardK writes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I'm guessing that the following is the code of practice to which Christopher is referring:
&lt;a href="http://www.mobilebroadbandgroup.com/documents/UKCoP_location_servs_210706v_pub_clean.pdf"&gt;http://www.mobilebroadbandgroup.com/documents/UKCoP_location_servs_210706v_pub_clean.pdf&lt;/a&gt;
Code of Practice for the use of passive location services in the UK&lt;/p&gt;

&lt;p&gt;They're probably afraid that because this software is integrated with the phone that it is classified as being provided by the network operator rather than a 3rd party and it requires the implementation of some things that Latitude probably doesn't do yet, including...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Random notifications to subscribers by SMS that their location is monitored&lt;/li&gt;
&lt;li&gt;Provide information on how to contact the location service provider's customer support service by phone (yep that's right, Google's phone number)&lt;/li&gt;
&lt;li&gt;Provide a link to the code of practice&lt;/li&gt;
&lt;li&gt;Comply with the Data Protection Act and the Regulations of Privacy and Electronic Communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The code also includes some special regulations relating to locating children including a requirement to declare someone's relationship with a child and parental veto over who can locate them via a password-controlled parental master account and parental consent to use the service in the first place.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On the surface this seems like a good reason for T-Mobile to request Latitude is disabled in the G1 software. The fact that Vodafone haven't disabled it in the G2 reopens the debate though.&lt;/p&gt;

&lt;p&gt;Either T-Mobile is correct in thinking that Latitude (as an integral part of the platform provided by T-Mobile) is covered by the passive location services code of conduct and Vodafone are in breach of that code, or Vodafone are correct in thinking that Latitude (as a third party service disabled by default and explicitly enabled by the end-user) is not covered by the code and T-Mobile are being arses.&lt;/p&gt;

&lt;p&gt;IANAL so I can't really say which party is in the right here. What I can say is that at the moment I wish I was a Vodafone customer and had a phone that doesn't have crippled functionality :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2463725063237443103?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2463725063237443103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2463725063237443103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2463725063237443103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2463725063237443103'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/05/explanation-for-lack-of-latitude-in-t.html' title='An Explanation for the Lack of Latitude in T-Mobile Cupcake'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/00557224580885142017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_zVtqBe_Jf6I/S3MnOJ5x4aI/AAAAAAAABNk/-DriF04jISY/s1600-R/AIbEiAIAAABECLmZ1YDH3p6BwAEiC3ZjYXJkX3Bob3RvKig5N2UzZDhlMjQ4MWEwNTc1MTdhYWQzZjI1ZjU5ODU1YTg2OGQ3ZWFkMAFsh7_NHjxvfvoqCwSFqxNoUQelew'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-6028088819910099826</id><published>2009-05-08T17:06:00.003+01:00</published><updated>2009-05-08T17:22:24.396+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='cupcake'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>I Can Haz Cupcake</title><content type='html'>&lt;p&gt;Looks like I was overly pessimistic when I &lt;a href="http://twitter.com/xchewtoyx/status/1315254773"&gt;predicted a June release&lt;/a&gt; for Cupcake.  My phone randomly rebooted this morning and when it came back up it was reporting an update available.  The Cupcake has landed.&lt;/p&gt;

&lt;p&gt;Official build strings:  Firmware version 1.5, Kernel Version: "2.6.27-00392-g8312baf android-build@apa27 #27" Build number: CRB17&lt;/p&gt;

&lt;p&gt;User agent: "Mozilla/5.0 (Linux; U; Android 1.5; en-gb; T-Mobile G1 Build/CRB17) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"&lt;/p&gt;

&lt;p&gt;Useful stuff so far: Video camera seems to work pretty well.  On screen keyboard is great for quick URL entry, etc.  Find in page and select text within the browser seriously kicks arse.  Various visual changes.  I miss the little green droid on boot :( I also preferred the old icon for the browser (now a very generic looking globe).  The ability to mark messages for bulk actions in the mail client is nice.&lt;/p&gt;

&lt;p&gt;All in all a nice update.  Some of the features shouldn't have taken this long to add, but are well appreciated now they are here :).  Now if only they could release that flash player that was demo'd a few months back...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-6028088819910099826?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/6028088819910099826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=6028088819910099826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6028088819910099826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6028088819910099826'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/05/i-can-haz-cupcake.html' title='I Can Haz Cupcake'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1561014367281537812</id><published>2009-03-04T10:17:00.006Z</published><updated>2009-03-04T11:06:57.373Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Better Late than Never</title><content type='html'>&lt;p&gt;The latest UK Android release is now available on T-Mobile G1s...&lt;/p&gt;

&lt;p&gt;We've been running on kila_uk-user 1.0 TC5-RC8 116470 since back in November, the US got their RC33 update a month back... and now we have kila_eu-user 1.1 TMI-RC9 128600.&lt;/p&gt;

&lt;p&gt;We get "Check for updates" and "Save attachment to SD Card" for MMS messages.  No voice search, and as far as I can tell no latitude...&lt;/p&gt;

&lt;p&gt;About as meh as I was expecting unfortunately :(&lt;/p&gt;

&lt;p&gt;EDIT: The update includes Google Maps 3.0, which supposedly supports latitude...  It seems to be lacking the menu items necessary for adding / approving contacts and publishing data.  It may just be boneheadedness on my part, but I'm still not convinced latitude is there.&lt;/p&gt;

&lt;p&gt;EDIT2: The updated browser seems to fix a lot of the frustrations I had with unicode text input.  For reference, the new user agent is:  &amp;quot;Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2&amp;quot;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1561014367281537812?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1561014367281537812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1561014367281537812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1561014367281537812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1561014367281537812'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/03/better-late-than-never.html' title='Better Late than Never'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-4510200378037619505</id><published>2009-02-06T07:50:00.004Z</published><updated>2009-02-06T08:01:03.952Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Will RC33 equivalent hit UK?</title><content type='html'>&lt;p&gt;Some worrying wording in the &lt;a href="http://googlemobile.blogspot.com/2009/02/search-with-your-voice-on-android.html"&gt;announcement of Android voice search&lt;/a&gt; over on the Google Mobile blog.&lt;/p&gt;
&lt;p&gt;"For those of you with a G1 in the US"&lt;/p&gt;
&lt;p&gt;The fact that they limit the announcement could indicate that voice search won't be hitting this side of the pond (with the problems the iphone app had with English accents not really surprising). Given that voice search is the most important part of the update I wouldn't be at all surprised if T-Mobile UK don't bother with a rebuild.&lt;/p&gt;
&lt;p&gt;Although maybe if they could add the Amazon MP3 app now that the UK store is open... (wishful thinking)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-4510200378037619505?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/4510200378037619505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=4510200378037619505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4510200378037619505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4510200378037619505'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/02/will-rc33-equivalent-hit-uk.html' title='Will RC33 equivalent hit UK?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2378560359802712512</id><published>2009-02-04T09:55:00.003Z</published><updated>2009-02-04T10:04:42.706Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>US G1 Users Get a New Android Build</title><content type='html'>&lt;p&gt;Firmware RC33 has started making its way out to G1 owners in the US (full build: kila-user 1.1 PLAT-RC33 126986).&lt;/p&gt;

&lt;p&gt;A changes list has been published on the official forums &lt;a href="http://forums.t-mobile.com/tmbl/board/message?board.id=87&amp;thread.id=30897"&gt;in this thread&lt;/a&gt;.  I haven't come across any of the bugs listed as fixed and the new features are largley "meh".  Not too fussed about the inevitable delay before T-mobile start rolling out in the UK.&lt;/p&gt;

&lt;p&gt;Would be really nice to see some Cupcake features rolled into the official G1 release.  Even word on when and if would be an advance on where we are now.&lt;/p&gt;

&lt;p&gt;Edit: I just finished the thread and it seems the market app has also been updated to show when updates are available.  That one is actually worth installing for.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2378560359802712512?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2378560359802712512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2378560359802712512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2378560359802712512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2378560359802712512'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2009/02/us-g1-users-get-new-android-build.html' title='US G1 Users Get a New Android Build'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3214168187222523853</id><published>2008-12-23T07:24:00.003Z</published><updated>2008-12-23T08:51:04.066Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>The biggest hurdle for open source</title><content type='html'>&lt;p&gt;I have heard several stories recently that have reinforced an opinion that I have held for a while.  Open source's biggest hurdle is not reliability or usability, it is the fact that most people don't understand the principles behind it. &lt;/p&gt;
&lt;p&gt;While listening to &lt;a href="http://cstechcast.com/home.aspx?Episode=54"&gt;CS TechCast&lt;/a&gt; this morning I was listening to the interview with Curt Finch thinking "Is this really still new to some people"?  The answer is of course yes.&lt;/p&gt;
&lt;p&gt; There are a lot of people that see something that is free (beer) and immediately think "What's the catch?"  There are certainly cases where this is a sensible approach (e.g. cash transfers from Nigeria) and this makes it a hard problem to n
address. A great example is the school teacher who layed into a student for sharing a linux CD with a holier than thou "nothing is free" tirade.&lt;/p&gt;
&lt;p&gt;I feel that maybe I have been spoiled.  I have spent my entire working life in organisations where open source has been in active use.  I have generally been in positions to promote further use of such software as well.  While I have a windows PC on my desk to comply with corporate policy I am also free to run a virtual Ubuntu desktop which is where I do the bulk of my work.  I have been involved in the installation and administration of more Linux servers than I care to think about. I regularly expand a set of internal tools for IP Address management written using the Mason perl web framework (if I were to start again I would probably use Catalyst but I don't have the time to refactor at the moment). The back end database for this runs on Mysql and was originally created using the Northstar open source IPAM tool. I have also been working with open source management utilities Cricket, Torrus, NFSen and OpenNMS.&lt;/p&gt;
&lt;p&gt;I guess my point is that I get open source because I have a lot of exposure to it.  The general public don't really have a way to get  this exposure.  If your company is a microsoft shop you will never get to use a Linux desktop and if you have an opinion at all on the subject it is probably based on the usual FUD spread by microsoft evangelists. &lt;/p&gt;
&lt;p&gt;I don't know how the average normon can get enough exposure to get over the "no such thing as a free lunch" effect. Certainly the fact that a lot of consumer electronic devices now have a copy of the GPL in the box can't hurt.  It would also help if more companies that use open source would give something back.  The telecomms industry is very bad at this, almost all companies in the sector use open source but while many of the staff get open source and would be happy to give back to the community the lawyers handling the regulatory affairs most certainly don't get it and generally make sure that employment contracts contain an "all of your code is belong to us" clause that includes spare time coding.&lt;/p&gt;
&lt;p&gt;I'm not saying that everone needs to go as far as Google's 1 day a week on an open source project of your choice but being able to code in the evening for my own enjoyment would be nice...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3214168187222523853?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3214168187222523853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3214168187222523853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3214168187222523853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3214168187222523853'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/biggest-hurdle-for-open-source.html' title='The biggest hurdle for open source'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8156975554293727464</id><published>2008-12-19T07:44:00.002Z</published><updated>2008-12-19T08:02:30.268Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android updates on the way</title><content type='html'>&lt;p&gt;Google recently added a new branch to the Android source repository called Cupcake.  Android community have just posted on some of the &lt;a href="http://androidcommunity.com/new-cupcake-update-details-surface-20081218/"&gt;Cupcake changes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So far these are just additions to the open source codebase and there is no news on when we'll be getting an OTA from T-mobile including any of these changes/fixes.  Some interesting stuff none-the-less.&lt;/p&gt;
&lt;p&gt;AC pick up on the "Basic x86 support".  This could mean confirmation of atom based netbook rumours if its x86 arch support, could indicate a start of "native client" support if its x86 compiled code support or it could mean nothing at all.&lt;/p&gt;
&lt;p&gt;My personal favourites: Inline search and cut and paste for the browser (currently only link URLs can be copied) and stereo bluetooth support.  Hopefully either the webkit update or the beginnings of IME support will include fixing unicode in the browser.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8156975554293727464?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8156975554293727464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8156975554293727464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8156975554293727464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8156975554293727464'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/android-updates-on-way.html' title='Android updates on the way'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7177432512689205450</id><published>2008-12-18T17:46:00.004Z</published><updated>2008-12-18T21:37:26.214Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='intense debate'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='metablog'/><title type='text'>Comment Spam Etiquette</title><content type='html'>&lt;p&gt;So I just got my first &lt;a href="http://meanderings.s8n.net/2008/12/taking-chance.html"&gt;comment spam&lt;/a&gt; since resurrecting &lt;a href="http://meanderings.s8n.net/"&gt;Random Meanderings&lt;/a&gt; on blogger and now I have a question... What is the etiquette involved when dealing with comment spam on &lt;a href="http://www.intensedebate.com/"&gt;Intense Debate&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;On my previous Self hosted MT instance I would simply delete then but that doesn't feel like the right thing to do on a social platform like Intense Debate.  I have given the comment a thumbs down but the account is probably a throw away anyway...  I have seen mention of ID using akismet for spam tracking but I can't find any controls for this on my dashboard.  Need to read up on akismet and see if I can figure out if there is a way to flag a comment as spam to help improve the filter...&lt;/p&gt;
&lt;p&gt;Any comments welcome (except spam).&lt;/p&gt;
&lt;p&gt;[UPDATE]: I must be blind.  Enabling akismet on ID is a checkbox on the settings page for the blog. Nothing complex or arcane about setting it up at all.  Enabled for this site and meanderings so I guess I'll see how well it works... (one spam usually indicates more on the way so I shouldn't have to wait long).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7177432512689205450?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7177432512689205450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7177432512689205450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7177432512689205450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7177432512689205450'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/comment-spam-etiquette.html' title='Comment Spam Etiquette'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7427801169989066211</id><published>2008-12-17T19:44:00.005Z</published><updated>2008-12-17T19:57:33.355Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='elreg'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='anarchism'/><title type='text'>Anarchy is Good</title><content type='html'>&lt;p&gt;I seem to be in a bit of a Reg bashing mood today...&lt;/p&gt;
&lt;p&gt;On Monday &lt;a href="http://www.theregister.co.uk/2008/12/15/dziubba_nativ_client/"&gt;El Reg posted an editorial&lt;/a&gt; on google's native code.  I gave this a bit of a knock myself; however, unlike El Reg, I like that Google puts out largely pointless projects like this.&lt;/p&gt;
&lt;p&gt;I have always liked the idea of anarchism in theory but as a political system it doesn't fit with the real world - most people want to be told what to do and don't want to have to think.  The Internet has allowed micro anarchism to flourish amongst open source projects and the whole social networking / blogging scene.&lt;/p&gt;
&lt;p&gt;I find the idea that a multi-billion dollar company like Google can be largely anarchistic in its internals oddly reassuring and not at all worrying.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7427801169989066211?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7427801169989066211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7427801169989066211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7427801169989066211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7427801169989066211'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/anarchy-is-good.html' title='Anarchy is Good'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7833894314230617904</id><published>2008-12-17T12:54:00.003Z</published><updated>2008-12-17T13:23:07.007Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='viatel'/><category scheme='http://www.blogger.com/atom/ns#' term='elreg'/><category scheme='http://www.blogger.com/atom/ns#' term='bt'/><category scheme='http://www.blogger.com/atom/ns#' term='dsl'/><title type='text'>Voice needs a reliable network.  This is news?</title><content type='html'>&lt;p&gt;I don't usually post press releases from Viatel because this blog isn't run to hype my employer; however the latest release seems to have been picked up by El Reg, misquoted and has generated quite a few comments.&lt;/p&gt;
&lt;p&gt;A colleague of mine gave an interview a few days ago and the press release ended up on &lt;a href="http://www.lightreading.com/document.asp?doc_id=169305"&gt;lightreading.com&lt;/a&gt;.  Nothing that surprising in it really.  We've known all of this for years, but nice to know that our customers understand the problems with running Voice over most of the ADSL networks currently deployed in the UK.&lt;/p&gt;
&lt;p&gt;There are currently pretty much 3 options.  BT IPStream, BT Datastream and LLU.  IPStream is provided over a shared network, has no QoS capabilities and no reliability guarantees.  Pricing models mean that you have to run the central hand-offs pretty close to congestion to actually make it work.  Many ISPs will deliberately congest these lines as a matter of course and this is exactly why the Net Neutrality debate is so thorny.  In my opinion ISPs should not market "unlimited" services when they are knowingly congesting the infrastructure.  This &lt;a href="http://www.microscope.co.uk/welcome/news/reseller-news/resellers-must-be-clear-on-voip-capabilities/"&gt;sentiment was echoed&lt;/a&gt; by another colleague of mine when he said "If a business asks for a cast iron guarantee on VoIP availability [on a contended pipe] the honest reseller has to turn round and say he can’t guarantee it."&lt;/p&gt;
&lt;p&gt;LLU allows the provider to control their contention because everything is on their infrastructure.  Most players will contend to keep costs down but not all are doing so.&lt;/p&gt;
&lt;p&gt;Datastream is a bit "best of both worlds".  It allows controlling your own contention without having to put a DSLAM in every exchange where you have customers.  This relies on BTs ATM network which they want to phase out when they complete the 21CN rollout.&lt;/p&gt;
&lt;p&gt;Going back to the &lt;a href="http://www.theregister.co.uk/2008/12/15/adsl_voip/"&gt;El Reg Story&lt;/a&gt;.  The story states "Viatel's point, of course, is that those issues can be resolved though the use of uncontested ADSL or something as simple as reconfiguring ADSL routers to prioritise traffic.".  That's not quite the point in the original press release.  Prioritising traffic at the edge of the DSL line can give some improvements; however the fact that the BT network is contended and non QoS aware means that the effect is limited.  That's why edge configuration wasn't mentioned in the original story.  The whole point of the story is that to deliver VoIP properly over DSL at the moment in the UK you need to use an uncontended service.  A contended service with proper QoS support would also do the job but it is not currently a supported option anywhere in the UK AFAIK.&lt;/p&gt;
&lt;p&gt;As I've mentioned previously end-to-end QoS is against the tenets of net neutrality which means that most net neutrality fanatics are indirectly opposed to the concept of reliable VoIP over the Internet...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7833894314230617904?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7833894314230617904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7833894314230617904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7833894314230617904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7833894314230617904'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/voice-needs-reliable-network-this-is.html' title='Voice needs a reliable network.  This is news?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2140181176412616936</id><published>2008-12-16T07:11:00.006Z</published><updated>2008-12-17T06:21:57.551Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='sharedock'/><category scheme='http://www.blogger.com/atom/ns#' term='huawei'/><category scheme='http://www.blogger.com/atom/ns#' term='broadband'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>T-Mobile Mobile Broadband with Sharedock</title><content type='html'>&lt;p&gt;Tail end of last week the shitty service on our Virgin Media cable modem came to a head.  The original plan was to go for ADSL but we have been running on mobiles only with no fixed line for several years now and the DSL providers want over £100 as an up-front connection charge.  So we've decided to go mobile broadband at home.&lt;/p&gt;
&lt;p&gt;Being a T-Mobile customer already I know that they have decent 3G coverage in my area so off we go to the T-Mobile shop for the £20pm &lt;a href="http://www.t-mobile.co.uk/shop/mobile-broadband/laptop/pay-monthly/t-mobile/usb-modem-stick-mbb-share-dock/overview/#broadband-18-months"&gt;Mobile Broadband Plus with Sharedock&lt;/a&gt; offer.&lt;/p&gt;
&lt;p&gt;Plenty of people have reviewed the T-Mobile Mobile Broadband service so I'm just going to focus on the Sharedock hardware.&lt;/p&gt;
&lt;p&gt;The sharedock is  a T-Mobile branded Huawei D100T Wi-Fi router with USB 3G dongle support (presumably only Huawei dongles, the mobile broadband package currently includes a Huawei E170).  Prior Huawei experience prepared me for poor documentation and I wasn't disappointed; however when I logged into the box I ws pleasantly surprised by the functionality.&lt;/p&gt;
&lt;p&gt;First tip: Don't connect the wired ethernet to your network until you have logged in and configured the box. It defaults to IP address 192.168.1.1 (same as my WRT54GS) and defaults to having DHCP turned on.  Both useful defaults if you are going to be lugging it around for mobile access.  Less so if you want to plug into a wired network.  Changing the IP and disabling DHCP was just a matter of a few clicks though, so no real drama.&lt;/p&gt;
&lt;p&gt;Wireless security has all the usual suspects and setting up WPA2-PSK was again only a few clicks.&lt;/p&gt;
&lt;p&gt;The box itself will act as a caching DNS server so no need to dig out T-Mobile IP addresses if you turn the DHCP off.&lt;/p&gt;
&lt;p&gt;All in all I'm very happy with the box so far, just a couple of minor niggles.&lt;/p&gt;
&lt;p&gt;Activation of the online account management and hotspot access both depend on recieving SMS messages.  The USB stick is capable of SMS and the included software allows sending and recieving of SMS but the sharedock doesn't.  I ended up swapping the sim into my G1 because my shitty PC takes forever to recognise new USB devices.&lt;/p&gt;
&lt;p&gt;Second tip: The installation instructions assume that you have autorun enabled for removable devices.  I don't for two reasons.  There's the obvious security issue but most importantly for me is because autorun pisses me off.  If I want to run it I'll double click on it.  On a fresh install you need to run the autorun twice - once to install the software and a second time to switch the device into 3G mode (it defaults to mass-storage for driver installation).&lt;/p&gt;
&lt;p&gt;The (not so) transparent web proxy is also annoying.  Images in web pages are automatically compressed giving a noticable reduction in quality.  There is an app that can be &lt;a href="http://lastmile.t-mobile.co.uk/datacardhelp/user/page.phtml?page_id=98&amp;product_ref=web_n_walk_usb&amp;product_category_id=&amp;product_manufacturer_id="&gt;downloaded from T-Mobile&lt;/a&gt; to turn this off but it can be tricky to find.  The second thing with the proxy is that it seems to break access to t-mobile.co.uk. I assume this is temporary and it hasn't annoyed me enough to actually call 150 yet.&lt;/p&gt;
&lt;p&gt;Last niggle, an oldie but still isn't fixed.  If you are going to put a fair use cap on downloads then give users access to the stats! This isn't rocket science.  If you are tracking it for billing purposes and don't collate it in real time then print it on the bill.  Just give us a clue.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2140181176412616936?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2140181176412616936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2140181176412616936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2140181176412616936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2140181176412616936'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/t-mobile-mobile-broadband-with.html' title='T-Mobile Mobile Broadband with Sharedock'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1990410774835886006</id><published>2008-12-10T14:27:00.002Z</published><updated>2008-12-10T14:58:05.943Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Do Google's Devs Speak to Each Other?</title><content type='html'>&lt;p&gt;OK, I'm confused again.  Google have announced &lt;a href="http://google-code-updates.blogspot.com/2008/12/native-client-technology-for-running.html"&gt;Native Client&lt;/a&gt; for embedding applications in web pages.&lt;/p&gt;
&lt;p&gt;Immediate thoughts: What if you're not running on an x86 architecture? Given that most of my recreational browsing is done from my Android handset these days this looks like yet another technology that I will avoid while browsing.&lt;/p&gt;
&lt;p&gt;My suspicion here is that Google are just rocking the boat again.  ActiveX was a train wreck.  Silverlight... ::shrugs:: Never really come across anything that used it.  That leaves Flash and Java.  Flash is a bloated CPU hog in most cases but I've seen it used very well.  Java can be a bit bloated in the libraries, but well coded Java can run pretty damn quick.  Both of them are a lot more portable than NaCl (I have to admit to liking the acronym).&lt;/p&gt;
&lt;p&gt;Something that would excite me is if they were to announce that they'll support NaCl targeted for Dalvik rather than webpages.  This would give Android developers additional languages to play with as well as allowing embedded content in Android's mobile safari browser...  I'm not holding my breath though.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1990410774835886006?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1990410774835886006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1990410774835886006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1990410774835886006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1990410774835886006'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/do-googles-devs-speak-to-each-other.html' title='Do Google&apos;s Devs Speak to Each Other?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3537175892939028943</id><published>2008-12-10T13:36:00.004Z</published><updated>2008-12-10T13:41:47.810Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='open handset alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='oha'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Eedroid?</title><content type='html'>&lt;p&gt;Something I neglected to mention last night when I posted about new &lt;a href="http://www.openhandsetalliance.com/press_120908.html"&gt;Open Handset Alliance&lt;/a&gt; members was the addition of ASUS.  Some people are reporting that this may be confirmation of the rumours about an Android powered Eee PC/Netbook.&lt;/p&gt;
&lt;p&gt;I'm trying not to read too much into it though, as ASUS already make quite an extensive range of mobile handsets, so joining the OHA makes sense anyway.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3537175892939028943?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3537175892939028943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3537175892939028943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3537175892939028943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3537175892939028943'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/eedroid.html' title='Eedroid?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5043315686802750243</id><published>2008-12-10T07:16:00.004Z</published><updated>2008-12-10T07:33:57.917Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rfc'/><category scheme='http://www.blogger.com/atom/ns#' term='ietf'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Fairwell AS2.0</title><content type='html'>&lt;p&gt;The IETF have published &lt;a href="http://tools.ietf.org/rfc/rfc5396.txt"&gt;RFC5396&lt;/a&gt; recommending that the plain decimal representation should be used in all cases.  I have to admit to being disappointed.  I kinda liked the asdot presentation format and it certainly made 32-bit ASNs easier for humans to interpret.  I can see that asplain or asdot+ are easier from a machine interpretation point of view though.&lt;/p&gt;
&lt;p&gt;Can't help but wonder why this RFC is needed when the aaaa:bbbb format for communities and the a.b.c.d:nn format for route distinguishers are allowed.  I suspect it is likely due to the use of a dot as the separator: AS paths are often processed by regular expressions and junior operators used to commmand line globs often don't realise dot is a wildcard and needs to be escaped.  Colon wouldn't work because it makes it hard to distinguish between ASNs and communities.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5043315686802750243?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5043315686802750243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5043315686802750243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5043315686802750243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5043315686802750243'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/fairwell-as20.html' title='Fairwell AS2.0'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-672177480828244319</id><published>2008-12-09T18:50:00.006Z</published><updated>2008-12-10T07:45:09.470Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='sony'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Sony to go Android</title><content type='html'>&lt;p&gt;&lt;a href="http://www.pocket-lint.co.uk/news/news.phtml/19772/20796/sony-ericsson-joins-open-handset-alliance.phtml"&gt;Sony (and others) join the Open Handset Alliance&lt;/a&gt;. This could be very nice in theory but I have my doubts about a company like Sony fully embracing an open platform.&lt;/p&gt;
&lt;p&gt;If Sony were to properly embrace the Android concept and contribute to the community it could be great.  If Sony put an Android handset towards the top of their range they are likely to want to put the Walkman logo on there, which will mean them writing a new media player for Android.  There is no chance they will allow that app to find its way onto anyone else' hardware...  Vendor specific apps like this are inevitable but I don't have to like it though :(&lt;/p&gt;
&lt;p&gt;With mozilla saying that they &lt;a href="http://gizmodo.com/5081969/firefox-mobile-wont-be-foxing-up-android-anytime-soon"&gt;won't port firefox mobile&lt;/a&gt; if they have to code in the Android Java environment a port of. &lt;a href="http://getsongbird.com/"&gt;Songbird&lt;/a&gt; is also unlikely.&lt;/p&gt;
&lt;p&gt;Maybe I'm overly pessimistic.  Time will tell.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-672177480828244319?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/672177480828244319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=672177480828244319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/672177480828244319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/672177480828244319'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/sony-to-go-android.html' title='Sony to go Android'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8749757974965113008</id><published>2008-12-09T07:48:00.003Z</published><updated>2008-12-09T08:19:23.604Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='industry'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Will the big telcos ever get a clue?</title><content type='html'>&lt;p&gt;What a joke.  It seems that the big US telcos are still sponsoring Scott Cleland to talk crap. His latest.report claims &lt;a href="http://precursorblog.com/content/google-uses-21-times-more-bandwidth-it-pays-first-ever-research-study"&gt;Google pay 1:21 of what they should for bandwidth&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Predictably he seems to be basing his argument on the traditional PSTN settlement model.  The Internet is not the PSTN and the sooner the big players realise this and stop trying to meddle the better.&lt;/p&gt;
&lt;p&gt;In the traditional PSTN model each call is billed individually, usually to the call originator but it can be billed to the terminating party in a toll-free scenario.  The only way the premise of this report stands up is if you assume google to some form of toll-free directory service.  This argument is flawed in many ways, including the fact that PSTN directory services are rarely, if ever, free to the calling party these days.&lt;/p&gt;
&lt;p&gt;Users pay for all bandwidth on their lines.  Google pay for all bandwidth on their lines.  The difference is one of scale.  Pushing multiple Gb/s on peering is a lot cheaper per bit than consumer DSL? This is breaking news?&lt;/p&gt;
&lt;p&gt;The connections that large content providers like Google have is actually much better for the telco than the consumer DSL.  At least you can bill based on usage there without some normon complaining about getting a bill for the bandwidth he consumed distributing illegal content.&lt;/p&gt;
&lt;p&gt;Flawed reports like this just damage the appearance of the whole industry and he should have his sponsorship pulled for peddling this tripe.  The content of this report should be laughable but I find myself unable to laugh because yet again spin from the big boys is painting the whole industry in a bad light.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8749757974965113008?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8749757974965113008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8749757974965113008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8749757974965113008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8749757974965113008'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/will-big-telcos-ever-get-clue.html' title='Will the big telcos ever get a clue?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-4922703622106831212</id><published>2008-12-04T22:08:00.007Z</published><updated>2008-12-05T09:18:42.147Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><title type='text'>My First T-Mobile Customer Services Experience.</title><content type='html'>&lt;p&gt;The fact that T-Mobile have dropped the minimum contract requirement for the G1 from the £40pm Flext40 plan to the £30pm Flext30 plan as well as bundling an 8GB SD card instead of the 2GB I got on release day is annoying, epecially because they did this less than a month after launch.  I entered a contract though so I have to live with it I thought.&lt;/p&gt;
&lt;p&gt;I was a bit surprised yesterday when I read &lt;a href="http://androidcommunity.com/uk-g1-owners-will-be-getting-monthly-subscription-costs-cut-20081203/"&gt;this Android Community post&lt;/a&gt;.  Wow.  T-Mobile sound like they actually realise their customers are important and want to be fair. &lt;/p&gt;I should know better by now.&lt;/p&gt;
&lt;p&gt;I am not sure where the info about allowing price plan changes came from but it is certainly wrong. The email I received from customer services points out in no uncertain terms that I was unlucky and am stuck with my current plan.&lt;/p&gt;
&lt;p&gt;The G1 may not be challenging the iphone, but shipping a million handsets in the first month during a global recession is no mean feat Yet still T-Mobile don't seem to care about the early adopters and online evangelists that helped them achieve this success.&lt;/p&gt;
&lt;p&gt;Thanks for confirming my disillusionment T-Mobile.  None of the other carriers care about their customers, so why should you?&lt;/p&gt;
&lt;p&gt;[UPDATE] &lt;a href="http://www.pocket-lint.co.uk/news/news.phtml/19700/20724/t-mobile-refusing-alter-g1-plans.phtml"&gt;Pocket lint&lt;/a&gt; (the original source of the story above) are reporting that their T-Mobile contacts are still confirming that early adopters will be getting a refund.  More later...&lt;/p&gt;
&lt;p&gt;[UPDATE] The figure of 1 million in the first month was due to misreading on my part.  &lt;a href="http://www.pocket-lint.co.uk/news/news.phtml/19426/20450/htc-raises-forecasts-g1-diamond.phtml"&gt;The actual story&lt;/a&gt; is that HTC expect the handset sales to hit a million by year end.  I still think 1 million in two months is impressive.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-4922703622106831212?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/4922703622106831212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=4922703622106831212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4922703622106831212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4922703622106831212'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/my-first-t-mobile-customer-services.html' title='My First T-Mobile Customer Services Experience.'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-4066495630326714957</id><published>2008-12-02T17:17:00.002Z</published><updated>2008-12-02T17:22:45.190Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='metablog'/><title type='text'>Imports of old posts</title><content type='html'>&lt;p&gt;I'm going to be posting a few old articles from my Moveable Type archives.  I'll be posting them with the original date, so in theory they shouldn't show up in the feed.  Apologies if they do...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-4066495630326714957?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/4066495630326714957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=4066495630326714957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4066495630326714957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4066495630326714957'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/imports-of-old-posts.html' title='Imports of old posts'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2243978167768433213</id><published>2008-12-02T11:04:00.003Z</published><updated>2008-12-02T11:21:19.677Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='browsing'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Are Google missing out on the Hype?</title><content type='html'>&lt;p&gt;I have seen several stories today referencing the latest &lt;a href="http://marketshare.hitslink.com/browser-market-share.aspx?qprid=0"&gt;Net Applications Market Share report&lt;/a&gt; most of which have been pushing the fact that Windows has fallen to below 90% share of web hits and that Safari is up.&lt;/p&gt;
&lt;p&gt;When I had a quick view through the reports I started to wonder &amp;quot;Where are the stats for Android based devices?&amp;quot;  Are there really more people browsing the web from SCO unix than there are on G1s?&lt;/p&gt;
&lt;p&gt;The user agent reported on the G1 is:&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;"Mozilla/5.0 (Linux; U; Android 1.0; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2"&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Two things here: The OS is reported as Linux with Android 1.0 as the distribution, so that'll be why its not showing up in the OS reports.  Secondly the closest thing to an interpretable browser version string is "Version/3.0.4 Mobile Safari/523.12.2".  
&lt;p&gt;I had to do a quick experiment.  I hit a site which I have Google Analytics running on with my G1, and then had a look at the visitor stats.  Lo and behold in my analytics stats one of my visitors was running Safari/523.12.2 on Android (Google recognise Android as a seperate OS which isn't surprising but most others will bundle it up as a Linux distribution).&lt;/p&gt;
&lt;p&gt;Not giving the Android browser a meaningful user-agent probably ups the compatibility with existing sites without webmasters needing to recode but its a bit of a shot in the foot from a PR point of view.  I am left wondering whether any of the Safari growth reported in the Net Applications article is actually due to the launch of Android...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2243978167768433213?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2243978167768433213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2243978167768433213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2243978167768433213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2243978167768433213'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/12/are-google-missing-out-on-hype.html' title='Are Google missing out on the Hype?'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2468016608900062496</id><published>2008-11-24T19:56:00.001Z</published><updated>2008-11-24T20:17:33.208Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsing'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='opera'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Opera on the G1 First Impression</title><content type='html'>&lt;p&gt;Opera Mini 4.2 beta is now in the Android market.  I've been using it for a couple of hours and am ready to post some first impressions.&lt;/p&gt;
&lt;p&gt;First the good.  Opera mini has two features I have wished for from the beginning on the built in browser: Unicode text input support and a pointer when using the trackball.  These two features really make me want to love this browser but unfortunately there are other factors.&lt;/p&gt;
&lt;p&gt;The scrolling is slow and jerky.  The flick gesture for quick scrolling doesn't appear to work which makes navigating large pages painful.  Text input has proper character encoding support but it is very clumsy.  Selecting any text input field brings up a full screen zoom which is good for multiline fields but makes quick entry of login details quite painful.  passwords are fully visible when the field is zoomed, not good when you are in a cramped environment and could have people looking over your shoulder.  Exiting a text field is inconsistent.  There seem to be at least four ways to exit a text field (touch the screen, press the trackball, press enter or press menu and select ok).  Most of these methods do not work all of the time and there doesn't seem to be predict which ones will work.  The only one that always works is the trickiest (menu-&gt;ok).&lt;/p&gt;
&lt;p&gt;As far as I can tell there is no tabbed/windowed browsing which is a showstopper for me.&lt;/p&gt;
&lt;p&gt;A good first attempt but a long way still to go.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2468016608900062496?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2468016608900062496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2468016608900062496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2468016608900062496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2468016608900062496'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/opera-on-g1-first-impression.html' title='Opera on the G1 First Impression'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3646646478874063482</id><published>2008-11-18T21:45:00.002Z</published><updated>2008-11-18T22:46:04.106Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='telecoms'/><title type='text'>That Old Chestnut: Net Neutrality.</title><content type='html'>&lt;p&gt;Listening to my podcasts on the way into work today and it seems that with Obama measuring up for the Whitehouse people have dredged up the Net Neutrality debate again.&lt;/p&gt;
&lt;p&gt;A while back &lt;a href="http://www.zdnet.com.au/insight/communications/soa/Net-neutrality-is-an-American-problem-/0,139023754,339292161,00.htm"&gt;some Australian operators&lt;/a&gt; caused some controversy when they said that Net Neutrality is an exclusively American problem.  I'd probably take this a bit further: Net Neutrality is an issue because people give marketeers too much slack.&lt;/p&gt;
&lt;p&gt;Declaration of interest: Please note that I work in the telecommunications industry and so am immediately the bad guy from many people's point of view.  If you disagree then feel free to comment or trackback; don't expect to change my mind though.&lt;/p&gt;
&lt;p&gt;The entire reason for the much maligned "Fair Use Policies" is to satisfy sulking marketing types threatening to throw a tantrum because "Next door give unlimited access.  We need to give unlimited access or I'm throwing my crayons on the floor".  Providing network access is a lot more expensive than most people outside the industry realise.  From a technical/Engineering standpoint unlimited has always been shaky ground (note: my employer does not advertise unlimited for contended services).  Unlimited/uncontended services are expensive.&lt;/p&gt;
&lt;p&gt;Overbooking using statistical multiplexing in the core is standard practice and perfectly acceptable.  If the ISP were to size their core to handle every end-user line running at full rate they would probably peak to around 1-2% utilisation on the core which just isn't economically feasible.  If this works in the core, then what's the problem with extending it to the access layer?&lt;/p&gt;
&lt;p&gt;Statistical multiplexing only works because of the individual connections averaging out gives a predictable aggregate.  As you move closer to the edge you reduce the population of the aggregate and lose the predictability.  Overbooking this edge capacity with no prioritisation allows a small number of heavy users to screw over all the normal users.  The only way to give users the prices they demand is to overbook this capacity.  With net neutrality restrictions in place there are two options:  let everyone's service be degraded, or raise everyone's subscription to cover a capacity upgrade.  Both of these solutions equate to the normal users being screwed over by the heavy users.  If you scrap net neutrality you can charge the heavy users extra, and use this revenue to upgrade the capacity giving everyone a better service.&lt;/p&gt;
&lt;p&gt;Even in the core the situation isn't cut and dried.  I am certainly in favour of neutrality across customers in the core but I do not believe in neutrality of services in the core.  Some services (such as voice) need to be prioritised or they don't work to an acceptable level. And where do you draw the line?  If all traffic must be treated equally does that mean that you can't filter DDoS traffic because the malicious user deserves equal treatment?&lt;/p&gt;
&lt;p&gt;With all this in mind I will also say that a lot of ISPs (especially the big players) have done a really bad job when it comes to fairness.  If services were sold with their limits documented and if transparent metrics are used this would never have escalated to this level.&lt;/p&gt;
&lt;p&gt;Also, if you are going to implement a bandwidth restriction, show the user what they are using.  Preferably also show what the average bandwidth per user is alongside it.  Most normons have no idea what a Gigabyte is - telling them they have 20Gb per month is pointless.  It would be like signposts with distances in furlongs: sure its a measure of distance, but how many people have a clear picture of how long a furlong is in their mind?&lt;/p&gt;
&lt;p&gt;In conclusion, I do not believe that the popular understanding of the term Net Neutrality would be good for the Internet and I do not believe that differentiation of services stifles innovation.  I believe that enforcing net neutrality would stifle innovation because it would raise prices and hamper take-up of services.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3646646478874063482?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3646646478874063482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3646646478874063482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3646646478874063482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3646646478874063482'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/that-old-chestnut-net-neutrality.html' title='That Old Chestnut: Net Neutrality.'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-8742675090074360559</id><published>2008-11-18T18:58:00.004Z</published><updated>2008-11-18T20:07:34.749Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='web20'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='iknow'/><title type='text'>I love iKnow!</title><content type='html'>&lt;p&gt;Just in case you hadn't noticed; I am currently studying Japanese on a site called &lt;a href="http://www.iknow.co.jp"&gt;iKnow!&lt;/a&gt;.  The general premise is not new.  Academics researching memory have known for decades about principals such as forgetting curves and spaced repetition (which actually stems from physical flash card system but has become much simpler with the proliferation of the personal computer) and Cerego, the company behind iKnow!, have been actively involved in this research for a long time.&lt;/p&gt;
&lt;p&gt;Recently a few sites have realised how the web2.0 social networking thing fits learning like a glove.  Sitess I have used along these lines include &lt;a href="http://kanji.koohii.com/"&gt;Reviewing the Kanji&lt;/a&gt; and to a lesser extent &lt;a href="http://ichi2.net/anki/"&gt;Anki&lt;/a&gt;.  IKnow! Takes this to the next level and then some.&lt;/p&gt;
&lt;p&gt;They started testing a while back with English lessons for Japanese speakers.  This expanded in September to include Japanese for English speakers (which is where I jumped on board).  Their presentation when they launched at Demo clearly demonstrated they weren't happy to stop there and there are signs that they are approaching the launch of further subjects.  A public example of this is the announcement that there is a Mandarin course being sponsored by the US government.  A less public example is that a list recently appeared containing a proof of concept molecular biology course for NYU.&lt;/p&gt;
&lt;p&gt;Getting back to the present: Why do I love this system so much?  They are not approaching this half cocked like many web2.0 startups do.  The Japanese courses are now up to around 6000 vocabulary items all of which have professional voice acting for both the item and example sentences and the English content seemsa to be of a similar high standard.  The officially produced content is just the start though.  Every user can create their own lists around themes, textbook chapters, blog posts, youtube videos, etc.  When you add friends you get notification when they pass milestones so you can congratulate them.  These congratulations as well as prompts to write journal entries do a good job of drawing you into the system and getting you involved.  This makes learning fun which helps both retention and motivation.&lt;/p&gt;
&lt;p&gt;iKnow! Is one of those select few sites that manages to be simultaneously useful and well presented.  I'm proud to be an early adopter and wish them all the best because I'm planning to be using their services for a long time to come.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-8742675090074360559?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/8742675090074360559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=8742675090074360559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8742675090074360559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/8742675090074360559'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/i-love-iknow.html' title='I love iKnow!'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3448524495589004899</id><published>2008-11-17T10:40:00.003Z</published><updated>2008-11-17T10:55:30.990Z</updated><title type='text'>Win or Fail?  You Decide...</title><content type='html'>&lt;p&gt;Apparently &lt;a href="http://www.dailymail.co.uk/sciencetech/article-1085642/The-new-credit-card-keypad-promises-fight-online-fraud.html"&gt;Visa have demoed&lt;/a&gt; a new credit card with integrated one time key generation.  The card features a small eInk display and 12 key keypad (0-9, OK, Cancel).&lt;/p&gt;
&lt;p&gt;Looks pretty cool.  One time passwords FTW.  As is eInk (I really hope some large scale eInk production runs like this will bring the prices of readers down).  One immediate problem that springs to mind though...  These cards are usually valid for 2-3 years.  In that time period there will be a lot of pressing of the keys; which means that a moderately used card will probably give away the digits of your pin, meaning that someone who has stolen your card only has to try around two dozen combinations to get a four digit pin rather than ten thousand...&lt;/p&gt;
&lt;p&gt;Although if you change your pin this risk is reduced.  Hopefully this thing will allow for more than 4 digits in the pin.  The limit to 4 digit pins in the UK is seriously braindead.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3448524495589004899?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3448524495589004899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3448524495589004899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3448524495589004899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3448524495589004899'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/win-or-fail-you-decide.html' title='Win or Fail?  You Decide...'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5019240318578623509</id><published>2008-11-14T12:34:00.003Z</published><updated>2008-12-03T10:41:32.478Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='cidr'/><category scheme='http://www.blogger.com/atom/ns#' term='ipam'/><category scheme='http://www.blogger.com/atom/ns#' term='addressing'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Will Classful Addressing Ever Die</title><content type='html'>&lt;p&gt;A perennial favourite just came up again in the office.&lt;/p&gt;
&lt;p&gt;This customer wants a class C.&lt;/p&gt;
&lt;p&gt;No.  They don't.  They want a /24 assignment from one of our &lt;a href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing"&gt;CIDR&lt;/a&gt; allocations.&lt;/p&gt;
&lt;p&gt;The Internet moved away from using Classful IPv4 addressing over a decade ago (&lt;a href="http://www.ietf.org/rfc/rfc1519.txt?number=1519"&gt;RFC1519&lt;/a&gt; was published in 1993. The current BCP is &lt;a href="http://www.ietf.org/rfc/rfc4632.txt?number=4632"&gt;RFC4632&lt;/a&gt;). Yet still people perpetuate the terminology.&lt;/p&gt;
&lt;p&gt;I frequently get requests about customer class C networks and most of these requests are about networks that wouldn't have been considered class C before the publication of RFC1519, let alone afterwards.&lt;/p&gt;
&lt;p&gt;The original definitions of the classes were based on the most significant bits of the network address. This meant that a network with a 0 in the MSB is class A.  10 would indicate a class B, 110 Class C, etc (although D, E, F were obsolete before they were ever used).  Most active allocation pools for LIRs currently are using parts of the old class A space (last allocation I received from RIPE was from what would have been the 74/8 Class A way back when).  10.1.1.0/24 is not a class C. When classful addressing was common this would have been a Class A subnetwork.  Nowadays it is simply a /24 network.  Possibly a &amp;quot;/24 network from the former Class A space&amp;quot; if you are feeling verbose.&lt;/p&gt;
&lt;p&gt;The only networks that could be validly called class C networks are those with a /24 mask between 192.0.0.0/24 and 223.255.255.0/24, although personally I would still call these /24 networks in the former Class C space or probably just &amp;quot;/24 assignments&amp;quot;.&lt;/p&gt;
&lt;p&gt;The Internet is Classless these days people!  Get a clue.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5019240318578623509?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5019240318578623509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5019240318578623509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5019240318578623509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5019240318578623509'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/will-classful-addressing-ever-die.html' title='Will Classful Addressing Ever Die'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-316577957935567476</id><published>2008-11-14T09:25:00.005Z</published><updated>2008-11-14T09:49:33.659Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>G1 Firmware Update</title><content type='html'>&lt;p&gt;OK, so I finally have the update so here's an update to my &lt;a href="http://perlmonkey.blogspot.com/2008/11/g1-firmware-rundown.html"&gt;earlier post&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It seems that the guys at Google realised the impact of this problem pretty quickly and I have to say they did a good job not only getting the patch out quickly (I believe it was &amp;lt;24 hrs from bug report to the new android builds) but also for pushing T-Mobile into getting it out to the users.&lt;/p&gt;
&lt;p&gt;I recieved a message saying that the T-Mobile UK guys were testing the security update &lt;a href="http://twitter.com/TMobileSharing/status/989067422"&gt;on twitter&lt;/a&gt; Nov 4th at 10:22 GMT.  Interestingly this is around 14 hours before the released TC5-RC8 was built, so I'm not sure what they were testing at that time...&lt;/p&gt;&lt;p&gt;It appears that the latest release kila_uk-user 1.0 TC5-RC8 116470 brings the G1 in the UK up to speed with the US firmware version TC4-RC30 116143.  RC30 was the rebuild specifically to fix the issue with a root shell being attached to the console at boot and so is not that interesting; however up until now the UK has not had the various feature fixes released in the US as RC28 and the security fixes in RC29.&lt;/p&gt;&lt;p&gt;I have only had the update installed for around 4 hours now so it is too early to tell how it affects the performance (some of the fixes reported in RC28 include the elimination of the annoying pause when returning to the homescreen when the phone has been up for a while as well as mixed reports on battery life improvements).  I can confirm that the SD card is not automagically mounted as soon as you plug the device in; you now get a notification in the status bar that you need to select.  The most common reason for me to plug my phone into the computer is to charge it, file transfers are much less common, so this behaviour makes a lot more sense for me.&lt;/p&gt;&lt;p&gt;To sum up: Kudos for Google for the fix, but to T-Mobile UK - 10 days to evaluate a security fix?  Could have been a lot worse, but it could have been a lot better too...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-316577957935567476?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/316577957935567476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=316577957935567476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/316577957935567476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/316577957935567476'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/g1-firmware-update.html' title='G1 Firmware Update'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7930437953808000453</id><published>2008-11-10T08:36:00.003Z</published><updated>2008-11-10T14:06:04.799Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='jailbreak'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Googles endless beta mindset</title><content type='html'>&lt;p&gt;A lot more is understood about the jailbreak now.  Instructions even go so far as showing &lt;a href="http://www.saurik.com/id/10"&gt;How to install debian on the G1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One thing jumps out.  In my last post I was wondering how an unpriviledged shell could start up a telnet daemon.  The answer is: it can't.  The reason the jailbreak works is that &lt;i&gt;everything you type into any application is sent to a root shell for interpretation&lt;/i&gt;.  This can easily be seen by typing &amp;para;reboot&amp;para;&lt;/p&gt;

&lt;p&gt;What the hell were they thinking? I can see that this could possibly be useful during development; but putting normons in a root shell without even telling them?  That's a recipe for a bricked phone!  Dislike someone with a G1 and some basic sysadmin knowledge? Send them a text asking how to erase all files on the system.  In the time it takes them to type rm -rf /&amp;para; you have just screwed their phone.&lt;/p&gt;

&lt;p&gt;I second the suggestion &lt;a href="http://blogs.zdnet.com/Burnette/?p=680"&gt;made by Ed Burnette&lt;/a&gt; that all android users type &amp;para;cat&amp;para; to swallow all input sent to the root shell and protect themselves until the next reboot.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7930437953808000453?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7930437953808000453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7930437953808000453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7930437953808000453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7930437953808000453'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/googles-endless-beta-mindset.html' title='Googles endless beta mindset'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-2702285206683770924</id><published>2008-11-07T17:56:00.004Z</published><updated>2008-11-07T18:36:19.162Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='jailbreak'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Another write up of the G1 jailbreak</title><content type='html'>&lt;p&gt;OK so the G1 jailbreak is pretty well documented already but so far all the guides I've seen require you to be on a wi-fi hotspot.  I have a variation that works without wifi so I thought I would share it.&lt;/p&gt;

&lt;p&gt;First of all you will need to have both pterminal and connectbot installed.  You will also need access to a unix shell account via ssh and permission to set up tunneling on the connection.&lt;/p&gt;

&lt;p&gt;First start up pterminal and enter the following command: /system/bin/telnetd&lt;/p&gt;

&lt;p&gt;Next fire up connectbot and make your remote connection.&lt;/p&gt;

&lt;p&gt;Once connected go to the menu and hit the tunnel button.&lt;/p&gt;

&lt;p&gt;Select remote.  Choose a random high port (e.g. 65456) for the source and set the destination to localhost:23&lt;/p&gt;

&lt;p&gt;From the remote commandline issue the command: telnet localhost 65456 (or whichever port you chose)&lt;/p&gt;

&lt;p&gt;Welcome to the Android root shell.&lt;/p&gt;

&lt;p&gt;This will be fixed in RC30 in the states.  No word on when it will be fixed in the UK.&lt;/p&gt;

&lt;p&gt;I have to admit to being a bit confused over how it works.  It always used to be the case that unpriviledged accounts couldn't bind to low numbered ports and the telnetd file isn't SUID.  How a non SUID process can bind port 23 and exec sh as uid 0 I have no idea...&lt;/p&gt;

&lt;p&gt;Google have probably been playing with capabilities and not fully understood what they were doing...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-2702285206683770924?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/2702285206683770924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=2702285206683770924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2702285206683770924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/2702285206683770924'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/another-write-up-of-g1-jailbreak.html' title='Another write up of the G1 jailbreak'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-6243787054558544914</id><published>2008-11-05T19:01:00.001Z</published><updated>2008-11-05T19:01:16.909Z</updated><title type='text'></title><content type='html'>lex poses for the new phone&lt;br&gt;&lt;img src="http://static.pixelpipe.com/eb1f421a-96d0-4020-9beb-4552ce9999ee_m.jpg" /&gt;&lt;br&gt;Posted via &lt;a href="http://pixelpipe.com"&gt;Pixelpipe&lt;/a&gt;.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-6243787054558544914?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/6243787054558544914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=6243787054558544914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6243787054558544914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/6243787054558544914'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/lex-poses-for-new-phone-posted-via.html' title=''/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-4945975261980433074</id><published>2008-11-05T06:41:00.001Z</published><updated>2008-11-05T10:17:40.589Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>G1 Love/Hate</title><content type='html'>&lt;p&gt;At the risk of feeding a meme...&lt;/p&gt;

&lt;p&gt;So I've had the G1 for nearly a week now and have been using it heavily.  In the spirit of the posts by &lt;a href="http://www.mobileindustryreview.com/2008/11/t-mobile_g1_16_things_i_like_about_you.html"&gt;Ewan&lt;/a&gt; and &lt;a href="http://hellog1.tumblr.com/post/57719130/love-hate"&gt;Mostlythis&lt;/a&gt; here are some of my thoughts on Android and the G1.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Internal memory&lt;/b&gt; There's just not enough. Not sure whether to blame HTC for only installing 256M or to blame google for mandating that Market apps cannot be installed on the SD card.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;No release notes&lt;/b&gt; I guess I'm spoiled by working with Cisco/Juniper. I'm used to masssive publically available docs with lists of fixes.  Some way to see which public source version a release branch is rooted from would be very helpful here.  Come on guys, this is supposed to be open!&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Direct address entry&lt;/b&gt; Going directly into address entry when you type in the browser is very annoying when you are on a site that provides keyboard shortcuts for quick navigation.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Lack of task manager&lt;/b&gt; I've basically started to turn the phone off once a day to clear up any apps which are hanging around in the background.  pTerminal and ps/kill give a back door to some of the required funcionality but I would prefer to be able to use the GUI&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Lack of documentation&lt;/b&gt; the market doesn't link to the project site and most apps don't include docs to keep package size down.  Some of the apps I have tried are probably very good but have been binned because I can't figure out the interface.&lt;/p&gt; 

&lt;p&gt;&lt;b&gt;no flash&lt;/b&gt; this needs to work well when it arrives. Letting the community develop it probably isn't going to deliver the goods&lt;/p&gt;

&lt;p&gt;This has turned into a bit of a bash session...  Not really sure how that happened.  I guess it's just easier to put the annoyances into words.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;connectbot&lt;/b&gt; as a network engineer and unix geek a good ssh client is essential.  And this is a good SSH client.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;No app censorship&lt;/b&gt; we all know about the app fascism over at the apple app store.  Hearing news about apple blocking Opera for the iPhone made me glad I opted for Android.&lt;/p&gt;

&lt;p&gt;Could probably go on for hours...  Time to sign off. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-4945975261980433074?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/4945975261980433074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=4945975261980433074' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4945975261980433074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/4945975261980433074'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/g1-lovehate.html' title='G1 Love/Hate'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5679395775359378281</id><published>2008-11-04T11:27:00.000Z</published><updated>2008-11-04T15:39:34.138Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='info'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='googlephone'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><title type='text'>G1 Firmware Rundown</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;OK, so I signed myself up for a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/T-Mobile_G1"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;G1&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Being a techie I find myself fascinated by the software versions and OTA updates.  There is quite a bit of info out there about the versions of Android that have been seen in the wild but I can't find an aggregated source of info so I thought I'd post what I've found just in case anyone else is interested...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Device was first launched in the US market on Oct 23 2008.  Out of the box phones have android 1.0 build TC4-RC19 (109652).  The first OTA update in the US was soon after launch TC4-RC28 (&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="  ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;114235).  This was quickly superceded (before the roll out of RC28 had finished) by TC4-RC29 (115247) which fixes the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://securityevaluators.com/content/case-studies/android/index.jsp"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;well publicised browser flaw&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;In the UK &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.mobileindustryreview.com/2008/10/so_i_just_bought_a_t-mobile_g1.html"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;the phone launched&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; on Oct 30 2008. I recieved mine in the post on Oct 31st and promptly went into the settings menu to find the release.  TC5-RC7 (112931).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;There is no official documentation that I can find for what is or isn't included in each release.  I am currently working on the assumption that the six digit number is some sort of commit ID in the google code repository (not the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://source.android.com/"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;open source repository&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, Google's internal repository) which would place the current UK release somewhere between the US shipping release and first update.  It puts it well before the security patch, which is confirmed by &lt;/span&gt;&lt;/span&gt;&lt;a href="http://twitter.com/TMobileSharing/status/989067422"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;this tweet&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; from the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://twitter.com/TMobileSharing"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;T-Mobile Twitter Team&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.  The yet to be officially announced UK security update is due to go out over the air in November 2008.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So far I have uncovered the following information about the updates:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;TC4-RC28 &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.engadgetmobile.com/2008/10/29/a-tale-of-three-firmwares-comparing-the-t-mobile-g1s-rc19-28/"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Fixes problem with Amazon MP3 store.  Unspecified "enhancements".&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;TC4-RC29 Security updates.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;TC5-RC?? Incorporate security updates in TC4-RC29&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;As yet unconfirmed...  Do those of us in the UK get the rest of the fixes in TC4-RC29 when the UK release gets pushed out...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The US release of RC29 &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.engadgetmobile.com/2008/10/28/mystery-rc29-update-hits-t-mobiles-g1/"&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;started around Oct 28th&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; and is planned to be complete by Nov 12th.  The UK release hasn't even started yet...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5679395775359378281?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5679395775359378281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5679395775359378281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5679395775359378281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5679395775359378281'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/11/g1-firmware-rundown.html' title='G1 Firmware Rundown'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-3925331623502295081</id><published>2008-09-18T19:17:00.003+01:00</published><updated>2008-09-18T19:17:47.420+01:00</updated><title type='text'></title><content type='html'>Are orange really bad at accounting, or is my package much better than the docs imply? I'm on dolphin payg which includes social network access but only facebook/bebo/myspace. I've been on vox Shozu ping.fm and twitter without incurring charge...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-3925331623502295081?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/3925331623502295081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=3925331623502295081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3925331623502295081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/3925331623502295081'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/09/are-orange-really-bad-at-accounting-or_18.html' title=''/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-7002590279428305763</id><published>2008-09-18T18:19:00.001+01:00</published><updated>2008-09-18T18:19:16.809+01:00</updated><title type='text'></title><content type='html'>Currently enjoying http://iknow.co.jp/ looks cool. Don't seem to be able to do much from my mobile though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-7002590279428305763?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/7002590279428305763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=7002590279428305763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7002590279428305763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/7002590279428305763'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/09/currently-enjoying-httpiknow.html' title=''/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1833097238002476653</id><published>2008-09-18T07:06:00.001+01:00</published><updated>2008-09-18T07:06:23.684+01:00</updated><title type='text'></title><content type='html'>Bloody knackered. And coming down with a cold. Is it the weekend yet?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1833097238002476653?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1833097238002476653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1833097238002476653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1833097238002476653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1833097238002476653'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/09/bloody-knackered.html' title=''/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5649992079620042216</id><published>2008-09-17T17:57:00.001+01:00</published><updated>2008-09-17T17:57:28.039+01:00</updated><title type='text'></title><content type='html'>Playing with http://ping.fm and am pretty impressed so far&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5649992079620042216?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5649992079620042216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5649992079620042216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5649992079620042216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5649992079620042216'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2008/09/playing-with-httpping.html' title=''/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1784157130277312090</id><published>2007-09-18T11:33:00.001+01:00</published><updated>2007-09-18T11:55:51.360+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rojo'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><category scheme='http://www.blogger.com/atom/ns#' term='metablog'/><title type='text'>Post Aggregation</title><content type='html'>So I'm moving from personal installs to hosted installs.  I want a single RSS feed I can pull into every site.  Ahah! I think, I've already got one of those in &lt;a href="http://www.rojo.com/"&gt;Rojo&lt;/a&gt;...  or at least I set one up ages ago and never bothered updating it.  So off I go and add in all the RSS feeds I can think of and tag them as "me".  I leave it an hour and check back - great, the new posts are all there.  Unfortunately for some reason rojo is not reading the post time from the rss feed and has marked them all with the download time screwing any hope of ordered history.

Oh well, at least it should be ok going forward...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-1784157130277312090?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/1784157130277312090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=1784157130277312090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1784157130277312090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/1784157130277312090'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2007/09/post-aggregation.html' title='Post Aggregation'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-5491934176152086733</id><published>2007-09-18T10:07:00.000+01:00</published><updated>2007-09-18T10:43:19.888+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metablog'/><title type='text'>Moving away from self hosting</title><content type='html'>I've decided to move away from self hosting all of my blogs to putting each strand into a different hosted blog platform.  Mostly because I never seem to find time to make sure my MT install is up to date, but also partly so that each site can benefit from being part of a social network.  I have some ideas in the back of my mind for making some sort of aggregator website using Catalyst...  Maybe I'll even get around to them ;)

Here on blogger I will focus on technical posts (perl, networks, etc).  Family/photo/hobbies will be over on my &lt;a href="http://chewtoy.vox.com/"&gt;Vox&lt;/a&gt;. Meanderings will move to &lt;a href="http://ch3wt0y.livejournal.com/"&gt;LiveJournal&lt;/a&gt;. Music at &lt;a href="http://www.last.fm/user/chewt0y/"&gt;last.fm&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-5491934176152086733?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/5491934176152086733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=5491934176152086733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5491934176152086733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/5491934176152086733'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2007/09/moving-away-from-self-hosting.html' title='Moving away from self hosting'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-9025949653942115328</id><published>2006-08-26T20:07:00.001+01:00</published><updated>2008-12-02T17:23:01.558Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Chasing Ubuntu</title><content type='html'>&lt;p&gt;I've been hearing a lot of good things about Ubuntu Linux for a while now.&lt;/p&gt;
&lt;p&gt;I'm a debian boy and have been for years (I can't remember whether it was bo, rexx or buzz that I first installed… whichever was earliest). I am plenty happy with my etch box, and have no problem keeping up with the various packages, etc directly using apt-cache and apt-get; however I share the PCs at home with my wife and son and have recently started wondering whether the Debian based Ubuntu distro was worth a shot.&lt;/p&gt;
&lt;p&gt;I've done two installs of Dapper (Ubuntu 6.06) now, both under vmware (workstation and server). The workstation install I did first was an absolute breeze; I was thoroughly impressed both with the ease of install and the default selection of desktop packages. Blimey, I thought, the hype's true. And mostly it is. I found way they have tuned GNOME gives a similar feel to MacOS X.&lt;/p&gt;
&lt;p&gt;I was running the first test on my work PC (left it installing in the background while working in my etch vm). Once it finished the install I could more or less switch everything straight over. I found that a few packages I use were a bugger to find (pretty old git-core and no cogito, found it with some tweaking of the active repositories). Found that the evolution and nautilus installs were a breeze for working with the corporate windows network.&lt;/p&gt;
&lt;p&gt;Installing on my home etch box under a vmware server vm was trickier, didn't realise the memory requirements of the desktop live cd. The 128M VM I was running under just wasn't up to the job. Eventually after some googling I found that I needed the alternative CD, and the text based install went fine.&lt;/p&gt;
&lt;p&gt;I now need to do some serious thinking. I've been a debian evangelist for years; I think it was in 97 when I suggested to the boss that the slackware distro wasn't up to much and we should look for a change. He couldn't get his head around dselect, but I immediately saw the power of the strong dependency tracking in the deb package format and was hooked. Now I'm seriously considering moving my primary home pc away from Debian. Although at least it's still a distro based around deb and apt suite at its core.&lt;/p&gt;
&lt;p&gt;Going to be away from the computers for the next week at my grandad's place in Wales. I'll use the time to consider the options very carefully.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/837199696072152343-9025949653942115328?l=perlmonkey.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perlmonkey.blogspot.com/feeds/9025949653942115328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=837199696072152343&amp;postID=9025949653942115328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/9025949653942115328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/837199696072152343/posts/default/9025949653942115328'/><link rel='alternate' type='text/html' href='http://perlmonkey.blogspot.com/2006/08/chasing-ubuntu.html' title='Chasing Ubuntu'/><author><name>Russell Heilling</name><uri>http://www.blogger.com/profile/03075734867861702186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_rdklymWvOh0/Ru-xOvvYR_I/AAAAAAAAA5Y/CcmLWzOCLMs/s320/tn-chewy-evil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-837199696072152343.post-1816345368684564764</id><published>2006-08-24T18:28:00.008+01:00</published><updated>2011-03-25T14:22:03.543Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='juniper'/><category scheme='http://www.blogger.com/atom/ns#' term='bgp'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Private AS Peerings</title><content type='html'>Cisco and Juniper both provide an option to easily strip private autonomous system numbers from outbound advertisements.&lt;br /&gt;
&lt;br /&gt;
This article was started because I thought this aproach was flat out wrong; however during the research I managed to convince myself that it is the almost the right thing to do; just needs a couple of knobs to tweak to make it flexible enough to always do the right thing.&lt;br /&gt;
&lt;br /&gt;
Public AS numbers are generally only available to organisations with public IP addresses and connectivity to the Internet via multiple providers. In an ISP network the only reason to carry routes with a private origin in the global routing table would be where a customer has some provider independent addresses and is multi-homed only to your network.&lt;br /&gt;
&lt;br /&gt;
Ok, so we have our reason for the network entering the table. What will happen if we just pass the network unchanged? Depending on the policies of your peers they will either drop the route at their boundary, causing lack of global reach for your customer, or they will pass it on, and it'll eventually be spotted, your network will be ridiculed, your peers will lose respect, your wife will run off with the circus and you'll be left broken and alone with nothing for company but a broken toaster. Don't do it. Burnt toast is bad.&lt;br /&gt;
&lt;br /&gt;
We have a prefix originating from a private AS. It would be bad to pass that on to other peers. So what do we do?&lt;br /&gt;
&lt;br /&gt;
A quick look at the documentation provides us with a contender: remove-private-as on cisco, remove private on Juniper. Both statements have the same effect: they strip private autonomous system numbers from outbound advertisements.&lt;br /&gt;
&lt;br /&gt;
Brief interlude from RFC4271:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;5.1.2 AS_PATH

When a given BGP speaker advertises the route to an internal peer, the advertising speaker SHALL NOT modify the AS_PATH attribute associated with the route.
When a given BGP speaker advertises the route to an external peer, the advertising speaker updates the AS_PATH … [by] prepend[ing] its own AS number…
&lt;/pre&gt;
&lt;br /&gt;
RFC4271 section 5.1.2 as I read it explicitly disallows modifying the as path when advertising to an ibgp peer; however there is nothing I could find in the standard that explicitly disallows such modifications when advertising to external peers. This gives the vendors the loophole they need.&lt;br /&gt;
&lt;br /&gt;
The problem is that in order to set up a private as peer you need to configure all other peers to remove private as numbers. While this works, and seems to be the generally accepted RightThing™ to do, it just doesn't quite sit right with me; I like policy to be applied once at the entry to the network, not at every exit point.&lt;br /&gt;
&lt;br /&gt;
Another problem comes when you have multiple private as peers.&lt;br /&gt;
&lt;br /&gt;
The whole reason for storing the as path in BGP is to prevent loops (not as a distance vector, even if that is how implementations use it). The reason we are considering the implications of removing part of the as path in the first place is because the customer is multi-homed. Turning off a s
