LoginSignup
12
0

More than 1 year has passed since last update.

Cisco SD-WAN DHCP-PD/NAT66

Last updated at Posted at 2021-12-11

はじめに

この記事は2021年Cisco Systems 合同会社 社員有志 による Advent Calendar の記事の一つです。

この記事の目的

CiscoSD-WAN OSバージョン17.7からサポートされたIPv6-DHCP-PD/NAT66機能を使ってSD-WANルータをIPv6環境で構築する基本設定を紹介します。この機能は主にLAN側のIPv6のVRFからWAN側のIPv6インターネット向けの通信を可能とするものです。同時に、ルータデュアル構成の際に必要となるコントローラとのコネクションをルータ間を透過させる機能、TLOC-ExtensionをIPv6環境下で行う際にも応用することができます。

目次

  1. 新機能
  2. 全体構成
  3. ルータシングル構成
  4. ルータデュアル構成
  5. 参考文献

新機能

DCHP-PD/NAT66機能はエッジルータのWAN側IPv6インタフェースとキャリアのDHCPv6サーバとのDHCP-PDのやりとりで取得したプレフィックス(/56ビットマスク等)の中から、動的に長いマスク長(/64ビットマスク等*1)のプレフィックスを作成します。
オリジナルのLAN側IPv6アドレスに対して、NAT66(IPv6-IPv6)を行う際にこの長いマスク長のアドレスを対応させて異なるVRF間の通信を可能とします。

スクリーンショット 2021-11-09 12.12.26.png

全体構成

スクリーンショット 2021-11-09 12.22.31.png

DHCPv6サーバのサンプルConfiguration

# DHCP PD Pool
ipv6 local pool PD0 2001:2:AAAA::/52 56
ipv6 local pool PD 2001:2:1111::/52 56
ipv6 local pool PD2 2001:2:2222::/52 56

# DHCP Pool
ipv6 dhcp pool TEST0
 prefix-delegation pool PD0 lifetime 120 60
 address prefix 2001:2:0:1::/64
ipv6 dhcp pool TEST1
 prefix-delegation pool PD lifetime 120 60
 address prefix 2001:2:1:1::/64
ipv6 dhcp pool TEST2
 prefix-delegation pool PD2 lifetime 120 60
 address prefix 2001:2:2:1::/64

# Interface Configuration
interface GigabitEthernet1
 ipv6 address 2001:2:0:1::1/64
 ipv6 enable
 ipv6 dhcp server TEST0 rapid-commit
interface GigabitEthernet2
 ipv6 address 2001:2:1:1::1/64
 ipv6 enable
 ipv6 dhcp server TEST rapid-commit
interface GigabitEthernet3
 ipv6 address 2001:2:2:1::1/64
 ipv6 enable
 ipv6 dhcp server TEST2 rapid-commit

ルータシングル構成

全体構成の下左側、ルータ一台構成での設定例を記載します。

ADD-ONテンプレート

DHCP-PD/NAT66設定はCLI-ADD-ONテンプレート内に記載してルータにアタッチしてください。

nat66 prefix inside {{ipv6-nat-inside-address}} outside prefix-from-provider vrf 10
nat66 route vrf 10 ::/0 global
interface GigabitEthernet2
 ipv6 dhcp client pd prefix-from-provider
 ipv6 dhcp client request vendor
 ipv6 nd ra suppress all

{{ipv6-nat-inside-address}}はルータ毎に変化させることができる変数として設定し、
実際のサンプルでは"FD00:1:1:1::/64"のLAN側IPv6プレフィックスを設定しています。

ステータス確認

各種ステータスの確認コマンドは以下の通りです。

C8KV-001#show nat66 prefix

Prefixes configured: 1

NAT66 Prefixes

Id: 9          Inside FD00:1:1:1::/64 Outside 2001:2:AAAA:1::/64 vrf 10

ルータのLAN側VRF10のアドレス"FD00:1:1:1::/64"と
DHCPv6サーバで指定されたPD-Pool(PD0)のアドレス"2001:2:AAAA:1::/64"とが対応していることがわかります。

C8KV-001#show nat66 statistics
NAT66 Statistics

Global Stats: enable count 1
   Packets translated (In -> Out)
      : 5
   Packets translated (Out -> In)
      : 5

IPv6のVRF間通信を行うとIN/OUTのカウンタがカウントアップします。

ルータデュアル構成

スクリーンショット 2021-11-10 9.05.24.png

ルータ二台構成でのTLOC-Extension構成を作成します。
SD-WANルータはコントローラとの接続を行う際に複数のインタフェースを使って接続することができます。二台構成の場合はルータ同士をSubインタフェースを使って接続しコントローラとの接続を中継し、同時にSD-WANのIPsecトンネルも中継することが可能となります。

ただし、これら通信のソースIPアドレスはルータ間に設定したアドレスがソースとなりますので、ルータ間アドレスは動的ルーティング等の環境下でない場合はルータ間プレフィックスの情報がWAN側に広報されません。この問題を回避するために通常IPv4では中継ルータのWAN側インタフェースでNATをすることで解決します。IPv6アドレス空間でも同じようにNAT66機能を使うことでアンダーレイのルーティングの問題を解決することができます。

