Mam aplikację VPN, która programowo tworzy logiczny interfejs w OS X.
Po utworzeniu jest skonfigurowany z prywatnym adresem IP i parametrami, a tabela routingu jest odpowiednio aktualizowana.
Wstępnie przedstawiona „domyślna brama fizycznego interfejsu” zostaje usunięta. Programowo dodaje się „domyślną bramę interfejsu logicznego”.
Po pewnym czasie sam system Mac OS X aktualizuje tablicę routingu o „domyślną bramę fizycznego interfejsu” i wygląda to tak jak poniżej
Destination Gateway Flags Refs use Netif Expire
--------------------------------------------------------------------
default xxx.xx.x.x UGSc 1 0 en3
default yyy.yyy.y.y UGScI 1 0 en1
- en3: interfejs logiczny utworzony przez aplikację
- en1: interfejs fizyczny
Zgodnie z powyższymi pozycjami routingu cały ruch jest kierowany do interfejsu logicznego utworzonego przez aplikację. Jest to normalne w normalnych scenariuszach.
Wymaganie:
Muszę kierować tylko określone docelowe adresy IP przez interfejs logiczny. Cały pozostały ruch powinien być kierowany bezpośrednio przez interfejs fizyczny.
Napotkany problem:
Po dodaniu domyślnej trasy interfejsu logicznego cały ruch jest kierowany. Nie mam nad tym kontroli.
Nawet jeśli aplikacja nie może dodać trasy dla interfejsu logicznego, system Mac OS X aktualizuje tablicę routingu i ustawia domyślny tylko interfejs logiczny.
Dlatego nie jest w stanie spełnić tego wymagania.
Odpowiedzi:
Prawie wszyscy klienci i serwery VPN obsługują dzielone tunelowanie. Jest to prawie zawsze coś, co trzeba skonfigurować po stronie serwera, a nie po stronie klienta.
Jeśli kontrolujesz stronę serwera, zobacz Mac Pro: Podział ruchu sieciowego w zależności od miejsca docelowego
Jeśli nie, zobacz Routing całego ruchu z wyjątkiem kilku zakresów IP przez bramę domyślną w Mountain Lion
źródło