Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Dec 2018 17:07:19 -0500
From:      Ernie Luzar <luzar722@gmail.com>
To:        Doug McIntyre <merlyn@geeks.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: sh code to determine if host is on lan
Message-ID:  <5C0AEF17.7070100@gmail.com>
In-Reply-To: <20181207195645.GA64030@geeks.org>
References:  <5C099F41.2020407@gmail.com> <5C09AB7B.4010001@gmail.com> <20181207011905.af7d5c29.freebsd@edvax.de> <5C09C491.1060803@gmail.com> <20181207195645.GA64030@geeks.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Doug McIntyre wrote:
> On Thu, Dec 06, 2018 at 07:53:37PM -0500, Ernie Luzar wrote:
>> Polytropon wrote:
>>> elOn Thu, 06 Dec 2018 16:06:35 -0700, JD wrote:
>>>> On 12/06/2018 03:14 PM, Ernie Luzar wrote:
>>>>> Hello list
>>>>>
>>>>> Know that "route -n get default" will give me the nic name of the 
>>>>> interface connected upstream. That "ifconfig nic" will give me the ip 
>>>>> address. That if that ip address is one of these ranges
>>>>> 192.168/16 or 172.16/12 or 10/8 then the host is on a lan.
> 
> Hmm, I thought my host here was on a LAN..
> 
> vmx0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>      inet 216.250.176.100 netmask 0xffffffe0 broadcast 216.250.176.127
>      inet6 2001:4980:2:dad::100 prefixlen 64
> 
> And this one too..
> bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>      inet6 2001:4980:0:1000:21e:c9ff:feb5:663a prefixlen 64 autoconf
>      inet6 2001:4980:0:ffff:21e:c9ff:feb5:663a prefixlen 64 autoconf
> 
> Are you sure your definition of "LAN" is the correct term?
> 
> What is it you are trying to determine?
> 
> 
> 
Like most ISPs my ISP doesn't provide ipv6 service. So not interested in 
it until it goes public nationwide.

Your 216.250.176.100 ipv4 address is public routeable. Looks like this 
machine is running vm and the freebsd os is configured as the gateway to 
the public internet. If it has a LAN behind it using ipv4 addresses, 
then this gateway is also running a firewall with NAT so the LAN nodes 
can reach the public internet.

I'm playing with 12.0-RC3 and vnet jails. Vnet jails come in two flavors 
based on the hosts network topography. The host is either the gateway or 
its a node on the lan. Lans use these reserved non-routeable ipv4 
address ranges for network communication. If the host's default ip 
address is in the range covered by one of theses 192.168/16 or 172.16/12 
or 10/8 ranges then the host is a node on a lan. That is what I am 
trying to determine in a sh script. I know that I can drill down through 
a few standard commands to capture the hosts external ipv4 address easy 
enough. But comparing it to the different ranges becomes a painful 
coding task.

I think I just figured out the simple method I was looking for. Just 
issue the whois command using the captured hosts external ipv4 address 
and interrogate the reply for "Private Use".

Thanks for every bodies replies.























Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5C0AEF17.7070100>