Broadcast pings.

Joe Shaw wrote:

I had a customers link go down because they were the target of a smurf
attack a few weeks ago, and when I was sniffing the link to find out what
was going on, I found tons of packets coming from root nameservers, .gov
sites, and other places. If I hadn't been at a terminal, I'd have done a
better job of logging them when it happened. As it stands, I just turned
off ICMP into my routers for a few hours and all was well. What I would
have given to have had a dedicated sniffer so I could have done a better
job of logging.

Although this could double the load on routers, I think this could still
be a valuable feature on the Internet, if all routers had it. There do
remain some technical problems with it that need to be worked out, but
I hope you can see what I am getting at, and maybe with that idea in mind
a way can be found to make this work.

When a packet arrives, take note of the interface and gateway it came from.
Check the route tables for where a reply to this packet could be delivered.
Don't choose only the best route, but compare where the packet came from
with all valid reply routes (except broad defaults larger than a certain
size that can be configured). If the packet came from where it is valid
to reply, then allow the packet to proceed. If not, then discard it (an
ICMP probably won't make it back to the right place anyway).

Those who are faking source addresses will have a tougher time when such
a feature in place throughout the net. At some point their packets are
being injected invalidly, and if the router there is doing this, it can
discard the attempt.

One problem could be in layer 3 switches which might have only the best
route. It would then not handle an asymmetric situation. Switch logic
would have to be extended to handle more than one return route if the switch
is to perform this chore.

Any other ideas on eliminating smurfing and spoofing and such?

Yes. Some of us call this 'unicast RPF'.

Your point is well taken. :wink:

- paul

Oh ghod... weren't you around, Phil, when _I_ got roundly trounced and
reviled as a clueless newbie about 3 months ago for alomst exactly the
same solution?

The outcome as I recall, was that the only practical thing to do was
ingress filtering at boundary routers, if they would.

Cheers,
-- jra

Actually, you want to check that it is reasonable for a packet with a
particular source address to arrive on a particular interface.

Packets from customers should only come from customer source addresses.
(input filter on the customer link)

Packets from you should only come from your IP space, or that which you
transit for others. (transmit filter at your borders)

All bad packets come from somewhere. All you can do is make sure they
can't come from your customers. You can also try not to send them on to
others.

    --Dean