Lab – VXLAN
Bài thực hành này mô tả cách thức mạng overlay xử lý các loại lưu lượng thuộc về nhóm broadcast/unknow-unicast/multicast. Nhóm lưu lượng này còn gọi là BUM.
Với các lưu lượng trong nhóm BUM này sẽ phải được xử lý và gửi thông qua nhiều trạm VTEP.
Để xác định được tất cả các VTEPs nào cần phải xử lý các lưu lượng dạng này, mạng lưới các VTEPs sẽ xây dựng một cây multicast bao phủ các virtual network VN tương ứng. Ý tưởng cơ bản là mỗi mạng ảo virtual network VN sẽ là một multicast group trên tất cả các VTEPs liên quan.
Một cây Multicast (Multicast Tree) được xây dựng bằng cách sử dụng giao thức PIM. Các trạm VTEP sẽ tham gia vào cây multicast này. Mỗi VN sẽ có một địa chỉ nhóm multicast được gọi là Delivery Group (DG). Khi VTEP gửi 1 gói tin dạng non-unicast trên một VNI thông qua mạng Overlay, gói tin được đóng gói bên trong một VxLAN Header và được gửi đến địa chỉ multicast DG thay vì gửi đến 1 địa chỉ IP VTEP.Cũng nhắc lại rằng, trong trường hợp của lưu lượng unicast, lưu lượng này sẽ được gửi đến địa chỉ VTEP.
VxLAN đóng gói dữ liệu và xác định gửi đến DG để lấy đường đi trong Overlay Network thông qua sử dụng cây multicast đã được xây dựng dành cho DG. Bài thực hành này sử dụng PIM BIDIR. Router RP cho BIDIR group có thể là bất cứ router nào trong mạng lưới lớp 3 Overlay Network. Nhiều địa chỉ mạng ảo VNIs có thể sử dụng cho cùng một DG và do đó lưu lượng cho những VNI này được gửi thông qua Overlay Network sẽ sử dụng cùng cây PIM BIDIR. Thiết bị Cisco Nexus có thể hỗ trợ tối đa là 200 DGs trên 1 VTEP được gửi đi.
Bài Lab này được dựng trên lab ảo hoá sử dụng các qemu switch nexus nxosv9k-9.3.1, các IOL Router L3-ADVENTERPRISEK9-M-15.4-2T và các vPC.
Sau khi bật Switch Nexus lên thì switch khởi động lâu, tầm 4 -5 phút, sau khi khởi động xong ta thấy xuất hiện log như bên dưới thì chọn “yes”.
Switch sẽ tiếp tục chạy đến khi xuất hiện log như bên dưới. Hộp thoại này yêu cầu ta sử dụng mật khẩu có độ bảo mật cao, nếu chọn “yes” sẽ phải đặt mật khẩu phức tạp, nếu “no” thì chỉ cần đặt mật khẩu đơn giản. Nếu muốn bỏ qua không đặt mật khẩu thì chọn bất kỳ sau đó nhấn tổ hợp phím Ctrl + D
Sau đó đăng nhập vào switch bằng mật khẩu vừa đặt, nếu không đặt mật khẩu thì dòng mật khẩu để trống. Nếu không được thì thử với admin/admin
Một số lưu ý
- Trường hợp mở NXOS gặp boot loader chứ không vào được cấu hình thì thực hiện như sau:
Gõ dir để xem list file, trong đó có file nén hệ điều hành Nexus
loader > dir
bootflash::
.rpmstore
nxos.9.3.1.bin
.swtam
virtual-instance
virtual-instance.conf
virt_strg_pool_bf_vdc_1
scripts
Tìm trong các file thấy file .bin thì boot từ file đó ( trường hợp ở đây nxos.9.3.1.bin )
boot bootflash:nxos.9.3.1.bin
loader > boot bootflash:nxos.9.3.1.bin
Booting bootflash:nxos.9.3.1.bin
Trying diskboot
Filesystem type is ext2fs, partition type 0x83
- Note : Trong boot loader không cho tab, không cho nhấn mũi tên lên, không cho backspace ( gõ sai thì enter gõ lại )
TRÊN SWITCH NX01:
Tiến hành bật các feature ospf và pim trên switch nexus
Cấu hình tạo ospf 1
Ta tiến hành cấu hình RP address và gán ospf 1 vừa tạo lên các cổng.
Bật tính năng VxLan trên Nexus
Tiến hành tạo vlan 10 và int nve1, tạo vni 10000 cũng như ánh xạ vni này cho multicast-group 230.1.1.1
TRÊN SWITCH NX02:
Trên switch nexus NX02 ta thực hiện tương tự như NX01.
Đây sẽ là địa chỉ RP cho tất cả các multicast group, BIDIR là Bidirectional PIM
Trên 3 router R,R3 và R4, chúng ta thực hiện định tuyến ospf kết hợp multicast routing là pim với chế độ sparse mode.
TRÊN R3:
Thực hiện bật chế độ multicast routing trên router, và trên interface đấu nối giữa các router, chúng ta gán interface đó vào ip multicast group 230.1.1.1 thông qua giao thực IGMP với lệnh ip igmp join-group 230.1.1.1.
TRÊN R4:
TRÊN R1:
Cổng interface e0/0 của R chính là Rendezvous Point.
Trên 2 router biên là R3 và R4,thực hiện câu lệnh show ip pim neigbor để có thể xem các neigbor pim đã thiết lập định tuyến multicast.
Quay lại với switch nexus, chúng ta thực hiện các lệnh show nve vni, show nve peers và show mac address-table để kiểm tra xem vxlan đã hoạt động hay chưa.
Có thể thấy trên NX02 ta đã có thể thấy được địa chỉ loopback của NX01 là địa chỉ nve peers.( Lần đầu show sẽ không thấy, sau khi lấy PC1 ping qua PC2 show lại sẽ thấy)
Hai switch đã có thể thấy mac address của nhau trong mac address table.Thực hiện đặt ip và ping test giữa 2 pc thuộc 2 LAN của core switch NX01 và NX02. Hai PC được gán địa chỉ là 192.168.10 và 192.168.1.11.
Lưu ý: đặc điểm của vxlan là các host thuộc các vxlan không cần đặt gateway.
Chúng ta có thể thấy 2 PC trong 2 LAN đã có thể ping thấy nhau.
Lỗi thường mắc phải: vn-segment 10000 ( 4 số 0 )
Ping từ loopback nexus1 đến loopack nexus 2 không được ---> lên các con SW, Router Show ip route xem mạng đã hội tụ chưa.
Nếu show ip pim neighboor không thấy --> kiểm tra trên các con SW, Router đã gõ đầy đủ các dòng ip pim sparse-mode , ip igmp join-group , gõ đúng group ( 230.1.1.1)
- Sơ đồ
- Mô tả
Bài thực hành này mô tả cách thức mạng overlay xử lý các loại lưu lượng thuộc về nhóm broadcast/unknow-unicast/multicast. Nhóm lưu lượng này còn gọi là BUM.
Với các lưu lượng trong nhóm BUM này sẽ phải được xử lý và gửi thông qua nhiều trạm VTEP.
Để xác định được tất cả các VTEPs nào cần phải xử lý các lưu lượng dạng này, mạng lưới các VTEPs sẽ xây dựng một cây multicast bao phủ các virtual network VN tương ứng. Ý tưởng cơ bản là mỗi mạng ảo virtual network VN sẽ là một multicast group trên tất cả các VTEPs liên quan.
Một cây Multicast (Multicast Tree) được xây dựng bằng cách sử dụng giao thức PIM. Các trạm VTEP sẽ tham gia vào cây multicast này. Mỗi VN sẽ có một địa chỉ nhóm multicast được gọi là Delivery Group (DG). Khi VTEP gửi 1 gói tin dạng non-unicast trên một VNI thông qua mạng Overlay, gói tin được đóng gói bên trong một VxLAN Header và được gửi đến địa chỉ multicast DG thay vì gửi đến 1 địa chỉ IP VTEP.Cũng nhắc lại rằng, trong trường hợp của lưu lượng unicast, lưu lượng này sẽ được gửi đến địa chỉ VTEP.
VxLAN đóng gói dữ liệu và xác định gửi đến DG để lấy đường đi trong Overlay Network thông qua sử dụng cây multicast đã được xây dựng dành cho DG. Bài thực hành này sử dụng PIM BIDIR. Router RP cho BIDIR group có thể là bất cứ router nào trong mạng lưới lớp 3 Overlay Network. Nhiều địa chỉ mạng ảo VNIs có thể sử dụng cho cùng một DG và do đó lưu lượng cho những VNI này được gửi thông qua Overlay Network sẽ sử dụng cùng cây PIM BIDIR. Thiết bị Cisco Nexus có thể hỗ trợ tối đa là 200 DGs trên 1 VTEP được gửi đi.
Bài Lab này được dựng trên lab ảo hoá sử dụng các qemu switch nexus nxosv9k-9.3.1, các IOL Router L3-ADVENTERPRISEK9-M-15.4-2T và các vPC.
- Thực hiện
Sau khi bật Switch Nexus lên thì switch khởi động lâu, tầm 4 -5 phút, sau khi khởi động xong ta thấy xuất hiện log như bên dưới thì chọn “yes”.
| Abort Power On Auto Provisioning [yes - continue with normal setup, skip - bypass password and basic configuration, no - continue with Power On Auto Provisioning] (yes/skip/no)[no]: |
| Do you want to enforce secure password standard (yes/no) [y]: |
Một số lưu ý
- Trường hợp mở NXOS gặp boot loader chứ không vào được cấu hình thì thực hiện như sau:
Gõ dir để xem list file, trong đó có file nén hệ điều hành Nexus
loader > dir
bootflash::
.rpmstore
nxos.9.3.1.bin
.swtam
virtual-instance
virtual-instance.conf
virt_strg_pool_bf_vdc_1
scripts
Tìm trong các file thấy file .bin thì boot từ file đó ( trường hợp ở đây nxos.9.3.1.bin )
boot bootflash:nxos.9.3.1.bin
loader > boot bootflash:nxos.9.3.1.bin
Booting bootflash:nxos.9.3.1.bin
Trying diskboot
Filesystem type is ext2fs, partition type 0x83
- Note : Trong boot loader không cho tab, không cho nhấn mũi tên lên, không cho backspace ( gõ sai thì enter gõ lại )
TRÊN SWITCH NX01:
Tiến hành bật các feature ospf và pim trên switch nexus
| NX01(config)#feature ospf NX01(config)#feature pim |
| NX01(config)#router ospf 1 NX01(config-router)#router-id 100.100.100.1 |
| NX01(config)#ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4 bidir NX01(config)#int lo0 NX01(config-if)#ip add 100.100.100.1/32 NX01(config-if)#ip router ospf 1 area 0.0.0.0 NX01(config-if)#ip pim sparse-mode NX01(config)#int e2/1 NX01(config-if)#no switchport NX01(config-if)#ip add 20.1.1.1/30 NX01(config-if)#no shutdown NX01(config-if)#ip router ospf 1 area 0 NX01(config-if)#ip pim sparse-mode |
| NX01(config)#feature nv overlay NX01(config)#feature vn-segment-vlan-based |
| NX01(config)#int e2/2 NX01(config-if)#switchport NX01(config-if)#switchport access vlan 10 NX01(config-if)#no shut NX01(config)#int nve1 NX01(config-if-nve)#no shut NX01(config-if-nve)#source-interface lo0 NX01(config-if-nve)#member vni 10000 mcast-group 230.1.1.1 NX01(config)#vlan 10 NX01(config-vlan)#vn-segment 10000 |
Trên switch nexus NX02 ta thực hiện tương tự như NX01.
| NX02(config)#feature ospf NX02(config)#feature pim NX02(config)#router ospf 1 NX02(config-router)#router-id 100.100.100.2 |
| NX02(config)#ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4 bidir NX02(config)#int lo0 NX02(config-if)#ip add 100.100.100.2/32 NX02(config-if)#ip router ospf 1 area 0 NX02(config-if)#ip pim sparse-mode NX02(config)#interface e2/1 NX02(config-if)#no switchport NX02(config-if)#ip add 30.1.1.1/30 NX02(config-if)#no shutdown NX02(config-if)#ip router ospf 1 area 0 NX02(config-if)#ip pim sparse-mode NX02(config)#feature nv overlay NX02(config)#feature vn-segment-vlan-based NX02(config)#int e2/2 NX02(config-if)#switchport NX02(config-if)#switchport access vlan 10 NX02(config-if)#no shut NX02(config)#int nve1 NX02(config-if-nve)#no shut NX02(config-if-nve)#source-interface loopback 0 NX02(config-if-nve)# member vni 10000 mcast-group 230.1.1.1 NX02(config)#vlan 10 NX02(config-vlan)#vn-segment 10000 |
TRÊN R3:
Thực hiện bật chế độ multicast routing trên router, và trên interface đấu nối giữa các router, chúng ta gán interface đó vào ip multicast group 230.1.1.1 thông qua giao thực IGMP với lệnh ip igmp join-group 230.1.1.1.
| R3(config)#ip multicast-routing R3(config)#int e0/0 R3(config-if)#ip add 20.1.1.2 255.255.255.252 R3(config-if)#no shut R3(config-if)#ip ospf 1 area 0 R3(config-if)#ip pim sparse-mode R3(config)#router ospf 1 R3(config-router)#router-id 3.3.3.3 R3(config)#int e0/1 R3(config-if)#ip add 10.1.1.2 255.255.255.252 R3(config-if)#no shut R3(config-if)#ip pim sparse-mode R3(config-if)#ip ospf 1 area 0 R3(config-if)#ip igmp join-group 230.1.1.1 R3(config)#ip pim rp-address 10.1.1.1 |
| R4(config)#ip multicast-routing R4(config)#int e0/0 R4(config-if)#ip add 30.1.1.2 255.255.255.252 R4(config-if)#no shut R4(config-if)#ip ospf 1 area 0 R4(config-if)#ip pim sparse-mode R4(config)#router ospf 1 R4(config-router)#router-id 4.4.4.4 R4(config)#int e0/1 R4(config-if)#ip address 50.1.1.2 255.255.255.252 R4(config-if)#no shut R4(config-if)#ip ospf 1 area 0 R4(config-if)#ip pim sparse-mode R4(config-if)#ip igmp join-group 230.1.1.1 R4(config)#ip pim rp-address 10.1.1.1 |
Cổng interface e0/0 của R chính là Rendezvous Point.
| R1(config)#int e0/0 R1(config-if)#ip add 10.1.1.1 255.255.255.252 R1(config-if)#no shut R1(config)#int e0/1 R1(config-if)#ip add 50.1.1.1 255.255.255.252 R1(config-if)#no shut R1(config)#router ospf 1 R1(config-router)#router-id 1.1.1.1 R1(config)#int range e0/0-1 R1(config-if-range)#ip ospf 1 area 0 R1(config-if-range)#ip pim sparse-mode R1(config-if-range)#ip igmp join-group 230.1.1.1 R1(config)#ip pim rp-address 10.1.1.1 |
| R3#show ip pim neighbor PIM Neighbor Table Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority, P - Proxy Capable, S - State Refresh Capable, G - GenID Capable Neighbor Interface Uptime/Expires Ver DR Address Prio/Mode 20.1.1.1 Ethernet0/0 00:25:01/00:01:28 v2 1 / G 10.1.1.1 Ethernet0/1 00:26:47/00:01:31 v2 1 / S P G |
| R4#show ip pim neighbor PIM Neighbor Table Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority, P - Proxy Capable, S - State Refresh Capable, G - GenID Capable Neighbor Interface Uptime/Expires Ver DR Address Prio/Mode 30.1.1.1 Ethernet0/0 00:26:28/00:01:42 v2 1 / G 50.1.1.1 Ethernet0/1 00:28:12/00:01:37 v2 1 / S P G |
| NX02#show nve vni Codes: CP - Control Plane DP - Data Plane UC - Unconfigured SA - Suppress ARP SU - Suppress Unknown Unicast Interface VNI Multicast-group State Mode Type [BD/VRF] Flags --------- -------- ----------------- ----- ---- ---------------- nve1 10000 230.1.1.1 Up DP L2 [10] |
| NX02# show nve peers Interface Peer-IP State LearnType Uptime Router-Mac --------- --------------- ----- --------- -------- ------------ nve1 100.100.100.1 Down DP 00:03:13 n/a |
| NX01#show mac address-table Note: MAC table entries displayed are getting read from software. Use the 'hardware-age' keyword to get information related to 'Age' Legend: * - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC age - seconds since last seen,+ - primary entry using vPC Peer-Link, E - EVPN entry (T) - True, (F) - False , ~~~ - use 'hardware-age' keyword to retrieve age info VLAN/BD MAC Address Type age Secure NTFY Ports/SWID.SSID.LID ---------+-----------------+--------+---------+------+----+----- G - 5029.0001.002f static - F F sup-eth1(R) G 10 5029.0001.002f static - F F sup-eth1(R) |
| NX02# show mac address-table VLAN/BD MAC Address Type age Secure NTFY Ports/SWID.SSID.LID ---------+-----------------+--------+---------+------+----+------ G - 5029.0002.002f static - F F sup-eth1(R) G 10 5029.0002.002f static - F F sup-eth1(R) |
Lưu ý: đặc điểm của vxlan là các host thuộc các vxlan không cần đặt gateway.
Chúng ta có thể thấy 2 PC trong 2 LAN đã có thể ping thấy nhau.
Lỗi thường mắc phải: vn-segment 10000 ( 4 số 0 )
Ping từ loopback nexus1 đến loopack nexus 2 không được ---> lên các con SW, Router Show ip route xem mạng đã hội tụ chưa.
Nếu show ip pim neighboor không thấy --> kiểm tra trên các con SW, Router đã gõ đầy đủ các dòng ip pim sparse-mode , ip igmp join-group , gõ đúng group ( 230.1.1.1)