以下の手順では、手順 1 ~ 3 は「サーバ認証」をインポートすることを意図し、手順 4 ~ 5 は「クライアント認証」をインポートすることを意図しています。ユーザーは、いずれかまたは両方を有効にする適切な組み合わせを決定できます。
このセクションでは、トンネルの使用方法を示すいくつかの構成例を示します。
認証なし次の手順では、サーバ検証を行わずにトンネルの接続先を構成する方法について説明します。
switch(config)# grpctunnel destination 1.1.1.1 port 8000 target test1 type GNMI_GNOI use-vrf management
switch(config)# grpctunnel destination server.foo.com port 8000 target test2 type GNMI_GNOI use-vrf management
この例では、ユーザーは 2 つのトンネル接続先「1.1.1.1:8000」と「server.foo.com:8000」を、それぞれターゲット「test1」と「test2」として構成します。接続は、管理名前空間を介して開始されます。
サーバ認証あり次の手順では、サーバ検証を行ってトンネルの接続先を構成する方法について説明します。
次のコマンドを実行して、トラストポイントにサーバ証明書をインポートします。
switch(config)# crypto ca trustpoint tunnel_server_trustpoint switch(config-trustpoint)# crypto ca authenticate tunnel_server_trustpoint
input (cut & paste) CA certificate (chain) in PEM format; end the input with a line containing only END OF INPUT :
-----BEGIN CERTIFICATE-----
MIIC3TCCAcWgAwIBAgIJAO4xEeL+IrpuMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV
BAMMDHNqYy1hZHMtNjAxNDAeFw0yMjA1MjYwMDE4MzBaFw0zMjA1MjMwMDE4MzBa
MBcxFTATBgNVBAMMDHNqYy1hZHMtNjAxNDCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBALudrG824XmW/4+BNd632CT3x47akV0QfjwAU1xBDScpAw9brERO
YTLP9BxInbA+WAS+zGql6nmBoZxbqZZL/NVD8ltLKYJJxtDQHJkqdX2lURnMUFr2
9pyJQtuh/udq9hp8zGcEpbPayfIdHCnZqraWMLvk1W0mqAa7ek0iizIZNwKmU3oR
7CGQOxi8aMsAfH5iBsRTNURFdaXdJYTOjry0il+jBKT21F2Z3vGcB7ddTt+I7qrd GjJs4BI4a22Y3usYb/dnsEa0ZCFTFIq6Y2Pwc3DOuKalUhujSqisqfMDuqC34ATw kWwLnHDWVu0iVaWndy3uvQZKDNv/bIIuoo8CAwEAAaMsMCowFwYDVR0RBBAwDoIM c2pjLWFkcy02MDE0MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB AIjNgq/paYfPtHDe9PlZKzrmGz+UlUAx8saj2WHtrKgBj48J6fYvz1yTPWLKMPct
/5y+nhia6gRlV/navFcpiUUpQGpoZQnaa40/nkBMDvVxnTu6l9UC0WUAyTh2l7ec BriY8yq3elpQWHZS4KRNmBH8fuviAv4f0fzOAuNGeIuv7UGnfA8Ed/q/Z3frQxOI qNXr3vBBTptYTLwdrRM0axagL6waZgZyTFfFHpIXBPEtsXKb/5GuP4+nqXvtfkfe d6P9jA4BKA/e6Gu6NAR0JMOdmJeEFjMbg+uu8jghcRTcwRsGeb9DqPUL+5IsVg3a dKMaZxyQFiRz0LyTqQtZmE0= -----END CERTIFICATE-----
END OF INPUT
Fingerprint(s): SHA1 Fingerprint=D4:9D:79:5B:8B:38:D6:50:6D:46:89:A8:C4:41:AB:
C9:D9:9F:D1:66
Do you accept this certificate? [yes/no]:yes
その後、次のコマンドを実行して、トンネルの接続先を構成します。
また、show コマンドを使用して設定をディスプレイします。
switch(config)# grpctunnel destination 1.1.1.1 port 8000 target test1 type GNMI_GNOI use-vrf
management cert tunnel_server_trustpoint
switch(config)# show system internal dme running-config all dn sys/grpctunnel {
"grpctunnelInst": {
"attributes": {
"childAction": "",
"dn": "sys/grpctunnel",
"modTs": "2022-12-02T12:57:37.891+00:00",
"status": ""
},
"children": [
{
"grpctunnelTunnelMgr": {
"attributes": {
"childAction": "",
"dn": "sys/grpctunnel/tunnelmgr",
"modTs": "2022-12-02T12:57:37.891+00:00",
"status": ""
},
"children": [
{
"grpctunnelTunnel": {
"attributes": {
"cert": "tunnel_server_trustpoint",
"certClient": "",
"childAction": "", "dest": "1.1.1.1", "dn":
"sys/grpctunnel/tunnelmgr/tunnel-[1.1.1.1]-port-[8000]-target-[test1]-type-[GNMI_GNOI]-vrf-[management]",
"modTs": "2022-12-05T10:09:45.163+00:00",
"port": "8000",
"srcIf": "unspecified",
"status": "",
"targetId": "test1",
"targetType": "GNMI_GNOI",
"targetVrf": "",
"vrf": "management"
}
}
}
]
}
}
]
}
}
クライアント認証あり次の手順では、クライアント検証を行ってトンネルの接続先を構成する方法について説明します。
次の手順では、サーバ検証を行わずにトンネルの接続先を構成する方法について説明します。
switch(config)# crypto ca trustpoint tunnel_client_trustpoint
switch(config)# crypto ca import tunnel_client_trustpoint pkcs12 bootflash://ca.pfx test
その後、次のコマンドを実行して、トンネルの接続先を構成します。
また、show コマンドを使用して設定をディスプレイします。
switch(config)# grpctunnel destination 1.1.1.1 port 8000 target test1 type GNMI_GNOI use-vrf
management client-cert tunnel_client_trustpoint
switch(config)# show system internal dme running-config all dn sys/grpctunnel {
"grpctunnelInst": {
"attributes": {
"childAction": "",
"dn": "sys/grpctunnel",
"modTs": "2022-12-02T12:57:37.891+00:00",
"status": ""
},
"children": [
{
"grpctunnelTunnelMgr": {
"attributes": {
"childAction": "",
"dn": "sys/grpctunnel/tunnelmgr",
"modTs": "2022-12-02T12:57:37.891+00:00",
"status": ""
},
"children": [
{
"grpctunnelTunnel": {
"attributes": {
"cert": "",
"certClient": "tunnel_client_trustpoint ",
"childAction": "", "dest": "1.1.1.1", "dn":
"sys/grpctunnel/tunnelmgr/tunnel-[1.1.1.1]-port-[8000]-target-[test1]-type-[GNMI_GNOI]-vrf-[management]",
"modTs": "2022-12-05T10:09:45.163+00:00",
"port": "8000",
"srcIf": "unspecified",
"status": "",
"targetId": "test1",
"targetType": "GNMI_GNOI",
"targetVrf": "",
"vrf": "management"
}
}
}
]
}
}
]
}
}
VRF あり「use-vrf」と「target-vrf」構成を組み合わせると、導入の柔軟性は高くなりますが、混乱が生じる可能性もあります。
次の違いに留意してください。
次のシナリオの例を参照してください。
-
リモートトンネルサーバは、「管理」vrf を経由して到達可能です。スイッチがトンネル内の gNMI 接続を受信すると、スイッチは gnmi「管理」サーバに転送します。
grpctunnel destination server1 port 9000 target target2 type GNMI_GNOI vrf management
-
ローカル grpcエージェントがデフォルトの vrf で実行されている間、リモートトンネルサーバは「管理」vrfを経由して到達可能です。次の構成では、スイッチがトンネル内の gNMI 接続を受信すると、スイッチは gnmi 要求をデフォルト vrf
に送信します。
grpc use-vrf default
grpctunnel destination server1 port 9000 target target2 type GNMI_GNOI use-vrf management target-vrf default
-
リモートトンネルサーバとローカル grpc エージェントの両方が、デフォルトの vrf で実行されます。
grpc use-vrf default
grpctunnel destination server1 port 9000 target target2 type GNMI_GNOI use-vrf default
-
リモートトンネルサーバは「デフォルト」vrf を経由して到達可能ですが、ローカル grpc エージェントは「test」vrf で実行されています。次の構成では、スイッチがトンネル内の gNMI 接続を受信すると、スイッチは gnmi 要求を test
vrf に送信します。
grpc use-vrf test
grpctunnel destination server1 port 9000 target target2 type GNMI_GNOI vrf default local-vrf test
-
この場合、ローカル grpc エージェントが「abc」vrfで実行されている間、リモートトンネルサーバは「デフォルト」vrf を経由して到達可能です。次の構成では、スイッチがトンネル内の gNMI 接続を受信すると、スイッチは gnmi 要求を
test vrf に送信するため、接続は機能しません。これは前方参照として扱うことができます。grpc config を「grpc use-vrf test」に変更すると、接続は機能するようになります。
grpc use-vrf abc
grpctunnel destination server1 port 9000 target target2 type GNMI_GNOI vrf default local-vrf test