How to load balancing istio ingress gateway (Non GKE) with GCP load balancer

I think GKE is doing some Load Balancing/Networking magic.

istio-ingressgateway LoadBalancer 10.103.19.83 10.160.32.41 15021:30943/TCP,80:32609/TCP,443:30341/TCP,3306:30682/TCP,15443:30302/TCP
Which resulted in a TCP internal load balancer. The front end is ports 15021, 80, 443, 3306, and 15443.
The backend is basically the instance group of the cluster.
How does the load balancer know 443 at the front end will forward to 30341 at backend? As far as I know, TCP load balancer is doing port forwarding? How/Where does the magic happening

Context:

I am trying to use GCP to test a custom k8s distribution. But got stuck with load balancing istio ingress gateway.