In the following example, if a packet is sent to 10.255.255.255, it is replicated to destinations 10.0.0.1 and 10.0.0.2. Addresses 10.0.0.1 and 10.0.0.2 are the IP addresses of two other routers that are part of the tunnel network, but those addresses are their addresses in the underlying network, not the tunnel network. They would have tunnel addresses that are in network 10.0.0.0.
interface tunnel 0
ip address 10.0.0.3 255.0.0.0
ip nhrp map multicast 10.0.0.1
ip nhrp map multicast 10.0.0.2
sir, i don`t understad this example. please draw this example.
GRE will encapsulate Multicast and Broadcast packets and turn them in to Unicast packets destined for the far side of the tunnel. This is one of the ways we can actually get Routing Protocols to work over the tunnels, as they use Multicast to form neighbor relationships.
So, it’s important to keep in mind that the time you use this depends entirely on the type of underlying network between the devices. It even says so in the documentation you linked to. If you underlying network supports Multicast/Broadcast, you can just use Multipoint GRE and set tunnel endpoints (though you will need to do so manually for each endpoint). If it doesn’t, you need to use NHRP to map destination addresses on the underlying network with addresses on the tunnel network so we can forward the packets on.
DMVPN is all about automatically building tunnels for ease of setup. So while you can manually map items, it’s usually not the end goal.
As for your mapping of multicast, it’s very simple, that configuration says to send multicast packets to those two hosts. If configured on the say the HUB in DMVPN Phase-1, you’re saying you want to send Multicast to those two, but maybe not other devices on the network. Typically when setting up DMVPN on a spoke, you will configure multicast for the NHS Tunnel IP, and then have another mapping of the NHS Tunnel IP to the underlying network address. Typically on the HUB we map multicast to Dynamic, so that all spokes are forwarded Multicast packets.