rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

StrongSwan IKEv2 VPN接続とINTERNAL_DNS_DOMAIN設定

2019-02-02 17:51:33 | WZR-HP-G300NH

「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) ]
--------------------------------

この結果から、「VpnConnectionTriggerDnsConfiguration」で接続先DNS情報を設定しなくても「Split DNS」を利用できる事が確認できた。

----- 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」だけ設定するのが正解のようだ。
コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする