1 Reply
      Latest reply on Aug 16, 2019 4:24 PM by hong273
      hong273 Level 1 Level 1 (0 points)

        I developed a DNS-over-HTTPS client for iOS. It setup a full-tunnel mode with exclude all network(except my VPN interface subnet) to enable the resolver for all interface, and other traffic should pass through physical interface. The code run well in a 12.1.4 iPhone and a 12.2 iPhone with wifi connection. But 12.2 iPhone with cellular connection, all ip packet pass through VPN interface.

         

        My code:

         

        let VPN_INTERFACE = "203.0.113.1"

        let VPN_NETWORK = "203.0.113.0"

        let VPN_MASK = "255.255.255.0"

        let VPN_DNS = "203.0.113.3"

        let VPN_EXCLUDEDROUTES = [

            NEIPv4Route(destinationAddress: "64.0.0.0", subnetMask: "192.0.0.0"),

            NEIPv4Route(destinationAddress: "32.0.0.0", subnetMask: "224.0.0.0"),

            NEIPv4Route(destinationAddress: "16.0.0.0", subnetMask: "240.0.0.0"),

            NEIPv4Route(destinationAddress: "8.0.0.0", subnetMask: "248.0.0.0"),

            NEIPv4Route(destinationAddress: "4.0.0.0", subnetMask: "252.0.0.0"),

        ......

            NEIPv4Route(destinationAddress: "203.0.112.0", subnetMask: "255.255.255.0")

        ]

        let ipv4Settings = NEIPv4Settings(addresses: [VPN_INTERFACE], subnetMasks: [VPN_MASK])

        ipv4Settings.includedRoutes = [NEIPv4Route.default()]

        ipv4Settings.excludedRoutes = VPN_EXCLUDEDROUTES

        ...

         

        Is anyone get the same problem? My cellular carrier is china telecom, Beijing.