From which IP address will the DNS request go ?(trying to understand how it works)

Test enviroment:
WS(192.168.141.151)—>
eth1(192.168.41.2)_LINUX_eth0(202.201.200.199)---->ISP(202.201.200.1)
eth2(192.168.43.2)|
In the Linux with 3 ethernet interfaces and installed bind.
default gateway is: 202.201.200.1
Server have 3 ethernet interfaces:
eth0: 202.201.200.199
eth1: 192.168.41.2
eth2: 192.168.43.2

bind is configured to listen for requests on :
127.0.0.1
192.168.41.2
192.168.43.2

bind forwards all received requests to the 8.8.8.8 server.

The "WS "workstation sends a DNS query (a-record asks the www.microsoft.com server) to the server 192.168.41.2.
BIND receives a request from WS and forms a request to the server 8.8.8.8.
BIND sends the generated request to 8.8.8.8.
The question is: What will be the source ip address of this packet before NAT changes it to 202.201.200.199
?
which one :
192.168.41.2
or
192.168.43.2
or
127.0.0.1
?

Serg

From the address determined by the best route to the destination server.

Linux have only 1 default gateway
default gateway is: 202.201.200.1
I did not add additional routing tables…

how, in the described case, linux will determine from which local IP to send a request?
What is the decision algorithm?

What will be the source ip address of this packet before NAT changes it to 202.201.200.199
?
which one :
192.168.41.2
or
192.168.43.2
or
127.0.0.1
?

There is no NAT here. The source address will be 202.201.200.199.

Realy ?
if bind listen only on:
127.0.0.1
192.168.41.2
192.168.43.2
sender ip address can be only one of these three… ( imho)

http://linux-ip.net/html/routing-saddr-selection.html

BIND receives a request from WS and forms a request to the server 8.8.8.8.
BIND sends the generated request to 8.8.8.8.
The question is: What will be the source ip address of this packet before NAT changes it to 202.201.200.199

I do not know if I understand you. When your own DNS server (the one running bind) sends a request to another DNS server, (in your case 8.8.8.8) because it does not know the answer, that is just a request. It will not tell 8.8.8.8 that it did so because client X asked him and he did not know. So the source is the address were bind sends out it’s request.