付録:ジュニパー EX スイッチとジュニパー AP によるフルスタック トポロジーの構築
このラボは、前回のラボ「 付録:3 つのスポークと 2 つのハブを備えたベース SD-WAN トポロジーの構築」の拡張です。VPN設定には触れないため、ハブの設定を変更する必要はありません。このラボに次の変更が追加されます。
- WANルーターに接続されたスイッチとAPを管理するための新しいネットワークを定義します。
- このネットワークは、すべてのサイトで
10.33.33.0/24同じIPアドレス範囲を持ちます。 - このIPアドレス範囲はVPNオーバーレイに伝播されません。
- このトラフィックは、WANルーターのローカルブレークアウトを使用して、管理するジュニパーMistクラウドに到達します。
- WAN ルーターには、接続されたデバイスにリースを配布するためのローカル DHCP サーバーがあります。
- スイッチポートが最初にアクセスモードになっているため、ネットワークはLANインターフェイスでネイティブである必要があります。
- このネットワークは、すべてのサイトで
- スポーク1では、スイッチへのダウンリンクとしてインターフェイス
ge-0/0/2を使用します。したがって、このブランチにはスイッチや接続されたAPへのリンクの冗長性要件がないことを想定しています。 - スポーク2では、スイッチへのダウンリンクとしてインターフェイス
ge-0/0/4とge-0/0/5を使用します。したがって、スイッチに向けてLACPを使用してLAGを構築し、冗長性とロードバランシングを実現して、スループットを向上させることができます。また、初期LAG設定なしでジュニパーMistクラウドに到達できるように、接続されたスイッチへのフォースアップと呼ばれる機能も利用しています。これについては、 分散支社/拠点 向けJVD EXシリーズに詳しく記載されています。 ジュニパーMistクラウドへのスイッチ管理 と、 LAGを使用する場合のフォースアップの利点の詳細については、こちらをご覧ください。
LAGでフォースアップを使用する場合は、セッションスマートルーターにファームウェア6.3.0以上を使用する必要があります。
管理ネットワークの作成
組織 -> ネットワークに移動します。最初のネットワークを次のように設定します。
- 名前=
MGMT - サブネットIPアドレス=
10.33.33.0(これはすべてのサイトで同じになります) - プレフィックス長=
24 - VLAN ID=
<default>/noneこれにより、スイッチへのトランク インターフェイス ダウンリンクでネイティブになるようになります。 - Mist Cloud=
Checked/Enabledへのアクセス。これは、接続されたデバイスを管理できるようにするために必須です。 - Overlay=
Unchecked/Disabled経由でアドバタイズされます。複数のサイトから同じIPアドレス範囲を通知することはできないため、これは必須です。
結果は次の図のようになります。
ダウンリンク1つでスポークのWANエッジテンプレートを拡張
組織 -> WAN Edge テンプレートに移動します。
インポートオプションを使用する場合は、 プロファイルのインポート をクリックし、以下のJSONをファイルとしてインポートします。
{
"dhcpd_config": {
"enabled": true,
"SPOKE-LAN1": {
"type": "local",
"ip_start": "{{SPOKE_LAN1_PFX}}.10",
"ip_end": "{{SPOKE_LAN1_PFX}}.250",
"gateway": "{{SPOKE_LAN1_PFX}}.1",
"dns_servers": [
"8.8.8.8",
"9.9.9.9"
],
"options": {},
"lease_time": 86400,
"fixed_bindings": {}
},
"MGMT": {
"type": "local",
"ip_start": "10.33.33.10",
"ip_end": "10.33.33.250",
"gateway": "10.33.33.1",
"dns_servers": [
"8.8.8.8",
"9.9.9.9"
],
"options": {},
"lease_time": 86400,
"fixed_bindings": {}
}
},
"ntpOverride": true,
"dnsOverride": true,
"service_policies": [
{
"name": "spoke-to-hub-dmz",
"tenants": [
"SPOKE-LAN1"
],
"services": [
"HUB1-LAN1",
"HUB2-LAN1"
],
"action": "allow",
"idp": {
"enabled": false
},
"path_preference": "VPN"
},
{
"name": "hub-dmz-to-spoke",
"tenants": [
"HUB1-LAN1",
"HUB2-LAN1"
],
"services": [
"SPOKE-LAN1"
],
"action": "allow",
"path_preference": "LAN",
"idp": {
"enabled": false
}
},
{
"name": "spoke-to-spoke-via-hub",
"tenants": [
"SPOKE-LAN1"
],
"services": [
"SPOKE-LAN1"
],
"action": "allow",
"idp": {
"enabled": false
},
"local_routing": true
},
{
"name": "mgmt-to-mist-cloud",
"tenants": [
"MGMT"
],
"services": [
"any"
],
"action": "allow",
"path_preference": "LBO",
"idp": {
"enabled": false
}
},
{
"tenants": [
"SPOKE-LAN1"
],
"services": [
"any"
],
"action": "allow",
"name": "internet-via-hub-cbo",
"idp": {
"enabled": false
},
"path_preference": "VPN"
}
],
"ip_configs": {
"SPOKE-LAN1": {
"type": "static",
"ip": "{{SPOKE_LAN1_PFX}}.1",
"netmask": "/24"
},
"MGMT": {
"type": "static",
"ip": "10.33.33.1"
}
},
"dns_servers": [
"8.8.8.8",
"9.9.9.9"
],
"port_config": {
"ge-0/0/0": {
"name": "INET",
"usage": "wan",
"wan_type": "broadband",
"aggregated": false,
"redundant": false,
"traffic_shaping": {
"enabled": false
},
"ip_config": {
"type": "dhcp"
},
"vpn_paths": {
"hub1-INET.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
},
"hub2-INET.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
}
}
},
"ge-0/0/1": {
"name": "MPLS",
"usage": "wan",
"wan_type": "broadband",
"aggregated": false,
"redundant": false,
"traffic_shaping": {
"enabled": false
},
"ip_config": {
"type": "static",
"ip": "{{WAN1_PFX}}.2",
"netmask": "/24",
"gateway": "{{WAN1_PFX}}.1"
},
"vpn_paths": {
"hub1-MPLS.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
},
"hub2-MPLS.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
}
}
},
"ge-0/0/2": {
"networks": [
"SPOKE-LAN1",
"MGMT"
],
"usage": "lan",
"aggregated": false,
"redundant": false,
"critical": false,
"disabled": false
}
},
"bgp_config": {},
"routing_policies": {},
"extra_routes": {},
"path_preferences": {
"VPN": {
"strategy": "weighted",
"paths": [
{
"name": "hub1-INET.OrgOverlay",
"cost": 10,
"type": "vpn"
},
{
"name": "hub2-INET.OrgOverlay",
"cost": 20,
"type": "vpn"
},
{
"name": "hub1-MPLS.OrgOverlay",
"cost": 30,
"type": "vpn"
},
{
"name": "hub2-MPLS.OrgOverlay",
"cost": 40,
"type": "vpn"
}
]
},
"LAN": {
"strategy": "ordered",
"paths": [
{
"type": "local",
"networks": [
"SPOKE-LAN1"
]
}
]
},
"LBO": {
"strategy": "ordered",
"paths": [
{
"name": "INET",
"type": "wan"
}
]
}
},
"ospf_areas": {},
"vrf_instances": {},
"tunnel_configs": {},
"oob_ip_config": {
"type": "dhcp",
"node1": {
"type": "dhcp"
}
},
"tunnel_provider_options": {
"jse": {},
"zscaler": {}
},
"ospf_config": {
"enabled": false,
"areas": {}
},
"type": "spoke",
"name": "Spokes"
}
ジュニパー Mistポータルですべてを手動で設定する場合は、以下の手順を使用します。
既存の「スポーク」テンプレートを以下の方法で変更して、追加の管理ネットワークを設定します。
WANインターフェイス設定は変更する必要がないため、下図のようになります。
LANセクションで、次のIP設定を追加する必要があります。
- ネットワーク=
MGMT - IPアドレス=
10.33.33.1 - プレフィックス長=24
次に、次の構成でこのネットワーク用に追加のDHCPサーバーを作成します。
- ネットワーク=
MGMT - DHCP=
Server - IP開始=
10.33.33.10 - IPエンド=
10.33.33.250 - ゲートウェイ=
10.33.33.1 - 最大リース時間=
86400 - DNSサーバー=
8.8.8.8, 9.9.9.9
その後、LANインターフェイスの設定を以下の設定に変更します。
- インターフェイス=
ge-0/0/2 - ネットワーク=
SPOKE1-LAN1 + MGMT - タグなしVLAN=
None
結果は次の図のようになります。
オーバーレイVPNの一部である必要がないため、管理ネットワークのローカルブレイクアウト用に追加のトラフィックステアリングプロファイルを設定する必要があります。以下の設定でトラフィックステアリングルールを追加します。
- 名前=
LBO - 戦略=
Ordered - パス
- パス1タイプ=
WAN: INET
- パス1タイプ=
結果は次の図のようになります。
以下のアプリケーションポリシーを挿入します。
- 数=
4- 名前=
mgmt-to-mist-cloud - ネットワーク=
MGMT - アクション=
Pass - アプリケーション=
any - トラフィックステアリング=
LBO
- 名前=
結果は次の図のようになります。
変更を 保存 します。
スイッチに向かってLAGがあるスポークのWANエッジテンプレートを作成します
組織 -> WAN Edge テンプレートに移動します。
インポートオプションを使用する場合は、 プロファイルのインポート をクリックし、以下のJSONをファイルとしてインポートします。
{
"type": "spoke",
"dhcpd_config": {
"enabled": true,
"SPOKE-LAN1": {
"type": "local",
"ip_start": "{{SPOKE_LAN1_PFX}}.10",
"ip_end": "{{SPOKE_LAN1_PFX}}.250",
"gateway": "{{SPOKE_LAN1_PFX}}.1",
"dns_servers": [
"8.8.8.8",
"9.9.9.9"
],
"options": {},
"lease_time": 86400,
"fixed_bindings": {}
},
"MGMT": {
"type": "local",
"ip_start": "10.33.33.10",
"ip_end": "10.33.33.250",
"gateway": "10.33.33.1",
"dns_servers": [
"8.8.8.8",
"9.9.9.9"
],
"options": {},
"lease_time": 86400,
"fixed_bindings": {}
}
},
"ntpOverride": true,
"dnsOverride": true,
"service_policies": [
{
"name": "spoke-to-hub-dmz",
"tenants": [
"SPOKE-LAN1"
],
"services": [
"HUB1-LAN1",
"HUB2-LAN1"
],
"action": "allow",
"idp": {
"enabled": false
},
"path_preference": "VPN"
},
{
"name": "hub-dmz-to-spoke",
"tenants": [
"HUB1-LAN1",
"HUB2-LAN1"
],
"services": [
"SPOKE-LAN1"
],
"action": "allow",
"path_preference": "LAN",
"idp": {
"enabled": false
}
},
{
"name": "spoke-to-spoke-via-hub",
"tenants": [
"SPOKE-LAN1"
],
"services": [
"SPOKE-LAN1"
],
"action": "allow",
"idp": {
"enabled": false
},
"local_routing": true
},
{
"name": "mgmt-to-mist-cloud",
"tenants": [
"MGMT"
],
"services": [
"any"
],
"action": "allow",
"path_preference": "LBO",
"idp": {
"enabled": false
}
},
{
"tenants": [
"SPOKE-LAN1"
],
"services": [
"any"
],
"action": "allow",
"name": "internet-via-hub-cbo",
"idp": {
"enabled": false
},
"path_preference": "VPN"
}
],
"ip_configs": {
"SPOKE-LAN1": {
"type": "static",
"ip": "{{SPOKE_LAN1_PFX}}.1",
"netmask": "/24"
},
"MGMT": {
"type": "static",
"ip": "10.33.33.1"
}
},
"dns_servers": [
"8.8.8.8",
"9.9.9.9"
],
"port_config": {
"ge-0/0/0": {
"name": "INET",
"usage": "wan",
"wan_type": "broadband",
"aggregated": false,
"redundant": false,
"traffic_shaping": {
"enabled": false
},
"ip_config": {
"type": "dhcp"
},
"vpn_paths": {
"hub1-INET.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
},
"hub2-INET.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
}
}
},
"ge-0/0/1": {
"name": "MPLS",
"usage": "wan",
"wan_type": "broadband",
"aggregated": false,
"redundant": false,
"traffic_shaping": {
"enabled": false
},
"ip_config": {
"type": "static",
"ip": "{{WAN1_PFX}}.2",
"netmask": "/24",
"gateway": "{{WAN1_PFX}}.1"
},
"vpn_paths": {
"hub1-MPLS.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
},
"hub2-MPLS.OrgOverlay": {
"bfd_profile": "broadband",
"role": "spoke"
}
}
},
"ge-0/0/4,ge-0/0/5": {
"networks": [
"SPOKE-LAN1",
"MGMT"
],
"usage": "lan",
"aggregated": true,
"ae_disable_lacp": false,
"ae_lacp_force_up": true,
"ae_idx": "0",
"redundant": false,
"critical": false,
"disabled": false
}
},
"bgp_config": {},
"routing_policies": {},
"extra_routes": {},
"path_preferences": {
"VPN": {
"strategy": "weighted",
"paths": [
{
"name": "hub1-INET.OrgOverlay",
"cost": 10,
"type": "vpn"
},
{
"name": "hub2-INET.OrgOverlay",
"cost": 20,
"type": "vpn"
},
{
"name": "hub1-MPLS.OrgOverlay",
"cost": 30,
"type": "vpn"
},
{
"name": "hub2-MPLS.OrgOverlay",
"cost": 40,
"type": "vpn"
}
]
},
"LAN": {
"strategy": "ordered",
"paths": [
{
"type": "local",
"networks": [
"SPOKE-LAN1"
]
}
]
},
"LBO": {
"strategy": "ordered",
"paths": [
{
"name": "INET",
"type": "wan"
}
]
}
},
"ospf_areas": {},
"vrf_instances": {},
"tunnel_configs": {},
"oob_ip_config": {
"type": "dhcp",
"node1": {
"type": "dhcp"
}
},
"tunnel_provider_options": {
"jse": {},
"zscaler": {}
},
"ospf_config": {
"enabled": false,
"areas": {}
},
"name": "Spokes-with-LAN-LAG"
}
ジュニパー Mistポータルですべてを手動で設定する場合は、以下の手順を使用します。
このラボの前のセクションで変更済みの既存の「スポーク」テンプレートを複製し、新しいテンプレートに「Spokes-with-LAN-LAG」という名前を付けることをお勧めします。
次に、LANインターフェイスの設定を次の設定で変更するだけです。
- インターフェイス=
ge-0/0/4,ge-0/0/5 - ポートアグリゲーション=
Checked/Enabled- LACP=
Unchecked/Disabledを無効にする - 強制起動を有効にする=
Checked/Enabled - AEインデックス=
0
- LACP=
- ネットワーク=
SPOKE1-LAN1 + MGMT - タグなしVLAN=
None
変更を 保存 し、このテンプレートをspoke2-siteに適用します。
ネットワーク構成のテスト
これで構成をテストする準備ができました。スポーク 1 に単一のダウンリンク スポーク構成を設定し、スイッチにコンソール ケーブルを接続すると、以下を評価できます。
# ensure you ask for a new DHCP-Lease
root@switch1> restart dhcp-service
Junos Dynamic Host Configuration Protocol process started, pid 55092
#
# wait a few seconds
#
# review your routing table
root@switch1> show route
.
inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
Limit/Threshold: 32768/32768 destinations
+ = Active Route, - = Last Active, * = Both
.
0.0.0.0/0 *[Access-internal/12] 00:00:02, metric 0
> to 10.33.33.1 via irb.0
10.33.33.0/24 *[Direct/0] 00:00:02
> via irb.0
10.33.33.10/32 *[Local/0] 00:00:02
Local via irb.0
.
#
# review MAC-Table
root@switch1> show ethernet-switching table
.
MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC
GBP - group based policy)
.
Ethernet switching table : 2 entries, 2 learned
Routing instance : default-switch
Vlan MAC MAC Age GBP Logical NH RTR
name address flags Tag interface Index ID
default 90:ec:77:32:e4:8d D - ge-0/0/1.0 0 0
default d4:20:b0:01:46:81 D - ge-0/0/3.0 0 0
#
# review IP address via ARP from WAN-Router received from an interface
root@switch1> show arp no-resolve
MAC Address Address Interface Flags
90:ec:77:32:e4:8d 10.33.33.1 irb.0 [ge-0/0/1.0] none
#
# confirm DNS and internet access
root@switch1> ping www.google.com inet
PING www.google.com (172.217.12.100): 56 data bytes
64 bytes from 172.217.12.100: icmp_seq=0 ttl=110 time=13.557 ms
64 bytes from 172.217.12.100: icmp_seq=1 ttl=110 time=15.349 ms
64 bytes from 172.217.12.100: icmp_seq=2 ttl=110 time=15.361 ms
^C
#
# review LLDP Neighbors
root@switch1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
ge-0/0/1 - 90:ec:77:32:e4:8d ge-0-2 spoke1
ge-0/0/3 - d4:20:b0:01:46:81 ETH0 d420b0014681
上記のテストは、スイッチがDHCPリースを取得しており、管理対象のジュニパー Mistクラウドでトラフィックを開始できることを示しています。EXシリーズスイッチをオンボーディングするための残りの手順については、JVD 分散支社/支社/拠点のEXシリーズで説明しています。 [Day 1]セクションで、以下の図に示すセクションを確認します。
スポーク2に設定された2つのダウンリンクとスイッチにコンソールケーブルを接続することで、以下を評価できます。
# ensure you ask for a new DHCP-Lease
root@switch1> restart dhcp-service
Junos Dynamic Host Configuration Protocol process started, pid 59162
#
# wait a few seconds
#
# review your routing table
root@switch1> show route
.
inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
Limit/Threshold: 32768/32768 destinations
+ = Active Route, - = Last Active, * = Both
.
0.0.0.0/0 *[Access-internal/12] 00:00:03, metric 0
> to 10.33.33.1 via irb.0
10.33.33.0/24 *[Direct/0] 00:00:03
> via irb.0
10.33.33.12/32 *[Local/0] 00:00:03
Local via irb.0
.
#
# review MAC-Table
root@switch1> show ethernet-switching table
MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC
GBP - group based policy)
.
Ethernet switching table : 3 entries, 3 learned
Routing instance : default-switch
Vlan MAC MAC Age GBP Logical NH RTR
name address flags Tag interface Index ID
default 90:ec:77:32:df:a5 D - ge-0/0/7.0 0 0
default d4:20:b0:01:46:bb D - ge-0/0/3.0 0 0
#
# review via ARP from WAN-Router received from an interface
MAC Address Address Interface Flags
90:ec:77:32:df:a5 10.33.33.1 irb.0 [ge-0/0/7.0] none
#
# confirm DNS and internet access
root@switch1> ping www.google.com inet
PING www.google.com (172.217.12.100): 56 data bytes
64 bytes from 172.217.12.100: icmp_seq=0 ttl=110 time=10.321 ms
64 bytes from 172.217.12.100: icmp_seq=1 ttl=110 time=16.570 ms
64 bytes from 172.217.12.100: icmp_seq=2 ttl=110 time=94.168 ms
^C
#
# review LLDP Neighbors
root@switch1> show lldp neighbors
Local Interface Parent Interface Chassis Id Port info System Name
ge-0/0/6 - 90:ec:77:32:df:a5 ge-0-4 spoke2
ge-0/0/7 - 90:ec:77:32:df:a6 ge-0-5 spoke2
ge-0/0/3 - d4:20:b0:01:46:bb ETH0 d420b00146bb
#
# in this factory state there should not be yet any LACP configuration
root@switch1> show lacp interfaces
warning: lacp subsystem not running - not needed by configuration.
このセクションでは、導入された変更が最小限であるため、トラフィック トポロジー テストを繰り返しません。テスト手順の詳細については、最初のトポロジーの「 ネットワーク構成のテスト 」セクションを参照してください。
これを実装した場合は、スポークとハブのLANネットワーク設定を変更して、以前デフォルトで行っていたように「Mist Cloudへのアクセス」を許可しないようにすることを検討してください。