Local network address naming

Standard advice is not to fake up top-level-domains willy-nilly, such as the .home and .lan suffixes so commonly used, but some devices are already hard-configured to use non-standard ones and can't be be changed by you (such as some modem/routers).  And various established non-website domain name suffixes (listed below) aren't always suitable for your own use.  Some are designed for documentation use, or test use, and using them in some other way precludes you from using them for their intended purpose, and you mightn't want to use the suggested one.  Though there are two in the list that shouldn't be a problem to use.

Suffixes

These are some domain name suffixes that have been reserved for non-internet use.  That is, DNS registrars cannot issue them to anyone, and you can use them within your own internal network without having conflicts with existing services, or services that might come into existence in the future.

That is you can fake up a domain name and add one of these suffixes to it.

Predefined domain suffixes
Suffix Intended purpose
.example

Creating fake domain names that can be used in documentation without it creating a problem with a real domain name.  You might use things like fileserver.accounts.example and printer.frontdesk.example (likewise with the other suffixes in this table).

While not suffixes, example.com, example.net and example.org actually exist for the same reason (demonstration website addresses that can be safely used as examples in documentation).

.internal Intended for internal use within an organisation.
.invalid Creating a domain name that will fail for certain tests (e.g. blackholing purposes).
.local Used by self-autoconfiguring local name resolution systems, such as Bonjour, mDNS and ZeroConf.  Do not use .local for manual configuration of local addresses, there will be conflicts.
.localhost Possibly useable, although localhost (as just one word by itself without a dot) has a specific meaning that any and all devices use to refer to themselves (like you looking in the mirror and saying that's me).  You may find some systems don't handle something using .localhost as a suffix very well.
.test Creating a domain name for testing purposes, such as in a laboratory.

Out of those, .internal and .test are your best choices for safely faking up domain names for use within your LAN (e.g. printer.internal, fileserver.internal, or you could fake up a domain name like homenetwork.internal and prefix that with your individual device names, printer.homenetwork.internal).  You should be free to use these suffixes without any conflicts with existing domain names or services, nor ones that could come into existence in the future.

Using .internal for in-house networking gives uses a clear indication that someone is looking at an internal address (such as office documentation or internal mail), and can be used to easily stop internal information being externally accessible (outsiders can't connect to such addresses, filtering software can look for mentions of internal addresses and block them).

The .test suffix is suggested for testing purposes (e.g. isolated equipment under test in service shop, experiments in a laboratory, temporary changes to a network setting to test something, etc), making it easy to differentiate it from the rest of network or the outside world.

Linux has used .localdomain for as long as I can remember for this kind of purpose (internal local area network naming of addresses), and for dealing with software that insisted on having at least one dot in the domain name.  But it's not officially registered for this purpose, so there's no guarantee that it won't be a problem in the future.

People have used .home and .lan for similar reasons (faking up a local domainname that they can easily recognise as an internal address, and wanting something short to type), but they're not registered for reserved purposes and anything you fake up with them could come into use on the internet in the future.

Microsoft has used .mshome and .mshome.net for similar purposes as .local (automatic device network naming), but it has no official standing, and could cause problems.  It's out of your control, it isn't reserved against future use, avoid it.

Prefixes

If you have your own domain name, such as if you owned example.com, and run your own DNS server or edit your localhosts file(s), then you can completely avoid these naming conflict issues by creating any subdomains that you like with your domain name by adding a prefix to it (such as lan.example.com).

You're free to add prefixes to your own domain name, you own it.  You can do this within your internal network without causing any problems with your normal domain name used with the outside world (which would usually be example.com & www.example.com in this case).  Then put your device hostnames as another prefix before that, such as printer.lan.example.com, router.lan.example.com, et cetera.

You could actually not bother with a lan sub-domain, and just have printer.example.com, gamingpc.example.com, etc.  But having such a sub-domain can help keep internal and external networking completely separate and private.  And it can help with running an internal DNS server (for your LAN addresses) that won't conflict with a public DNS server handling your public internet addresses.

You can buy a domain name quite cheaply, and you do not have to buy an expensive website hosting service to go with it.  You can use the domain name for your own purposes in isolation.

Having said that, owning your own domain name has its advantages.  If you ever want a website, you can have it hosted by any service you like, anywhere, and your domain name just points to where it lives.  If the hosting service sours, you can move it to some other host, your website address stays the same.

And you can do the same thing with email.  You can have almost any email address you want associated with your domain name, hosted by any email service provider.  Never again will you be tied to some horrible internet service provider because you didn't want to lose your email address.  Even some of the large mail services, like Gmail, will let you use your own domain name with them.

Though you must bear in mind that if you buy a domain name, you're renting it, not owning it forever.  There is an on-going cost, and you have to remember to keep paying for it.  If you forget to renew it some cybersquatter will pounce on it, hoping they'll make money stealing all the traffic that used to go to you, or hoping you'll pay a ransom to get it back.  You may not care about that if you were only using it internally, but using the same domain name as one that exists on the WWW under someone else's control can cause you networking headaches.