Tuesday, November 05, 2019

Moving Forwards

15:31, relaxing in University: Well, we're in the final weeks of Autumn, and don't we know it. Summer's oppressive heat and sticky unpleasant sleepless night seem to have given way to cold, wind, and near-constant drizzle.
It's not as inclement as it could be I suppose, we're shielded from the worst of the recent weather by the expanse of country seperating us from the south coast (which has recently had severe weather warnings, as is traditional for this time of year), and the Pennines to theEast, which although they allow us precious little snow in winter, keep the worst of the rain and wind safely over in Lancashire.

I've been sort of sitting about, not really doing much over summer, enjoying having the option of just waking up at 4pm, sitting about until 4am, and then going back to sleep for another 10-12 hours. All of that came to a sudden and very clearly defined end with the start of the new university year. Final year, apparently.

And wow, this year has started in no uncertain fashion, with everybody warned in the first week that the previous two years is but a pale imitation of final year, a trial run if you like. No sooner has the weather taken a turn for the worse, than the assignments have started coming.

The Main Project: First up of course is the dreaded "Project", with a capital P. We were warned about this last year, and the warning was certainly justified.
We've been given what is essentially a research project, I suppose you could think of it as "baby's first academic paper". We're to pick a topic, find a new angle on it, investigate, and report our findings. Simple enough, right? Except that this paper has to be scrupulously referenced, written in an extremely formal academic style, and has to stretch to about 50 pages. Most pressing of all perhaps was the need to pick a subject, and this caused no small amount of consternation as the university's approach to helping us was essentially putting a reassuring hand on our shoulders, before spinning us around, pushing us out into the world and cheerfully yelling "There's a world out there, find something you can write about!" before slamming the door behind us.

After a couple of crisis meetings with fellow students where we bounced ideas off each other, I managed to come up with an idea out of left field, which I was very pleased with. I didn't think it had a cat in hell's chance of being accepted by the reviewing supervisor, but a little cursory research allowed me to resolve a vague outline into a more fleshed-out proposal. I'm not going to exxplain what my proposal/chosen subject is, as while I'm aware that (as I use this more as a personal diary than a blog, per se) I have a reader base close to or actually zero, given that this is essentially my final year dissertation, I want to keep my cards close to my chest.

The supervisor was impressed though, and as I explained my idea to him, his smile got bigger and bigger. I explained that it wasn't strictly related to my chosen field, but he countered that any research project will include elements and subjects that from a variety of different disciplines.
My project includes elements from materials science, computer science, physics, heliometeorology, astrophysics and xenogeology.
To my great surprise, the university supervisor was on board more or less straight away. The more I explained, the more enthusiastic he was. And so he encouraged me to submit my project proposal more or less as I had imagined it.
A few days ago, the university itself accepted my project proposal. Game Time Turn On, as the meme says.

