U odchozích spojení se zdrojová IP adresa vybírá podle nejspecifičtější routy. Pokud to spadne až na výchozí bránu, vybírá se brána podle pořadí, v jakém jsou zadané – buď první nebo poslední (nejlepší je si to vyzkoušet). Takže při stejném nastavení se to bude odesílat stále stejnou cestou – jediný zmatek by v tom mohlo udělat to, pokud by se rozhraní (po bootu) nastavovala asynchronně a pořadí, v jakém jsou zaregistrované routy na bránu, by tak bylo náhodné.
Lepší je ale použít pravidla (ip rule) a pomocí nich přesně specifikovat, která routovací tabulka se má kdy použít. V každé routovací tabulce pak budete mít jenom jednu výchozí bránu. Pak to můžete mít pevně v rukou a chování bude deterministické. Ale samozřejmě jste omezen tím, co máte k dispozici v pravidlech, tj. IP adresa cíle a myslím že i značky firewallu. Tj. pokud byste si představoval, že klient zavolá PHP skript na webu v určité doméně, PHP skript bude navazovat TCP/IP spojení ven a zvolí se jedna odchozí IP adresa, a stejný skript volaný na jiné doméně zvolí jinou IP adresu, musel byste potřebnou informaci dostat až na úroveň TCP/IP spojení, což by bylo dost obtížné. Daleko jednodušší bude v takovém případě zvolit odchozí IP adresu přímo v PHP při vytváření spojení.
Příchozí spojení neřešíte, tam správnou adresu v odpovědi zvolí sám operační systém. Pozor na to, že pokud máte více rozhraní, paket odejde rozhraním, které je vybrané podle routovací tabulky. Nemusí to tedy být stejné rozhraní, kterým přišel paket navazující spojení. Což může být problém, pokud jste za NATem nebo pokud síť, ke které jste připojen, má implementovánu kontrolu zdrojových IP adres.