Re: hostname is being reset, killing net on reboot
On Friday, January 21, 2022 10:46:35 PM EST Greg Wooledge wrote:
> On Fri, Jan 21, 2022 at 09:34:35PM -0500, gene heskett wrote:
> > /etc/resolv.conf has:
> > search coyote.den
> > nameserver 192.168.xx.1
> >
> > the search line says to look in the /etc/hosts file, failing that,
> > the
> > nameserver line sends the dns lookup query to the router
>
> No, that's not correct.
>
> The config file that says "look in /etc/hosts first, then look in DNS
> next" is /etc/nsswitch.conf. Specifically, it's the line that begins
> with "hosts:" in that file.
>
> The "search" line in /etc/resolv.conf means "if I type ftp roadrunner,
> I want it to act as if I had typed ftp roadrunner.coyote.den".
>
> In other words, it's the default DNS search domain for looking up the
> *other computers* on your local area network.
>
> > However when I set hostname with hostname, the 169.bs stays out of
> > the
> > picture and networking works the world until a reboot.
>
> Well, yes. The "hostname" command sets the current hostname, which
> resides in memory only. It has no permanent effect.
>
> And it has nothing at all to do with IP addresses. Or DNS.
>
> > Setting the hostname with hostnamectl to the alias in /etc/hosts for
> > this machine, gets me exactly the same hostname but then the route
> > reported by "ip a" is the 169.bs.bs.bs and I can't get out of my
> > shirt pocket to even ping the router at 192.168.xx.1.
>
> Routing has nothing to do with your system's hostname. At all.
>
> At the most basic level, your system's default route is set by whatever
> mechanism sets up your network interfaces. On Debian, this can be any
> of *several* different pieces of software, depending on what's
> installed and what you've got in your config files.
>
> In the *most* basic possible configuration, your routing table will be
> one automatic entry for your ethernet interface (created from the IP
> address and netmask which are assigned to that interface), and then one
> "default" route which is assigned for reaching every host that's *not*
> part of your LAN.
>
> E.g. in /etc/network/interfaces you'd have something like this:
>
> auto enp2s0
>
> iface enp2s0 inet static
> address 192.168.1.21/24
> gateway 192.168.1.1
>
> This tells the "ifupdown" software package that you'd like it to manage
> the enp2s0 network interface, assigning the IP address 192.168.1.21
> with a 24-bit netmask, which automatically creates a route to the
> 192.168.1.0/24 network. In addition, it will create a default route
> via the 192.168.1.1 address.
>
> None of this has *anything* to do with your system's hostname.
>
> None of this has *anything* to do with your /etc/hosts file.
>
> None of this has *anything* to do with DNS.
>
> Of course, there are many other ways to configure network interfaces in
> Debian. You might be using Network-Manager, for example. Or
> systemd's systemd-networkd(8). Or you might be using
> /etc/network/interfaces but telling it to ask for configuration from
> DHCP.
>
> Also, by the way, "ip a" does not report routes. That's "ip r".
>
> unicorn:~$ ip r
> default via 10.0.0.1 dev lan0
> 10.0.0.0/24 dev lan0 proto kernel scope link src 10.0.0.7
>
> ------------------------------------
>
> You're probably still confused. Let's go over everything again, from
> the beginning.
>
> Your computer has a *network interface*. This interface has some kind
> of name. The names are very complicated and I don't want to introduce
> that particular piece of complexity here. Let's say that you've
> somehow managed to determine your interface's name. Let's say, for
> this example, that your interface's name is enp2s0.
>
> In order for your network interface to *work*, it has to be assigned an
> IP address and a netmask. This can come from DHCP, or it can come
> from files that you configure on your system.
>
> With an IP address and a netmask, you will be able to communicate with
> other computers on your *local area network*, by using their IP
> addresses.
>
> If you have a default route, then you can potentially talk to computers
> *outside* of your LAN. This default route can come from DHCP, or from
> local files. E.g. with a properly configured default route, you will
> be able to run commands like "ping 8.8.8.8" and get responses.
>
> If you'd like to communicate with other computers by name instead of by
> IP addresses, you can either put their names and IP addresses in the
> /etc/hosts file (a simple text file), *or* you can configure your
> computer to use DNS.
>
> DNS is configured in the /etc/resolv.conf file. The most basic piece
> consists of "nameserver" lines which contain the IP addresses of DNS
> resolvers which will look up computer names for you. These nameservers
> can come from DHCP, or they can be configured in your local files.
>
> Your computer can also have a hostname. This is how your computer
> identifies itself when it logs things, so that you can tell which
> computer wrote which piece of the logfile. Your computer can be named
> whatever you like. Its name has meaning only to you. Other computers
> do not know what your hostname is, and they do not care.
>
> If you want other computers to be able to contact you by a name, then
> you add that name to DNS, *or* to the /etc/hosts files of those other
> computers. The name that you put in DNS or other machines' /etc/hosts
> files does *not* have to be the same as your hostname. Your hostname
> is private. It's what your computer calls itself. It's not what
> other computers call you.
>
> Your computer can also have a *list of search domains* for use in
> hostname lookups. This is typically something you'd only care about
> if you have a LAN with multiple computers on it, which all want to
> talk to each other. If you're just a single computer that's on the
> Internet, you *do not care* about this at all.
>
> The main purpose of a list of search domains is to save typing. Let's
> say you've got a LAN with hosts that are (publically) called
> "cat.coyote.den" and "dog.coyote.den". If you want to log into the
> first one, you could type "ssh cat.coyote.den". But that's a lot of
> typing. If you have "coyote.den" in your list of search domains, then
> you can simply type "ssh cat". The host resolver will try each of the
> domains in your search list, one by one, as suffixes, until one of
> them works.
>
> This list of search domains is configured in your local
> /etc/resolv.conf file. It can be a static entry, or it can come from
> DHCP.
>
> .
This is all well and good, Greg, but it still does NOT give a clue what
todo when the system picks a fictitious route out of its rear.
And that IS my squawk.
I did find a fix as posted earlier, but I doubt it will work under a pine
tree in Wash State where these two cards will get mailed to once I get a
realtime kernel installed and working. And I've got a v5.16.0-rc6-rt12,
downright bleeding edge to install tomorrow.
Cheers Greg, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
Reply to: