Seed nodes are nodes that generally have a high uptime and have had many connections to many other nodes. They are used by nodes that are first joining the network to get a list of other nodes to connect to. The DNS Seeders give out lists of seed nodes and there are also some hard coded fallback seed nodes in Bitcoin Core to be used if the DNS Seeders are unavailable.
It is important to note that nodes do not connect to seed nodes as a normal node. Rather they connect, request IP addresses of other nodes (using the getaddr message) and then disconnect. Nodes then connect to the nodes that were given in the addr message (the response to getaddr).
From what I understood
DNS seeders act as a watch tower constantly looking and recording the nodes that run Bitcoin client that has highup time and lots of connections.
So once a new node joins the network, it requests latest node list from the DNS nodes.
And if the DNS nodes failed to deliver the node list, there is a
fallback seed node list hard-coded into Bitcoin Client.
I am just trying to put it into simpler terms
So the fallback seed nodes are there for emergency use only.
And they have to be updated regularly over time. right?