As nobody else has posted this, I thought that I might.
The configuration as below is for IPv4 dynamic addressing as provided by most Internet Service Providers on ADSL or Cable connections.
I have tested the below on a BT FTTC connection which uses PPPoE over VDSL where the PPPoE interface has a dynamic address. The connection also has a routed /29 "behind" the PPPoE dynamic address. As the router has a static public address (from the /29) on its "internal" interface (which then connects to the firewall so the firewall has a public routable address) the he.net IPv6 tunnel is established from the "internal" interface so the IPv6 tunnel termination address does not change.
If you have any suggestions or improvements please let me know
In Global mode
ip ddns update method <method-name>
HTTP
add http://<f.q.d.n>:<password>@ipv4.dyn.dns.he.net/nic/update?hostname=<h>&myip=<a>
Then on the dynamic addressed interface (usually Dialer 1)
ip ddns update hostname <f.q.d.n>
ip ddns update <method-name> host ipv4.dyn.dns.he.net
<method-name> This is the name that you want to give the DDNS update, I usually use dyn.he.net
<f.q.d.n> This is fully qualified domain name that is configured for Dynamic DNS on the dns.he.net control panel
<password> This is the password for the fully qualified domain name that is configured for Dynamic DNS on the dns.he.net control panel
<h> This is an internal Cisco IOS variable for the hostname that it gets from the configuration on the interface
<a> This is an internal Cisco IOS variable for the dynamic address on the interface
Presuming that the method name is dyn.he.net, the hostname being used is router.domain.com and the password is SuperSecretPassword the completed command should look something like this
In Global mode
ip ddns update method dyn.he.net
HTTP
add http://router.domain.com:SuperSecretPassword@ipv4.dyn.dns.he.net/nic/update?hostname=<h>&myip=<a>
Then on the dynamic addressed interface (usually Dialer 1)
ip ddns update hostname router.domain.com
ip ddns update dyn.he.net host ipv4.dyn.dns.he.net
To enter a question mark <?> in IOS do ctrl+v then ? (press and hold ctrl press v, release both, press ?)