[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ICMP message for ingress filtering
Iljitsch,
Hi shimmers,
After a discussion about performing proxy shim operation and the
acceptability of NAT for that, it occurs to me that we never
actually solved the ingress filtering issue.
When a host connects to ISPs A and B and then sends a packet with a
source address from ISP A's address range out to ISP B, it's likely
that ISP B will drop the packet because it has an "invalid" source
address. Solving this in the general case is non-trivial, but I
think it should be possible to get us most of the way there with a
fairly simple mechanism: a new "source address prohibited" ICMP
message. Just like when a host receives a "destination unreachable"
message it tries a different destination address, receiving a
"source address prohibited" message would make the host try a
different source address.
In the last update to ICMPv6 RFC4443, we added a Code to the
Destination Unreachable ICMP error message:
5 - Source address failed ingress/egress policy
If the reason for the failure to deliver is that the packet with
this
source address is not allowed due to ingress or egress filtering
policies, the Code field is set to 5.
A code for Reject Routes was also added.
The intent was to solve the problem as you described. It, of course,
doesn't help with ICMP(v4).
Bob
Since this isn't a shim6- or even IPv6-specific issue (IPv4 hosts
can also have multiple addresses, it's just not all that common)
this would probably have to happen in the internet area working
group but I thought I'd ask for feedback from this wg first.
The reason this came up in regard to shim6 proxying is that if a
host behind such a proxy has ULA addresses or another address type
with similar properties, it would be necessary to perform NAT to
communicate with legacy IPv6 destinations. If you give the host
behind the proxy regular PA addresses on the other hand, you are
still largely bound by the limitations of those addresses.
Alternatively, we could give a proxied host both ULA-like
identifier addresses for use towards shim6-capable destinations and
regular PA addresses for use towards legacy destinations. RFC 3484
address selection should help select the right source address here,
but this isn't fool proof. So in case the host selects the wrong
type of address, the proxy could send back a "source address
prohibited" ICMP message and the host would retry with a different
source address.
It would be good to get this into host IPv6 stacks even if routers
won't support it immediately so that we can make use of this when
we create shim6 proxies.
An ICMP message like this would also be useful for sites that would
like to use ULA addressing for their internal network but regular
addresses for connectivity to the internet.