|just tell if it is possible and what else do I need.|
Yes it's possible, even on dynamic IP. But of course it's better if you have a static one. You can "name" your IP by using dyndns.org or similar service.
Then install a DNS Server.
I once installed (tried) a few under windows. There are some free sotware for it, but I can't suggest which one is the best right now. If you use linux, I think most distros already have a DNS server inside.
On domain name configurations, you usually need to put primary & secondary DNS server address. So you still need to get the 2ndary DNS server (no point of creating 2 different hostname for 2 DNS server that points to the same IP).
There're also some free service for this (secondary DNS), but again I don't know which one is best right now (it was around 2 years ago, I was googling and reading forums).
ps: If it's just for the sake of education, then it's ok. But if you're going to host a real site, even if it's an unimportant homepage, then it's better to rent your space on a hosting company. Even for companies, unless the company is so big, international, etc., then it's better for them to put their servers on a hosting/datacenter company (dedicated or co-location) rather than buying the bandwidth and setting-up everything themselves.
Site of the Day