From owner-freebsd-net@freebsd.org Wed Mar 21 21:19:45 2018 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8EF26F6828B for ; Wed, 21 Mar 2018 21:19:45 +0000 (UTC) (envelope-from rfg@tristatelogic.com) Received: from outgoing.tristatelogic.com (segfault.tristatelogic.com [69.62.255.118]) by mx1.freebsd.org (Postfix) with ESMTP id 1C09968DA6 for ; Wed, 21 Mar 2018 21:19:44 +0000 (UTC) (envelope-from rfg@tristatelogic.com) Received: from segfault-nmh-helo.tristatelogic.com (localhost [127.0.0.1]) by segfault.tristatelogic.com (Postfix) with ESMTP id 940983AEF2 for ; Wed, 21 Mar 2018 14:19:43 -0700 (PDT) From: "Ronald F. Guilmette" To: FreeBSD Net Subject: Same host or different? How can you tell "over the wire"? Date: Wed, 21 Mar 2018 14:19:43 -0700 Message-ID: <4903.1521667183@segfault.tristatelogic.com> X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Mar 2018 21:19:45 -0000 This problem has been preplexing me for ages and ages. I looked at it again, just briefly, and re-read parts of some potentially relevant RFCs, just the other day, but frankly, I'm just too ignorant and/or too stupid to be able to think up a solution, so I'll just drop the problem description here and see if any of you more knowledgable people can devise or suggest a solution. The Problem: Suppose that there exist two IPv4 addresses, A and A'. Both addresses have the exact same set of ports open, and both respond in identical ways, at least at the application level, when sent identical inputs. In short, at the application layer level, at least, there appears to be no way to reliably differentiate between the case where the two IP addresses are being routed to a single common physical machine (or to a single common virtual OS instance) or to two separate physical machines (or two separate virtual OS instances). Is there any method which can be applied to A and A' over the Internet and which could reliably differentiate these two possible cases from one another (i.e. a single common host versus two separate hosts)? If any such method or mechanism exists, I would very much like to know all of the details thereof. Such a method, if one exists, would certainly have value in various types of forensic investigations. Regards, rfg P.S. It is my assumption that the kind of thing I'm looking for, if it exists at all, will be found somewhere below the application layer. I do not rule out however that there may be some way of differentiating the two cases described above by looking at application layer responses for some certain common applications. As far as I know however, it is not possible to make the desired differentiation on the basis of application layer responses for most typical network applications, e.g. various makes and model numbers of servers for HTTP, HTTPS, SMTP, SSH, DNS, etc. Of course, if I have simply missed something, and if there is in fact a way to differentiate the two cases on the basis of responses sent for any of these application protocols, then I sure would like to know about that too.