Contents
1) まずは基本のコマンド
最小構成はこれでした:
ip local pool VPN_POOL 192.168.50.10-192.168.50.50 mask 255.255.255.0
意味:
VPN_POOL:プール名(あとでトンネルグループ④で参照)192.168.50.10-192.168.50.50:VPNクライアントに配るアドレス範囲mask 255.255.255.0:サブネットマスク(/24)
この範囲の中から、接続してきたクライアントに IP が 1つずつ割り当てられます。
2) IPプール設計の考え方(ここが一番大事)
2-1. 既存LANとの関係
パターンはざっくり2つです。
パターンA:社内LANと別のセグメントをVPN用に割り当てる(おすすめ)
例)
- 社内LAN:
192.168.10.0/24 - VPNクライアント:
192.168.50.0/24
ip local pool VPN_POOL 192.168.50.10-192.168.50.50 mask 255.255.255.0
この場合:
- 社内側ルータ/L3SW に
192.168.50.0/24宛の経路を「ASAに向ける」必要あり
(デフォルトゲートウェイが ASA なら不要な場合もあります)
パターンB:社内LANと同じセグメントの一部をVPN用にする
例)
- 社内LAN:
192.168.10.0/24 - VPN用:
192.168.10.200-192.168.10.220
ip local pool VPN_POOL 192.168.10.200-192.168.10.220 mask 255.255.255.0
この場合:
- 既存 DHCP サーバと アドレス競合しないように要調整
- L2的に ASA がそのセグメントに直接ぶら下がっている前提
- 少し設計をミスると IP 競合が起きやすいので、
可能ならパターンA(別セグメント)の方が安全です。
2-2. 同時接続数から必要数を決める
- 同時VPN接続を「最大20人」想定 → 余裕を見て 30〜40個程度
例:192.168.50.10-192.168.50.50なら 41個確保 - 今後増やす可能性があるなら、/24 1本確保しておき
はじめは一部のみ利用 → 後で拡張、というのもあり
2-3. NAT・ルーティングとの絡み(よくハマるポイント)
- 社内からVPNクライアントへの応答ルートがあるか?
→ パターンA(別セグメント)の場合、コア側に192.168.50.0/24のルートを ASA に向けておく - NAT免除が必要なことが多い
ASA でポリシーNATを使っていると、
VPNクライアント → 社内LAN のトラフィックが
「インターネット向けNAT」に引っかかってしまう事があります。 その場合、
「VPNプール ↔ 社内セグメント」の通信には NATを適用しない
というルール(no-NAT / NAT免除)を作る必要があります。 これは ASA の NAT 方式(旧式/NAT ルールの書き方)によってコマンドが違うので、
必要なら あなたのshow run natをもとに一緒に組み立てましょう。
3) 複数プールの使い分け例
社員用とベンダ用でプールを分ける構成も一般的です。
! 社員用
ip local pool EMP_POOL 192.168.50.10-192.168.50.100 mask 255.255.255.0
! ベンダ用
ip local pool VENDOR_POOL 192.168.60.10-192.168.60.50 mask 255.255.255.0
④のトンネルグループでそれぞれを紐付け:
tunnel-group EMP general-attributes
address-pool EMP_POOL
default-group-policy GP_EMP
tunnel-group VENDOR general-attributes
address-pool VENDOR_POOL
default-group-policy GP_VENDOR
4) IPv6プールの例(必要な場合だけ)
IPv6 も使う場合は ipv6 local pool を使います。
ipv6 local pool VPNV6_POOL 2001:db8:100::1 2001:db8:100::ffff prefix-length 64
2001:db8:100::/64内からアドレスを割り当て- これも④トンネルグループで紐づけ
5) 代わりに DHCP で配る方法もある(参考)
ASA ローカルプールではなく、社内の DHCP サーバで
アドレスを配ることもできます(DHCP リレー方式)。
ip local pool は定義しない
tunnel-group ANYCONNECT general-attributes
address-pool none
dhcp-server 192.168.10.10
ただし:
- DHCP側のスコープ設計
- Relay設定
- 調査時に“どこで止まっているか”を追いにくい
などの理由から、小規模では ローカルプールの方が分かりやすい です。
6) 設定後の確認コマンド
! プール定義の確認
show run ip local pool
! 実際にどのアドレスが払い出されているか
show vpn-sessiondb anyconnect
AnyConnect で接続後にクライアントで ipconfig を打ち、
「トンネルアダプタ」にプール範囲の IP がついていればOKです。