Monday, April 21, 2014

IPv4 Variable Length Subnet Masks (VLSM) basic walkthrough

After two weeks of banging my head against the wall, I finally stumbled my way through VLSM and got the numbers right.

I found some youtube videos that helped me out and did some Packet Tracer labs on my own. I typed in the lab number and it came up, surprisingly.  I'm writing all it down again so I don't forget for the test.

Step 1: Order Your Network Requirements From Largest to Smallest


We need five networks, 4 for the different departments and one for the WAN link between routers. The host requirements are:

#1 60 hosts
#2 30 hosts
#3 14 hosts
#4 6 hosts
#5 2 hosts


Step 2: Determine the Prefix for Each Network


The starting network is 10.11.48.0/24

60 hosts 2^6-2=62 /26 .192
30 hosts 2^5-2=30 /27 .224
14 hosts 2^4-2=14 /28 .240
6 hosts 2^3-2=6 /29 .248
2 hosts 2^2-2=2 /30 .252


Step 3: Design the VLSM


Largest LAN first
10.11.48.0/26 magic #64
Add 64 to host portion to get the next network address; determine IP range.
10.11.48.0/26
10.11.48.1 - 10.11.48.63

Next Network: 10.11.48.64/27 magic #32
10.11.48.64/27
10.11.48.65 - 10.11.48.95

10.11.48.96/28 magic #16
10.11.48.97 - 10.11.48.111

10.11.48.112/29 magic#8
10.11.48.113 - 10.11.48.119

10.11.48.120/30 magic#2
10.11.48.121 - 10.11.48.123

Step 4: Configure Devices and Hosts

I'm not going to write all the commands, but they're easily found.

Step 5: Test Connectivity







Ping everything, basically.

And that's it! Sometimes you need more than one person's explanation before something like this clicks. I'm glad it finally did.

Too bad we didn't go over any IPv6 subnetting. Even the book glossed over it a bit.

But yay, over. Forward!




Friday, April 18, 2014

Chapter 9 is killing me. 

Just when I thought I got the hang of subnetting, I see that there is something I've missed and I have to revise my notes. We spent extra time on this chapter and I'm still getting turned around in places.

It reminds me of when you first learn to play an instrument. If something happens and you don't play for a few days, you lose your muscle memory and everything feels clunky when you pick things up again for a short while. Except there's not rhythm to networking. I'm not feeling the music in it!

I say that half laughing, half crying.

Back to work. 

Sunday, April 13, 2014

Paying attention to Javascript

Saturday night.

I've been thinking about my self-study progress, and have decided that I've been concentrating on CSS for a little too long. I know most of the basics, but when I'm watching video tutorials and find myself getting bored I feel guilty about it.

I think I know enough about CSS right now to get by so it's time to switch things up. I will start concentrating on learning Javascript. The JS class I took is way in the rear view mirror now, and it was all JQuery. My teacher was good, but I daresay he made things a little too easy, especially if someone like me with little coding experience can figure out enough to make a whack-a-mole game and get an A.

The logic of the code made sense at the time, but if I look at the files now I'm not sure what I did. Yes, I made some comments, but at the time I did not have a lot of programming experience. I had Intro to Programming (great) and Visual Basic I (awful) under my belt. That last class is what started my "Do I really want to do this?" cycle of thought, with a teacher that didn't answer questions and Visual Basic fitting me like a bad suit. I still get the shivers when I think about that quarter. Being in a level 1 class where the guy expected you to know how to do the shit already was discouraging, to say the least. My Javascript/JQuery teacher was more helpful, but it was still a bit cookie cutter. I wasn't comfortable enough with coding, so it didn't really stick. It's like me and the Japanese language: I can make out the skeleton, but my sentences beyond the basic don't flow.

So I'm going to start from scratch with How to Learn Javascript Properly and see if I can make it to the end. I've watched a Lynda course on Javascript a few months ago, but I still wasn't sure how just whip it out and use it without being clumsy. Then I can go back to JQuery and made some other frameworks and play with those. I'll add some bits of CSS layout techniques here and there when I can. If the urge to dive into CSS comes back, I'll start working at that again regularly.

My reasoning is if I move forward it will give me some new energy and I won't feel quite so stuck in a rut.

Let's see if it works!

Wednesday, April 9, 2014

Magic number cheat sheet!

