However it seems that with multiple xbox 360s, you are sharing the port forwards between the Xbox 360s.
Every xbox 360 should have its own mapping in the UPnP status page.
The reason I am asking is because we play often online in Halo 3 and everyone claims that "We never get host." Could this be the symptom of the multiple Xbox 360/UPnP thing?
What do you mean by "we never get host". I rarely play xbox 360 so put it in dumb terms as far as what you do to have that happen. Does this happen with one xbox 360 or just with multiple xbox 360 being on at the same time?
Also once the xbox 360 is off should there still be entries in the uPNP status menu for the xbox 360s that were on a few hours ago? In my case I still see entries in the upnp status from the night before.
Yep I have noticed this as well. The issue is xbox 360 never deletes the port mappings. I think it expects the router to just delete them after an inactive time period. However every other UPnP software or device always deletes the mappings. Xbox aldo doesn't check for an exisiting mapping either. Thats why I had to update miniupnpd so that if the port forwarding for the xbox was already there it didn't create a new one on a different port.
It is not a big deal the mappings are left in place, except for having that port always being forwarded. I think there is a menu choice in the xbox 360 so you can delete the mapping manually, however it might be easier to just restart the service.
EDIT: By the way I have enabled static ports.
Gald you edited your post and added that. That was the first thing I was going to recommend.