「Buffalo OpenWrt化WZR-HP-G300NHでIKEv2 VPN over ぷららIPv6 IPoE接続」が稼働した。iPhone(iOS 12.1.3)の構成ファイルで「Split DNS」が利用できる。
Windows10のIKEv2 VPN設定でも「PowerShell」から「VpnConnectionRoute」で「Split Tunneling」用経路設定が可能となり、「VpnConnectionTriggerDnsConfiguration」で「Split Dns」も利用できるようになった。
StrongSwanのIKEv2接続時の「Configuration Payload」で「INTERNAL_DNS_DOMAIN」を設定する事でiOS VPN設定アプリからも「Split DNS」 が利用できるようになった。
この設定値がWindows10のIKEv2 VPN設定に有効かどうか確認してみた。
StrongSwan設定
---=== /etc/ipsec.conf ===---
conn %default
keyexchange=ikev2
ike=aes256-sha256-modp1024
auto=add
left=%any
leftauth=pubkey
leftsubnet=192.168.0.0/20,2409:10:XXXX:YY00::/56,2404:1a8::/32
leftsendcert=always
leftcert=srv-pub.pem
leftid=@vpn.v6.AAAAAAAA.mydns.jp
right=%any
rightsourceip=192.168.13.0/24,2409:10:XXXX:YY20::13:0/120
rightdns=192.168.12.1,2409:10:XXXX:YY20::12:1
conn eap-id-pass
rightauth=eap-mschapv2
eap_identity=%any
conn pubcert-user10
rightauth=pubkey
rightid=someone@white.plala.or.jp
conn eap-tls-user100
rightauth=eap-tls
eap_identity=%any
rightid="C=JP, ST=TOKYO, O=FAMILYNAME, OU=FAMILY, CN=Firstname LASTNAME"
------------------------
---=== /etc/ipsec.secrets ===---
: RSA srv-key.pem "秘密鍵暗号化パスワード"
user1 : EAP "user1パスワード"
user2 : EAP "user2パスワード"
user3 : EAP "user3パスワード"
------------------------
--- /etc/strongswan.conf ---
charon {
load_modular = yes
plugins {
include strongswan.d/charon/*.conf
# INTERNAL_DNS_DOMAIN設定
attr {
25 = familyname,flets-east.jp
}
}
}
include strongswan.d/*.conf
--------
(1)Windows10のIKEv2 VPN設定名「test-ikev2-vpn」で作成
(2)PowerShellで「Split Tunnelling」の設定をする
windows10(OS build 17134.556)は、IKEv2接続時に「leftsubnet=192.168.0.0/20,2409:10:XXXX:YY00::/56,2404:1a8::/32」の情報を「Traffic Selector」で受け付けてくれない。
(3)iPhone6Sのテザリングでインターネットに接続し、「test-ikev2-vpn」でIKEv2 VPN接続を行う
(4)コマンドプロンプトからイントラネット内のFQDN名が解決できるか確認する
「nslookup ds216j.familyname」では、名前解決できない。
「ping -4 -c 1 ds216j.familyname」と「ping -6 -c ds216j.familyname」でアプリからFQDNの名前解決できる事を確認。
Windows10側へ送られた「INTERNAL_DNS_DOMAIN」情報。2ドメイン設定しているのでCP値(25)が2個生成され、送付されている。Windows10側からのCP値(25)の要求は無い。Windows10は、この情報を扱わないようだ。。。
------- 接続時のログ抜粋 --------
Sat Feb 2 14:49:13 2019 daemon.info : 15[IKE] CHILD_SA eap-id-passwd{1} established with SPIs c35775db_i a1d32b7c_o and TS 192.168.0.0/20 2404:1a8::/32 2409:10:XXXX:YY00::/56 === 192.168.13.1/32 2409:10:XXXX:YY20::13:1/128
Sat Feb 2 14:49:13 2019 authpriv.info : 15[IKE] CHILD_SA eap-id-passwd{1} established with SPIs c35775db_i a1d32b7c_o and TS 192.168.0.0/20 2404:1a8::/32 2409:10:XXXX:YY00::/56 === 192.168.13.1/32 2409:10:XXXX:YY20::13:1/128
Sat Feb 2 14:49:13 2019 daemon.info : 15[ENC] generating IKE_AUTH response 5 [ AUTH CPRP(ADDR ADDR6 (25) (25) DNS DNS6) SA TSi TSr N(AUTH_LFT) N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]
--------------------------------
----- 2019/2/2 追記 -----
Windows10は、「25 = familyname,flets-east.jp」で「INTERNAL_DNS_DOMAIN」を設定しなくても「rightdns=192.168.12.1,2409:10:XXXX:YY20::12:1」が設定されていれば、「Split DNS」機能を持つようだ。
受け取った「INTERNAL_DNS_DOMAIN」値を扱っているかは、不明(確認方法が?)。
----- 2019/2/4 追記 -----
「rightdns=192.168.12.1, 2409:10:XXXX:YY20::12:1」で設定されるDNS(dnsmasq)の設定を変更して「familyname」と「felts-east.jp」ドメインのFQDN名前解決だけ行うように設定し、「VpnConnectionTriggerDnsConfiguration」と「INTERNAL_DNS_DOMAIN」設定による「Split DNS」の状況を再確認してみた。
下記設定で「familyname」「felts-east.jp」ドメインだけFQDN名前解決する
dnsmasq
----- /etc/config/dhcp -----
config dnsmasq
option domainneeded '1'
option localise_queries '1'
option expandhosts '1'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option domain 'familyname'
option localservice '0'
option local '/local/'
option rebind_protection '0'
option boguspriv '0'
option nonwildcard '0'
list server '/familyname/192.168.11.250'
list server '/flets-east.jp/192.168.1.1'
----------
iPhone6SのWiFiテザリングでインターネットへ接続し、Windows 10 IKEv2 VPN接続を行う「INTERNAL_DNS_DOMAIN=familyname,flets-east.jp」設定 有/無
「SplitDNS(VpnConnectionTriggerDnsConfiguration)」設定 有/無
の4条件で接続テストを行ってみた。どの条件もインターネット上のFQDNは、インターネット用のDNSで名前解決。
「familyname」「felts-east.jp」ドメインのFQDNは、「rightdns」設定のDNSで名前解決。
Windows 10のIKEv2 VPNアプリ設定では、「rightdns」でDNSを指定すると「Split DNS」として扱われる。
「StrongSwan IKEv2 VPN over IPv6 with Win10 (Split DNS設定)」では、「rightdns」を指定せずに確認している。Windows 10の場合、「rightdns」を指定し、「Split Tunneling」だけ設定するのが正解のようだ。