How does NAT allows internal extensions to register?

Hi , i have a doubt, recently on my freepbx all my extensions were not registering , my phones grandstream and yealink, were correctly configured and some extensions were just registered status ,but when i called and the person on the other extension answered i wasnt hearing any single voice , total silence , the problem was solved setting to all extensions te option Nat (yes) on freepbx and the all extensiones were registering sucessfully , the voice problem was solved reconfiguring some settings wtih line commands on my fortigate , but i need to know why do i have to allow Nat for my internal extensions? i tought that was only for external sip and iax2 extensions