it is there any way to run a domain on my router instead of running dyndns or other alternatives (Dynamic DNS) etc. on tomato or dd-wrt firmware ?
DNSMasq & /etc/hosts
Take a look at these instructions from the dd-wrt website. The article is titled: DNSMasq Local Network. This method makes use of the routers
There is also this method discussed in this howtogeek.com article titled: How To Access Your Machines Using DNS Names with DD-WRT. With this method you're using the dd-wrt router's DHCP service to do 2 things for you.
One, it will force all the systems that lease IP's from it, to get your LAN's domain name. Second, you can use the router's DHCP server to act as your DNS server as well by adding all the hosts in your LAN to the DHCP table.
You're using DHCP, but you're using it to statically assign IP's to the same hosts whenever they join the domain.
Either method will do what you want.If I were you and you have a small domain, I'd go with the DHCP route first.