| === mast device === | === KLIPS-1 ipsec device === |
| Cleartext packets get routed to, and absorbed by, the mast device. | Cleartext packets get routed to, and absorbed by, the ipsec device. |
| The user MAY attach arbitrarily many tunnels1 to each mast device. | The user MAY attach arbitrarily many tunnels to each ipsec device. |
| Mast devices are logically independent of the system's raw2 devices. | Each ipsec device is wedded to a particular raw device; there must be exactly one ipsec device per raw device if crypto packets are to be sent or received via that raw device. |
| There is often no need for more than one mast device, but the user MAY create arbitrarily many mast devices (which may simplify the expression of security policy or routing). | The number of ipsec devices is fixed at the time the ipsec module is compiled. The default is four. |
| The mast device is designed to play nicely with routers. | Routing issues didn't receive much attention during the first-generation design process. |
Tangential Note: In some cases it is possible for the mast device to know what is happening at lower layers. For instance, if a local interface is unplugged from its PCMCIA slot we can know this with certainty. In contrast, in other cases it may be hard to get trustworthy information. ICMP messages are unauthenticated, so if we receive an ICMP message purportedly reporting a problem with a cryptotext packet, we don't know whether to trust it or not. This is a fundamental gap in the IPsec architecture (reference 10). We can't pretend the IPsec link is secure against a denial-of-service attack if it relies on raw-IP transport that is vulnerable. We need a consistent degree of protection.3) We choose to think of the IPsec tunnel as creating a "virtually private" link. The semantics of such links is fundamentally similar to the more-familiar raw-IP links, but each instance may differ in details such as: