﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-Network Manage Tech Experience-随笔分类-F5&amp;NetScaler技术篇</title><link>http://www.cnitblog.com/lxq96/category/7256.html</link><description>Welcome to my tech home !!!</description><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 18:35:47 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 18:35:47 GMT</pubDate><ttl>60</ttl><item><title>DNS与GTM协同工作原理</title><link>http://www.cnitblog.com/lxq96/archive/2008/08/18/48127.html</link><dc:creator>chris_lee</dc:creator><author>chris_lee</author><pubDate>Mon, 18 Aug 2008 06:52:00 GMT</pubDate><guid>http://www.cnitblog.com/lxq96/archive/2008/08/18/48127.html</guid><wfw:comment>http://www.cnitblog.com/lxq96/comments/48127.html</wfw:comment><comments>http://www.cnitblog.com/lxq96/archive/2008/08/18/48127.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/lxq96/comments/commentRss/48127.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lxq96/services/trackbacks/48127.html</trackback:ping><description><![CDATA[<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b3aa19c6-ffca-4629-bb7e-d9c231f86346" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Google 标签: <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=DNS&amp;meta=" rel="tag">DNS</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=GTM&amp;meta=" rel="tag">GTM</a></div> <p>下面假设客户访问<a href="http://www.abc.com"></a>www.abc.com</a>的dns请求流程如图： <p><a href="http://www.cnitblog.com/images/cnitblog_com/lxq96/WindowsLiveWriter/DNSGTM_D10A/clip_image002_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="340" alt="clip_image002" src="http://www.cnitblog.com/images/cnitblog_com/lxq96/WindowsLiveWriter/DNSGTM_D10A/clip_image002_thumb.jpg" width="557" border="0"></a> <p>1， 首先向其所在运营商的Local DNS发起<a href="http://www.abc.com"></a>www.abc.com</a>域名的DNS请求，步骤1； <p>2， 运营商的Local DNS服务器从RootDNS得知<a href="http://www.abc.com"></a>www.abc.com</a>由DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2来解析，即RootDNS同时返回此4个DNS服务器地址给LDNS（这是DNS的工作原理，它一定会返回所有关于请求的记录，在此即4个DNS服务器。如果只返回一个DNS而此DNS刚好中断服务了，那么Local DNS只能是解析失败了），步骤2和3； <p>3， Local DNS轮询向这4个DNS服务器发出域名解析的请求，直到返回数据，步骤4； <p>4， 假如DNS-CTC相应LDNS的域名解析请求，同时返回2台GTM的地址（Listener），步骤5； <p>5， 接受到请求的GTM首先查询在本地是否有该Local DNS的就近性表项，如果存在，则直接给Local DNS返回速度最快的服务器地址。如果不存在，则通知另外一台GTM发起对该Local DNS的查询，步骤6和7； <p>6， 两台3DNS分别对LocalDNS进行Probe。例如GTM-A查询该Local DNS的RTT时间为50ms，而GTM-B查询同一Local DNS的RTT时间为100ms，则此时在两台GTM内都形成了该Local DNS的对应就近性表记录； <p>7， 接受到Local DNS请求的GTM-A根据系统的就近性表返回相应的Data Center内的WEB服务器地址（即1.1.1.1），步骤8； <p>8， Local DNS获得地址后，将该地址返回给用户，到此DNS请求过程结束，步骤9； <p>9， 用户向www.albc.com(1.1.1.1)网站发起访问，步骤10。</p><img src ="http://www.cnitblog.com/lxq96/aggbug/48127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lxq96/" target="_blank">chris_lee</a> 2008-08-18 14:52 <a href="http://www.cnitblog.com/lxq96/archive/2008/08/18/48127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>F5 irule url跳转</title><link>http://www.cnitblog.com/lxq96/archive/2008/08/02/47495.html</link><dc:creator>chris_lee</dc:creator><author>chris_lee</author><pubDate>Sat, 02 Aug 2008 03:43:00 GMT</pubDate><guid>http://www.cnitblog.com/lxq96/archive/2008/08/02/47495.html</guid><wfw:comment>http://www.cnitblog.com/lxq96/comments/47495.html</wfw:comment><comments>http://www.cnitblog.com/lxq96/archive/2008/08/02/47495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lxq96/comments/commentRss/47495.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lxq96/services/trackbacks/47495.html</trackback:ping><description><![CDATA[<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:61656a3d-5ef8-4f5d-9307-81c688118b76" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Google 标签: <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=irule&amp;meta=" rel="tag">irule</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=url%e8%b7%b3%e8%bd%ac&amp;meta=" rel="tag">url跳转</a></div> <p>需求： <br>1，abc.com和<a href="http://www.abc.com">www.abc.com</a>两个域名解析成同一个ip（F5上的vip1），提供443服务，并且只提供<a href="http://www.abc.com">www.abc.com</a>的证书；但是平时会有人通过访问<a href="http://www.abc.com">http://www.abc.com</a>或者<a href="http://abc.com">http://abc.com</a>来访问。所以通过<a href="http://abc.com">abc.com</a>来访问的话会有证书确认的提示。 <br>2，xyz.abc.com解析成另外一个ip（F5上的vip2），提供443服务，绑定xyz.abc.com的证书。</p> <p>需要解决如下问题： <br>1，所有通过http访问的需要跳转到https来访问，即如：<a href="http://www.abc.com">http://www.abc.com</a>需要跳转到<a href="https://www.abc.com/">https://www.abc.com/</a>或者<a href="http://abc.com">http://abc.com</a>需要跳转到<a href="https://www.abc.com/">https://www.abc.com/</a>来访问； <br>2，所有通过<a href="http://abc.com">abc.com</a>来访问的需要跳转到<a href="http://www.abc.com">www.abc.com</a>来访问； <br>3，针对上述两个vip，使用统一的irule。</p> <p>书写irule如下： <br>rule redirect_http2ssl { <br>when HTTP_REQUEST { <br>if { [HTTP::host] equals "abc.com" }{ <br>HTTP::redirect <a href="https://www.abc.com[HTTP::uri">https://www.abc.com[HTTP::uri</a>] <br>} <br>else { HTTP::redirect <a href="https://[HTTP::host][HTTP::uri">https://[HTTP::host][HTTP::uri</a>] } <br>} <br>}</p> <p>应用irule： <br>将此irule应用到两个ip（vip1和vip2）的80服务上面。</p><img src ="http://www.cnitblog.com/lxq96/aggbug/47495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lxq96/" target="_blank">chris_lee</a> 2008-08-02 11:43 <a href="http://www.cnitblog.com/lxq96/archive/2008/08/02/47495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>F5的端口绑定</title><link>http://www.cnitblog.com/lxq96/archive/2008/07/06/46358.html</link><dc:creator>chris_lee</dc:creator><author>chris_lee</author><pubDate>Sun, 06 Jul 2008 04:29:00 GMT</pubDate><guid>http://www.cnitblog.com/lxq96/archive/2008/07/06/46358.html</guid><wfw:comment>http://www.cnitblog.com/lxq96/comments/46358.html</wfw:comment><comments>http://www.cnitblog.com/lxq96/archive/2008/07/06/46358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lxq96/comments/commentRss/46358.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lxq96/services/trackbacks/46358.html</trackback:ping><description><![CDATA[<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f532121d-216d-498c-875f-b88b25a50bd8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Google 标签: <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=F5&amp;meta=" rel="tag">F5</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=trunk&amp;meta=" rel="tag">trunk</a></div> <p>F5的端口绑定在F5的配置上面叫做端口的Trunk，与cisco技术上的trunk不通。</p> <p>一般F5的内外网口都会接入在交换机上面，比如cisco的7609等，这样针对F5做端口绑定就需要注意以下问题了：</p> <p>1，F5端口绑定支持的算法默认为dst-src-ip，是否与互联的交换机兼容；<br>2，F5同样支持LACP协议，是否与互联交换机兼容等；<br>3，F5做Trunk配置在不中断服务的情况下，需要先做standby的配置；<br>4，F5的Trunk需要2个或者多个没有被占用的端口做配置，否则在配置的时候看不到已经绑定了vlan的端口的；</p> <p>其实最简单的配置F5的Trunk就可以了。 例如如下配置：</p> <p>环境及需求描述：<br>思科交换机G1/1连接F5的1.1口，现需要将F5的1.2口与1.1绑成一个trunk使用。</p> <p>思科交换机配置如下：<br>int port-channel 1<br>switchport<br>swit acce vlan 20<br>swit mo acce<br>no shut</p> <p>int range g1/3-4<br>switchport<br>swit acce vlan 20<br>swit mo acce<br>channel-group 1 mode on<br>no shut</p> <p>F5配置：<br>先配置standby的F5，将1.1从vlan里面退出来，然后新建trunk，添加1.1和1.2，如下：<br><a href="http://www.cnitblog.com/images/cnitblog_com/lxq96/WindowsLiveWriter/F5_AF6C/image_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="289" alt="image" src="http://www.cnitblog.com/images/cnitblog_com/lxq96/WindowsLiveWriter/F5_AF6C/image_thumb.png" width="555" border="0"></a> </p> <p>然后将ext_trunk添加入相应的vlan即可。</p> <p>最后连线，完成，检测后切换active/standby，配置另外一台F5.</p><img src ="http://www.cnitblog.com/lxq96/aggbug/46358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lxq96/" target="_blank">chris_lee</a> 2008-07-06 12:29 <a href="http://www.cnitblog.com/lxq96/archive/2008/07/06/46358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>URI,URL和HTTP::uri</title><link>http://www.cnitblog.com/lxq96/archive/2008/05/22/44129.html</link><dc:creator>chris_lee</dc:creator><author>chris_lee</author><pubDate>Thu, 22 May 2008 13:54:00 GMT</pubDate><guid>http://www.cnitblog.com/lxq96/archive/2008/05/22/44129.html</guid><wfw:comment>http://www.cnitblog.com/lxq96/comments/44129.html</wfw:comment><comments>http://www.cnitblog.com/lxq96/archive/2008/05/22/44129.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lxq96/comments/commentRss/44129.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lxq96/services/trackbacks/44129.html</trackback:ping><description><![CDATA[<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1c65a0c6-6858-41ba-8b51-fb29d7d275c7" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Google 标签: <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=URI&amp;meta=" rel="tag">URI</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=URL&amp;meta=" rel="tag">URL</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=HTTP::uri&amp;meta=" rel="tag">HTTP::uri</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=iRule&amp;meta=" rel="tag">iRule</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=HTTP::host&amp;meta=" rel="tag">HTTP::host</a></div> <p>今天接到应用部门一个需求：</p> <p>针对他们部门的某个URL： <a href="http://www.abc.com/"></a><a href="http://www.abc.com/"><font color="#000000">http://www.abc.com/</font></a>和<a href="https://www.abc.com/"></a><a href="https://www.abc.com/"><font color="#000000">https://www.abc.com/</font></a>访问，需要直接跳到某一台主机上，而不希望在这个pool成员中轮询。而且正常的访问这个URL，需要跳转到<a href="https://www.abc.com/"></a><a href="https://www.abc.com/"><font color="#000000">https://www.abc.com/</font></a>，但是一些程序针对这个域名的</p> <p>接口调用则不需要跳转，一般的接口调用的URL最后为“.do”。</p> <p>这个需求比较奇怪，考虑到一般人访问这个域名都是直接访问<a href="http://www.abc.com/"><font color="#000000">www.abc.com</font></a> 其实就是<a href="http://www.abc.com/"></a><a href="http://www.abc.com/"><font color="#000000">http://www.abc.com/</font></a>，而程序接口调用则类似为<a href="http://www.abc.com/*****.do"></a><a href="http://www.abc.com/"><font color="#000000">http://www.abc.com/</font></a>*****.do。这就可以区分开来，在F5的定义中HTTP::uri表示HTTP::host后面的部分。</p> <h4>HTTP::uri</h4> <ul> <li>Returns the URI of the request. It does not include the protocol (http or https) or hostname, just the path, starting with the slash after the hostname. </li></ul> <p>------摘自<a href="http://devcentral.f5.com/wiki/default.aspx/iRules/HTTP__uri.html"></a><a href="http://devcentral.f5.com/wiki/default.aspx/iRules/HTTP__uri.html"><font color="#000000">http://devcentral.f5.com/wiki/default.aspx/iRules/HTTP__uri.html</font></a></p> <p>所以在LTM上面写下如此irule：</p> <p>[root@LB-1A-BIG6400:Active] root #b rule http_https_host1 list <br>rule http_https_host1 { <br>when HTTP_REQUEST { <br>if { [HTTP::uri] equals "/" } { <br>HTTP::redirect <a href="https://[HTTP::host][HTTP::uri]"><font color="#000000">https://[HTTP::host][HTTP::uri]</font></a></p> <p>} <br>elseif { [HTTP::uri] contains "host1" } { <br>HTTP::redirect <a href="https://[http::host][http::uri/"><font color="#000000">https://[HTTP::host][HTTP::uri</font></a>] <br>} <br>}</p> <p>和</p> <p>[root@LB-1A-BIG6400:Active] root # b rule redirect_host1 list <br>rule redirect_host1 { <br>when HTTP_REQUEST { <br>if { [HTTP::uri] ends_with "host1" } { <br>use node a.b.c.d 80 <br>} <br>} <br>}</p> <p>然后将http_https_host1用在80的virtual server上，而将redirect_host1用在443的virtual server上就ok了。 <br>}</p><img src ="http://www.cnitblog.com/lxq96/aggbug/44129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lxq96/" target="_blank">chris_lee</a> 2008-05-22 21:54 <a href="http://www.cnitblog.com/lxq96/archive/2008/05/22/44129.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BigIP系统中SNAT、SNAT POOL与Virtual Server的关系</title><link>http://www.cnitblog.com/lxq96/archive/2008/05/22/44121.html</link><dc:creator>chris_lee</dc:creator><author>chris_lee</author><pubDate>Thu, 22 May 2008 13:41:00 GMT</pubDate><guid>http://www.cnitblog.com/lxq96/archive/2008/05/22/44121.html</guid><wfw:comment>http://www.cnitblog.com/lxq96/comments/44121.html</wfw:comment><comments>http://www.cnitblog.com/lxq96/archive/2008/05/22/44121.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/lxq96/comments/commentRss/44121.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lxq96/services/trackbacks/44121.html</trackback:ping><description><![CDATA[<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d908a969-fd21-40cc-9cdb-0bd481fad5b6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Google 标签: <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=Server&amp;meta=" rel="tag">Server</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=POOL&amp;meta=" rel="tag">POOL</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=Virtual&amp;meta=" rel="tag">Virtual</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=BigIP&amp;meta=" rel="tag">BigIP</a>, <a href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;newwindow=1&amp;q=SNAT&amp;meta=" rel="tag">SNAT</a></div> <p>今天突然想到了Bigip系统内部SNAT的效果，做了一个小小的测试，总结如下： <br>1，SNAT Pool（假定地址为a）只能作为一个对象，即其要发生作用，必须绑定在一个VS或者SNAT中； <br>2，在Virtual Server（假定地址为b）中，绑用一个SNAT Pool后，针对这个VS的所有访问的源地址都会转换成SNAT Pool中</p> <p>的地址（假定地址为a）； <br>3，而在SNAT中绑用一个SNAT Pool（假定地址为a）后，这里面就会指定原始源地址（假定地址为c，d，e或者一个网段），源地址（c，d，e等）通过bigip系统路由到外面的访问，就会将此源地址改成a了。请注意这个没有涉及到VS，纯粹是路由出去的SNAT而已，将相当于路由器上或者防火墙上面的SNAT。</p> <p>SNAT在BigIP上面叫做安全NAT，其实就是源地址NAT而已。</p><img src ="http://www.cnitblog.com/lxq96/aggbug/44121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lxq96/" target="_blank">chris_lee</a> 2008-05-22 21:41 <a href="http://www.cnitblog.com/lxq96/archive/2008/05/22/44121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>