深信服WOC设计案例分析

需求:客户办公场所分隔两地,一个在北京,一个在深圳,采用专线连接的方式,但传输速度一直很慢,想体验下WOC的加速效果

客户对技术很懂,说:“PBR不是抓取流量再选路吗?静态路由不关心这些,将去往终端的流量都交给WOC不久OK了吗?PBR就是将去往对端的流量交给WOC,再将对端访问本端的流量交给WOC静态路由一样可以做啊。”

排查:

发现PC1无法访问到PC2觉得问题应该出现在路由身上,应该对路由进行修改,需要将4条静态路由修改为两条

依据:

WOC1与WOC2建立了加速隧道,数据到达WOCX后,会直接通过隧道到达对端,可以忽略中间的广域网络。不需要关心对端怎么回,交给隧道就OK了

对端回过数据后直接到达WOC1设备,根本不需要再指路由到WOC1

 

SW1配置

ip route-static 172.6.0.1 255.255.255.255 192.168.1.2

SW2 配置
ip route-static 192.168.1.1 255.255.255.255 172.16.0.2

 再次测试:

依旧不通。

我们在PC1上进行路径跟踪.

我们发现在北京这端形成了一个环路网络。数据并没有像我们想象中的走。

在VPN设备单臂模式部署,需要配置IPSec VPN中,必须要写一条目的是对端地址网段到VPN设备接口的静态路由。为什么在WOC上就不行了呢?

原因:WOC建立的加速连接不会建立隧道

解决方案:PBR配置

解决最初的WOC环路问题除了通过配置VPN解决外,还可以通过配置PBR解决。

a.配置ACL规则

b.配置流分类

c.配置流行为

d.配置流策略

e.将策略应用到接口上

f.深圳端的SW2照北京端的SW1配置即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
void DlgCheck::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED) { float fsp[2]; POINT Newp; //获取现在对话框的大小 CRect recta; GetClientRect(&recta); //取客户区大小 Newp.x = recta.right - recta.left; Newp.y = recta.bottom - recta.top; fsp[0] = (float)Newp.x / Old.x; fsp[1] = (float)Newp.y / Old.y; CRect Rect; int woc; CPoint OldTLPoint, TLPoint; //左上角 CPoint OldBRPoint, BRPoint; //右下角 HWND hwndChild = ::GetWindow(m_hWnd, GW_CHILD); //列出所有控件 while (hwndChild) { woc = ::GetDlgCtrlID(hwndChild);//取得ID GetDlgItem(woc)->GetWindowRect(Rect); ScreenToClient(Rect); OldTLPoint = Rect.TopLeft(); TLPoint.x = long(OldTLPoint.x * fsp[0]); TLPoint.y = long(OldTLPoint.y * fsp[1]); OldBRPoint = Rect.BottomRight(); BRPoint.x = long(OldBRPoint.x * fsp[0]); BRPoint.y = long(OldBRPoint.y * fsp[1]); Rect.SetRect(TLPoint, BRPoint); GetDlgItem(woc)->MoveWindow(Rect, TRUE); hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT); } Old = Newp; } if (this->IsPicDerec) { this->drawDerection();//此处因不明原因无法绘制成功,必须绘制两次,待修复 } if (this->IsPicShow) { cv::Mat res = this->getPic().clone(); if (!this->getBackPic().empty()) { vector<vectorcv::Point> contours; cv::findContours(this->getBackPic(), contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_NONE);//查找外层轮廓 cv::drawContours(res, contours, -1, cv::Scalar(255)); } else { res = this->getPic(); } if (res.empty()) { AfxMessageBox("Empty res"); } this->DrawcvMat(res, IDC_Picture); } if (this->IsPicDerec) { this->drawDerection(); } }为什么第一次drawDerection()绘制的图片没有显示?
05-30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值