Networking - design proposal



I talked with the OC guys on IRC yesterday. We discussed both the Users and
the Networking tools, and how they can be made to scale well, from home users
to networks with thousands of clients.

I revised my opinions on certain issues. Here's my proposal for the
Networking tool.

Networking
----------

Earlier I wanted to make a hard distinction between permanent and transient
connections, by having transient connections in a "Telephony" tool. In
addition, I wanted an advanced "Firewall" tool that would allow a user to set
up routes and rules between the interfaces set up by Telephony and
Networking.

Now, after thinking this over, I decided that putting everything in
Networking wouldn't be so bad after all. And after reading Miguel's thoughts
on this today, I think we're on the same page.

I arrived at my conclusion by factoring the available components and how they
are combined to set up network interfaces. I see four major types of
components:

- Hardware devices; ethernet adapters, modems, ISDN cards, ADSL, what have
  you.

- Link configurations; one such config is a combination of IP addresses for
  host, gateway, network, etc - or how to obtain such information (e.g. DHCP).

- Accounts; an account is required for establishing many types of transient
  connections. This includes information like login, password and optional
  phone number.

- Routing configurations; assigning a routing/firewalling configuration to an
  interface allows it to filter and forward packets according to a ruleset.
  This ruleset is a routing configuration.

So, examples using these four building blocks:

modem + account                  = dialup interface
modem + account + link           = dialup interface with static IP
modem + account + routing        = dialup interface shared by LAN
modem + account + routing + link = dialup iface with static IP shared by LAN
ethernet + link                  = LAN interface
ethernet + link + routing        = Gateway interface for a LAN

I'm proposing four "pools" in the Networking frontend, one for each type of
component. The components can be combined like above to create complete
interfaces.

Also note that all combinations are not valid. Combining an account with an
ethernet adapter, for instance, doesn't mean anything in my knowledge. This
was originally my reason for splitting off transient (or account-driven)
interfaces in a separate tool.

Regarding (hiding) complexity, I suggest we use two complexity levels: Basic
lets you set up hardware, accounts and link configs, and advanced lets you
manipulate routing configs as well.

So how's this sound to you?

--
Hans Petter



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]