BGP - IGP-BGP redistribution best practices
In situations where an enterprise network interfaces with an ISP in which BGP is deployed at the network edge, there are some concepts that are considered best practice when performing redistribution between BGP and any IGP that may be running on the enterprise network.
Typically, it is best practice to create a default route at the network edge which should then be redistributed into the IGP and propagated throughout the network. Any routes within the enterprise network should not be advertised into BGP.
If NAT is being used at the network edge, BGP only needs to know about the outside routable addresses in order to be able to respond to request sent out by internal hosts that may be using private addresses. If you have internal routable addresses that must be reached from the Internet, then those routes should be known by BGP. However, those should not necessarily be redistributed from your internal IGP, but should be made known to the ISP so that they can arrange to route all traffic as needed.
Typically in scenarios where BGP is run at the network edge, IGP routes should not be redistributed into BGP. However, in implementations where BGP is run privately within an enterprise network, independently from the Internet using private ASes then there is more flexibility concerning redistribution into BGP, and how this is done will depend highly on the network design and the specific routing requirements.