Score:1

Mac OS built-in VPN client Routing Table issues (Cisco IPSEC)

um flag

I have a Macbook Big Sur 11.5.2 and I’ve spent now quite some on this particular issue but I cannot figure it out. I need some help from people that are more expert than me on the matter.

Background information

Where I’m currently living right now in a apartment complex there is a central internet network that I do not have access to these devices(Ubiquity). Lately I’ve been working a lot from home and sometimes I need to connect through VPN to clients networks to provide support. Most of the client’s VPN work fine from home except one. When I try to connect it basically times out. If I use my phone as a hotspot this VPN works perfect without any single issue at all. I tried at several other locations (outside my home network) and it works as expected.

The current situation

What I’m using to connect to this VPN is the Mac OS built-in VPN client. The VPN Type is Cisco IPSEC. So my work around to this problem was to tunnel this VPN over my wireguard VPN (wg) that I have installed outside this network. This wg tunnel works as expected. In order to check that the traffic is being routed properly I use wireshark to monitor and ofcourse I checked the mac os routing table (with netstat -nr). So when I connect to my wg I can see that the traffic easily tunnels through the wg.

The problem

When I try to connect Mac OS Built-in Cisco IPSEC VPN client instead of passing the traffic through the wg tunnel(utunX) it passes it through the regular WiFi interface(EN0). No matter what I tried it couldn’t get the traffic to pass through the tunnel. I added routes to the routing table (0.0.0.0/1 and 128.0.0.0/1) to pass make sure that all traffic passes there but the vpn client would not route through it. I tried to change the networkservice order and that did not help either.

Something noteworthy I noticed when I run a commercial VPN (that I own) and start the mac os built-in VPN client it does pass through the commercial VPN tunnel. I tried to mimic what I was seeing in the routing table from the commercial VPN but without success. But this shows that it is possible to route the client through a tunnel.

A snippet of routing table without wg:

Internet:
Destination        Gateway            Flags        Netif Expire
default            10.20.30.1         UGScg          en0
10.20.30/24        link#5             UCS            en0      !
10.20.30.1/32      link#5             UCS            en0      !
10.20.30.1         fc:ec:da:43:97:e5  UHLWIir        en0   1194

A snippet of the routing table WITH wg ON:

Internet:
Destination        Gateway            Flags        Netif Expire
default            link#14            UCSg         utun2
default            10.20.30.1         UGScIg         en0
1.1.1.1            link#14            UHW3Ig       utun2     36
9.9.9.9            link#14            UHWIig       utun2
10.6/24            10.6.0.2           UGSc         utun2
10.6.0.2           10.6.0.2           UH           utun2
10.20.30/24        link#5             UCS            en0      !
10.20.30.1/32      link#5             UCS            en0      !

A snippet of the routing table with Commercial VPN:

Destination        Gateway            Flags        Netif Expire
0/1                10.158.0.5         UGcg         utun2
default            10.20.30.1         UGScg          en0
default            10.20.30.1         UGScIg         en0
10                 10.20.30.1         UGSc           en0
10.20.30/24        link#5             UCS            en0      !
10.20.30.1/32      link#5             UCS            en0      !

I couldn’t figure out on the commercial vpn why there are same default destination (10.20.30.1) with different flags. I could not add a second default like that (or better said I don’t know how).

What else can I do (or what information should I provide here) for you guys to help me solve the problem?

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.