• [问题求助] 计费说明(公网NAT网关)_NAT网关 NAT_产品介绍_华为云
    可否说明一下nat网关出口流量是否需要收费 页面链接:https://support.huaweicloud.com/productdesc-natgateway/nat_price_0001.html
  • Easy IP特性与配置实验
    Easy IP特性与配置实验1.1【实验目的】• 掌握Easy IP的原理• 掌握Easy IP在企业网络中的应用• 掌握Easy IP的配置方式• 掌握PPoE客户端:拨号接口的配置方法• 掌握PPoE客户端认证的配置1.2【实验环境】华为ENSP模拟器实验拓扑图如下图所示。1.3【实验过程及实验结果】1.地址配置IP地址规划表设备名称设备接口IP网关PC1E0/0/110.0.0.10/2410.0.0.1/24PC2E0/0/1202.108.20.20/24202.108.20.1/24AR1G0/0/010.0.0.1/24G0/0/1202.108.0.1/30AR2G0/0/0202.108.0.2/30G0/0/1202.108.20.1/242.IP编址与基本配置给所有路由器配置IP地址信息。AR1<Huawei>SYS[Huawei]sys AR1[AR1]int G0/0/0[AR1-GigabitEthernet0/0/0]ip add 10.0.0.1 24[AR1-GigabitEthernet0/0/0]qAR2<Huawei>SYS[Huawei]sys AR2[AR2-GigabitEthernet0/0/0]int G0/0/1[AR2-GigabitEthernet0/0/1]ip add 202.108.20.1 24[AR2-GigabitEthernet0/0/1]q3.在设备中添加PPPoE配置AR2(PPPoE服务器端)创建一个名为Pool_AR的地址池,在地址池是图中,配置要分配给企业使用(AR1)的IP地址和网关,接着创建虚拟接口模板10, 在虚拟接口模板视图中指定,AR2路由器使用的IP地址,并调用了前面创建的地址池Pool_AR ,最后在连接AR1路由器的物理以太网接口上,启用PPPoE服务器功能,并绑定虚拟模板10[AR2]ip pool Pool_AR[AR2-ip-pool-Pool_AR]net 202.108.0.0 mask 30[AR2-ip-pool-Pool_AR]gateway-list 202.108.0.2[AR2-ip-pool-Pool_AR]q[AR2][AR2]int Virtual-Template 10[AR2-Virtual-Template10]ip add 202.108.0.2 30[AR2-Virtual-Template10]remote address pool Pool_AR[AR2-Virtual-Template10]q[AR2][AR2]int g0/0/0[AR2-GigabitEthernet0/0/0]pppoe-server bind virtual-template 10[AR2-GigabitEthernet0/0/0]qAR1(PPPoE客户端)在路由器上先创建一个拨号接口10, 并在这个接口下配置三条命令,分别指定拨号用户、拨号绑定关系和IP地址获得手段,接着进入连接AR2路由器的物理以太网接口,启用PPPoE客户端功能,并指定拨号绑定关系 [AR1]int Dialer 10[AR1-Dialer10]dialer user AR_User[AR1-Dialer10]dialer bundle 10[AR1-Dialer10]ip add ppp-negotiate [AR1-Dialer10]q[AR1][AR1]int g0/0/1[AR1-GigabitEthernet0/0/1]pppoe-client dial-bundle-number 10[AR1-GigabitEthernet0/0/1]q[AR1]配置本端到PPPoE服务器的缺省静态路由。[AR1]ip route-static 0.0.0.0 0.0.0.0 Dialer 10配置完成后,观察AR1和AR2的PPPoE配置情况(1)AR1查看从AR2获取的IP地址(1) 在两端设备上分别查看PPPoE会话AR1从以上输出可以看出PPPoE会话已建立,状态为UP。 在一个PPPoE会话中,可以出现以下状态标识。●IDLE:表示当前PPPoE会话状态为空闲,也就是在按需拨号的环境中,路由器还未发起拨号;●PADI:表示当前PPPoE会话处于我们5.4.1节中介绍的发现阶段,并且已经发送了PADI消息;●PADR:表示当前PPOE会话处于我们5.4.1节中介绍的发现阶段,并且已经发送了PADR消息;●UP:表示当前PPPoE会话已建立完成。AR2从命令的输出内容中 我们可以看出与PPPoE客户端相对应的内容, 比如MAC地址信息和状态(UP)信息 4.在设备AR1中添加Easy IPAR1[AR1]acl 2000[AR1-acl-basic-2000]rule permit source 10.0.0.0 0.0.0.255[AR1-acl-basic-2000]q[AR1][AR1]int Dialer 10[AR1-Dialer10]nat outbound 2000[AR1-Dialer10]q(1) 配置完成后,观察AR1的出向NAPT从上面的输出内容中可以看出接口Dialer 10上启用了Easy IP, 并且路由器会把ACL 2000中指定的源IP地址转化为 202.108.0.1(2) 所有设备通讯测试PC1->PC2外网端口AR1的G0/0/1接口抓包情况从上面的抓包信息中,看到了源IP地址202.108.0.1发来的ICMP请求以及路由器AR2回应的ICMP应答,并没有PC上配置的私有IP地址10.0.0.10,这表示路由器AR1已经通过Dialer 10接口配置的出向NAT命令,成功的为私有IP地址执行了NAT转换,将其转化为路由器AR2分配的公网IP地址
  • [技术干货] k8s install Bookinfo
    3. K8S 集群安装 istio下载安装包,配置环境变量[root@master ~]#wget http://49.232.8.65/istio/istio-1.14.1-linux-amd64.tar.gz ...... [root@master ~]#mkdir /application [root@master ~]#tar zxvf istio-1.14.1-linux-amd64.tar.gz -C /application/ ...... [root@master ~]#ll /application/istio-1.14.1/ 总用量 28 drwxr-x--- 2 root root 22 6月 8 10:10 bin -rw-r--r-- 1 root root 11348 6月 8 10:10 LICENSE drwxr-xr-x 5 root root 52 6月 8 10:10 manifests -rw-r----- 1 root root 796 6月 8 10:10 manifest.yaml -rw-r--r-- 1 root root 6016 6月 8 10:10 README.md drwxr-xr-x 23 root root 4096 6月 8 10:10 samples drwxr-xr-x 3 root root 57 6月 8 10:10 tools [root@master ~]#ll /application/istio-1.14.1/bin/ 总用量 83676 -rwxr-xr-x 1 root root 85684224 6月 8 10:10 istioctl [root@master ~]#echo "export PATH=$PATH:/application/istio-1.14.1/bin" >> /etc/profile [root@master ~]#tail -n 1 /etc/profile export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/application/istio-1.14.1/bin [root@master ~]#source /etc/profile 安装 istio# 使用 demo 配置文件安装,它具有一组良好的测试默认值,但还有其他配置文件用于生产或性能测试 # 集群内存要足够 [root@master ~]# istioctl install --set profile=demo -y ✔ Istio core installed ✔ Istiod installed ✔ Ingress gateways installed ✔ Egress gateways installed ✔ Installation complete Making this installation the default for injection and validation. Thank you for installing Istio 1.14. Please take a few minutes to tell us about your install/upgrade experience! https://forms.gle/yEtCbt45FZ3VoDT5A [root@master ~]# kubectl get pods -n istio-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES istio-egressgateway-575d8bd99b-sqdm9 1/1 Running 0 9m22s 10.244.140.70 node02 <none> <none> istio-ingressgateway-6668f9548d-dh656 1/1 Running 0 9m22s 10.244.140.69 node02 <none> <none> istiod-8495d444bb-zxfls 1/1 Running 0 10m 10.244.140.68 node02 <none> <none> # 添加名称空间的标签,当部署应用后,告诉 istio 去自动的注入 Envoy sidecar 代理,这里是 default # istio-injection=disabled 的命名空间是不会流入 sidecar 的 [root@master ~]# kubectl get ns NAME STATUS AGE default Active 159m istio-system Active 3m31s kube-node-lease Active 159m kube-public Active 159m kube-system Active 159m [root@master ~]# kubectl label namespace default istio-injection=enabled namespace/default labeled # 如何取消注入 [root@master ~]# kubectl label namespaces default istio-injection- namespace/default labeled [root@master ~]# kubectl describe ns default Name: default Labels: istio-injection=enabled kubernetes.io/metadata.name=default Annotations: <none> Status: Active No resource quota. No LimitRange resource. 卸载 istiohttps://istio.io/latest/docs/setup/install/istioctl/#uninstall-istio4. 部署示例应用程序部署 Bookinfo 示例应用程序[root@master /application/istio-1.14.1]# ls bin LICENSE manifests manifest.yaml README.md samples tools [root@master /application/istio-1.14.1]# kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml service/details created serviceaccount/bookinfo-details created deployment.apps/details-v1 created service/ratings created serviceaccount/bookinfo-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/bookinfo-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/bookinfo-productpage created deployment.apps/productpage-v1 created 查看# 应用程序将启动。随着每个 pod 准备就绪,Istio sidecar 将随之部署 # 我的 pod 启动时间非常长,等到所有 pod 都报告 READY2/2 和 STATUSRunning 后再进行下一步,耐心等待 [root@master /application/istio-1.14.1]# kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-7d88846999-hrcgp 2/2 Running 0 16m productpage-v1-7795568889-92mdm 2/2 Running 0 16m ratings-v1-754f9c4975-ckf5z 2/2 Running 0 16m reviews-v1-55b668fc65-lsfjs 2/2 Running 0 16m reviews-v2-858f99c99-7nw82 2/2 Running 0 16m reviews-v3-7886dd86b9-cnjdh 2/2 Running 0 16m [root@master /application/istio-1.14.1]# kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE details ClusterIP 10.100.172.185 <none> 9080/TCP 16m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h7m productpage ClusterIP 10.97.47.169 <none> 9080/TCP 16m ratings ClusterIP 10.102.140.67 <none> 9080/TCP 16m reviews ClusterIP 10.108.151.245 <none> 9080/TCP 16m 验证到目前为止一切正常。运行以下命令,通过检查响应中的页面标题来查看应用程序是否在集群内运行并提供 HTML 页面:[root@master ~]# kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath="{.items[0].metadata.name}")" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>" <title>Simple Bookstore App</title> 5. 向外部流量打开应用程序Bookinfo 应用程序已部署,但无法从外部访问。为了使其可访问,您需要创建一个 Istio Ingress Gateway,它将路径映射到网格边缘的路由。将此应用程序与 Istio 网关关联[root@master ~]# kubectl apply -f /application/istio-1.14.1/samples/bookinfo/networking/bookinfo-gateway.yaml gateway.networking.istio.io/bookinfo-gateway created virtualservice.networking.istio.io/bookinfo created 确保配置没有问题[root@master ~]# istioctl analyze ✔ No validation issues found when analyzing namespace: default. 5.1 确定入口 IP 和端口设置访问网关的 INGRESS_HOST 和 INGRESS_PORT 变量执行以下命令来确定您的 Kubernetes 集群是否在支持外部负载均衡器的环境中运行:[root@master ~]# kubectl get svc istio-ingressgateway -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.98.234.126 <pending> 15021:30921/TCP,80:32314/TCP,443:31968/TCP,31400:32530/TCP,15443:31268/TCP 3h6m 如果 EXTERNAL-IP 设置了 IP,则您的环境具有可用于入口网关的外部负载均衡器。如果 EXTERNAL-IP 值为 <none>(或永久 <pending>),则您的环境不为入口网关提供外部负载均衡器。在这种情况下,您可以使用服务的节点端口 访问网关。没有 EIP 解决:链接1. 安装 metallb 2. 安装 ingress-controller 3. 再次查看 istio-ingressgateway # 已经获取 EIP [root@master ~]# kubectl get svc istio-ingressgateway -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.98.234.126 192.168.10.170 15021:30921/TCP,80:32314/TCP,443:31968/TCP,31400:32530/TCP,15443:31268/TCP 3h19m 如果您确定您的环境具有外部负载平衡器,进行下面的操作。设置入口 IP 和端口:# 可将环境变量写进 /etc/profile 中 [root@master ~]# export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath="{.status.loadBalancer.ingress[0].ip}") [root@master ~]# export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath="{.spec.ports[?(@.name=="http2")].port}") [root@master ~]# export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath="{.spec.ports[?(@.name=="https")].port}") 在某些环境中,负载均衡器可能会使用主机名而不是 IP 地址。在这种情况下,入口网关的 EXTERNAL-IP 值将不是 IP 地址,而是主机名,上述命令将无法设置 INGRESS_HOST 环境变量。使用以下命令更正该 INGRESS_HOST 值:export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath="{.status.loadBalancer.ingress[0].hostname}") 确保 IP 地址和端口已成功分配给每个环境变量[root@master ~]# echo "$INGRESS_HOST" 192.168.10.170 [root@master ~]# echo "$INGRESS_PORT" 80 [root@master ~]# echo "$SECURE_INGRESS_PORT" 443 设置 GATEWAY_URL# 可将环境变量写进 /etc/profile 中 [root@master ~]# export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT [root@master ~]# echo "$GATEWAY_URL" 192.168.10.170:80 5.2 验证外部访问通过使用浏览器查看 Bookinfo 产品页面,确认可以从外部访问 Bookinfo 应用程序。运行以下命令以检索 Bookinfo 应用程序的外部地址[root@master ~]# echo "http://$GATEWAY_URL/productpage" http://192.168.10.170:80/productpage 将上一个命令的输出粘贴到您的 Web 浏览器中,并确认显示 Bookinfo 产品页面。6. 安装仪表盘Istio 集成了几个不同的监控应用程序。这些可以帮助您了解服务网格的结构、显示网格的拓扑并分析网格的健康状况。使用以下说明部署 Kiali 仪表板以及 Prometheus、Grafana 和 Jaeger。安装 kali 和其他插件[root@master ~]# kubectl apply -f /application/istio-1.14.1/samples/addons serviceaccount/grafana created configmap/grafana created service/grafana created deployment.apps/grafana created configmap/istio-grafana-dashboards created configmap/istio-services-grafana-dashboards created deployment.apps/jaeger created service/tracing created service/zipkin created service/jaeger-collector created serviceaccount/kiali created configmap/kiali created clusterrole.rbac.authorization.k8s.io/kiali-viewer created clusterrole.rbac.authorization.k8s.io/kiali created clusterrolebinding.rbac.authorization.k8s.io/kiali created role.rbac.authorization.k8s.io/kiali-controlplane created rolebinding.rbac.authorization.k8s.io/kiali-controlplane created service/kiali created deployment.apps/kiali created serviceaccount/prometheus created configmap/prometheus created clusterrole.rbac.authorization.k8s.io/prometheus created clusterrolebinding.rbac.authorization.k8s.io/prometheus created service/prometheus created deployment.apps/prometheus created # 下面命令失败重复运行 [root@master ~]# kubectl rollout status deployment/kiali -n istio-system Waiting for deployment "kiali" rollout to finish: 0 of 1 updated replicas are available... deployment "kiali" successfully rolled out [root@master ~]# kubectl get pods,svc -n istio-system NAME READY STATUS RESTARTS AGE pod/grafana-6c5dc6df7c-zzb5q 1/1 Running 0 44s pod/istio-egressgateway-575d8bd99b-sqdm9 1/1 Running 0 8h pod/istio-ingressgateway-6668f9548d-dh656 1/1 Running 0 8h pod/istiod-8495d444bb-zxfls 1/1 Running 0 8h pod/jaeger-9dd685668-mwmqm 1/1 Running 0 44s pod/kiali-5db6985fb5-chctb 1/1 Running 0 43s pod/prometheus-699b7cc575-4lxbs 2/2 Running 0 43s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/grafana ClusterIP 10.101.225.230 <none> 3000/TCP 44s service/istio-egressgateway ClusterIP 10.107.140.240 <none> 80/TCP,443/TCP 8h service/istio-ingressgateway LoadBalancer 10.98.234.126 192.168.10.170 15021:30921/TCP,80:32314/TCP,443:31968/TCP,31400:32530/TCP,15443:31268/TCP 8h service/istiod ClusterIP 10.97.201.157 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 8h service/jaeger-collector ClusterIP 10.101.114.182 <none> 14268/TCP,14250/TCP,9411/TCP 44s service/kiali ClusterIP 10.107.178.217 <none> 20001/TCP,9090/TCP 43s service/prometheus ClusterIP 10.105.102.86 <none> 9090/TCP 43s service/tracing ClusterIP 10.98.109.173 <none> 80/TCP,16685/TCP 44s service/zipkin ClusterIP 10.111.133.26 <none> 9411/TCP 44s 修改 kiali 的服务,将类型改为 LoadBalancer[root@master ~]# kubectl edit svc kiali -n istio-system ...... 46 type: ClusterIP ...... # 修改此处为 type: LoadBalancer # 在没有安装 metallb 产品的情况下,可以将该服务类型改为 NodePort [root@master ~]# kubectl edit svc kiali -n istio-system service/kiali edited 访问 Kiali 仪表板配置 Service 为 LoadBalancer 类型检查一下 kiali service 的类型是不是 LoadBalancer 类型,有没有获取 EIP[root@master ~]# istioctl dashboard kiali http://localhost:20001/kiali [root@master ~]# kubectl get pods,svc -n istio-system NAME READY STATUS RESTARTS AGE pod/grafana-6c5dc6df7c-wt9wq 1/1 Running 0 4m7s pod/istio-egressgateway-575d8bd99b-wq5fv 1/1 Running 0 20m pod/istio-ingressgateway-6668f9548d-2nt77 1/1 Running 0 20m pod/istiod-8495d444bb-xm6lw 1/1 Running 0 21m pod/jaeger-9dd685668-9hp2t 1/1 Running 0 4m7s pod/kiali-5db6985fb5-pnkvw 1/1 Running 0 4m7s pod/prometheus-699b7cc575-nc86z 2/2 Running 0 4m7s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/grafana ClusterIP 10.99.147.179 <none> 3000/TCP 4m7s service/istio-egressgateway ClusterIP 10.101.226.2 <none> 80/TCP,443/TCP 20m service/istio-ingressgateway LoadBalancer 10.106.154.219 192.168.10.170 15021:30361/TCP,80:30766/TCP,443:32089/TCP,31400:32656/TCP,15443:31882/TCP 20m service/istiod ClusterIP 10.108.100.170 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 21m service/jaeger-collector ClusterIP 10.100.230.173 <none> 14268/TCP,14250/TCP,9411/TCP 4m7s service/kiali LoadBalancer 10.99.87.90 192.168.10.171 20001:31148/TCP,9090:32497/TCP 4m7s service/prometheus ClusterIP 10.106.49.15 <none> 9090/TCP 4m7s service/tracing ClusterIP 10.101.14.242 <none> 80/TCP,16685/TCP 4m7s service/zipkin ClusterIP 10.108.155.153 <none> 9411/TCP 4m7s 访问:http://192.168.10.171:20001/kiali
  • [技术干货] K8s安装istio
    3. K8S 集群安装 istio下载安装包,配置环境变量[root@master ~]#wget http://49.232.8.65/istio/istio-1.14.1-linux-amd64.tar.gz ...... [root@master ~]#mkdir /application [root@master ~]#tar zxvf istio-1.14.1-linux-amd64.tar.gz -C /application/ ...... [root@master ~]#ll /application/istio-1.14.1/ 总用量 28 drwxr-x--- 2 root root 22 6月 8 10:10 bin -rw-r--r-- 1 root root 11348 6月 8 10:10 LICENSE drwxr-xr-x 5 root root 52 6月 8 10:10 manifests -rw-r----- 1 root root 796 6月 8 10:10 manifest.yaml -rw-r--r-- 1 root root 6016 6月 8 10:10 README.md drwxr-xr-x 23 root root 4096 6月 8 10:10 samples drwxr-xr-x 3 root root 57 6月 8 10:10 tools [root@master ~]#ll /application/istio-1.14.1/bin/ 总用量 83676 -rwxr-xr-x 1 root root 85684224 6月 8 10:10 istioctl [root@master ~]#echo "export PATH=$PATH:/application/istio-1.14.1/bin" >> /etc/profile [root@master ~]#tail -n 1 /etc/profile export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/application/istio-1.14.1/bin [root@master ~]#source /etc/profile 安装 istio# 使用 demo 配置文件安装,它具有一组良好的测试默认值,但还有其他配置文件用于生产或性能测试 # 集群内存要足够 [root@master ~]# istioctl install --set profile=demo -y ✔ Istio core installed ✔ Istiod installed ✔ Ingress gateways installed ✔ Egress gateways installed ✔ Installation complete Making this installation the default for injection and validation. Thank you for installing Istio 1.14. Please take a few minutes to tell us about your install/upgrade experience! https://forms.gle/yEtCbt45FZ3VoDT5A [root@master ~]# kubectl get pods -n istio-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES istio-egressgateway-575d8bd99b-sqdm9 1/1 Running 0 9m22s 10.244.140.70 node02 <none> <none> istio-ingressgateway-6668f9548d-dh656 1/1 Running 0 9m22s 10.244.140.69 node02 <none> <none> istiod-8495d444bb-zxfls 1/1 Running 0 10m 10.244.140.68 node02 <none> <none> # 添加名称空间的标签,当部署应用后,告诉 istio 去自动的注入 Envoy sidecar 代理,这里是 default # istio-injection=disabled 的命名空间是不会流入 sidecar 的 [root@master ~]# kubectl get ns NAME STATUS AGE default Active 159m istio-system Active 3m31s kube-node-lease Active 159m kube-public Active 159m kube-system Active 159m [root@master ~]# kubectl label namespace default istio-injection=enabled namespace/default labeled # 如何取消注入 [root@master ~]# kubectl label namespaces default istio-injection- namespace/default labeled [root@master ~]# kubectl describe ns default Name: default Labels: istio-injection=enabled kubernetes.io/metadata.name=default Annotations: <none> Status: Active No resource quota. No LimitRange resource.卸载 istiohttps://istio.io/latest/docs/setup/install/istioctl/#uninstall-istio4. 部署示例应用程序部署 Bookinfo 示例应用程序[root@master /application/istio-1.14.1]# ls bin LICENSE manifests manifest.yaml README.md samples tools [root@master /application/istio-1.14.1]# kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml service/details created serviceaccount/bookinfo-details created deployment.apps/details-v1 created service/ratings created serviceaccount/bookinfo-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/bookinfo-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/bookinfo-productpage created deployment.apps/productpage-v1 created查看# 应用程序将启动。随着每个 pod 准备就绪,Istio sidecar 将随之部署 # 我的 pod 启动时间非常长,等到所有 pod 都报告 READY2/2 和 STATUSRunning 后再进行下一步,耐心等待 [root@master /application/istio-1.14.1]# kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-7d88846999-hrcgp 2/2 Running 0 16m productpage-v1-7795568889-92mdm 2/2 Running 0 16m ratings-v1-754f9c4975-ckf5z 2/2 Running 0 16m reviews-v1-55b668fc65-lsfjs 2/2 Running 0 16m reviews-v2-858f99c99-7nw82 2/2 Running 0 16m reviews-v3-7886dd86b9-cnjdh 2/2 Running 0 16m [root@master /application/istio-1.14.1]# kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE details ClusterIP 10.100.172.185 <none> 9080/TCP 16m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h7m productpage ClusterIP 10.97.47.169 <none> 9080/TCP 16m ratings ClusterIP 10.102.140.67 <none> 9080/TCP 16m reviews ClusterIP 10.108.151.245 <none> 9080/TCP 16m验证到目前为止一切正常。运行以下命令,通过检查响应中的页面标题来查看应用程序是否在集群内运行并提供 HTML 页面:[root@master ~]# kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>" <title>Simple Bookstore App</title>5. 向外部流量打开应用程序Bookinfo 应用程序已部署,但无法从外部访问。为了使其可访问,您需要创建一个 Istio Ingress Gateway,它将路径映射到网格边缘的路由。将此应用程序与 Istio 网关关联[root@master ~]# kubectl apply -f /application/istio-1.14.1/samples/bookinfo/networking/bookinfo-gateway.yaml gateway.networking.istio.io/bookinfo-gateway created virtualservice.networking.istio.io/bookinfo created确保配置没有问题[root@master ~]# istioctl analyze ✔ No validation issues found when analyzing namespace: default.5.1 确定入口 IP 和端口设置访问网关的 INGRESS_HOST 和 INGRESS_PORT 变量执行以下命令来确定您的 Kubernetes 集群是否在支持外部负载均衡器的环境中运行:[root@master ~]# kubectl get svc istio-ingressgateway -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.98.234.126 <pending> 15021:30921/TCP,80:32314/TCP,443:31968/TCP,31400:32530/TCP,15443:31268/TCP 3h6m如果 EXTERNAL-IP 设置了 IP,则您的环境具有可用于入口网关的外部负载均衡器。如果 EXTERNAL-IP 值为 <none>(或永久 <pending>),则您的环境不为入口网关提供外部负载均衡器。在这种情况下,您可以使用服务的节点端口 访问网关。没有 EIP 解决:链接1. 安装 metallb 2. 安装 ingress-controller 3. 再次查看 istio-ingressgateway # 已经获取 EIP [root@master ~]# kubectl get svc istio-ingressgateway -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.98.234.126 192.168.10.170 15021:30921/TCP,80:32314/TCP,443:31968/TCP,31400:32530/TCP,15443:31268/TCP 3h19m如果您确定您的环境具有外部负载平衡器,进行下面的操作。设置入口 IP 和端口:# 可将环境变量写进 /etc/profile 中 [root@master ~]# export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}') [root@master ~]# export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}') [root@master ~]# export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}') 在某些环境中,负载均衡器可能会使用主机名而不是 IP 地址。在这种情况下,入口网关的 EXTERNAL-IP 值将不是 IP 地址,而是主机名,上述命令将无法设置 INGRESS_HOST 环境变量。使用以下命令更正该 INGRESS_HOST 值:export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')确保 IP 地址和端口已成功分配给每个环境变量[root@master ~]# echo "$INGRESS_HOST" 192.168.10.170 [root@master ~]# echo "$INGRESS_PORT" 80 [root@master ~]# echo "$SECURE_INGRESS_PORT" 443设置 GATEWAY_URL# 可将环境变量写进 /etc/profile 中 [root@master ~]# export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT [root@master ~]# echo "$GATEWAY_URL" 192.168.10.170:805.2 验证外部访问通过使用浏览器查看 Bookinfo 产品页面,确认可以从外部访问 Bookinfo 应用程序。运行以下命令以检索 Bookinfo 应用程序的外部地址[root@master ~]# echo "http://$GATEWAY_URL/productpage" http://192.168.10.170:80/productpage将上一个命令的输出粘贴到您的 Web 浏览器中,并确认显示 Bookinfo 产品页面。6. 安装仪表盘Istio 集成了几个不同的监控应用程序。这些可以帮助您了解服务网格的结构、显示网格的拓扑并分析网格的健康状况。使用以下说明部署 Kiali 仪表板以及 Prometheus、Grafana 和 Jaeger。安装 kali 和其他插件[root@master ~]# kubectl apply -f /application/istio-1.14.1/samples/addons serviceaccount/grafana created configmap/grafana created service/grafana created deployment.apps/grafana created configmap/istio-grafana-dashboards created configmap/istio-services-grafana-dashboards created deployment.apps/jaeger created service/tracing created service/zipkin created service/jaeger-collector created serviceaccount/kiali created configmap/kiali created clusterrole.rbac.authorization.k8s.io/kiali-viewer created clusterrole.rbac.authorization.k8s.io/kiali created clusterrolebinding.rbac.authorization.k8s.io/kiali created role.rbac.authorization.k8s.io/kiali-controlplane created rolebinding.rbac.authorization.k8s.io/kiali-controlplane created service/kiali created deployment.apps/kiali created serviceaccount/prometheus created configmap/prometheus created clusterrole.rbac.authorization.k8s.io/prometheus created clusterrolebinding.rbac.authorization.k8s.io/prometheus created service/prometheus created deployment.apps/prometheus created # 下面命令失败重复运行 [root@master ~]# kubectl rollout status deployment/kiali -n istio-system Waiting for deployment "kiali" rollout to finish: 0 of 1 updated replicas are available... deployment "kiali" successfully rolled out [root@master ~]# kubectl get pods,svc -n istio-system NAME READY STATUS RESTARTS AGE pod/grafana-6c5dc6df7c-zzb5q 1/1 Running 0 44s pod/istio-egressgateway-575d8bd99b-sqdm9 1/1 Running 0 8h pod/istio-ingressgateway-6668f9548d-dh656 1/1 Running 0 8h pod/istiod-8495d444bb-zxfls 1/1 Running 0 8h pod/jaeger-9dd685668-mwmqm 1/1 Running 0 44s pod/kiali-5db6985fb5-chctb 1/1 Running 0 43s pod/prometheus-699b7cc575-4lxbs 2/2 Running 0 43s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/grafana ClusterIP 10.101.225.230 <none> 3000/TCP 44s service/istio-egressgateway ClusterIP 10.107.140.240 <none> 80/TCP,443/TCP 8h service/istio-ingressgateway LoadBalancer 10.98.234.126 192.168.10.170 15021:30921/TCP,80:32314/TCP,443:31968/TCP,31400:32530/TCP,15443:31268/TCP 8h service/istiod ClusterIP 10.97.201.157 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 8h service/jaeger-collector ClusterIP 10.101.114.182 <none> 14268/TCP,14250/TCP,9411/TCP 44s service/kiali ClusterIP 10.107.178.217 <none> 20001/TCP,9090/TCP 43s service/prometheus ClusterIP 10.105.102.86 <none> 9090/TCP 43s service/tracing ClusterIP 10.98.109.173 <none> 80/TCP,16685/TCP 44s service/zipkin ClusterIP 10.111.133.26 <none> 9411/TCP 44s修改 kiali 的服务,将类型改为 LoadBalancer[root@master ~]# kubectl edit svc kiali -n istio-system ...... 46 type: ClusterIP ...... # 修改此处为 type: LoadBalancer # 在没有安装 metallb 产品的情况下,可以将该服务类型改为 NodePort [root@master ~]# kubectl edit svc kiali -n istio-system service/kiali edited访问 Kiali 仪表板配置 Service 为 LoadBalancer 类型检查一下 kiali service 的类型是不是 LoadBalancer 类型,有没有获取 EIP[root@master ~]# istioctl dashboard kiali http://localhost:20001/kiali [root@master ~]# kubectl get pods,svc -n istio-system NAME READY STATUS RESTARTS AGE pod/grafana-6c5dc6df7c-wt9wq 1/1 Running 0 4m7s pod/istio-egressgateway-575d8bd99b-wq5fv 1/1 Running 0 20m pod/istio-ingressgateway-6668f9548d-2nt77 1/1 Running 0 20m pod/istiod-8495d444bb-xm6lw 1/1 Running 0 21m pod/jaeger-9dd685668-9hp2t 1/1 Running 0 4m7s pod/kiali-5db6985fb5-pnkvw 1/1 Running 0 4m7s pod/prometheus-699b7cc575-nc86z 2/2 Running 0 4m7s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/grafana ClusterIP 10.99.147.179 <none> 3000/TCP 4m7s service/istio-egressgateway ClusterIP 10.101.226.2 <none> 80/TCP,443/TCP 20m service/istio-ingressgateway LoadBalancer 10.106.154.219 192.168.10.170 15021:30361/TCP,80:30766/TCP,443:32089/TCP,31400:32656/TCP,15443:31882/TCP 20m service/istiod ClusterIP 10.108.100.170 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 21m service/jaeger-collector ClusterIP 10.100.230.173 <none> 14268/TCP,14250/TCP,9411/TCP 4m7s service/kiali LoadBalancer 10.99.87.90 192.168.10.171 20001:31148/TCP,9090:32497/TCP 4m7s service/prometheus ClusterIP 10.106.49.15 <none> 9090/TCP 4m7s service/tracing ClusterIP 10.101.14.242 <none> 80/TCP,16685/TCP 4m7s service/zipkin ClusterIP 10.108.155.153 <none> 9411/TCP 4m7s访问:http://192.168.10.171:20001/kiali
  • [问题求助] 【华为智慧园区开发工程师认证进阶课】【统一事件集成第三方系统】新增设备事件触发roma网关无日志
    【功能模块】接https://bbs.huaweicloud.com/forum/thread-196457-1-1.html 帖子华为智慧园区开发工程师认证进阶课 实战课(https://qa6-dev.besclouds.com/) 统一事件集成第三方系统 新增设备后可以正常触发定义事件转发请求roma中定义的网关接口,但是在roma中却无法查询到请求的日志。无法完成进阶课程日志截图【操作步骤&问题现象】1、IOC新增设备触发定义的转发事件,事件请求roma定义的api接口2、roma的api网关中无法查询到api分析日志 【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【上海体育馆产品】【路由功能】怎么返回上一个路由
    【功能模块】【操作步骤&问题现象】1、点击按钮返回上一个页面2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 智慧园区统一接入之通过IoT网关接入基线已集成设备(下)
    连接实验室认证扩展IO这部分设备IO扩展包随基线版本发布,但默认不安装,项目可根据需要选装。表2 连接实验室认证扩展IO条数分类设备IO“统一设备服务”端对应的设备规格1电气火灾监测系统设备故障电弧探测器设备ArcFaultDetectionDevice2电气火灾检测系统探测器设备ElectrFireMonitorSysDetector3消防电源监控系统设备FirePowerMonitorSys4照明系统路灯设备StreetLight5室外景观照明设备OutdoorLandscapeLighting6室内多回路照明控制器设备IndoorMultLoopLightingController7环境空间监测系统震动传感器设备Vibrating8GPS定位器设备GPSLocator9智能手环设备SmartBand10垃圾桶设备Trashcans11擦手纸余量检测设备TissuePaper12厕纸余量检测设备ToiletPaper13客流统计设备PassengerFlow14多媒体点评器设备Evaluator15洗手液余量检测设备SoapDispenser16井盖检测器设备ManholeCoverDetector17路灯显示屏设备StreetLightDisplayScreen18激光探测器设备LaserDetector19应急指示灯设备EmergencyLamp20水文监测系统水位水质监测设备WaterQualityMonitoring21水文监测设备HydrologicalTelemetery22能耗管理系统能耗管理系统设备EnergyConsumption23智能水表设备SmartWaterMeter24热量表设备HeatMeter25冷量表设备CoolCapacityMeter26火灾自动报警系统报警主机设备AlarmHost27入侵报警系统电子围栏设备ElectronicFence28门磁探测器设备ElecLockDetector29报警主机防区设备AlarmHostDefenceArea30环境空间告警系统管线甲烷气体探测器设备PipelineCH4Detector31管线硫化氢气体探测器设备PipelineH2SDetector32管线温湿度探测器设备PipelineTempAndHumidityDetector33管线压力探测器设备PipelinePressureDetector34管线氧气气体探测器设备PipelineO2Detector35紧急按钮设备EmergencyButton36温湿度监测设备TemperatureHumidity37管道流量监测设备PipelineTrafficMonitoring38液压检测设备HydraulicPressureDetector39水浸检测设备WaterImmersion40液位检测设备LiquidLevelDetector41CH探测器设备CH4Detector42红外探测器设备InfraredDetector43一氧化碳探测器设备CODetector44氨气探测器设备AmmoniaDetector45空气质量探测器设备AirAualityDetector46地埋侧循环泵设备BuriedSideCirculatingPump47定压水泵设备ConstantPressurePump48水处理仪设备WaterTreatmentInstrument49地源热泵机组设备GroundSourceHeatPumpUnit50锅炉补水箱设备BoilerSupplyTank51二次水循环泵设备SecondaryCirculationPump52消防监测系统消防栓监测设备HydrantDetector53消防管道监测设备FireControlPipeDetector54BA400V进线设备InLine400V5510kV进线设备InLine10kV56400V出线设备OutLine400V57电力变压器温控器设备TransformerTempController58交流电通断检测器设备ACDetector59空气断路器设备AirCircuitBreaker60电箱温度传感器设备TempDetector61母联设备BusTieSwitch62电容器设备Capacitance6335kV出线设备Capacitance64主变压器设备MainTransformer6510kV出线设备OutLine10kV66站变设备StationTransformer67110kV分段设备Subsection110kV68直流屏设备DirectCurrentPanel69110kV进线间隔设备IncomingLineInterval110kV70双电源转换开关DualPowerSwitch71TV监控设备TVMonitoringDevice72母线保护设备BusbarProtection73光伏发电设备PhotovoltaicGenerator74柴油发电设备DieselGenerator75电动天窗电动天窗设备PowerSunroof76电梯及扶梯扶梯设备Escalator
  • [技术干货] 智慧园区统一接入之通过IoT网关接入基线已集成设备(上)
    园区基线预集成的设备IO包含:基线设备IO、连接实验室认证扩展IO。当对应设备接入园区时无需开发任何代码,可直接接入使用。基线设备IO:随基线版本一起安装,订购园区基线后默认安装好,如表1所示。连接实验室认证扩展IO:IO扩展包随基线版本发布,但默认不安装,项目可根据需要选装,如表2所示。扩展IO详情见连接实验室认证扩展IO。基线设备IO这部分设备IO随基线版本一起安装,订购园区基线后默认安装好。表1 基线设备IO条数分类设备IO“统一设备服务”端对应的设备规格1保安系统设备门禁设备IOAccessControl2泄露电缆设备IOLeakyCable3人行闸机设备IOTurnstile4消防系统设备消防烟感设备IOSmokeDetector5消防温感设备IOTemperatureSensor6消防手报设备IOManualFireAlarmActivation7声光报警设备IOAcoustoOpticAlarm8消防栓按钮设备IOFireHydrantButton9可燃气体探测器设备IOCombustibleGasDetector10能耗系统设备水表设备IOWaterMeter11电表设备IOElectricMeter12燃气表设备IOGasMeter13资产管理设备新基点IoT射频识别标签设备IORFID14新基点IoT射频识别读卡器设备IORFIDReader15环境监测设备户外环境监测设备IOOutdoorEnvSensor16室内环境监测设备IOIndoorEnvSensor17建筑BA设备空调机组设备IOAirHandleUnit18新风机组设备IOPreCoolingAirHandlingUnit19送风机设备IOSupplyAirFan20排风机设备IOExhaustAirFan21冷机设备IOChiller22冷冻水泵设备IOChillerWaterPump23冷却水泵设备IOCoolDownWaterPump24冷却塔设备IOCoolingTower25冷源补水箱设备IOColdSourceSupplyTank26冷源补水泵设备IOColdSourceSupplyPump27冷冻水总管设备IOChilledWaterMainPipe28冷却水总管设备IOCoolDownWaterMainPipe29管道设备IOMainPipe30膨胀水箱设备IOExpansionTank31蓄冷罐设备IOColdStorageTank32电热锅炉设备IOElectricBoiler33锅炉热水泵设备IOBoilerHotWaterPump34供热水泵设备IOHeatingWaterPump35排水泵设备IODrainagePump36生活水泵设备IODomesticWaterPump37集水井设备IOSumpPit38生活水箱设备IODomesticWaterTank39减压阀设备IOPressureReliefValve40室内照明控制器设备室内照明控制器设备IOIndoorLightingController41厕位检测设备厕位检测设备IOToiletPositionDetector42工位检测设备工位检测设备IOWorkStationDetector43升降电梯设备升降电梯设备IOElevator44电梯群控器设备电梯群控器设备IOElevatorClusterController
  • [技术干货] 智慧园区统一接入之通过IoT网关接入集成架构
    设备通过IoT网关和平台接入园区时,集成架构如图1所示。图1 设备通过IoT接入南向设备接入的整个业务流程可以分为2部分:数据上报和指令下发,各模块的处理流程如下。数据上报IoT平台能力:南向设备通过IoT网关和IoT平台,将原始数据上报到ROMA MQS的原始topic中。基线预置能力:IoT Adapter IO依据消息类型将消息拆分,并根据设备类型和消息类型转发给对应设备IO的中间层topic。例如人行闸机上报的消息,会转发给“人行闸机设备IO”;门禁上报的消息会转发给“门禁设备IO”。设备IO能力:设备IO将消息转换成标准格式,并发送到“设备标准消息MQS Topic”。基线预置能力:统一设备服务消费标准topic中的消息,转换成事件供业务应用做逻辑判断。指令下发基线预置能力:统一设备服务提供标准化的设备模型和控制命令,无论是对哪种设备下发指令,业务应用都只需调用标准化的指令接口即可。基线预置能力:统一设备服务根据业务侧下发的指令,在设备的标准模型中查询到该设备的指令服务后回调ROMA侧的“设备标准IoT接口”。基线预置能力:ROMA侧的“设备标准IoT接口”依据指令中的“channel”和“deviceType”参数,将指令路由到设备IO。“channel”参数用于多IoT平台的场景,确定指令要下发给哪个IoT平台,例如新基点IoT平台的channel值为“basepoint.connectionmax.iot”。“deviceType”参数确定指令路由到哪个设备IO,deviceType的值来自统一设备服务中定义的标准模型。例如人行闸机的指令会路由到“人行闸机设备IO”,门禁的指令会路由到“门禁设备IO”。设备IO能力:设备IO将业务侧下发的指令转换为实际物理设备可以执行的指令,并回调南向IoT平台的指令下发接口。IoT平台能力:南向IoT平台向实际物理设备下发指令,控制设备的运行。在整个业务流程中,每种类型的设备,都需要有一个对应的设备IO,用于标准化实际设备上报的消息,以及转换业务下发给设备的指令,消息上报和指令下发通过IoT平台来实现。针对园区常见的一部分设备,基线已经预集成了对应的设备IO,无需开发任何代码,可直接接入使用,详细清单参见基线已集成设备。对于不在基线预置内的设备,只需开发对应的设备IO即可,其它部分不需要开发,整个上行/下行流程和业务侧都无需变动,开发流程详见基线未集成设备接入指导。
  • [新手课堂] 路由与交换VPN基础笔记分享
    本文转载自:https://bbs.huaweicloud.com/forum/thread-195705-1-1.htmlVPN产生背景: • 在Internet传输中,绝大部分数据的内容是明文传输,存在很多安全隐患,如(窃听,篡改,冒充) • 总部,分公司,办事处,出差人员,合作单位,需要访问总部网络资源的问题。 • 一个企业不可能把内部资源放在公网上,因为内部人员能访问得到,别人是否也能访问得到,这本身就是不安全的。 • 我们知道一个企业,他肯定是内网的,我们如何从一个内网接入到另外一个内网,这就是我们要学习的VPN的一个核心技术点,隧道。 • 在没有VPN之前,内网之间要进行互访,依靠运营商拉的专线(单独拉的线路)(价格贵,灵活性和扩展性不行) 笼统来说,网络专线就是为某个机构拉一条独立的网线,也就是一个独立的局域网,例如军事,银行等,让用户的数据传输变得可靠可信,专线的优点就是安全性好,QoS 可以得到保证。不过,专线租用价格也相对比较高,而且管理也需要专业人员。 •   VPN:Vritual Private Network,虚拟专用网络 •术语 备注 VPN 通过公共网络建立私有网络,并提供一定的安全性和服务质量保证。 IETF草案基于对IP的VPN定义,使用IP机制仿真出一个私有的广域网。 虚拟 用户不在需要拥有实际的专线,而是利用internet建立自己的私有网络 专用 用户可以为自己定制一个最符合自己要求的网络。  VPN技术核心: • • VPN有两大点: 1. 安全技术 • 密钥技术 • 身份认证 • 加解密技术 • 数据认证  2. 隧道技术 • GRE是一种非常强大的技术,隧道技术本身不代表某一种协议,而是一种理念,隧道技术的作用就是打通私网, 如:从一个私网到另外一个私网。从IPv6跨越到IPv4在到IPv6,这些都是隧道技术范畴。   • •隧道技术 隧道两端封装,解封装,用于建立数据通道。 隧道:从一个点到另外一个点的一条路,别人看不见。 身份认证 保证接入VPN的操作人员的合法性,有效性。 操作人员,使用人员的一些身份验证,用户密码,证书,指纹。 数据认证 数据在网络传输过程中不被非法篡改。 数据在传输过程中如何保证没有被更改和完整性。 加解密技术 保证数据在网络中传输不被非法获取。 通过特定算法,保证数据的私密性,保证传输过程中不被非法获取,就算被获取也无法破解。 密钥管理技术 在不安全的网络中安全地传递密钥。  • • VPN其实就是隧道和安全的结合体。 • VPN可以建立隧道,可以帮助我们通过外网访问到企业的内网,也可以从企业的内网到另外一个企业的内网,等等,只要有需求,就可以建立一个隧道,来解决需求。同时虽然这个隧道在公网上传递,但是他是安全的,就是运营商也看不到,因为这是加密的,我们可以选择高强度的加密方式保证数据的安全传输。   隧道技术图解: • 隧道技术是如何实现内网到内网。 • 所有的隧道技术,就是在原始的数据帧封装头部,添加新的封装报头。简单的说就是我们原先的数据报头走的是公网,而我们新加的数据报头,能让我们走隧道。 • 新封装的报头,包含了源和目标IP,发送出去后,对端IP收到数据报文后会剥离隧道(GRE)的报头,然后再读取剩下的封装,完成从内网到内网之间的通讯。  •  •  • 比如我们右边的设备,从10.2.2.2发送到10.1.1.1,正常请求到公网就会被丢弃(公网没有私网路由),所有我们通过VPN技术先进行加密(IPsec,AH,ESP),加密后就是密文,看不到是什么类型的数据包,再加上VPN头部和新的IP头部(包含源地址和目标地址),中间所有的公网设备都通过目标IP进行查找路由转发,到达对方的设备后,在进行剥离VPN相关的报头,然后看到真正要找的目标,回包也是同样的操作。 •   VPN的优点: • 节约成本 • 提高安全性 • 扩展性强 • • 在公网上为两个局域网开辟一条安全的数据传输隧道。  VPN的类型:(根据建设单位划分) •类型 备注 租用运营商专线搭建VPN网络 MPLS VPN  核心点在于,运营商会学习和接收企业的私网路由,然后再运营商的骨干网里进行传输。 用户自建企业VPN网络 GRE,PPTP,L2TP , IPsec,SSLVPN  • 运营商MPLSVPN。 •  • 用户自建VPN,更适合企业的需求,灵活的部署。 •   VPN的类型:(根据组网方式) •类型 备注 Remote-Access VPN 远程访问VPN 适合出差员工,移动办公等VPN拨号接入的场景。 员工可以在任何能够接入公网的地方,通过远程拨号接入企业内网,从而访问内网资源。 通常拨号方IP不固定。 Site-to-Site VPN 站点到站点VPN 适合各分支机构,合作伙伴,客户,供应商间的互联。 双方都有固定的IP。建立好后,不用进行拨号,可以直接进行访问。  Remote Access VPN • • 出差员工通过公网连接到公司的VPN出口服务,进行拨号远程接入即可。 • 有可能VPN服务在内网内,这时需要通过NAT服务器进行映射就行。这样子就可以通过VPN访问内网资源了。 •   Site to site • • 服务都在出口设备固定搭建好了,企业员工可以直接进行访问。不需要进行拨号,两个服务类型的VPN可以同时存在,这并不矛盾。 • 而且会在出口做好策略,哪些流量加密走VPN,哪些不走(上网用途)。 •  • 以上两种形式的VPN我们都可能会用到,包括像SSLVPN,也属于远程接入VPN。 • Site to site 一般也叫L2L(lan to lan)局域网到局域网。 • 适合场景不一样,但是需求和功能是一样的。 •   VPN类型:(根据实现层次,协议划分) • 按协议划分VPN类型,具体VPN实现的技术就这些。 • 分为二层VPN(PPTP,L2P,L2TP),三层VPN(IPsec,GRE)和七层VPN(SSLVPN)。 • 追求最安全的最好使用L7层VPN,SSLVPN。 • L2VPN使用的都是PPPOE加上以太网的封装来实现的,所以和拨号也是有关系的,所以在二层里面很多都离不开PPP这个协议。 • PPTP是微软搞出来的,所以对其他的一些厂商兼容性不太行,因此思科又搞了一个L2F(F代表转发)出来的,L2TP是微软和思路技术的结合。 • • 其实GRE没有任何的安全性,他不进行保护,他只是告诉你应用的范围,只有IPsec和SSLVPN才会有真正的加密,如果要加密和安全,只有IPsec和SSLVPN。 • L2TP没有加密技术也没有认证技术,但是能使用IPsec加入进来,也就是说他们是可以联动的。 • IPsec可以单独使用,也可以用它来保护GRE和L2TP。本身GRE和L2TP是缺乏安全技术的,但是可以通过IPsec来解决这个问题。 • GRE是最强的隧道技术,但是他没有安全性,所以一般不会单独使用他。一般会使用IPsec来保护,或者单独使用IPsec。GRE用于IPv6跨越IPv4在到IPv6,这种时候会用到GRE。 • SSLVPN是应用层,所以他直接对应用层数据进行保护,认证方法较多, • L2TP的端口类型是UDP 1701。PPTP的端口类型是TCP 1723。 
  • [技术干货] 路由与交换VPN基础笔记分享
    VPN产生背景: • 在Internet传输中,绝大部分数据的内容是明文传输,存在很多安全隐患,如(窃听,篡改,冒充) • 总部,分公司,办事处,出差人员,合作单位,需要访问总部网络资源的问题。 • 一个企业不可能把内部资源放在公网上,因为内部人员能访问得到,别人是否也能访问得到,这本身就是不安全的。 • 我们知道一个企业,他肯定是内网的,我们如何从一个内网接入到另外一个内网,这就是我们要学习的VPN的一个核心技术点,隧道。 • 在没有VPN之前,内网之间要进行互访,依靠运营商拉的专线(单独拉的线路)(价格贵,灵活性和扩展性不行) 笼统来说,网络专线就是为某个机构拉一条独立的网线,也就是一个独立的局域网,例如军事,银行等,让用户的数据传输变得可靠可信,专线的优点就是安全性好,QoS 可以得到保证。不过,专线租用价格也相对比较高,而且管理也需要专业人员。 •   VPN:Vritual Private Network,虚拟专用网络 • 术语 备注 VPN 通过公共网络建立私有网络,并提供一定的安全性和服务质量保证。 IETF草案基于对IP的VPN定义,使用IP机制仿真出一个私有的广域网。 虚拟 用户不在需要拥有实际的专线,而是利用internet建立自己的私有网络 专用 用户可以为自己定制一个最符合自己要求的网络。  VPN技术核心: • • VPN有两大点: 1. 安全技术 • 密钥技术 • 身份认证 • 加解密技术 • 数据认证  2. 隧道技术 • GRE是一种非常强大的技术,隧道技术本身不代表某一种协议,而是一种理念,隧道技术的作用就是打通私网, 如:从一个私网到另外一个私网。从IPv6跨越到IPv4在到IPv6,这些都是隧道技术范畴。   • • 隧道技术 隧道两端封装,解封装,用于建立数据通道。 隧道:从一个点到另外一个点的一条路,别人看不见。 身份认证 保证接入VPN的操作人员的合法性,有效性。 操作人员,使用人员的一些身份验证,用户密码,证书,指纹。 数据认证 数据在网络传输过程中不被非法篡改。 数据在传输过程中如何保证没有被更改和完整性。 加解密技术 保证数据在网络中传输不被非法获取。 通过特定算法,保证数据的私密性,保证传输过程中不被非法获取,就算被获取也无法破解。 密钥管理技术 在不安全的网络中安全地传递密钥。  • • VPN其实就是隧道和安全的结合体。 • VPN可以建立隧道,可以帮助我们通过外网访问到企业的内网,也可以从企业的内网到另外一个企业的内网,等等,只要有需求,就可以建立一个隧道,来解决需求。同时虽然这个隧道在公网上传递,但是他是安全的,就是运营商也看不到,因为这是加密的,我们可以选择高强度的加密方式保证数据的安全传输。   隧道技术图解: • 隧道技术是如何实现内网到内网。 • 所有的隧道技术,就是在原始的数据帧封装头部,添加新的封装报头。简单的说就是我们原先的数据报头走的是公网,而我们新加的数据报头,能让我们走隧道。 • 新封装的报头,包含了源和目标IP,发送出去后,对端IP收到数据报文后会剥离隧道(GRE)的报头,然后再读取剩下的封装,完成从内网到内网之间的通讯。  •  •  • 比如我们右边的设备,从10.2.2.2发送到10.1.1.1,正常请求到公网就会被丢弃(公网没有私网路由),所有我们通过VPN技术先进行加密(IPsec,AH,ESP),加密后就是密文,看不到是什么类型的数据包,再加上VPN头部和新的IP头部(包含源地址和目标地址),中间所有的公网设备都通过目标IP进行查找路由转发,到达对方的设备后,在进行剥离VPN相关的报头,然后看到真正要找的目标,回包也是同样的操作。 •   VPN的优点: • 节约成本 • 提高安全性 • 扩展性强 • • 在公网上为两个局域网开辟一条安全的数据传输隧道。  VPN的类型:(根据建设单位划分) • 类型 备注 租用运营商专线搭建VPN网络 MPLS VPN  核心点在于,运营商会学习和接收企业的私网路由,然后再运营商的骨干网里进行传输。 用户自建企业VPN网络 GRE,PPTP,L2TP , IPsec,SSLVPN  • 运营商MPLSVPN。 •  • 用户自建VPN,更适合企业的需求,灵活的部署。 •   VPN的类型:(根据组网方式) • 类型 备注 Remote-Access VPN 远程访问VPN 适合出差员工,移动办公等VPN拨号接入的场景。 员工可以在任何能够接入公网的地方,通过远程拨号接入企业内网,从而访问内网资源。 通常拨号方IP不固定。 Site-to-Site VPN 站点到站点VPN 适合各分支机构,合作伙伴,客户,供应商间的互联。 双方都有固定的IP。建立好后,不用进行拨号,可以直接进行访问。  Remote Access VPN • • 出差员工通过公网连接到公司的VPN出口服务,进行拨号远程接入即可。 • 有可能VPN服务在内网内,这时需要通过NAT服务器进行映射就行。这样子就可以通过VPN访问内网资源了。 •   Site to site • • 服务都在出口设备固定搭建好了,企业员工可以直接进行访问。不需要进行拨号,两个服务类型的VPN可以同时存在,这并不矛盾。 • 而且会在出口做好策略,哪些流量加密走VPN,哪些不走(上网用途)。 •  • 以上两种形式的VPN我们都可能会用到,包括像SSLVPN,也属于远程接入VPN。 • Site to site 一般也叫L2L(lan to lan)局域网到局域网。 • 适合场景不一样,但是需求和功能是一样的。 •   VPN类型:(根据实现层次,协议划分) • 按协议划分VPN类型,具体VPN实现的技术就这些。 • 分为二层VPN(PPTP,L2P,L2TP),三层VPN(IPsec,GRE)和七层VPN(SSLVPN)。 • 追求最安全的最好使用L7层VPN,SSLVPN。 • L2VPN使用的都是PPPOE加上以太网的封装来实现的,所以和拨号也是有关系的,所以在二层里面很多都离不开PPP这个协议。 • PPTP是微软搞出来的,所以对其他的一些厂商兼容性不太行,因此思科又搞了一个L2F(F代表转发)出来的,L2TP是微软和思路技术的结合。 • • 其实GRE没有任何的安全性,他不进行保护,他只是告诉你应用的范围,只有IPsec和SSLVPN才会有真正的加密,如果要加密和安全,只有IPsec和SSLVPN。 • L2TP没有加密技术也没有认证技术,但是能使用IPsec加入进来,也就是说他们是可以联动的。 • IPsec可以单独使用,也可以用它来保护GRE和L2TP。本身GRE和L2TP是缺乏安全技术的,但是可以通过IPsec来解决这个问题。 • GRE是最强的隧道技术,但是他没有安全性,所以一般不会单独使用他。一般会使用IPsec来保护,或者单独使用IPsec。GRE用于IPv6跨越IPv4在到IPv6,这种时候会用到GRE。 • SSLVPN是应用层,所以他直接对应用层数据进行保护,认证方法较多, • L2TP的端口类型是UDP 1701。PPTP的端口类型是TCP 1723。 
  • [行业资讯] 高速网络时代即将开启 Wi-Fi 7势不可挡
    近两年来,随着在家办公、上网课需求和家中智能设备数量的增大,大家对于Wi-Fi网络有了高吞吐量、低时延、高稳定性等新的需求,因此Wi-Fi 7应运而生,在频谱、无线信道、有效带宽上均实现了巨大的提升,最终让无线传输也能媲美有线传输的稳定性以及高速率和低时延。在移动通信领域,相对于5G网络的大张旗鼓,Wi-Fi技术的升级就显得低调很多,甚至还有人不知道行业已经开始拥抱Wi-Fi 7了。事实上,随着整个社会数字化的持续发展,最新的Wi-Fi 7技术将成为扩展现实(XR)、元宇宙、社交游戏和边缘计算等最前沿应用场景的核心。Wi-Fi 7具备高网络吞吐率、低延迟、高传输量、高可靠、高稳定等特性,可大幅提升连网效能,对于未来新型场景应用的各种体验相当重要。基于此,高通等芯片厂商正不遗余力推动Wi-Fi7发展。例如高通表示,Wi-Fi7芯片现阶段已开始出货,终端产品预计今年底前有望上市,并将于2023年大量出货。Wi-Fi 7实现三大技能提升不得不说,无线通信技术的演进速度越来越快了,当我们还在等待Wi-Fi 6终端大范围普及时,Wi-Fi 7已经在路上了。随着流量的激增,人们对于Wi-Fi技术的要求大幅提高,Wi-Fi 6显然无法满足更具挑战的连接需求。这些激增的流量来自于众多场景:包括家庭中智能家居数量的增加,4K/8K超高清视频的不断普及,工业局域网高吞吐量的数据传输,以及VR/AR,乃至逐渐清晰的元宇宙等。正是在这样的场景下,Wi-Fi技术需要不断加速迭代,最新的Wi-Fi 7技术应运而生。高带宽是Wi-Fi 7最为人称道的特性,同时它也带来了三大新特性,包括更快的连接速度、多连接特性以及自适应连接能力。Wi-Fi 7具备更快的连接能力,在5GHz、6GHz频谱中已经涵盖了160MHz带宽的特性,带宽增加了到240MHz甚至320MHz,即使在没有开放6GHz的地区,依靠240MHz的带宽增加,也可以使整套系统的性能得到提升。更高的带宽让传输时延更低,系统整体性能也会得到进一步提升。多连接技术也是Wi-Fi 7的重要技术特性之一。在Wi-Fi 5、Wi-Fi 6时代,行业引入了双频甚至三频的路由器产品,手机可以选择使用2.4GHz或5GHz的频段与路由器通信,从而获得相对应的性能提升。而当Wi-Fi 7启用多连接技术后,可以使所有数据同时或者交替进行传输。多连接技术是指手机端与路由器端同时在5GHz和6GHz高速率频段同时建立连接,两者的数据连接可以叠加使用。在这种叠加使用的场景下,手机和路由器所在的系统能得到更高的吞吐量。自适应连接能力也不容忽视。Wi-Fi 7带来了名为“前导码打孔”的创新性解决方案,支持AP接入点在不受上述干扰影响的同时,让使用该连续信道成为可能。整体来看,新技术的升级和引入将让Wi-Fi 7在许多方面显著改善用户体验,并变得更经济高效。它可以启用和增强许多苛刻的应用。产业界期望Wi-Fi 7比现有的Wi-Fi 6/6E提供更高的速度、更低的延迟和更强大的性能。高通持续赋能中国品牌Wi-Fi技术升级众所周知,在如今的5G时代,中国已经实现引领。而在Wi-Fi 7的赛道,中国厂商同样不甘示弱。作为全球Wi-Fi技术领军企业,高通在移动通信领域有着丰富的积累,并积极参与、帮助中国厂商在这一赛道上实现引领。作为行业中率先部署Wi-Fi 7方案及产品的厂商,今年以来,高通在该领域动作频频。其在今年2月推出了FastConnect 7800移动连接系统,是目前全球最先进的Wi-Fi和蓝牙连接系统。5月份,高通又推出了支持Wi-Fi 7网络的第三代高通专业联网平台产品组合, 从最高阶的高通1620专业联网平台到1220平台、820平台和620平台,分别可支持四频16路数据流连接、三频12路数据流连接、四频8路数据流连接和三频6路数据流连接,最大物理层速率分别可达到33Gbps、21Gbps、13Gbps以及10Gbps。在面向移动端的FastConnect 7800和面向路由器端的第三代高通专业联网平台相继推出后,高通已形成一套完整的端到端Wi-Fi 7生态系统,能够助力终端厂商为用户打造端到端的Wi-Fi 7体验。据悉,高通在Wi-Fi技术方面已有超过20年的积累,从Wi-Fi路由器到客户端设备,高通在Wi-Fi产品领域的出货量位居全球第一。自Wi-Fi 6/6E推出以来,高通的跨全部产品线获得了超过900款Wi-Fi 6/6E客户产品设计,其中包括手机、Wi-Fi客户端等产品。而对于路由器平台,在企业和家庭网络基础设施领域,高通也是全球第一的解决方案提供商。目前,高通已经与OPPO、vivo、小米、荣耀和中兴通讯等厂家建立了长期且稳定的合作关系,高通专业联网平台也已获得超过275款客户产品设计,包括思科、新华三、网件、TP-Link、Linksys、小米等众多品牌。值得一提的是,高通于近日宣布推出Wi-Fi7射频前端模组,将其调制解调器和射频的优势扩展至Wi-Fi,该模组适用于汽车、XR、PC、可穿戴设备、移动宽带和物联网等领域,商用终端预计下半年上市。届时,通过自主创新、开放合作的融合战略,各个领域的终端类型将如雨后春笋般生长,开创Wi-Fi 7的新格局与新时代。Wi-Fi 7技术及终端将为中国乃至全球的运营商和消费者带来全新体验,这也将会极大地加速和改变Wi-Fi 7在全球的发展格局。
  • [问题求助] 流程编排时,可以通过并行网关开启任意多个子流程吗
    在并行网关前一个节点配置子流程数量,然后通过并行网关并行任意多个一样的子流程
  • [API使用] mindspore官网关于numpy.array()的解释
    在官网上看到解释,该API会创建一个张量,但是实践操作是返回是却是numpy.ndarry类型?为什么?
  • [技术干货] 关于SSL VPN和IPSec VPN之间的联系和区别
    https://support.huaweicloud.com/vpn_faq/zh-cn_topic_0187565709.html使用场景IPsec VPN:连通的是两个局域网,如分支机构与总部(或华为云VPC)之间、本地IDC与云端VPC的子网;即IPsec VPN是网对网的连接。SSL VPN:连通的是一个客户端到一个局域网络,如出差员工的便携机访问公司内网。连接方式IPsec VPN:要求两端有固定的网关设备,如防火墙或路由器; 管理员需要分别配置两端网关完成IPsec VPN协商。SSL VPN:需要在主机上安装指定的Client软件,通过用户名/密码拨号连接至SSL设备。