I'm using NetAcademy in my class, and they seem to find the longest, most convoluted way to explain stuff. I guess if they make it too simple everyone will try to get into this business.

Cisco actually has a pdf on using the Magic Number to make calculations easier. Too bad they don't point to this in the official coursework. You're a pain in the ass, Cisco.

Magic Number calculations to make subnet questions easier

My teacher had been talking about this but I wasn't wrapping my head around it yet because I was running behind. This sheet makes more sense to me, so I'm going with it.

It is useful I think I will write it out in a post later to help me memorize it.

IPv4 Subnetting, Part 3

After you've figured out your subnets, it's time to assign them.

Here is a fresh example to calculate:

204.15.5.0/24
Needs: 5 subnets with 2, 7, 14, 28 and 28 hosts


We need 3 host bits to have enough subnets available to us. So we'll use 5 of those subnets and have 3 left over for future expansion.

204.15.5.000 | 00000 5 host bits remaining

Will those 5 host bits give us enough host addresses? We need at least 28. So do the math:

2^5-2 = 30 usable host addresses

The network address is going to be 204.15.5.0/27.

Assign the Subnets


Each network will have a block of 32 addresses. 32 is the increment we use to determine the starting address of each subnetwork.

We need 5 subnets. Add 32 to the host portion of the address to get the starting address for each one:

204.15.5.0/27     +32
204.15.5.32/27     +32
204.15.5.64/27    +32
204.15.5.96/27    +32
204.15.5.128/27    +32

Then you can do your first, last and broadcast address calculations, working within the allowed range. For example, the 204.15.5.96 address:

Network     204.15.5.96
First        204.15.5.97
Last        204.15.5.126
Broadcast    204.15.5.127


I think this might be what the Magic Number is, but I haven't read enough about it to call it that for sure, so I'm not going to. If I find out it is, I will update later.

(Update: The magic number is the 256 - subnet mask.  The subnet mask is the part of the address that isn't 255. In the example on this page, the subnet mask is 255.255.255.240, so 256-240 = 32. It ends up being the last bit value taken.)


Tuesday, April 8, 2014

The Odin Project: Free Web Development Learning Resource

Stayed in today. Watched some Law & Order, fell asleep, had a dream about someone taking my license and social security card, and threatening them outside their locked car, including tipping the car in adrenalin-fueled rage. Then watched more Law & Order.

Just when I was trying to decide what online course to spend money on and how I was going to foot the bill, I came across a website with the imposing name of The Odin Project.

From what I read, they've compiled a bunch of free online tutorials together into a structured track. They have study groups as well, though it looks like I missed the boat on those. No week 1 groups starting up right now, but the past Google chats are up on Youtube for reference.

I'm going to look into it, definitely. Another source to try and cram from. I feel like this trying to find my way thing is never going to end.

Monday, April 7, 2014

HemingwayApp, keeping your writing on the right track

I just found out about this neat  web app called Hemingway. It analyzes the text you paste into it and tells where you could be clearer.

It is good for when you want to keep your writing simple and to the point for maximum readability. I'm hitting grade 6 with one college level sentence in there, but that doesn't bug me. I went to college, so why wouldn't I write that way?

Visit hemingwayapp.com to check it out!
I want more structure in my learning. I NEED it, to be honest.

I see a lot of people online saying you can learn all this stuff for free, but trying to filter everything that's available is a job in itself. Then comes searching for answers to questions, another job.

Wish I was getting paid for that...

I'm learning things sort of at random for the past few months, and it's just not satisfying to me. It's not sparking the desire I need to create something that I can add to my portfolio. I'm just learning. A noble end, but I need money.

Since I'm having doubts about the community college I'm attending, I've gone back into that black hole known as coding bootcamp. I know there's not much of a choice around here, and the one that is semi-close I can't dig up much information on. I was looking at a bootcamp search site last night that had online options, so I looked through those.

Thinkful seems to have the right combination of learning and support. You get a mentor that you can meet with each week to talk over things with and there's study groups and everything. It's out of my budget right now, though.

I've seen Treehouse before, but now I'm digging into it a little bit more. I've got a few of their forum posts pulled up. I want to look at what they teach in more detail, and see if I can find blogs of people that have studied there to see where they ended up. Not just the testimonials they have on their page, some unsolicited stuff, too. They have a job board too, which might help me get that first development gig. I need all the help I can get.

Treehouse has separate web design and web development tracks, which got my attention. I want to learn design principles, but have worried about it because I'm not an artist. Getting those basics would help me immensely, I think.

I just want to see if I can find someone that will guide me through the learning process so I don't miss anything. I always feel like there's I'm missing something when I go through a book or watch a Youtube video. I'm not too proud to admit I need a little hand holding.

I don't have a lot of cash, but Treehouse's monthly fee is the most affordable I've seen. My tax refund would cover a couple of months at the cheapest option. No having to move to San Francisco or New York to live in a roach infested studio apartment while I do it either. Because that's about all I could afford it I could go to a big city and do a bootcamp. No, it would be closer to living in a truck stop that had a shower in it. I'm such an up person.

In lighter news, Game of Thrones is back on again. I'm going to save it for after class, depending on how I'm feeling. I've got some reading to do. I plan on checking out the new AMC series Turn as well, since TWD has closed up for the summer. Damn cliffhangers.

Keeping the Ball Rolling

Another Sunday night in Western North Carolina.

It just started to rain.

School tomorrow. Yay.

But that's not the point of this post. I'm going to write about a few things I've implemented to keep my focus up.

I've created a work music playlist on my iPod. I saw some random comment about video game music being good to work to, so I looked through my collection for instrumental music. I have quite a few soundtracks, but I'd never compiled them into a huge list. I added the SaGa Frontier II soundtrack, Cowboy Bebop, Ghost in the Shell, and my ever lovin' favorite the Samurai Champloo soundtracks, among others. I found some old 90s IDM to slap on there, because it sounds techy, and some Erik Satie, because I like piano music. So far I have a playlist a little over 24 hours long. Once I find my CD rip of the Final Fantasy Tactics soundtrack, I might, MIGHT, stop. I'm probably going to need to go through and take out the tracks with singing though. When the music has lyrics, I start singing along in my head, like a music lover tends to do.

I tried it out last week when I was trying to read the new chapter for my networking class and it helped. It cut out the outside noise but didn't distract me too much. A long time ago Samurai Champloo music would get me through the day. I love Nujabes, R.I.P. Now it's back in my life.

I made a To Do/Brainstorming list. I'm hoping the physical act of checking things off will give me a little bit of momentum. The blog posts about subnetting came from that list.

I'm trying to get back in exercising again. Healthy mind, healthy brain, all that. The start is rocky right now since it's been two days since I've moved myself. Being in this tiny house makes me self conscious when I move. I thought about going to the park and walking around while listening to my Japanese learning audio. I can kill two birds with stone that way. Since I've tried to focus on coding my language study has been nonexistent. I don't want to lose any more of what I poured six months of my life into to learn.

I wonder where my concentration went. I used to be better at this stuff. Maybe it's age, or circumstances. I keep wondering how I can recapture my ability to soak up info like a sponge. I want it, I know it's there, but it doesn't register in my brain, even when I'm doing something. I guess it's just me being blue for so long. The walls are thicker.

One thing I have the focus for is playing with threads. When I should be doing something else, I'm making little Teneriffe lace motifs instead. It was Puncetto for a long time, making little squares and littering every surface with bits of thread, but once I got comfortable with it, I switched to spider web wheels. And squares. And little shield shaped thingies you get from merging the circle and square shapes together. I have the gear, and honestly, I've got the time.

I'm getting pretty good at it. Another thing on my list of things to do is to make a simple site about how to make these motifs. I have a couple of pages of text typed up, but I need to do pictures, which means making samples. It will show that I can make a static site, at least.

Ain't nothin' to it but to do it, as the saying goes.

Wait, is that what that even means?

Sunday, April 6, 2014

If I had an option...

I've been hemming and hawing on the Tech Talent South bootcamp thing.

In 8 weeks I could learn Ruby on Rails, Javascript and a lot of (hopefully) best practices from people in the industry, and have the skills to start applying for jobs. Networking opportunities, too. A possiblity in working and making my way out of here this year instead of a year or two from now is tempting.

The full time program is four days a week in Asheville. The car might not be able to handle. I might not be able to handle the drive. It's uphill getting there from here. I don't know if mom would be good with driving there every day. It takes about 40 minutes to get to school now, an hour to Asheville. Time-wise not that different, just the frequency. There's a part time program twice a week in the evening, but I wonder how I can cram that much in my head in six hours a week. It sounds like there would be a lot of independent studying going on. The HTML and most of the CSS isn't an issue at this point, so I guess I would be okay. The classes are small, so I would at least get the attention I need.

The other issue is the money. With the part time program it might cost about the same as going to the community college, but I would learn much more. Plus I have to buy a Mac, so throw another $1300 or so on top of it. There's no guarantees, but it seems like cramming it all in there and starting a job before you can forget anything would be the best way to go.

Frankly, the CC I'm going to now sort of skims the surface. The courses aren't year around, so that makes things take even longer. Some of the goofy prereqs drag it out, too.

The thing that makes me doubt this is that the bootcamp is fairly new, so I can't get a bead on whether the students got anything out of it.I had done some poking around and found one stat that said 80% of the graduates get a job within X months. I'm guessing that's from their Atlanta campus, where they're based, but it didn't go deeper than that. Plus the site could have been some guy's attempt at clickbait. I don't have the time or money to be a guinea pig, so I'd like some concretes. I might have to write them and see what I can find out.

Another option I was thinking of was something like Treehouse. They have online classes and a job board. Considering my location and all, it seems the most cost effective.

Finally, I can do a bunch of stuff by myself and hope that's enough for someone to hire me. My confidence is extremely shaky on that. I want to meet other people in the same spot. It sucks that I might have to spend a lot of money for that opportunity. I saw someone's portfolio site where it was just a list of little mini web development projects. Apparently the woman got a job from that. She's in California or something though. How can the country mouse get recognized? I have to figure out something.

Summer semester is coming up and there's really nothing to take but that blasted math class. I'm hoping I can work through my online courses without having midterms and stuff to worry about. It won't cost nearly as much and will be at my own pace. Before the next full semester starts I can reevaluate.

IPv4 Subnetting Part 2

Here is another IPv4 example. There is an activity on Cisco's NetAcademy that throws random addresses at you so you can figure out the Network, Broadcast and First and Last addresses.

This will have less explanation than the first part of this tutorial had. Just the numbers, baby.

143.28.188.100/23
9 host bits to work with
Subnet mask 1111 1111 . 1111 1111. 1111 1110. 0000 0000 = 255.255.254.0

Network Address

1000 1111 0001 1100 1011 1100 0110 0100 IP
1111 1111 1111 1111 1111 1110 0000 0000 Subnet

1000 1111 0001 1100 1011 1100 0000 0000 = 143.28.188.0


First address 143.28.188.1
Broadcast 143.28. 1011 1101 1111 1111 = 143.28.189.255 (the last 9 host bits are all 1s)
Last address 143.28.189.254


Here are a couple more for good measure.

159.209.28.140/19
13 host bits
Subnet 1111 1111 1111 1111 1110 0000 0000 0000 = 255.255.224.0

IP            1001 1111 1101 0001 0001 1100 1000 1100
Subnet     1111 1111 1111 1111 1110 0000 0000 0000

Network Address 159.209.0.0 (1001 1111 1101 0001 0000 0000 0000 0000)
Broadcast 159.209.31.255 (1001 1111 1101 0001 0001 1111 1111 1111)
First 159.209.0.1
Last 159.209.31.254


157.41.93.141/29
3 host bits
Subnet 1111 1111 1111 1111 1111 1111 1111 1000 = 255.255.255.248

IP         1001 1101 0010 1001 0101 1101 1000 1101
Subnet    1111 1111 1111 1111 1111 1111 1111 1000

Network 157.41.93.136 (1001 1101 0010 1001 0101 1101 1000 1000)
Broadcast 157.41.93.143  (1001 1101 0010 1001 0101 1101 1000 1111)
First 157.41.93.137
Last 157.41.93.142


This shows how those numbers can change where you least expect them. It is a such a pain.


IPv4 Subnetting, as I understand it

I've been concentrating on my networking class the past few weeks. Trying to. Just when I think I understand things, I find out I don't. It's taxing, but there's less than a month left now, so I'm trying to speed towards the finish line.

In order to lock some things into my memory, I've decided to write some short posts on subnetting calculations. Hopefully it will help me remember this for the test, and maybe help someone else that comes across this on the internet. This first post is for IPv4 addresses. IPv6 will be coming soon.

I'm going to assume you know some basic terms like network portion, host portion, and basic binary to decimal calculations like bitwise ANDing, otherwise this is going to get really long.

You'll need to use a binary calculator to make the conversions easier. Windows calculator has a Programmer option you can switch to so you can type in the numbers and display the binary version below it.

This is a typical class C IP address and subnet mask:

192.10.10.0
255.255.255.0

or
192.10.10.0/24 (/24 is the network prefix, telling us that the network portion is 24 bits long)

Say we need 14 subnets and 14 hosts.

First, break down the host portion into binary.

192.10.10.        0000 0000
255.255.255.    0000 0000

We have 8 host bits to work with.

Creating Subnets


To create the subnets, we need to borrow some bits from the host portion of the IP address. Starting with 2, the number of subnets double for each bit used. Borrow one bit, two subnets. Borrow 2 bits, 4 subnets, and so on.

We need 14 subnets, so we would borrow 4 host bits to have a sufficient amount of subnets. The formula for this is:

Number of Subnets = 2^s s=# of host bits used

2^4 = 16

This will leave 4 bits in the host portion of the IP address. I used a pipe to separate the host bits from the network bits, a little line if I'm doing it on paper.


 network             | host
192.10.10. 0000 | 0000

To create a custom subnet mask, we add up the binary values of the bits we used, starting from the left. We used the first four bits, so:

128    64    32    16
0       0       0       0
128+64+32+16 = 240

Resulting in a new subnet mask of 255.255.255.240.

Calculating # of hosts


We need 14 hosts. We have 4 host bits left to work with. The formula to calculate the number of hosts is:

2^h-2 h=# of host bits.

2^4-2 = 14 usable hosts (16 hosts total)

2 addresses are reserved for the network and broadcast addresses, so they can't be assigned to a host.

Figuring out the new Network Address


Here are the IP and subnet mask we have now after the calculations are done:

192.10.10.0
255.255.255.240

or
192.10.10.0/28

To get the network address, convert the decimal values to binary, and use ANDing to get the new numbers.

192.10.10.0 =         1100 0000 0000 1010 0000 1010 0000 0000
255.255.255.240 =     1111 1111 1111 1111 1111 1111 1111 0000


After the AND operation the network address is:

192.10.10.0

Be careful here, because it doesn't always turn out to be the same number. You have to do the AND operation to make sure. For a random example:

10.232.114.98 =         0000 1010 1110 1000 0111 0010 0110 0010
255.255.255.240 =     1111 1111 1111 1111 1111 1111 1111 0000
Network address =     0000 1010 1110 1000 0111 0010 0110 0000 = 10.232.114.96


Tricky.

Calculating addresses of all subnets

We just figured out the first network address, aka subnet 0. We have 16 subnets available to us. Add 16 to the host protion of each network address to get the next one.

192.10.10.0
192.10.10.16
192.10.10.32
192.10.10.48
192.10.10.64
192.10.10.80
192.10.10.96
192.10.10.112
192.10.10.128
192.10.10.144
192.10.10.160
192.10.10.176
192.10.10.192
192.10.10.208
192.10.10.224

192.10.10.240

If by chance you hit 255 or go over, you roll the extra bit into the 3rd octet, as in this example:

192.168.226.128
255.255.255.128
1st 192.168.226.129
last 192.168.226.254
broadcast 192.168.226.255
next 192.168.227.0 <--see what I did there?


Since 128+128=256, and the max octet size is 255, that extra bit rolls over into the previous octet, hence 192.168.227.0.


First, Last and Broadcast Addresses


Broadcast Address

Broadcast address is the highest address in the network range. The host portion is all 1s. We have 16 host addresses, starting with 192.10.10.0, so the highest address is 192.10.10.15.

Broadcast address 192.10.10.15

First Host Address


The First Host Address is always one greater than the Network address. The host portion is all 0s with a 1 in the last bit.

First host address 192.10.10.1 (0000 0001)

Last Host Address


The host portion of the Last Host Address is all 1s with a 0 at the end, one less than the Broadcast address.

Last Host address 192.10.10.14

In summary:
Network     192.10.10.0
First         192.10.10.1
Last         192.10.10.14
Broadcast     192.10.10.15


If you do the math for all the network addresses first, you can figure these out by looking at the list.

I hope I have that right. It seems if I don't do it for a day I have to teach myself all over again. It SUCKS. Some random person is going to let me know, eventually.