scissor.com
scissor.com > about us > william pietri > writing samples

 

writing samples

No matter what stage of a project we are involved in, clear communication with the client is vital. Technical subjects are difficult to convey simply and accurately, but at Scissor we believe that it's always worth the extra effort to explain our efforts and the technology involved.

Below, you will find two detailed responses to TCP/IP networking questions, posted to Usenet . As you can imagine, we can't include work we have delivered to clients, but these should serve to demonstrate writing style and level of expertise..

The samples below cover these topics:

 

Here is the article on using one block of addresses for two offices:

Subject:      Re: DHCP and multiple subnets on the same side of the router.
From:         William Pietri
Date:         1996/10/12
Newsgroups:   comp.os.ms-Windows.nt.admin.networking




Carl F Wagner <CWagne01@mhci.com> wrote in article
<01bbb6f3$522cda80$1d1230cf@CFWagner95.mhci.com>...
> I have ONE valid Class C network.  I have two offices (Mobile and Atlanta)
> connected via T1 across Cisco routers.  Cisco routers will handle subnet
> zero.
>
> Using the subnet mask of 255.255.255.224 I can get seven subnets [0, 32,
> 64, 96, 128, 160 & 192] with 30 hosts each.  This yields 210 hosts as
> opposed to using the subnet mask 255.255.255.192 which would only yield
> 186.
>
> I have two DHCP servers in both offices currently handing out TWO private
> IP class C networks, one in each office.
>
> What I want to do is have the DHCP servers in Mobile serve out subnet 0,
> 32, 64, 96 & 128 and while Atlanta servers out 160 & 192.
> [...]
> Can I do what I have laid out above?  If so how do I do it?

You can, but, if I understand you correctly, there will be a couple of
problems.

You are talking as if the Mobile and Alabama offices have exactly one
physical Ethernet each. However, you've decided to break these two physical
networks into seven logical networks. When doing this, you must remember
that a packet must go through a router every time it passes from one
*logical* network to the other. This means that your office in Mobile will
end up with at big heap of unnecessary traffic unless you're very careful.

Let's consider an example: You have a lab of around 50 computers, a random
mix of servers and clients. In your example, you'd would have these broken
into two logical networks, x.y.z.64-95, and x.y.z.96-127. Suppose that a
client at address x.y.z.69 wants to talk to a server at x.y.z.104. Since
they are on the same physical Ethernet, you'd think that the client would
just send a packet addressed directly to the server. However, that's not
true!

What happens, more or less, is that the client uses its subnet mask
(255.255.255.224) and its address (x.y.z.69) to calculate its network
number, x.y.z.64. It realizes that the address x.y.z.104 is on a different
network, and all packets for different networks must be sent to a router.
So the client then sends a packet to the router on its logical network,
which then sends the packet right back out the same Ethernet port, but from
a different IP address, this time in the x.y.z.96 network. The final
result: two trips on the wire for the same packet, plus a trip through a
router that has better things to do.

The other problem comes when a machine starts up and tries to find out its
network number. I haven't looked at DHCP at a packet-sniffer level, but I'm
pretty sure it works the same as BOOTP, which I am familiar with.

Let's suppose that same client is booting up, and it broadcasts on the
network, asking in effect, "Who am I?" In a normal, one-subnet-per-LAN
environment, a machine listens for these requests and says, "Your IP
address is A and your subnet mask is B." If, however, you have several
subnets with at DHCP server each, then the servers race to answer, and the
client ends up in a random subnet.

The better way to do this is to make a one-to-one map between logical
subnets and physical subnets. In your situation, there are a few ways to
achieve your goals:

1) Break up your physical networks. If you get a router that handles
multiple Ethernet ports, you can have five subnets in Mobile and two in
Atlanta quite happily. This will also force you to group your clients and
servers cleverly, to minimize talk through the routers. (You can also use a
box with multiple Ethernet cards to achieve this.)

2) Make your logical networks fit the physical networks:

2a) Use variable subnet masks. In Mobile, for example, you can have the
subnet mask of 255.255.255.128 and use host numbers 0-127 there. This has
the added bonus of reducing IP addresses wasted by the extra broadcast
addresses you create when you break it up into smaller networks. (In
Atlanta, you would then use 255.255.255.192.)

2b) Get another class C. You can either request one from your ISP, or you
can use the ones set aside by the gods for machines that never need to talk
to the outside world directly. (This means machines that either don't talk
to the outside world, or talk to the world via a proxy.) For details on the
private IP addresses, see RFC 1918, "Address Allocation for Private
Internets," at http://www.internic.net/rfc/rfc1918.txt or at your favorite
local RFC archive.


