On 05/31/2016 09:52 AM, Hugo Slabbert wrote:
I'm not sure if you mean that, if sent through C it should have the source addres of A, or that it should actually be sent through A regardless of the routing table (which sounds better to me).
How is the latter better? What guarantees are there that the adjacent L3 device on R's interface A has a route for S [?]
Consider this scenario: .-------. ISP1ADDR/30 { D---|B R A|---------------[ ISP 1 ]---- { `---C---' { |(towards S) { S is someplace | { over this side .----F---. { ---|G R2 H|--------------*[ ISP 2 ]---- { `--------' ISP2ADDR/30 { In the asterisk there is BCP38 filtering which won't allow ISPADDR/30. The packet expired on R incoming from ISP 1. Under Randy's scenario, the TTL-exceeded packet would get dropped by ISP2. The only way for the packet to get through is to follow RFC 1812, or to send it back through A using A's address (this follows RFC 1812 4.3.2.4).
and if such a route exists that it doesn't simply point at R?
If the route points back to R, then R just forwards it using the routing table as with any packet. Best regards.