On Dec 12, 2006, at 2:51 PM, Mohan Parthasarathy wrote:
In some implementations e.g., linux, to protect the traffic using
IPsec tunnel mode SA, traffic matching the selectors is given to
IPsec for protecting the traffic. IPsec is just another software
module that is neither visible as an interface nor in the routing
tables. By this it means that IPsec is not modeled as an interface
at all.
On Dec 12, 2006, at 3:38 PM, [EMAIL PROTECTED] wrote:
Let's start with a router. In order for a router to forward an
IPv6 packet, it has to send it through an IPv6 interface, hence,
somewhere between where the forwarding table is consulted and where
the packet hits the wire, there is an "IPv6 interface".
I think you guys are looking at two sides of one coin.
IPSEC maintains its security association between a source and a
destination IP address. As such, while one wants to call IPSEC before
handing the datagram to IP (whether v4 or v6), in doing so one must
predetermine which IP address will be used, which potentially implies
which interface the datagram will be sent from. This would be
consistent with RFC 1122's statement on page 62:
(B) A host MAY restrict itself to sending (non-source-
routed) IP datagrams only through the physical
interface that corresponds to the IP source address of
the datagrams.
Ideally, that means that first IPv6 has to decide which interface is
used by the route to the destination as a next hop interface, select
the source address from the interface, let IPSEC sign or encrypt the
message, add the IPv6 header, and then hand the datagram to the
device driver. In a purely layered sense, that is borderline bizarre.
So what I understand existing implementations to do is select an IP
address a priori (there often is only one interface, so selecting the
most global address available is an algorithm that always works), do
the IPSEC part, do the IPv6 part, and let IPv6 hand the thing to a
device driver. That's what Mohan is describing.
In a router, where IPSEC is usually in tunnel mode and one interface
is as good as another, the need for IPSEC use and the set of security
associations used on a given interface (eg, from that interface's
address) is an attribute used in forwarding the IP datagram. At the
point where IP is about to copy the link layer header onto the head
of the datagram, it asks what kind of link layer is in use. One kind
of "link layer" requires the addition of an IPSEC header, another IP
header, and a link layer header. That's what David is describing.
Mohan, any time a system, host or router, sends a datagram, it has to
account for having done so using the RFC 2863 Interface MIB, it has
to determine whether the ability to send datagrams is currently
administratively enabled. It derives ifIndex from the route entry
(see InetCidrRouteEntry in RFC 4292) that it uses to forward the
datagram, or from the IpDefaultRouterEntry described in RFC 4293.
This table is "the interface" from a management and configuration
perspective, and is found near whatever the software is dealing with
internally. This is what David is asking about.
Trust me, at least from the perspective of a network management
model, anywhere an IP datagram potentially leaves the box there is an
IPv6 interface. Internally, it's what tells you that "on this device,
when you send an IPv6 datagram to a given immediate neighbor, whether
router or host, you call <this> driver and do <this> with the datagram".
_______________________________________________
Gen-art mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/gen-art