ADD-ONテンプレートサンプル

nat66 prefix inside {{ipv6-nat-inside-address-tloc}} outside prefix-from-provider
nat66 prefix inside {{ipv6-nat-inside-address}} outside prefix-from-provider vrf 10
nat66 route vrf 10 ::/0 global
interface GigabitEthernet2
 ipv6 dhcp client pd prefix-from-provider
 ipv6 dhcp client request vendor
 ipv6 nd ra suppress all
sdwan
 interface GigabitEthernet2
  ipv6 access-list test in
 exit
policy
 ipv6 access-list test
  default-action accept
 !
policy-map type epbr ipv6_tloc_ext      
 class class-default        
  set ipv6 next-hop {{ipv6-next-hop}}   
 !      
!
interface GigabitEthernet4.{{tloc-recieve-vlan}}
 service-policy type epbr input ipv6_tloc_ext
  • nat66 prefix inside {{ipv6-nat-inside-address-tloc}} outside prefix-from-provider
    この設定で同一GlobalVRF間でのNAT66を行います。変数に設定するIPv6アドレスはルータ間のプレフィックスを指定してください。ルータ2号機場合は"fd00:4:1:1::/64"を隣のルータがトンネル接続のソースとなるVLANをプレフィックス設定します。ルータ3号機の場合は"FD00:3:1:1::/64"と逆になることに注意が必要です。

  • インタフェースのACL
    sdwan
    interface GigabitEthernet2
    ipv6 access-list test in
    exit
    policy
    ipv6 access-list test
    default-action accept
    !
    TLOC-Extensionで透過するIPv6通信を破棄しないためIPv6のACLを追加します。
    今回使用するソフトウェアバージョン上の制限であり、今後のバージョンでは必須設定ではなくなるように調整中です。

  • ePBR
    policy-map type epbr ipv6_tloc_ext
    class class-default
    set ipv6 next-hop {{ipv6-next-hop}}
    !
    interface GigabitEthernet4.tloc-recieve-vlan
    service-policy type epbr input ipv6_tloc_ext
    TLOC-Extensionで透過するIPv6接続パケットはIPv6のルーティングテーブルを参照しますが、
    Gi2及びGi4.100(2号機)/4.200(3号機)2つのインタフェースからIPv6デフォルトルートを取得しますので、ルータ間でのルートループとなってしまいます。このためTLOC受け側のインタフェースにPBRを行うことで強制的にWAN側に通信を透過させる設定を追加します。
    {{tloc-recieve-vlan}}に設定する値は2号機では200、3号機では100とこちらも逆転することに注意が必要です。
    {{ipv6-next-hop}}に設定する値はそれぞれのルータのGi2のデフォルトルートに対するNexthopを指定します。

ステータス確認(デュアルルータ)

まずはグローバルVRFでのNAT66の動作について確認していきます。

C8KV-002#sh nat66 prefix
Prefixes configured: 2
NAT66 Prefixes
Id: 7          Inside FD00:4:1:1::/64 Outside 2001:2:1111:100::/64 vrf default
Id: 8          Inside FD00:2:1:1::/64 Outside 2001:2:1111:101::/64 vrf 10

C8KV-003#show nat66 prefix
Prefixes configured: 2
NAT66 Prefixes
Id: 1          Inside FD00:3:1:1::/64 Outside 2001:2:2222::/64 vrf default
Id: 2          Inside FD00:2:1:1::/64 Outside 2001:2:2222:1::/64 vrf 10

Default(Global) VRF上にNAT66設定が行われており、
2号機のルータ間の「受け」側のVLANプレフィックスが内部アドレスに、外部アドレスにはDHCP-PDで取得した/52ビットマスクのうちから一つ”2001:2:1111:1: 100 ::/64"が自動選択されています。同時にLAN側VRF10に対しては”2001:2:1111: 101 ::/64”が使用されています。3号機についても同様です。

以降からはSD-WANコントローラとの接続およびIPsecトンネルの接続状況を確認していきます。

C8KV-002#sh ipv6 route
ND  ::/0 [2/0]
     via FE80::20C:29FF:FE20:2FC, GigabitEthernet2
     via FE80::20C:29FF:FE2D:95C4, GigabitEthernet4.100

C8KV-003#sh ipv6 route
ND  ::/0 [2/0]
     via FE80::20C:29FF:FE20:206, GigabitEthernet2
     via FE80::20C:29FF:FE80:154D, GigabitEthernet4.200

SD-WANルータの2つのWAN側トンネルインタフェース向けにそれぞれデフォルトルートを取得していることがわかります。ルータ間のインタフェースはTLOC送信元のトンネルインタフェースのアドレスとTLOC受信側のアドレスとに分けられますが、RAでデフォルトルートを受信するために、トンネルインタフェースのアドレスについてはアドレスをAutoにし、TLOC受信側のアドレスについてはアドレスを固定にすることでこのルーティングの状態を作っています。