Personally, I recommend doing all three; break your machines into groups
that mainly talk amongst themselves, assign them subnets of the right size,
and start using private subnets with proxies. Your networks will be faster
and tougher, and more secure as well. If you're only going to do one, make
it 2b; you'll have to do it eventually, and the earlier you make network
changes, the better. After all, the number of hosts rarely shrinks.

I hope that helps. If you reply to this in the newsgroups, please send me a
carbon copy via email, as I follow this group somewhat sporadically.

Regards,

William Pietri

 

Here is the article on breaking up a large block of IP addresses:

Subject:      Re: Creating exactly 7 subnet???
From:         William Pietri
Date:         1996/10/21
Newsgroups:   comp.os.ms-Windows.nt.admin.networking, [...]



Mehmet Guzeldere <mguzelde@electriciti.com> wrote in article
<3266A8F4.6D9B@electriciti.com>...
> Hi all,
> Lets say we have a Class B address and we want to divide in to
> exactly seven subnets.(I don't want to divide in to 14 or more subnets
> and use 7 of them, so subnet mask 255.255.240.0 or more is not
> aceptable)
> As far as specification goes, is this possible? If yes please tell me
> how you can do that.

The answer to your  question is 'no' if you mean by using the same subnet
mask for all subnets, and 'yes' if you use a few different ones.

However, it sounds like you're approaching things in the wrong way. You
should figure out how big your various subnets need to be, add plenty of
room for future growth, and then allocate subnets of the correct size. Then
leave the rest unallocated, so that you can add sites later without
disturbing your current IP address setup.

To make the example simpler, let's suppose that you have a class C address
and want to divide it up for seven sites: your main office, two branch
offices, and four home offices.

At your (hypothetical) main office, you currently have 20 addresses in use.
Allowing for growth, you could allocate a block of 64 addresses, or six
bits worth (2^6 = 64). At the branch offices, there are only a half-dozen
machines, so perhaps 16 addresses (or 4 bits) is a comfortable number. For
home offices, allocating blocks of eight (or 3 bits) is generally good.

Now that you know what kind of subnets you have, allocating addresses is
pretty straightforward. The only trick is to leave room for future
expansion. Here's how I'd do it:

site         range      subnet mask
---------------------------------------
main       000 - 063    255.255.255.192
reserved   064 - 127
branch1    128 - 143    255.255.255.240
reserved   144 - 159
branch2    160 - 175    255.255.255.240
reserved   176 - 191
home1      192 - 207    255.255.255.248
home2      208 - 215    255.255.255.248
home3      216 - 223    255.255.255.248
home4      224 - 231    255.255.255.248
reserved   232 - 255


A layout like this has several advantages over the common practice of using
the same subnet mask for all your subnets and allocating them all at once
or sequentially:

    Address space is used more efficiently. Since we're running out of
    IP addresses, that's important. In fact, that's the main reason to

    Expanding existing networks is easy. If, for example, branch2 grows
    grows to have 20 computers, you need only change the subnet mask
    to 255.255.255.224 and swallow up the adjacent block of reserved
    space. No renumbering required, and no need to fragment branch2
    into multiple logical networks.

    Adding new networks is easy. Find the smallest chunk of addresses
    suited to your needs and put it to use. Adding a new branch? The
    reserved space after branch1 fits nicely. Adding four? Then the
    large block of space from 64-127 might be a better choice.

    Routing tables end up less fragmented. If you lay things out
    right, adjacent networks will be going through the same routers.
    For the home sites, for example, you can tell your main router
    that addresses 192-255 should all be sent to the dial-in router;
    when you add a new home site, there's no need to update routing
    tables everywhere.

There are a couple of drawbacks and caveats, though:

    A scheme like this requires you to do a lot of thinking up front.
    However, this thinking about your network's future should be done
    now anyhow, so I don't consider this a big drawback.

    Subnet masks of different lengths require the network admin to
    really understand what is going on. Again, I think that this is
    true no matter what you do.

    With more subnets, you have more addresses in use as broadcast
    addresses, and therefore fewer to use for hosts. Of course,
    since more subnets means more efficient use of addresses, this
    setup should save more addresses than it costs.

    Supposedly, some routers have problems with mixed-length subnet
    masks. I've never run across one, but I've heard rumors. And
    it's certainly true that some older routing protocols don't
    understand them. Newer ones like EIGRP do, though. And in my
    experience, it hasn't been a problem.

Anyhow, if, as you say, you have an honest-to-InterNIC class B network and
you are murky on subnetting, I'd advise you to learn much more before you
actually divvy things up. With that many computers, changing your setup
after the fact is not a small amount of work, so you should make sure that
things are right the first time.

Regards,

William Pietri
copyright 1996-2008