насколько я понимаю, введение серых ip сделано для того, чтобы усложнить жизнь "качкам", тогда нафига делать проброс портов? если бы это было не так, то была бы отдельная услуга по выделению белого ip-адреса
>прога должна будет поддерживать UPnP
ну в мюТорренте есть такая хрень,в линуксовом aMule, ещё где-то, но далеко не везде. скажем, в qip 8070 такой настройки не обнаружил