So now that we've given an overview of SNMP,
let's take a few minutes and talk about the differences
between the three versions of SNMP.
First, we'll start off with SNMP v1, amazing that that's the first version,
I know.
It was formally introduced in 1988 with RFC's 1065 through 1068.
We're not going to read all the RFCs here in the course.
You're more than welcome to look them up if you need some good bedtime reading.
The version of SNMP v1 that was introduced in 1988 was
superseded in 1990 with RFCs 1155-1157.
SNMP v1 has very poor security.
Basically, there is no security built into the SNMP protocol itself,
it requires external security such as TLS or an IPSec tunnel.
The reason for the poor security is that SNMP v1 basically
transmits its community name in clear text.
Community name is a new term, it's basically a password.
It is the word or phrase that authenticates a network management
station to the network device and vice versa.
That's why I said you never want your SNMP community strings to get
out because then anyone can read or write to your devices on your
network and there are some basic ways to secure SNMP on your network
and we'll go over those both in this module and at the demo at the
very end of the course.
SNMP v2 was introduced with RFCs 1441 and 1452.
It adds functionality to the SNMP v1 protocol,
specifically the GetBulkRequest command.
We'll go over the different commands when we actually look at
SNMP packets at the end of this module.
It also added the security model because, again, SNMP v1 is very insecure.
Unfortunately,
that security model really wasn't accepted by the community at large for
much the same reason things like IPv6 hasn't been accepted by the community
at large despite being around for several years.
Network administrators just didn't want to worry with having
to learn a new security implementation.
So they came up with SNMP v2c,
which is the community version of SNMP with RFCs 1901 to 1908.
Basically,
it takes the added functionality of 64-bit counters and the
GetBulkRequest command without all that pesky security so it still
uses the community strings like SNMP v1.
On a modern network SNMP v2c is probably the most widely
deployed SNMP version for networks that use SNMP.
Modern versions of Windows servers, actually,
do not install SNMP by default, you have to specifically install it.
They prefer you to use WMI for management.
WMI is outside the scope of this course,
of course,
but you'll see that when we get to the installation
portion of SNMP elsewhere in this course.
You might ask since SNMP v1 and v2 are pretty much the same with
the exception of the GetBulkRequest command,
how interoperable are they?
The answer is they're not.
They are completely incompatible mainly because the UDP header
is different between v1 and v2 and the PDU,
the protocol data unit format, is different as well.
Again, we'll see this when we look at the packets towards the end of this module.
There are, of course,
some different SNMP operations that v2c supports that SNMP v1 does not,
and that's also another level of incompatibility.
So there are a couple of ways to work around this.
The first is a proxy agent where you make requests to an SNMP v2 device,
which then translates it to SNMP v1 and sends it off to the older devices.
Or more commonly,
you have a network management system that just supports both versions
and you have to tell the network management station,
hey that device is SNMP v1 and that device is SNMP v2 so that the
management station knows how to talk to those devices.
Now we move on to SNMP v3.
SNMP v3 is the newest of the protocols defined in RFCs 3411 through 3418.
The main difference between SNMP v2 and SNMP v3 is SNMP v3
introduced a very strong security model.
It encrypts the communication and requires identity verification
from both the sending and receiving station and it also has a
framework for a user-based security model.
So you can get away from community strings at all and just
have a username and password defined on the device that has
access to the device itself.
Other than this security model, it's functionally equivalent to SNMP v2 or v2c.
You're not getting any added functionality with SNMP v3 other than the security model that it brings inherent to the protocol.