Is a libp2p node discoverable?

Is a libp2p node discoverable, or do I need the full ip/address/id combination in order to try to connect to it?

In other words, can any libp2p node try to connect to my node? If yes, can I require some information from the peer early on and try to limit being “bothered” by nodes which should not be part of my protocol?

I hope these questions make sense at all. Ideally my goal is that only nodes I know will connect to me and the other way around.