
CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH
Triển khai Virtual Routing Instance (VRF-Lite)trên JCNR bằng Network Attachment Definition (NAD)
**Tổng quan: hãy đọc chủ đề này để hiểu cách triển khai các phiên bản định tuyến ảo (virtual routing instances) trong JCNR.
Các phiên bản định tuyến ảo cho phép quản trị viên chia router cloud-native thành nhiều router ảo độc lập, mỗi router có bảng định tuyến riêng. Việc chia một thiết bị thành nhiều phiên bản định tuyến ảo giúp cách ly lưu lượng truyền qua mạng mà không cần nhiều thiết bị vật lý để phân đoạn mạng. Bạn có thể sử dụng các phiên bản định tuyến ảo để cách ly lưu lượng của từng khách hàng trên mạng và gán các phiên bản cụ thể cho các giao diện mà khách hàng sở hữu. Công nghệ Virtual Routing and Forwarding (VRF) thường được sử dụng kết hợp với các subinterface lớp 3 (Layer 3 subinterfaces), cho phép phân biệt lưu lượng trên cùng một cổng vật lý và liên kết chúng với nhiều router ảo. Mỗi subinterface lớp 3 logic chỉ có thể thuộc về một phiên bản định tuyến duy nhất. Hãy tham khảo chủ đề Virtual Router Instances để biết thêm thông tin chi tiết.
Cấu hình
Bạn có thể tạo một phiên bản định tuyến ảo trong Cloud-Native Router thông qua một manifest định nghĩa Network Attachment Definition (NAD). Dưới đây là một ví dụ về NAD để tạo phiên bản định tuyến ảo "bluenet":
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: blue spec: config: '{ "cniVersion":"0.4.0", "name": "blue-net", "plugins": [ { "type": "jcnr", "args": { "instanceName": "bluenet", "instanceType": "virtual-router" }, "kubeConfig":"/root/.kube/config" } ] }' |
**Lưu ý rằng giá trị instanceType được đặt là virtual-router. Tham khảo phần Cloud-Native Router Use-Cases and Configuration Overview để biết thêm thông tin về NAD.
Dưới đây là một ví dụ cấu hình cho pod có tên podblue, với một giao diện (192.168.11.10/24) được gắn vào mạng blue (đầu ra đã được rút gọn để ngắn gọn):
apiVersion: v1 kind: Pod metadata: name: podblue annotations: k8s.v1.cni.cncf.io/networks: | [ { "name": "blue", "interface":"net1", "cni-args": { "interfaceType":"veth", "dataplane":"dpdk", "mac":"aa:bb:cc:dd:ee:10", "ipConfig":{ "ipv4":{ "address":"192.168.11.10/24", "gateway":"192.168.11.1", "routes":["192.168.11.0/24"] }, "ipv6":{ "address":"abcd::192.168.11.10/112", "gateway":"abcd::192.168.11.1", "routes":["abcd::192.168.11.0/112"] } } } } ] spec: ... |
Khi bạn áp dụng các manifest NAD và pod bằng lệnh kubectl apply -f manifest, một phiên bản định tuyến bluenet và bảng định tuyến bluenet.inet.0 sẽ được tạo trong bộ điều khiển Cloud-Native Router. Bạn có thể cấu hình Cloud-Native Router để cho phép podblue giao tiếp với các pod trên mạng từ xa.
**Lưu ý: Sử dụng tài nguyên configlet để cấu hình các pod cRPD.
Dưới đây là một ví dụ cấu hình cho cRPD:
to set interfaces ens2f0 unit 0 family inet address 10.10.10.11/24 set protocols bgp group overlay type internal set protocols bgp group overlay local-address 10.10.10.11 set protocols bgp group overlay local-as 64520 set protocols bgp group overlay neighbor 10.10.10.12 peer-as 64520 |
Trong đó 10.10.10.12/24 là địa chỉ IP của peer BGP hoặc router lân cận.
set policy-options policy-statement send_direct term 1 from protocol direct set policy-options policy-statement send_direct term 1 then accept set policy-options policy-statement send_direct term reject then reject set protocols bgp group overlay export send_direct |
set groups cni routing-instances bluenet routing-options interface-routes rib-group inet blue_to_inet set routing-options rib-groups blue_to_inet import-rib bluenet.inet.0 set routing-options rib-groups blue_to_inet import-rib inet.0 |
set policy-options policy-statement inet_to_blue term from_bgp from instance master set policy-options policy-statement inet_to_blue term from_bgp from protocol bgp set policy-options policy-statement inet_to_blue term from_bgp from route-filter 192.168.12.0/24 orlonger set policy-options policy-statement inet_to_blue term from_bgp then accept set policy-options policy-statement inet_to_blue term reject then reject set routing-options rib-groups inet_to_blue import-rib inet.0 set routing-options rib-groups inet_to_blue import-rib bluenet.inet.0 set routing-options rib-groups inet_to_blue import-policy inet_to_blue set groups cni routing-instances bluenet routing-options instance-import inet_to_blue |
**Lưu ý: Cloud-Native Router hỗ trợ rò rỉ tuyến giữa các phiên bản định tuyến router ảo đối với các tuyến có next-hop dạng interface, receive, resolve và table.
Chúc các bạn thực hiện thành công. Hi vọng bài viết này sẽ giúp ích cho các bạn trong công việc. Nếu bạn có vấn đề gì thắc mắc đừng ngần ngại liên hệ với chúng tôi theo thông tin dưới đây để được hỗ trợ thêm.
Hẹn gặp lại các bạn trong các bài viết tiếp theo!
CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH
• Địa chỉ: Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội
• Điện thoại: 02432012368
• Hotline: 098 115 6699
• Email: info@datech.vn
• Website: https://datech.vn