I mean, there's not really a way to keep them secret, as soon as you use DNS. Also, it would be beneficial for network analysis to know the IPs of the nodes.
What's important is to keep a majority of full nodes private. By private, I mean that their IP (or their DNS name) shouldn't be publicly listed on the internet.
Why? Just to prevent attack on the tangle. Knowing many, or most of the full nodes is the open door to various kind of attacks.
Here is an example scenario :
- (no coordinator)
- X spends 1000 Giota to buy something to Alice (this is the "honest-tx")
- At the same time, X crafts another transaction spending the same 1000 Giota, but this time the beneficiary is another address owned by X (this is the "double-spend-tx").
- X makes the pow for both transactions (note that none of them is approving the other).
- X broadcasts only the "honest-tx" (and keeps the "double-spend-tx" for later use)
- after some time the "honest-tx" is approved by, let's say, 95% of the tips and with such approval ratio : Alice is confident that the transaction is valid... and it is !
- Normally, if X broadcasts the "double-spend-tx" to the network: A conflict is detected and the second transaction will not (never) be confirmed.
- Unfortunately for Alice, X knows the IP of each fullnode of the network and X owns a very descent computing power and bandwidth.
- X starts broadcasting all over the network zero value transactions approving the "double-spend-tx". (It's easier to do because X knows all fullnodes of the network)
- Nobody knows this "double-spend-tx", so fullnodes will start to ask to each other for it, and once X has broadcasted a huge amount of zero-value transaction, he finally broadcast the "double-spend-tx".
- The "double-spend-tx" is already approved by the flood of zero values transactions. We can imagine that the double spend is immediately more important than the "honest-tx" with Alice and the attack is successful.
You can imagine that the scenario described here is not so easy to put it in place (and something like analyzing neighbors activity and detecting suspicious behavior can prevent this kind of attack). But if X doesn't know a significant amount of fullnode addresses he can't even start to think to elaborate this scenario (because flooding the network if you only know a few entry-point is more difficult).
Perhaps this post by Come-from-Beyond is helpful:
Basic protocol assumes that IoT devices connect to peers in vicinity. By exchanging IPs privately humans mimick this behavior. Someone can write an extra plugin that allows to share IPs via the tangle though.