When one router sends Internet routing table to another, then all routes which are learned from IGP must be redistributed in BGP because maybe router which recieved table didn't start same IGP protocol, am I right?
Thank you in advance :)
Basically you decide which routes you will redistribute in BGP. If you want the other BGP router to make routing decisions for certain networks you should advertise them to it. And as long you know the from IGP you should redistribute them in BGP. But this has nothing to do with the IGP of the other BGP router.
No. Normally you don;t redistribute BGP to IGP. whole internet routing table is 650,000 routes, OSPF probably will fail after 20,000 routes, IS-IS will fail probably within 50-100K routes. EBGP routes get updated by BGP route as IBGP routes, IGP route are use for connectivity between BGP routes within the AS.
For example, external Route- 200.1.1.0/24 original from EBGP routerA with an IP address of 192.1.1.1. This route will get propagated via IBGP mesh within the AS. in IBGP mesh, each iBGP router will update each other directly for any locally originated route.
Assume Network ABC directly attached to IBGP router ABC. All other IBGP router will learn NETwork ABC is from router ABC since all routers are directly updated via IBGP from ROuterABC. if Router XYZ which learnt network ABC from RouterABC forward it to other IBGP, other IBGP will discovered it as loop cause other IBGP router are also directly updated by RouterABC. Thus routing loop is prevent via direct updating.
Let said ROuter-C a packet for destination 200.1.1.1 , it look up in his BGP routing table 200.1.1.0/24 exist. It next hop destination is 192.1.1.1. It will use it IGP protocol e.g OSPF to reach the next hop 192.1.1.1. Then it look at the forwarding interface for 192.1.1.1 and forward the packet to 200.1.1.1 .
192.1.1.1 probably will does not need to exist in external Internet, it may only existed inside the AS itself. One can also used Internal IP.