C8KV-002#sh sdwan control connections
                                                                                       PEER                                          PEER                                          CONTROLLER
PEER    PEER PEER            SITE       DOMAIN PEER                                    PRIV  PEER                                    PUB                                           GROUP
TYPE    PROT SYSTEM IP       ID         ID     PRIVATE IP                              PORT  PUBLIC IP                               PORT  ORGANIZATION            LOCAL COLOR     PROXY STATE UPTIME      ID
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
vsmart  dtls 1.1.1.2         1000       1      2001:1:1:1::102                         12346 2001:1:1:1::102                         12346 EFTCPOCJP               gold            No    up     5:00:21:36 0
vsmart  dtls 1.1.1.2         1000       1      2001:1:1:1::102                         12346 2001:1:1:1::102                         12346 EFTCPOCJP               silver          No    up     3:22:28:09 0
vbond   dtls 0.0.0.0         0          0      2001:1:1:1::101                         12346 2001:1:1:1::101                         12346 EFTCPOCJP               gold            -     up     5:00:21:36 0
vbond   dtls 0.0.0.0         0          0      2001:1:1:1::101                         12346 2001:1:1:1::101                         12346 EFTCPOCJP               silver          -     up     3:22:28:09 0
vmanage dtls 1.1.1.3         1000       0      2001:1:1:1::103                         12346 2001:1:1:1::103                         12346 EFTCPOCJP               gold            No    up     5:00:21:20 0

各LinkのカラーGold/Silverからコントローラへの接続が成功しているのがわかります。

C8KV-002#sh sdwan bfd sessions
                                      SOURCE TLOC      REMOTE TLOC                                      DST PUBLIC                      DST PUBLIC         DETECT      TX
SYSTEM IP        SITE ID  STATE       COLOR            COLOR            SOURCE IP                       IP                              PORT        ENCAP  MULTIPLIER  INTERVAL(msec  UPTIME          TRANSITIONS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5.1.1.1          1        up          gold             gold             2001:2:1:1:20c:29ff:fe80:1539   2001:2:0:1:20c:29ff:fe5d:7a8a   12346       ipsec  7           1000           10 5:00:15:18   2
5.1.1.1          1        up          silver           gold             fd00:3:1:1:20c:29ff:fe80:154d   2001:2:0:1:20c:29ff:fe5d:7a8a   12346       ipsec  7           1000           10 4:17:19:34   3

C8KV-003#sh sdwan bfd sessions
                                      SOURCE TLOC      REMOTE TLOC                                      DST PUBLIC                      DST PUBLIC         DETECT      TX
SYSTEM IP        SITE ID  STATE       COLOR            COLOR            SOURCE IP                       IP                              PORT        ENCAP  MULTIPLIER  INTERVAL(msec  UPTIME          TRANSITIONS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5.1.1.1          1        up          silver           gold             2001:2:2:1:20c:29ff:fe2d:95b0   2001:2:0:1:20c:29ff:fe5d:7a8a   12346       ipsec  7           1000           10 4:17:16:23   0
5.1.1.1          1        up          gold             gold             fd00:4:1:1:20c:29ff:fe2d:95c4   2001:2:0:1:20c:29ff:fe5d:7a8a   12346       ipsec  7           1000           10 4:17:16:22   0

各LinkのカラーGold/Silverからシングルルータ拠点へのIPsecトンネルが接続されていることがわかります。

C8KV-002#sh ipv6 route vrf 10
IPv6 Routing Table - 10 - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination
       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter
       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1
       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations
       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy
       lp - LISP publications, ls - LISP destinations-summary, a - Application
       m - OMP, Nd - Nat-Route DIA
m   FD00:1:1:1::/64 [251/0]
     via 5.1.1.1%default, Sdwan-system-intf%default
C   FD00:2:1:1::/64 [0/0]
     via GigabitEthernet3, directly connected
L   FD00:2:1:1::2/128 [0/0]
     via GigabitEthernet3, receive
L   FF00::/8 [0/0]
     via Null0, receive
C8KV-002#

C8KV-003#sh ipv6 route vrf 10
IPv6 Routing Table - 10 - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination
       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter
       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1
       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations
       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy
       lp - LISP publications, ls - LISP destinations-summary, a - Application
       m - OMP
m   FD00:1:1:1::/64 [251/0]
     via 5.1.1.1%default, Sdwan-system-intf%default
C   FD00:2:1:1::/64 [0/0]
     via GigabitEthernet3, directly connected
L   FD00:2:1:1::3/128 [0/0]
     via GigabitEthernet3, receive
L   FF00::/8 [0/0]
     via Null0, receive
C8KV-003#

最後にLAN側VRF10のIPv6ルーティングテーブルを確認します。mのOMPで取得した対抗拠点のFD00:1:1:1::/64のプレフィックスが表示されます。

参考文献

12
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
0