Run Up to Christmas: In other news, our excitement for Christmas has been mounting slowly as the weather turns. There have been sporadic outbreaks of christmas songs around the house, and even the local department store has their Christmas department fully decked out in tastefully and expensively created full colour.
For our part, the cake and the pudding have already been created, and both my cool nephew and I have started on our Christmas Arboretums in our respective Minecraft City.
Yep, Honningbrew, riding on a wave of popularity after its website project gained me a pretty respectable mark of 68% (respectable because the tutor made it clear at the time that the only way to score over 70% was to do something truly unique, inspired and original, and because he didn't want to give my mark "69% lol") has been somewhat laying fallow over summer. But now that the Christmas season is approaching, I've been working on the new arboretum and associated buildings.
Each year the arboretums (arboureta sounds like something from biology) get bigger and more elaborate, and this Christmas, in addition to having my hands full with university work, I have my hands full creating the traditional giant christmas-themed wonderland. Still, it's pleasant enough work, a nice diversion from the stress of university, which is slowly mounting.
On this cheerful note, I suppose I'd better get ready for my next lab session here in university. It should be simple enough.



Tuesday, August 27, 2019

Electronical Microsurgery

Author’s Note: The Blogger service is misbehaving, refusing to save or publish blog entries. This entire entry is written in Microsoft Word over the course of a day, and will be uploaded as a single entry once it’s completed

Well, after two years of faithful everyday service, my trusty 6th generation 64GB iPod Touch has a bulging battery.

This is a little concerning as you might imagine, and a little irritating as well, especially when you consider that this specific device is a replacement for an identical iPod that also had a bulging battery.

To be completely fair though, I don't think we can lay the blame at Apple's door on this specific issue. It's more down to the number of charging cycles that my iPods go through. The device is pretty much tethered for 10 hours a day, playing my let’s play/dramatic reading playlists over Bluetooth so that I have some background noise while I’m up here relaxing, doing university work, sleeping, whatever.
The problem is that Lithium Ion batteries - for reasons I don’t wholly understand – don’t behave well when the device is plugged in and running on mains power. It was always my understanding that when a battery is full, the charging circuitry will disconnect the battery from the charging current, and the device will run entirely off external power. For whatever reason though, some current always seems to go into the battery even if it’s only a trickle, and it seems that over time, that miniscule current will make the battery unhappy.

It’s not a problem exclusive to Apple, the local catalog store now uses Samsung tablets in place of paper catalogs, and because these tablets are plugged in and powered on 24/7, they have to replace each of these tablets on a regular basis as the battery inside swells alarmingly, to the point that the screens on the devices become noticeably convex.

What now then? Warranty replacement? Paid repair? Well, the iPod is out of warranty and I’m not giving Apple another penny. Why?

There are a number of reasons why I don’t like Apple. Whether it’s the slightly creepy cult-like relationship between the customers and company, the walled garden model that keeps the entire eco system of devices, OSes and “apps” (or software as the rest of us outside fairy land call it) firmly locked down, the deliberate and systematic process of making the devices as hard to repair as possible (pentalobe screws, anyone?), or the outright hostility with which the company treats independent repair businesses, denying them access to software, tools, schematics and specifications of their devices to try and ensure that only Apple technicians are allowed to interact with or service the hardware (and we all know how that turns out), Apple are well known as a company that is all smiles and handshakes – as long as you’re giving them money and using their – not your­ – devices in a manner that they approve of.

Whether it’s charging for repairs for faults that are either misdiagnosed or nonexistent (your screen is cracked? It’s water damage, see!) wrapping the users in pages and pages of terms and conditions that dictate how they may or may not use the devices they paid for, what software they may run on it and who they may get it fixed by, or the wasteful and environmentally irresponsible “this component has failed and it’s under warranty? Let’s scrap the whole device and get you a new one” policy that results in unknown scores of otherwise fixable devices ending their lives in some Apple electronics abattoir or other, I just have a deeply rooted objection to supporting Apple as a company.
But I continue to insist on using the iPod Touch. I’m on my third now, with my first (3rd generation) being reviewed almost 10 years ago to the day. When one fails, I get another. Why?
Because unfortunately, despite my grievances above, the iPod Touch (at least as far along as the sixth generation) is a mostly-superb device. It’s built for one primary purpose and it serves that purpose extremely well. The fiddly and sometimes clunky process of actually getting content onto and off of it notwithstanding, there simply isn’t anything as good out there at the moment, and I’ve tried Google Play Music. There are many android alternatives to the iPhones, many products from Asus, Razer and Lenovo that are alternatives (in many cases, superior alternatives) to the macbooks, but there simply isn’t anything out there that is as good at being an iPod as an iPod. Every company but Apple seems to have deserted the mp3 player market, as everyone these days likes to put all their eggs in one basket and keep all their music on their smartphones.
Maybe this is something I should eventually move into as well. I’m still debating which phone I’ll be replacing my trusty S6 Edge+ with, but it will be getting replaced in the next year or so. Perhaps at that time I’ll ditch the iPods altogether and move to a single device model, but for now, I’m happy where I am.

So where does this leave me? I’m not paying Apple to fix my device, it’s out of warranty, and I’m not buying a replacement from Apple, they’ve had quite enough of my money. If keeping my music on my phone doesn’t work out in the future I may well end up buying another iPod from them at some point, but I really don’t want to give them money if I can avoid it.

Fortunately for me, I’ve no problem with getting my hands dirty (or as dirty as they can be while working on electronic devices), and I’ve stripped down and rebuilt laptops, iPods, phones and PCs in the past, so I’m reasonably confident that with some help (I haven’t yet learned to solder, my dad is a very experienced hand at it), I can fix this device.
Note the use of the word Solder in there? That’s right, in another tip of the hat to right-to-repair enthusiasts, Apple have ditched the cable and connector model and soldered the battery directly to the logic board. Awesome, huh? In all fairness, this is just as likely to be because a soldered flexible flat cable takes up less vertical space than a connector, but it’s still a pain in the butt.

Because I like shiny things though, and because I want this repair to go as smoothly as possible, I have bought some new tools. I’ve bought the shiny sparkly and otherwise awesome Pro Tech Toolkit from Ifixit, as well as their iOpener gizmo that should hopefully help me deal with the adhesive strips inside the device that hold the display in and keep the battery secured to the case.

The procedure is a fairly simple one, at least in theory. Open the device up by flipping the screen out of the way, remove the LCD shield, desolder the three contacts connecting the battery to the logic board, [gently, and with the use of heat to soften the aforementioned adhesive strips] pry the old battery out of the case (Yep, direct hands-on contact with a damaged and failing lithium-ion battery – that’ll be fun!), and then install and solder the new battery, reinstall the shield, and lower and secure the screen.
Simple! I hope.

If it works, my trusty iPod gets a new lease on life. If it goes wrong, well at least I still have some sparkly tools to keep. I’ll pick up another iPod from CEX or something. Now, I’m just waiting on the tools and keeping the coffee flowing.

16:21: Well, eventually the amazon guy deigned to turn up with my iOpener toolkit from iFixit. This contains a variety of tools, most of which are duplicates of ones I’ve already got, but what it also has is the iOpener itself.
With the help of the iOpener, I’ve been able to (gently) prise the screen out of its enclosure and pivot it out of the way, whereupon I removed the metal shield beneath, to reveal a distinctly swollen and unhappy battery.

17:51: Right, we’re in business. Wish me luck, hopefully I’ll have a working ipod by the end of this.

19:11: Well, it was touch and go there, but – for the moment – the iPod is charging happily, with its new battery. It still needs to be reassembled, so let’s get on with that.

19:25: Right, now that the device is completely reassembled, I’m getting a new screen that seems to depict a completely drained battery. Whether these obscure Apple hieroglyphics mean “battery discharged” or “battery has failed and will never work again” is anyone’s guess, so I’m going to leave it and see if the battery charges at all over the next couple of hours.

22:51: Geez, it’s nearly 11pm and it’s 34C in here. It gets way too hot in my room.
Okay, so in a fit of pique, I opened the iPod back up, determined to see if there was any other explanation for its behavior than a duff battery. I got my multimeter out and couldn’t detect anything from the battery’s terminals. No reading whatsoever, 0, zip, nothing.
I went to get a second opinion from my dad and he got the same reading. Being much more versed in such matters than me, he noted that to get a reading of 0 in such circumstances is pretty unusual by itself, so he kept checking the terminals.
As he did so, they started to work loose and the connector started coming away from the logic board.
It turns out that letting me solder the connector (this being my first ever time of soldering) was a nice indulgence, but not conducive to actually getting good results. I didn’t do a great job, didn’t use nearly enough solder, and while the joints were strong enough to hold just long enough for the lock screen to show for a few seconds, they didn’t hold any longer than that.

More than that, despite following watching several youtube tutorials showing exactly how to remove the battery for whatever reason, the soldering iron simply wouldn’t melt the solder holding the pads to the logic board as the ones in the video did. Lead-free solder is supposed to melt at around 217C, but even with the iron set to 300, then 350C, it just wasn’t melting. It took a lot of messing around with the soldering iron, and a lot of prying (during which I managed to melt the (replacable tip) of my brand new nylon tipped reverse tweezers) before the connector eventually came free. Initially we were concerned that I’d pulled one of the pads off the logic board, but this turned out to be adhesive goop scorched onto one of the pads, and the goop came off with a liberal scrubbing with isopropyl.

As I seethed with frustration, feeling angry at the battery retailer for sending me a totally dead battery, I asked my dad to test the battery one more time, pointing out he had said that a result of 0.000V is unusual even from a dead battery. He tested again, and it came out to a distinctly not-zero number. 3.83 volts, in fact. The battery was full.

Irritated that I no longer had a valid excuse for blaming someone else for my misfortune, I suggested that my dad do the soldering this time.
He started by re-tinning the pads on the mainboard, and as I held the connector against the pads with a toothpick, he re-soldered each one in turn. I guess an experienced person can make anything look easy.

A few seconds later I swiveled the screen of the still mostly-disassembled ipod back down against the case and held down the power button. I’ve never been so pleased to see an apple logo.
After a few seconds (that felt like forever), the iPod went to the lock screen, and entering my password, I was shown a wonderful lovely and completely working home screen.

Job done. At last.

Tools I’ve used:

Of course, this job was made vastly easier with a wonderful selection of tools from the cool folks over at Ifixit. I bought the Pro Tech Toolkit, and the iOpener Toolkit.

Of particular note during this repair were the Jim (kind of like an unsharpened knife), the shims (the blue plastic triangles), a wonderful 4mm microscrewdriver set, and an equally wonderful set of curved needle-nose tweezers.
To loosen the adhesive holding the screen in (and later, the adhesive holding the battery in), I used the iOpener itself, which again, did a fantastic job.

I also used a Silverline magnetic parts bowl, which allowed me to put screws and parts aside and still be sure they'd stay where they were put at the end of the work.

I distinctly agree with Ifixit’s belief in the right to repair, and I wholeheartedly support their efforts to ensure that everyone has the tools and the knowledge with which to repair their devices. It’s thanks to tools, guides and tutorials from Ifixit that this repair was possible, and I eagerly recommend them to anyone curious about or intent on conducting their own electronics repairs.

Ifixit didn’t provide the soldering iron which was a generic “Precision Gold” 48W workstation, sold (I believe) by Maplin.

So what to do now? Well, it’s too late for celebration beer, so I think I’ll have celebration Chicken Soupandabread instead. This is like Soupandaroll, but with bread slices instead of rolls…

I’ve tidied most of my tools away, I’ve got a bit of tidying to do, but that’s me about done for tonight. I woke up at a sensible time this morning, so I’m tired. But at least I did what I set out to do today.
See ya!


Epilogue, 30th August: Upon resuming use of the now-repaired iPod, I found that the battery capacity was much diminished, compared to the original battery. While my iPod formerly had a play  time (connected by bluetooth to an external speaker) long enough for me to go to sleep listening to podcasts, and to wake up with the podcasts still playing, the new battery ran down from a full charge to zero in about four and a half hours of play. "Oh well" I figured, "four and a half hours of play time is better than the zero I had".

Over a couple of days of use however, for whatever reason, the battery-reading software and the battery have become acclimatised to each other, and the battery will now allow the device to play audio over bluetooth for a full twelve hours, with charge remaining. 


So all's well that ends well. 



Tuesday, March 12, 2019

A Bit Blustery

Well, I have an hour and 45 minutes to wait for Chunky to render the latest beautiful raytraced vista of Honningbrew, my Minecraft city, sso before I eventually go and get some food, I find myself back here, for want of something better to do.

Today was a pretty good day. A nice lay in followed by a nice coffee, sitting in a nice room well insulated from the freezing cold gale force winds outside, I finally managed to get the content management system of my university project website working. Properly working too.
It was a little touch and go at one point, I did something wrong at one point and the next time I loaded the page, well, I've never seen so many PHP errors on one page before. They might have extended off the bottom of the screen, I didn't bother to check.

The website assignment has been something of a millstone around my neck over the past few weeks, it's not one of my strongest subjects, but at least I am slowly picking it up. While the intricacies of PHP (and to a lesser extent, SQL) are somewhat lost on me, the same was true of HTML, and I used to consider CSS something of a dark mystical art.
This project apparentlly uses all four, as well as JavaScript and jQuery. I say apparently because it's such a big project - 70% of the marks for that subject for the entire year - that many of us have started working on it before the classes that teach us the required skills have even been scheduled.
We lost about 40% of the class at the end of the first year at university, and while I'm pretty confident (no, honestly) that I'm going to graduate, I do wonder if one or two of my remaining coursemates will be leaving us in May, never to return.

University of course is the most recent "big thing" to happen to me. Very big, extra big, super big. I'm in second year now, and while I suppose it would have been awesome to get those freshman experiences down for posterity, frankly I've been too busy to sit around and write about them. Studying, stressing, sleeping, or ssssdrinking. The four Ss of your stereotypical student life, and I've done plenty of all four.
I have to admit though the dynamic has changed somewhat, with the first year weeding out those unsuited, unwilling or unable to adapt to university life, the amount of studying has increased (despite a much greater emphasis on self-directed learning that chronic procrastinator here initially struggled to adapt to) and the amount of bars, pubs and drinking has decreased sharply.

It has occured to me to wonder if I should actually make more of an effort to get out and hit the bars, or at least spend some time gaming, because these days I'm either studying or sleeping. As a kid, I was amazed that my brother had these cool games and this amazing computer, yet I never saw him enjoying them, and his room was filled with boring stuff like textbooks and pencils and stuff. I had no idea why someone would rather have their nose in a book than up against a screen, playing Doom or Magic Carpet 2, or even that demo of Total Mania that I still have laying around here somewhere (despite the publishers (Domark) sort of merging into Eidos Interactive nearly 25 years ago)...
Now I understand. Sure, I'd love to be gaming. But I'd love not-failing my degree even more. Not that I'm in danger of doing that, but my classmates and I are quite familiar with what happens to folks who'd rather game than study. Or as they used to say in the Army, Train Hard, Fight Easy, i.e. Work hard now, so you don't have to, later.

Not that I'm under any illusions of course. Data network engineers are very lucky if they can find a nice sinecure. The ones that do exist are no less dead-end than the jobs I left unskilled labour to leave behind me. My best hope for a nice comfortable life is to hit the books, then hit some different books, then hit even more books.
Of course I've already said to friends that I am wary to keep my eyes on the prize. I've had well paying jobs that made me miserable before, I've no intention of working my arse off to get lots of lovely sparkly money, if it means that I hate the job I'm doing day in, day out. I'd rather find a midddle ground between stress and money than be rich and freak out every day at work.

Still, that's some distance away, there's at least another year of university to go, possibly two if I do my Master's degree. Though it's scary how fast things have moved. I was in college twenty minutes ago and now I'm coming up to the start of Exam Season, second year.
I seem to have adapted quite well to the stress, mostly. Probably. I keep a level head not because I don't geel stressed, but because I know that freaking out would just distract me, delay my studies, and quite possibly annoy people at the same time. Strangely, it seems to be the ones who get stressed about every little thing that do quite well in university. The ones who just sit back and assume it will all be fine and that there's no need to worry right now, well, we had twenty of them more on my course this time last year than we do now.

Still, I seem to be getting through my work at a decent pace, grades are good, if not amazing, and I'm just getting on with things. There's really not a lot to report, outside of university, simply because it has been occupying pretty much all my attention in one form or another.

I don't mind. It's something to work towards isn't it.

Now, time for that dinner. I'm going to have new potatoes and chilli.

Sunday, September 22, 2013

Nearly One Year On...

Okay, so I've been away a while. Had various real-world things to concentrate on, and the longer I left the blog, the harder it was to get back into it. Too much explaining and backstory to do, and so after talking with a friend, I'm going to take his advice, namely to pick up from where I am now, and leave most of the past 12 months in the dark.

So let's pretend that I've been updating the blog regularly, and we'll pick up from um, last week.

The Star Trek: The Official Starships Collection is now on issue three, and knowing that the ickle nephew really likes them, I went down to asda on thursday and came back with two copies. One for myself, one for uhm, later in the year. So I've now bought my first Christmas present, and in another week and a half, I'll be buying my second when I get him issue 4. Of course, he doesn't know any of this so "his" copies are hidden carefully out of sight. I said initially that I wouldn't be buying into the collection, but lo and behold, I fell for the clever trap that is the first issue being 80% cheaper than the rest. And so, like a little street urchin who's just been given a free sample of drugs, off I went to create problems for myself.
I don't mind, they've got some really cool stuff in the works, and the price (£10 per issue, every 2 weeks) really isn't that bad. I hope to have a decent collection as time goes on.

My bike continues to behave well and has cleaned up beautifully. You'd never guess that she is 10 years old to look at her, and she makes the floor rumble wherever she goes.
I've been out on a few outings during the summer, and have spent plenty of time up at the local bike pub in the company of some other riders. As the nights draw in and the temperature begins to drop, she's spending less and less time on the road, but that's only to be expected. I'm hoping to add some sparkly bits before I take her out for the spring again in March. I'm going to do an oil change and get her some new tyres around the same time as her MOT is due.

My two other major projects this year have been continuing my studying (I'm working my way through the textbooks and have been doing plenty of lab work as well), and working on my Minecraft town that I started work on last October. After 11 months of work, it's pretty big with plenty to see and explore, and as time goes on it's only going to get bigger and more intricate. I'm now planning a sort of spooky Halloween decoration for the end of next month, as well as a commemorative 1 year anniversary building to be completed on the 365th day.
So yeah. Things seem to be plodding along, and now the nights are setting in, I'm hunting for Christmas presents for everyone else as well. It'll be interesting to see what I come up with :). Spreading out the spending over the months should hopefully help me increase my christmas present budget this time round.

So yeah, let's see how things go.

Wednesday, September 26, 2012

Workbook Thingie: ACL and NAT...

I've been doing a few practice exams, and two areas that always make me think "Argh!" are Access Control Lists, and Network Address Translation.

It's not that I'm unfamiliar with the concepts or how they operate, rather, it's a case that I have a hard time remembering the syntax of the commands.

A large part of studying for the CCNA is becoming familiar with the command syntax in Cisco's IOS operating system, which is completely CLI text-based. As a consequence, a lot of my studies revolve around remembering the correct commands, which variables to enter, and how to enter them, among other things.

I have found however, an awesome website, http://www.freeccnaworkbook.com which is full of tutorials and scenarios, and it is with their help that I'm studying ACLs now.

Now, NAT depends on an understanding of ACLs, so I'm going to study both at the same time.

1: Create a Standard ACL


Now access lists come in two flavours: Standard, and Extended. Standard ACLS are nice and simple. They block traffic based on its source address, and so should be placed closest to the destination of the traffic as possible. Why? I don't know.

Well, I went and checked. The reason you place standard ACLs closest to the destination of the traffic, is because they block ALL traffic from an address, they might block traffic that you don't necessarily want blocking, from your network.

Here's the topology that I'm working with, and I'm going to configure a standard access control list on router 1, with the intention of blocking traffic from the right PC to the left PC.(I'm going to call the left PC PC1 and the right PC PC2 just to make it easy on myself.
A quick test beforehand to show that I can successfully ping (tests for two-way data travel between hosts) from one PC to the other (meaning that the network is working properly), and we're ready to begin.

Router1(config)#access-list 10 deny host 192.168.1.2
Router1(config)#access-list 10 permit any

So what we've done here is created an access control list, ACL number 10. 
The purpose of ACL 10 is to deny all traffic coming from 192.168.1.2, that is, the right hand PC. 
However, a quick test of the network shows that I can still ping from PC1 to PC2, and back again.

Yep, we need to apply the access list to a specific interface.

Router1(config-int)#IP Access-Class 10 out

This applies the access list to the interface, in an outbound direction. Lo and behold, we can no longer ping from the right PC to the left, because router 1 now discards all packets destined for the left PC.

Now that's all done with, it's time to clear the standard ACL off the router, because we're going to create an Extended ACL.

2: Create an Extended ACL


Now it's time to get on with something a little more in depth. Extended ACLs are more versatile than standard ACLs, as they can block specific types of traffic. Want to prevent telnet traffic while allowing web and email traffic through? No problem, you can do that with an extended ACL.

As you can imagine, because extended ACLs are more in depth, the syntax for them is correspondingly more complex. 

The command we're going to use now is:

Router1(config-int)#access-list 150 deny tcp any host 192.168.1.2 eq telnet

To break it down:

  • Access list number 150 (therefore extended). 
  • Deny - do not allow this traffic. 
  • TCP - do not allow this protocol. 
  • Any host: from any host. 
  • 192.168.1.2 - to this host. 
  • Eq Telnet - if it is telnet traffic.
I think you can also block specific port numbers too. I'll check that out in a second.

Because we want to continue to allow IP traffic through, we need to add:

Router1(config)#access-list 150 permit ip any any.

Access control lists have what is called an "implicit deny". That is, unless traffic is specifically allowed, the ACL blocks any and all traffic.

Apply the access list to the interface as before (IP access-class 150 out) and lo and behold, while we can still ping from the right pc to the left pc, we cannot telnet from the right to the left. Not only that, but we can't telnet to the left pc from router 2 either. 

A quick check of router 1 to see if the access control list is working, and...


We're looking at the bit that says "24 matches". This means that 24 telnet packets were blocked from passing to  PC1. Way to go :-).

Now, let's learn about named Access Control Lists.

3: Create a Named ACL

Numbered access control lists are cool, but they have a major drawback, which is that you cannot edit specific lines in the ACL. The only way to do this is to copy the entire ACL into notepad, edit it there, remove the original ACL from the router, and paste the edited version in as a brand new ACL.

With named ACLs, each entry has its own little reference number, indicating its place in the stack of ACL entries. By switching entries around, you can make the ACL behave in very different ways, making the whole thing much more versatile. And all without having to delete and re-create the ACL!

Author's Note: I've come across a problem in Packet Tracer, and the simulated router will not accept the commands that the tutorial is asking me to make. I'm going to fire up my lab and see if my 2620 will let me create a named ACL.
Update: Just fired up my lab, and the router happily accepts the ACL as defined in the tutorial. Could be a problem with Packet Tracer, as even the simulated 2620xm won't accept the commands.

So there we go.

Next up, Wildcard Masks...

Friday, September 14, 2012

Part 3: Evaluate the Characteristics of Routing Protocols

Routers do their thing at layer 3 of the OSI model, so they are responsible for choosing the best path for a layer 3 pdu (packet, remember?) based on its layer 3, or IP address.
But how do routers know the best path for a packet to be sent down? Well, you have two choices.
  • The router could learn the route itself by using a dynamic routing protocol, which allows the router to find out about the network topology and build itself a routing table, or...
  • You manually configure a static route, and tell the router where it needs to send traffic destined for particular destinations.
Once you configure a static route, the router adds it to the routing table, and gives it an administrative distance of 1. Let's look into this a little.

The Administrative Distance is basically a measure of trustworthiness.  In its uh, "career", a router can receive routing information from a variety of sources, various routing protocols etc, and it needs to know which routing protocols to prioritise. For example, a router receives two seperate routes to the same place, one route uses IGRP, which is old and outdated, and the second uses EIGRP, which is the new(ish) standard.
Administrative Distance is what allows the router to say "well actually I'll trust EIGRP on this one, if you don't mind".

 Here are the administrative distances that we, as CCNA students, will most frequently come across:

Directly Connected Route: 0
Manually Configured Static Route: 1
EIGRP Summary Route: 5
EIGRP (Internal) 90
OSPF 110
RIP 120

Note that the aforementioned IGRP, which has an admin distance of 100, is not listed above. This is because IGRP is now outdated and has been largely replaced by EIGRP now. Note also that these administrative distances can be modified from their default values. This allows you to, for example, configure a static route as a backup route, if you give it an administrative distance that is higher than a dynamic route in the routing table.

Routers use Routing protocols to pass information about networks and network locations to each other. Examples of these routing protocols include RIP, OSPF and EIGRP.
It's important not to confuse routing protocols (the protocols that facilitate routing) with the routed protocols, that is, the protocols that define the information contained in a packet.

Autonomous System Numbers are assigned to portions of a larger network, enabling the administrator/architect to break the network in its entirety down into smaller portions. A routing protocol such as BGP (Border Gateway Protocol) is required to route between autonomous systems, even if these disparate autonomous systems are part of a single physically contiguous network.
On the internet, that is, on public networks outside of enterprise/private networks, autonomous system numbers are assigned by ARIN - The American Registry of Internet Numbers.

Routers (and therefore the network) achieve convergence when all routers share a common view of the network. If the network changes, routers must recalculate their routing tables using a dynamic routing protocol. A major advantage of AS numbers is that they break the network into manageable groups, allowing the routers to converge more quickly.

Types of Routing Protocols:

 Routing protocols are divided into two types, depending on their method of operation. Link State, and Distance Vector.
  • Link-State protocols build a topology of the entire network, and send Link State Advertisements (LSAs) to update other routers. LSAs are used to build a full topology of the network (or AS?), and are flooded throughout the network only when there is a topology change. Routers use the SPF (Shortest Path First) algorithm and LSAs to build both a shortest path tree, as well as a routing table. Using LSAs requires a more powerful router, as the process of maintaining a full loop-free topological database requires more memory than Distance Vector protocols.
  • Distance-Vector protocols on the other hand send periodic updates containing the entire routing table, whether the topology changes or not. In addition, as there is no topology table in D-V routing protocols, each router is only aware of its immediate neighbours. Without the routing table, routers running distance-vector protocols use metrics (such as hop count) to determine the best path to its neighbours. 
 When a router receives a packet on a port, it examines the destination address and compares it to the routing table. The routing table is used to determine the best path for the packet, which is then forwarded out of the appropriate port.

Each of the following protocols functions at the internet layer of the TCP/IP model, that is, layer 3 (the network layer) of the OSI model. 

RIP: Distance Vector. Broadcasts updates every 30 seconds and uses hop count as the metric. The maximum hop count is 15 (Literature says that the maximum hop count is 16, but in practical use, anything over 15 hops away is deemed to be unreachable). 
IGRP: Distance Vector protocol, now outdated. Broadcasts updates every 90 seconds, and uses a composite metric of bandwidth, delay, load, and reliability.
OSPF: Link-State protocol. Updates only when there is a change in topology.
EIGRP: Hybrid: Uses features of both link state and distance vector protocols, and multicasts any updates on 224.0.0.10.

As mentioned previously, BGP can be used to route between autonomous systems. It can also be used to route between seperate routing protocols.

Metrics:

Metrics are used to aid routers in discovering the best path to forward packets. The metrics used vary from routing protocol to routing protocol, and can be one or more of the
following:
  • Internetwork Delay
  • Bandwidth
  • Hop Count
  • Reliability
  • Load
Distance Vector routing protocols exchange routing tables with their neighbours in order to ascertain the metric and the best path. If these routers don't exchange their routing tables quickly enough in a changing network, a loop can occur.

A router may not receive an update that a link is down, and proceed to advertise that it can, in fact, get to the network. If these updates are passed to other routers, packets destined for this network could continue to pass around the network continuously. 


Distance vector routing protocols monitor the distance that a packet has travelled as it passes over the network, to avoid this kind of loop. RIP tracks the packet with hop count as a metric, and as mentioned above, deems the network unreachable if it appears to be over 15 hops away. The maximum hop count of 16 ends the routing loop.

Split Horizon: 

If router A updates two connected routers that network 1 is down, but then accepts a later update from one of those two routers that network 1 is reachable, there may be a loop.
This scenario is possible because one of the connected routers may be getting old information from another part of the network, that was originally sent out by router A itself. Split Horizonprevents this type of loop, when it states that router A cannot receive an update that concerns routes that router A originally advertised. 
A router can also prevent loops by poisoning a route for a network that has gone down. A router can accomplish this by sending out the maximum hop count for a route as soon as it sees the network is unreachable. As mentioned, this process is called route poisoning

Distance Vector protocols typically update only on a set interval. This can cause routing issues if a network goes down, as the router that notices it would have to wait up to 30 seconds to send its next update. 
This problem is avoided with triggered updates. With route poisoning and triggered updates working together, a router overrides its regular schedule and as soon as it notices that the network is down, it sends out the poisoned information straight away.
This doesn't mean that the routers immediately remove the route from the routing table, instead it just means that routers know about the change. 
Routers implement a holddown timer that causes them to wait a set amount of time before actually removing the route from the table.

Routing updates occur every 30 seconds with RIP. If RIP does not receive an update about a particular route for 180 seconds, that route is marked as invalid. RIP waits another 60 seconds (for a total of 240) and if information is still not received about the route, the route is removed from the routing table. These two timers are the Invalid timer, and the flush timer, respectively.
The third type of timer that RIP uses is the holddown timer. Once RIP receives a warning that a route is invalid, it immediately assigns a holddown timer to the route.

If the route comes back up, during the holddown timer being active, the route is still "on probation" and is not fully reinstated until the holddown timer expires. If the holddown timer expires, the flush timer kicks in and removes the route shortly afterwards.

IGRP Is also a distance vector routing protocol, but this one forwards routing updates every 90 seconds, rather than every 30 seconds. IGRP focuses on speed as the main reason to use a particular route. The default metrics used by IGRP are bandwidth and delay, but load and reliability can also be considered.
IGRP can advertise interior, system, and exterior routes.
  • Interior routes are between networks that are connected to a router and that have been divided into subnets.
  • System routes are between networks inside of an autonomous system.
  • Exterior routes define access to networks outside of an autonomous system.
IGRP makes use of hold-down timers, split horizon, and poison reverse.

RIP V2: Rip V2 adds authentication and ability to send a subnet mask with routing updates. This means that RIP V2 supports VLSM and classless inter-domain routing.

Another difference between RIP versions 1 and 2 is in how each protocol sends updates.
RIP V1 broadcasts on 255.255.255.255. RIP V2 more efficiently multicasts on 204.0.0.9 (similar to 224.0.0.10 for EIGRP).

Summary Routes: All routers on the internet cannot possibly contain a route for every network that exists. Routers can learn about other networks through static and dynamic routes, but for traffic destined outside of the immediate network, an administrator can add a default route. A default route provides a destination for a router to forward all packets for which it does not have an entry in its routing table.

Link State Advertisements: Link state protocols actually send little hello messages periodically to obtain information about neighbouring routers. These are seperate and distinct from LSAs, which remain the key way that link state protocols discover information across the entire network.
When a network changes, a router will flood LSAs on a specific multicast address across the specified network area. These LSAs allow the router to create a topological database of the network, to use the Dijkstra algorithm to determine the shortest path for each network, to build the shortest path tree, and to use the resulting tree to build the routing table. Flooding LSAs across a network can
affect overall bandwidth on the network and cause each router to recalculate the full topological database. For this reason, a network using link state protocols must be broken up into small enough areas to maintain network efficiency, and sufficiently powerful routers must be used.

OSPF: Is an open (non-proprietary) link state protocol that allows you to control the flow of updates with areas. OSPF is a good choice for a large network because unlike RIP, it allows more than 15 maximum hops, and networks can be divided into areas.
These areas communicate with a backbone area to reduce routing protocol traffic and routing table size.

OSPF routers do indeed maintain a full loop-free topological database of the network. In addition to this topological database, each OSPF enabled router maintains a unique adjacency database that tracks only neighboring routers.
OSPF routers elect a designated router, and a backup designated router, as central points for routing updates.
VLSM support, A bandwidth based metric, a loop free SPF tree and rapid convergence through LSAs are key features of OSPF.

OSPF adjacency databases are fine if you're - for example - on a lab network that has four routers each connected with point to point connections. Each router will have two adjacencies: One for each directly connected neighbor. If you're using fiber though, (FDDI for example), all routers would technically be connected on the ring to each other, making every router, the neighbour of every other router.
OSPF avoids the situation of never ending neighbours with an election.
Routers that are connected on broadcast multiaccess networks, like fiber or ethernet, OR nonbroadcast multiaccess networks such as frame relay, all elect a single router called the DR - Designated Router - to handle updates.
To avoid a single point of failure, the routers also elect a backup designated router.

OSPF hello packets go out on the multicast address 224.0.0.5 (remember, 224.0.0.10 for EIGRP and 204.0.0.9 for RIPv2).
If the connection is broadcast or point to point, the hellos are sent every 10 seconds.
If the connection is NBMA (like frame relay), the packets are sent every 30 seconds.

The packets contain the following:
  • Version
  • Type
  • Packet Length
  • Router ID
  • Area ID
  • Checksum
  • Authentication Type
  • Authentication Data
 The OSPF process starts with hello packets to find neighbouring routers, so that adjacencies can be developed.
First of all, routers need to establish if they are on a point to point or a multiaccess link. If on a multiaccess link, the DR and BDR election then occurs. Once adjacencies exist between neighbours, the routers then forward LSAs and add the resulting information to their topological databases. Once the topological databases are complete, the routers use the SPF (Shortest Path First) algorithm to create the SPF tree, and then a routing table.
Periodic hello packets can alert routers to a change in the topology that would restart the process.

EIGRP and IGRP routing protocols function together well despite the fact that EIGRP offers multiprotocol support and functions as a hybrid routing protocol. EIGRP also supports VLSM whereas IGRP does not,. A router running only IGRP will see EIGRP routes as IGRP routes.

As a hybrid multiprotocol routing protocol, EIGRP uses functions from both link state and distance vector protocols. Like OSPF, EIGRP collects multiple databases of network information to build a routing table.
EIGRP uses a neighbour table in the same way that OSPF uses an adjacency database to maintain information about adjacent routers.
EIGRP however uses DUAL (Diffusing Update Algorithm) to recalculate a topology.
EIGRP also maintains a topology table that contains routes learned from all configured network protocols. In this table, the following fields are present:
  • Feasible Distance: The lowest cost to each destination.
  • Route Source: The router identification number for externally learned routes.
  • Reported Distance: A neighbouring router's reported distance to a destination. 
  • Interface Information: Which interface is used to reach a destination. 
  • Route Status: The status of a route, where ready to use routes are identified as passive, and routes that are being recalculated are identified as Active. REMEMBER: If it's passive, it's because it doesn't need recalculating and is ready to use/in use. 
The neighbour and topology tables allow EIGRP to use DUAL to identify the best route, or the successor (think "successful) route, and enter it into the routing table. Backup routes, or feasible successors, are kept only in the topology table.
If a network goes down and there is no feasible successor, the router sets the route to active, sends query packets out to neighbours, and begins to rebuild the topology.
In the topology table, EIGRP can also tag routes as external or internal.
Internal routes come from inside the EIGRP AS, and external routes come from other routing protocols, and outside the EIGRP AS.

Advanced features of EIGRP that set it apart from other distance vector routing protocols include:
  • Rapid Convergence: EIGRP uses the DUAL FSM (Flying Spaghetti Monster/Finite State Machine) to develop a full loop free topology of the network, allowing all routers to converge at the same time.
  • Efficient Use of Bandwidth: Like OSPF, EIGRP sends out partial updates and hello packets, but these packets only go to routers that need the information. EIGRP also develops neighbour relationships with other routers.
  • Support for VLSM and CIDR: EIGRP sends the subnet mask information,  allowing the network to be divided beyond default subnet masks.
  • Multiple Network Layer Support: Rather than relying on TCP/IP to send and receive updates, EIGRP uses the reliable transport protocol (RTP) as its own proprietary means of sending updates.
  • Independence from Routed Protocols: EIGRP supports UP, IPX, and AppleTalk. EIGRP has a modular design that uses Protocol Dependent Modules (PDMs) to support other routing (routed, surely?) protocols, so changes to reflect revisions in the other protocols have to be made only to the PDM and not to EIGRP.
EIGRP uses five different types of packets to communicate with other routers:
  • Hello: Sent on 224.0.0.10 to communicate with neighbours.
  • Acknowledgement: Hello packets without any data, sent to acknowledge receipt of a message.
  • Update: Used to update new neighbours so that they in turn can update their topology.
  • Query: Used to gather information from one or many neighbours.
  • Reply: Sent as a response to a query packet.
As described, EIGRP routers build a topology table that uses DUAL to select the successor  routes that will populate the routing table. If a link goes down, DUAL selects a feasible successor from the topology table, and promotes it to the successor route.
If there is no feasible successor, EIGRP recalculates the topology table. This process and DUAL enable EIGRP to achieve rapid convergence.


Thursday, September 06, 2012

Broken Again: The life and times of a mechanical idiot...

I've been going to the local bike pub,  on foot, while sitting about looking for the cheapest way to get the throttle cable replaced. Okay, so the idea of bike night is you go on the bike, but for every 10 lads on their bikes, there were three or four who go to get pissed, so it's not too bad, and get pissed I did, week after week.

Now the RS has always had a very heavy throttle, with one cable going into a splitter box, pulling on four other cables. Over the years, at least some of them must have gunked up because to twist the throttle, well, there's probably at least a couple of kilos of pull on the throttle. Dangle two bags of sugar from the end of the throttle cable and twist the grip - that's the sort of stiffness you're looking at.

Eventually, (after drunkenly promising "I'll bring it up this wednesday, you can have a look at it" to come on the bike, I wandered up to RTT for a new throttle cable (having taken the old one as a reference), 18 quid and 20 minutes later and I've got a shiny new one.
Walked back (55 minutes) after 25 minutes of waiting for the once-hourly bus, got home and fitted the cable. Closed everything up, and realised I had no electrics.

Problem One

Got my dad to help, because he's ever so good at this sort of thing - the little wire had snapped off the solder on the cutoff switch, so he stripped the end of each wire, "tinned" them, and resoldered them with shiny new joins. Got the throttle cable fitted - a tight fit since it was slightly shorter than normal, but it fits fine and works fine.
Had a bit of a ride round, and the bike is still overheating like a bastard, but that can be sorted...

Spent today doing all sorts of things, cleaned the bike up, replaced some old bolts, added some nyloc nuts, and then gave it a once over with the polish to get it looking shiny for tonight.

Rode up there, happily making a point of blasting past my mate on his ickle neep neep scooter, and sat at the traffic lights halfway up Cowley lane with the engine getting hotter and hotter and hotter. Lights went to green, off I pull up the hill with the bike hesitating somewhat, and get almost all the way to the top of the hill before the bike bogs down completely. Just as I pull onto the side road, it dies.

Problem Two

A couple of minutes spent kicking it (the kick starter, not the bike!), while other lads ride past giving me cheery waves, and I get it going again. Ride it to outside the front door of the pub and park up, as the lads who passed me engross themselves in the RS "That's bloody marvellous/haven't seen one of them for a while/they go like shit off a shovel them" etc etc etc.

Sit around, walk around (which is like sitting around but higher up), drink (Britvic, thanks!), have a fag, and Karl pulls up on his, well, not sure what it is. Looks like a V-max ("A fucking V-max?!?" says he), but made by honda. VF1100 or something like that. "For you..." he says to his mate, pulling out a reg/rec and handing it over, "and for you" he says to me, pulling out a new throttle tube, after I drunkenly explained that I'd fucked the last one bodging it to get me back home.

We get talking onto how the throttle is incredibly heavy, and as I disconnect the fuel hose and take the tank off to show him the splitter box, and how much strain the (presumably incorrectly routed cable) is putting on it, he goes to have a "look".
Now he's used to riding bikes with two throttle cables, one push, one pull, which I suppose is the only explanation for what he does, which is to try to twist the grip forwards, towards the nose of the bike. Just as I'm beginning to wonder what he's doing, the entire rhs switchgear - cutoff switch, indicator switch and all - breaks free from its mounting pin and rotates upwards until the indicator switch that did face towards the rider, is now facing the sky..

Problem Three

I hastily dismantle the throttle assembly, where I find that the metal pin that stuck snugly into the hole on the bottom of the bar, has now pushed its way through the plastic, meaning that there's little to stop the switchgear rotating with the grip - leaving me with no throttle, unable to ride back. There are a few more blokes around at this point, including one guy who owns a local customs manufacturing/modifying/servicing/if it's to do with bikes, he can do it place. I'm flitting around, worrying about being able to get the bike back, looking for someone more experienced in mechanics to tell me that it's all okay, and that I'll be able to get home fine. Eventually, I do get talking to him (he's a well liked and respected dude this guy, and really knows his stuff. Frankly, I feel like I'm wasting his time every time I talk to him (even when I'm booking the bike in for a service), but he seems to like me well enough, so we get talking), and he makes the following announcements.


  • We're both looking forward to getting the bike in for a major overhaul
  • The RS is great fun to ride, but mechanically, is a royal pain in the arse, and most riders would decide that the bike is more trouble than it's worth
  • The riders that wouldn't consider it more trouble than its worth, are by now desperately looking around trying to find RSs, which is why they apparently command a premium as "there are so few about, because they've all just died"
  • He'd have to look to be sure, but the reason the throttle is heavy, is probably because at least some of the cables under the tank are fucked, and the lining of the cables is now serving to constrict the steel inner cable, and stop it from moving properly...
  • The reason the bike is overheating, is more than likely due to an air bubble. Apparently there's a certain location behind the top cylinder (maybe?), which is a bugger for getting bubbles in


Eventually I decide I can't wait, it's time to go, if I stop and wait for the chips the off licence will be closed by the time I get back, so I kick the bike up (starts first kick, every time, even after 16 years), and eventually it warms up. Nervously ("Will I get home? Or will I be left at the side of the road with a fucked throttle?") I get the earphones in, get the helmet and gloves on, and I get on the bike, and turn the lights on so people know to get out of my way.

Stand up, into first, revs up, clutch out, and off we go.

The bike pulls forwards a meter or so, and starts bogging down. I quickly apply more throttle, and it dies altogether.

Now, I want you to imagine the sound of a two-stroke engine cutting out. Now add the sound of 30 sympathetic but amused bikers all collectively going "ohhhhhhh".

I try to kick the engine over a few times and it's not having it. From somewhere behind me appears the head of Daz, one of my other mates, in my limited field of vision. Over Rammstein's "Der Meister", I hear him say "You've had the tank off haven't you?"

"Yeah". Says I.

"Did you turn the fuel back on?"

Theatrically, as if to say "I've made a stupid mistake and I'm not even going to try to hide it, I sweep my arm over the tank and make a show of turning the fuel tap back on.

I kick the bike a few times, and it won't start. Eventually, I end up having a shouted (yet muffled, thanks to the helmet and earphones) three-way conversation between myself, one of the other blokes there, and someone called "lost in translation", where he offers me a bump start. Eventually, I get on the bike and kick it into first, to a collective chorus of "Try Second!". Another couple of blokes appear in my field of view, offering helpful tips, all of which are drowned out by Till Lindemann rolling his Rs, and eventually we get the bike rolling.

I let the clutch out, and the revs increase, but the bike doesn't start. I pull in, accelerate again, let it out quicker, and the engine cuts into life. Not wanting to lose my momentum, I give a grateful beep of the horn to the lads behind me, and ride towards the big downhill.
I pull into the junction, being eternally mindful not to snap the retaining pin in the switchgear, and eventually make it down the hill, through the bends.
Just as I'm starting to enjoy myself, to remember what a beautifully awesome bike the RS is to ride, clearing a few sweeping curves, I pull up to the roundabout, where the bike dies AGAIN.
I get off the bike, pissed off, and sit around wondering what to do.

*poink*

That is the sound of a thought occuring to me.

I crouch down beside the bike, grab the fuel tap, and twist it towards the rear "Reserve" position.

A quick kick, and the engine ZZzzZzzZzzZzzzzzzs back into life.

Bloody petrol.

I ride home, glad that I've now got another problem sorted, and with a sense of relief, and a still-working throttle, pull onto the drive.

Epiloguey bit...

A quick trip to the off licence later, and here I am, surrounded by leathers, boots, my helmet is sat on my bed facing blankly towards the wardrobe, and I've got a lovely bottle of chilled mead, and a big bottle of strongbow, which I'm already digging into. And here I am telling my tale to you folks.
Make of it what you will, it's been a fun night. Not great, but fun nonetheless.

I left my bike with an affectionate pat on the fuel tank and a few choice words...

You're a pain in the fucking arse... But I love you anyway...