Subject: myth: IETF cannot tell people how to run their networks

From: Keith Moore <[email-masked]>
Date: Wed, 12 Nov 2003 08:38:25 -0500

Tony keeps making statements like the one in the subject line of this 
message.  This message attempts to explain why such statements are not 
helpful generalizations.

IETF can, does, and should make various kinds of statements about how 
people run IP networks.  Most of the time, these take the form of 
constraints on how particular protocols operate, that are encoded in 
protocol specifications and are expected to be enforced by 
implementations of these protocols.  Sometimes, they take the form of 
operational rules, such as rules for assignment of IP addresses to 
hosts.  Neither kind of statement is inherently out-of-scope for IETF.

Among the kinds of statements that are appropriate for IETF to make are:

a. Rules that are necessary to ensure the reliable operation of your 
network, or reliable interoperation between your network and other 
networks.

We can't stop you from breaking these rules, but we can say that the 
reliable operation of your network, or interoperation between your 
network and other networks, cannot be assured if you break those rules. 
  In some cases, failure to adhere to these rules may result in your 
peers or access providers discontinuing that access.

b. Rules that are necessary to ensure reliable interoperation of 
applications over your network, or between your network and other 
networks.

We can't stop you from breaking these rules, but we can say that 
adherence to these rules is necessary to provide the services that 
applications rely on, and that Internet applications are designed and 
built on the assumption that these rules are followed.  Some 
applications are more sensitive to disruption of these rules than 
others, and some rules have more of an effect than others.  In some 
cases your traffic may be filtered and/or ignored by potential peers if 
you fail to adhere to application protocols.

c. Rules that are necessary to ensure future extensibility of network 
functionality, say to support self-configuring networks, mobile 
networks, automatic renumbering, increased security, etc.

We can't stop you from breaking these rules, but if you do break these 
rules you may find it difficult to support the new functionality once 
it is defined, and you may find that hosts and/or apps fail to 
interoperate over your network when those hosts and/or apps begin to 
support the new functionality.

d. Rules that are necessary to prevent harm or abuse, by or from your 
network or hosts to the rest of the network, or to preserve the public 
network's ability to support new kinds of applications.

We can't stop you from breaking these rules.  However in some cases 
where your network is actively observed to be harming others' networks 
(like supporting DoS attacks, spam relaying, or transmitting viruses) 
then this may be cause for your network's external access to be 
terminated by your peers or access providers.   And if networks 
(individually or collectively) degrade the internet's ability to 
support new applications then everyone gets less utility out of the 
network.

--

These categories are not mutually-exclusive; a rule may fall into one 
or more of the above categories.  There may exist valid reasons for 
imposing a rule other than those in the list above.

We may discourage the breaking of these rules by various means, 
including writing specifications for protocols that fail to 
operate/interoperate when one or more of those rules are broken, and/or 
by making detection of such rule violations mandatory-to-implement 
parts of standard specifications.  Our goal in doing so is to preserve 
essential functionality and extensibility of the network and to 
increase flexibility rather than to limit it.

Many people feel that it is appropriate to break one or more rules and 
accept corresponding limitations in operation of networks, hosts, or 
applications.  In some cases, particularly for small networks intended 
to support a very limited set of services or applications, such changes 
may be defensible.  However the designs of various aspects of the 
Internet core protocols, and the interactions between those protocols 
and applications, are widely varied and often quite subtle.  Within 
IETF, it has been frequently observed that detailed analysis and/or 
many different kinds of expertise are required to understand these 
interactions and the implications of changes to design assumptions.  It 
might be relatively easy for a network administrator to understand the 
effect of bending a rule for a network that supports, say, only a 
cluster of HTTP servers; it is much more difficult to understand the 
effect of bending a rule for a network that supports a diverse or 
sizable user community - particularly so since protocols change over 
time.  Also, there may be a desire to support new protocols that are 
more affected by the rule-bending than those supported earlier.

--

On the other hand, there are certain kinds of rules that IETF does not 
feel free to make.  For example:

a. We do not insist that you configure your network to admit or pass 
any particular kind of traffic from external networks, other than the 
traffic (e.g. routing protocols) necessary to facilitate such external 
connection as you choose to make.

b. We do not tell you what protocols you must run on your hosts that 
you connect to the network, except for those protocols that are 
necessary to provide network connectivity itself (e.g. neighbor 
discovery).  However some applications cannot tolerate arbitrary 
restrictions on connectivity between participating hosts; if you choose 
to run those applications you may need to make sure that  the 
participating hosts on your network can communicate with other hosts 
participating in that application.

c.  We will not insist that you subject your host or network to 
security threats beyond those inherent in supporting the protocols or 
services that you choose to support.

(there are probably more of these that we've implicitly adhered to but 
which I haven't thought of yet)

----
well, this started off as a quick one-off and ended up looking a lot 
like a draft document.  I'll probably turn it into an I-D in a few 
days.  Anyway, I hope that it facilitates more enlightening discussion 
than the "can't make rules about other people's networks!" "can too!" 
"can not!" "can too!" exchange.

comments welcome.

Keith

--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email-masked]
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------