资源预览内容
第1页 / 共83页
第2页 / 共83页
第3页 / 共83页
第4页 / 共83页
第5页 / 共83页
第6页 / 共83页
第7页 / 共83页
第8页 / 共83页
第9页 / 共83页
第10页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
GTM EssentialsPrepared and presented by:LinJingV1.5.2www.cnadn.net2Updates VersionDateDescriptionAuthor/EidtV1.02010/3/27,28OriginalLin JingV1.12010/4/17Correct p40/41,about syncronizationlinjingV1.22010/06/22P39.Add a case about private address of vsLINJINGV1.32010/7/2P59*Add case about cert troubleshooting.linjingV1.42010/7/13Add some caseslinjingV1.4.12010/9/2Minor changeLinjingV1.4.22011/2/11Add one slide and some minor changes.linjingV1.4.32011/3/25Topology都miss的情况下 (注意备注)linjing3Updates VersionDateDescriptionAuthor/EidtV1.4.42011/3/30,28Add explanation of fallback method Lin JingV1.4.62011/4/12Ltm Route domain +GTMlinjingV1.4.82011/5/20Edit,andaddnewpathmetriccollectionslideslinjingV1.4.92011/8/22Add some detail about monitor linjingV1.5.02011/8/23Add a case about gtmd.big3d electionlinjingV1.5.12012/12/13Add memo of big3d broadcast term and slides for itLinjingV1.5.22013/1/11Add gtm topology checking logiclinjing4说明明该PPT适合对GTM/LTM已经有一定基础同学如无GTM知识,建议首先阅读metoo的GTM安装指南-V2.0bible啊,下面连接是v1.0http:/www.adntech.com/bbs/viewthread.php?tid=375&highlight=GTM请到www.adntech.com/bbs上查找v2.0版本错别字请自行纠正本文不是bible,F5软件日新月异,可能部分内容需基于指定版本问题请在帖子下指出并讨论,感谢5GTM关键点pGTM中的对象关系pListener决策策略p证书交换机制pAddnewGTMtosyncgroup八步法piquery结构关系pgtmd、big3d的选举p部分重要算法pMonitor及pathmetriccollectionp私有地址server情形下的NAT处理pNamed.conf,zone,wideip.conf,persistence的同步pZoneRunner&BINDpGTM配置十步法p日志检查及排错6GTM中的中的对象关系象关系VirtualserverServerDatacenterPoolWideipLink7GTM中的中的对象关系象关系vs:GTM中的最小object,逻辑组织在server和pool中,其IP即为GTM最终提供解析的结果Server:用来代表一个server实体,类似于LTM中的node,有bigipserver,non-bigipserver两类,隶属于datacenter中,同一server不应同时存在于两个datacenter中。Datacenter:组织server的容器,表述一个具体的数据中心Link:表述datacenter中的链路,与DC关联Pool:用来组织vs,是wideip的配置要素,同一vs可以同时属于多个poolWideip:对外呈现的智能域名,其下包含pool8Listener决策策略Listener可以是selfip,floating-selfip或独立地址当listener为独立地址时,在node模式下永远都不会把请求交给BIND(named进程)当listener为selfip或floatingip时,请求由TMM交给gtmd,如果无match域名,则交给BIND(GTM中的named进程)当listener为空或独立地址时,如果DNS解析包的目的地址是selfip,那么GTM上的TMM直接把该请求转给BIND(GTM中的named进程)9Listener决策策略如果listener地址是selfip,意味着listener配置不能在HA间同步,此时的listener配置存在于bigip_local.conf中,且unitid=0# cat bigip_local.confvirtual address 10.4.10.253 floating disable unit 0virtual vs_10_4_10_253_53_gtm destination 10.4.10.253:domain ip protocol udp translate address disable translate service disable profile dns udprootgtm2:Active config #10Listener决策策略如果listener地址是floatingip或独立IP,意味着该listener配置可以在HApair间同步BIG-IPSelfIPAddress:self 10.4.10.253 netmask 255.255.0.0 vlan External allow defaultTheGTMlistenerVirtualAddress: virtual address 10.4.10.190 TheGTMlistenerVirtualServer:virtual vs_10_4_10_190_53_gtm destination 10.4.10.190:domain ip protocol udp translate address disable translate service disable profile dns udp11Listener决策策略BestPractics单机环境,配置为selfip双机环境(GTMmodule),但只有一个机器上存在gtm模块,那么使用该机器的selfip双机环境,两机均有GTM,但只希望activeunit提供解析,使用floatingip或独立ip双机环境,两机均有GTM,但希望GTMmodule同时提供解析,使用各自的selfip12证书交换机制F5的证书每一台F5设备都拥有其自己的devicecertificate,存放于/config/httpd/conf/ssl.crt/server.crt,当使用https管理F5时候浏览器获得的证书即为该证书GUI界面systemdevicecertificates下的devicecertificate界面可以显示该证书默认情况下该证书的有效期是一年!在LTM/GTM上,/config/big3d/client.crt中存放的是与其他机器使用SSL通信时要出示的client证书在GTM上,/config/gtm/server.crt存放的是GTM与其他机器使用SSL通信时要出示的server证书13证书交换机制F5的证书-Cont.缺省情况下,以上三个位置的证书完全相同cat/dev/null/config/gtm/server.crtcat/dev/null/config/big3d/client.crt上面两个命令可以将两个证书内容恢复为缺省内容(=http的证书)/config/gtm/server.crt=GUI上GlobalTrafficserverstrustedservercertificates/config/big3d/client.crt=GUI上systemdevicecertificatestrusteddevicecertificates14证书交换机制为什么要交换证书?-为了F5的设备间通信iquery!有三个命令可以交换F5间的证书:bigip_add,big3d_install,gtm_add以上三个命令应在GTM上执行bigip_add只用来同步证书big3d_install推送big3d程序给对方+同步证书gtm_add拉对方配置到本机+同步证书+将自己加入gtm同步组15证书交换机制:bigip_add在GTM上运行,使用SSH协议和scp命令检查wideip.conf中所有类型为bigip的server将自己的devicecertificate推送到其他bigip上的/config/big3d/client.crt中将所有其他bigip的devicecertificate拉到自己的/config/gtm/server.crt中可以重复执行,但是多次运行会导致client.crt,server.crt中包含重复证书。未必是问题,但会很乱。可以在命令后指定对方F5设备地址,此时将只和该设备交换证书16证书交换机制:big3d_install在GTM上运行,使用SSH协议和scp命令如果环境中各个F5设备的软件版本不一样,那么必须保证big3d程序的版本一致,因此该命令可以同步big3d程序检查wideip.conf所有bigip类型的server,向其推送自己系统上的big3d程序执行和bigip_add一样的证书拷贝过程如果目标的big3d版本相同或更高,则会跳过可以在命令后指定对方F5设备地址17证书交换机制:gtm_add在一台没有配置的GTM上执行执行前应确保在远端GTM上已将该newGTM作为bigipserver加入到datacenter中清除本地wideip.conf及zone配置,拷贝远端GTM上的配置(wideip,named,zone)到本地将自己加入到syncgroup中,因此这台newgtm的初始配置只要配好网络即可,但需注意listener是否在同步范围内同步证书18证书交换机制:gtm_add做了什么?备份/config/gtm/server.crt-server.backup将远端GTM的devicecertificate拷到自己的client.crt的顶部中将自己的devicecertificate拷贝到远端GTM的/config/gtm/server.crt及/config/big3d/client.crt中与远端GTM建立iquery拷贝远端的/config/gtm/server.crt整个文件覆盖本地的/config/gtm/server.crt使用sync_zone,syncer同步namedwideipzone完了吗?19证书交换机制:gtm_add做了什么?Cont.NewGTM的device证书还没有传给那些LTM设备!事实是:做完gtm_add后,ltm设备上的/config/big3d/client.crt中也会出现newGTM的证书。怎么做到的?Gtm_add脚本貌似没有处理这个过程!20证书交换机制:最终的证书结构GTM上的/config/gtm/server.crt中有所有其他GTM或lc/ltm的device证书及自己的device证书GTM上的/config/big3d/client.crt中有自己及其他GTM的device证书LTM上的/config/big3d/client.crt中有自己及所有其他GTM的device证书LTM上的/config/gtm/server.crt中只有自己的device证书(或者没有这个文件)!交换证书,其实只是为了保证有对应的CA!如果证书是第三方或多级证书请参考我的另一篇文档,在adntech.org/bbs上有21添加新添加新GTM到同步到同步组中八步法中八步法DefineVLANsDefineSelfIPsCreatedefaultrouteDefineNTPserversCreatenewGTMserverobjectondonor(existing)GTMConfiguresyncgroupondonor(existing)GTMRungtm_addonCLIofnewGTMDefinetheGTMlisteneronnewGTM22Certificates related SOL Tipsopenssls_client-tls1-showcerts-connect:4353-cert/config/httpd/conf/ssl.crt/server.crt-verify/config/gtm/server.crt-key/config/httpd/conf/ssl.key/server.key在GTM上手工模拟与其他bigip设备进行SSL通信过程SOL9114-CreatinganSSLdevicecertificateandkeypairusingOpenSSLSOL6353-UpdatinganSSLcertificateonaBIG-IPGTMorLinkControllersystemSOL8187-TroubleshootingBIG-IPLTMandGTMdevicecertificatesSOL7754-Renewingself-signeddevicecertificatesSOL4146-Creatingaself-signedcertificatethatexpiresinadifferentvaluethanthedefaultvalueof10years23iquery结构关系正确交换完证书是iquerymesh结构建立的前提IqueryF5私有协议,使用TCP:4353,V9.2以上版本使用SSL加密通信实际传输的是gzip压缩的XMLblockdataIquery负责bigip间monitor、heartbeat、pathmetriccollectionresult、persistence的交换或同步,是各种configurations(wideip.conf,named.conf,zone)同步的触发者Big3d在所有selfip,内部接口包括mgmt上监听tcp:4353(udp4353是3dns时代选项)Iquery是gtmd与big3d之间的通信,所以iquerymesh是gtm与gtm,gtm与ltm(lc)之间的mesh。非gtm之间无需iquery通信(该ppt不讨论WA等其他设备中的iquery)24iquery结构关系rootgtm2:Activeconfig#netstat-na|grep:4353tcp0010.30.0.1:43530.0.0.0:*LISTENtcp00127.1.1.1:43530.0.0.0:*LISTENtcp00172.24.18.11:43530.0.0.0:*LISTENtcp00127.2.0.2:43530.0.0.0:*LISTENtcp00127.10.0.0:43530.0.0.0:*LISTEN25iquery结构关系 GTM1 GTM1 GTM2 GTM226iquery结构关系rootgtm2:Activeconfig#lsof-i-P|grep4353|grep-iestbig3d12744root8uIPv43850569TCP10.30.0.1:4353-10.30.0.1:42933(ESTABLISHED)gtmd12771root8uIPv63850565TCP10.30.0.1:42933-10.30.0.1:4353(ESTABLISHED)gtmd12771root9uIPv63850799TCP10.30.0.1:42950-38.1.1.10:4353(ESTABLISHED)gtmd12771root10uIPv67490416TCP10.30.0.1:49989-38.1.1.11:4353(ESTABLISHED)gtmd12771root11uIPv63850801TCP10.30.0.1:42952-10.30.0.2:4353(ESTABLISHED)Red:gtm自己上gtmd和big3d之间的iquery连接Blue:该gtm与另一dc中的gtm及ltm的iquery连接Green:该gtm与本dc中的ltm的iquery连接rootltm2:Activeconfig#lsof-i-P|grep4353|grep-iestbig3d26130root8uIPv425628301TCP10.30.0.2:4353-10.30.0.1:42952(ESTABLISHED)结合上一张slide,能看出什么问题吗?27iquery结构关系Iqdump能证明iquerymesh是否建立好吗?不能。Iqdump执行时,会独立的创建一个连接,它并不能证明现有的mesh是否正常。Iqdump所显示的是对端设备上big3d的广播内容rootgtm2:Activeconfig#lsof-i-P|grep4353|grep-iestbig3d12744root8uIPv43850569TCP10.30.0.1:4353-10.30.0.1:42933(ESTABLISHED)gtmd12771root8uIPv63850565TCP10.30.0.1:42933-10.30.0.1:4353(ESTABLISHED)gtmd12771root9uIPv63850799TCP10.30.0.1:42950-38.1.1.10:4353(ESTABLISHED)gtmd12771root10uIPv67490416TCP10.30.0.1:49989-38.1.1.11:4353(ESTABLISHED)gtmd12771root11uIPv63850801TCP10.30.0.1:42952-10.30.0.2:4353(ESTABLISHED)iqdump 31986 root 3u IPv6 11179495 TCP 10.30.0.1:57617-10.30.0.2:4353 (ESTABLISHED)Iqdump可以证明iquery是否可以建立,可以监听big3d当前广播的内容28Ltm have route domainLtm10.2.1HF1以上版本方支持routedomainGTM自身目前还无法支持routedomain配置LTM+GTMcombo的盒子支持routedomain*10.2.1HF1只支持发现和学习iquery所在routedomain的vs*C85891829Ltm have route domain + ltm need NAT此情形下,由于ltm的nat,所以无法使用vs自动发现功能,所以只能将vs手工加入到ltmserver,但需注意:此时ltm无法发送和iquery连接不在同一routedomain的vs的状态信息。例如:iquery使用的是routedomain10的ip,那此时手工加入的vs,只有domain10的vs状态可以自动从ltm上学习到,所有其他domain的vs状态将是红色。解决方法:同上一页,加LTM多次到gtm中,每次用一个routedomain的ip,然后在这些ltm中,手工加对应domain的vs。30gtmd、big3d的选举;Monitor及pathmetricMonitor是为了监控和探测serverMonitor获取server及其上VS的可用性以及性能参数Monitor是对内的一种探测,不同于patchmetric的采集,pathmetric是一种对外探测Monitor按照monitor的类型不同,分为bigip型和host-base型两种探测Monitor的实际执行者是big3d进程,但big3d自己不会主动执行探测,它受gtmd的指使Big3d在所有已建立的iquery连接上广播monitor结果*(备注注)31Iquery broadcast1.GTM1inDC-1isresponsibleforqueryingBIG-IP1forvirtualserverstatus.2.GTM1opensaniQuerysocketonBIG-IP1sexternalSelfIP.GTM-3isalsoconnectingtoBIG-IP1sexternalSelfIP.3.BIG-IP1transmitsvirtualserverstatusonalliQueryconnectionsestablishedonitsexternal Self IP.4.GTM2inDC-2cannotconnecttotheexternalinterfaceofGTM1andBIG-IP1inDC-1,butitcanconnecttotheinternalSelfIPofboththeGTMandBIG-IPinDC-1.GTM2ismarkingallthevirtualserversonBIG-IP1asunavailable/down.BothGTM1andGTM3willshowallthevirtualserversonBIG-IP1asavailable/UP.Whyisthisbroken?32Iquery broadcast33有有iquery关系但不在相同同步关系但不在相同同步组名下名下如果GTM之间构成了iquerymesh关系,但GTM在不同的同步组下,此时VS的状态信息更新可以彼此传递,big3d同样能被自动委派。但配置无法同步,不管是否在GTM全局配置中勾选了Synchronization或SynchronizeDNSZoneFiles,wideip或zone配置都不会同步。34一些注意点:一些注意点:即使DC中的唯一一个big3d(GTM)被disable掉,这个被disable的GTM依然探测本DC下的VS,同DC下的VSlink并不被disable。Disable掉一个DC,则该DC下的vs、link也被disable,且相关monitor都不再工作。Linkdown,同DC种的GTM并不down。假如一个DC中只有一个big3d(GTM),那么GTMdown了,相关的link也就down了,相关的vs也就down了。35gtmd、big3d的选举众多的big3d和gtmd进程,三个和尚没水吃,谁该为谁负责,谁该承担实际probe的责任?两个层次的选举:1,选举gtmd作为负责人2,选举big3d负责具体的probe工作以monitor为目的的选举和以patchmetriccollection的选举是不同的选举出的gtmd负责发送probeto指令,而big3d负责具体的probe工作36gtmd、big3d的选举(monitor)-gtmd的选举被monitor对象所在DC中有无gtmd?如果有本DC中是否只有一个gtmd?如果是那么它成为唯一的负责者;如果多个gtmd,按照算法,依据每monitorinstance为单位分配,每个gtmd都将成为一部分被monitor对象的负责者如果没有,扩展到整个syncgroup执行上述选举过程。gtmd负责发送probeto指令给big3d.接下来该为每个monitorinstance选择一个big3dagent执行实际的探测工作37gtmd、big3d的选举(monitor)-big3d的选举选举出的每个gtmd都要拥有自己的big3dagentBig3d选举分两类,一类是bigip-based类型的monitor,一类是host-based类型的monitorBigip-based类型,由于该bigip设备上拥有自己的big3d进程,因此该big3d接受某个gtmd发来的probeto指令,并通过广播方式发送给所有gtmdHost-based类型,首先检查在被探测对象的同DC中是否存在big3d,如果存在则按照算法选择当前workload最小的一个big3d;如果不存在则在整个syncgroup*选择workload最小的big3d一个monitorinstance由哪个big3d执行,不是一成不变的,根据其workload,是不固定的。但对Non-bigip类型server可以指定StatisticsCollectionServer38A case about gtmd,big3d election3个gtm,分别属于3个DC,每个DC只有gtm自己,无其他big3d,dc1中有一个genericvs现在假设gtm1和gtm2之间无法通信,但gtm1,gtm2和gtm3都能通信此时在gtm2和gtm3上看,vs1是什么状态?39Monitor及pathmetriccollectionGTM上的monitor承担着对内服务器的可用性及性能数据的采集工作monitor和patchmetriccollection是独立的两回事可以在GTM上的以下层面配置monitor:VirtualserverServerPoolmemberPoolLink40Monitor及pathmetriccollection对于这些monitor存在以下逻辑关系:server和virtualserver雷同LTM上的Node和poolmember关系(只是雷同)pool和poolmember如同LTM上的pool和poolmember关系pool和server间是与关系,与结果应用到poolmember上配置重叠的monitor没有任何好处,应仔细处理monitor间的关系41当当LTM server使用使用bigipmonitor,且手工在,且手工在其或其下的其或其下的vs上指定其他上指定其他monitor时行行为-此时,将执行具体的这个monitor例如tcp,且执行的big3d有可能是ltm自己,也可能由gtm上的big3d,且此时这个vs上的流量、连接等信息是无法学习到的。如果取消vs上的monitor,则由bigip类型monitor接管如果是LTMserver上有bigip+其他类型monitor,则bigipmonitor是有ltm执行的,但其他monitor则gtm或ltm都可能执行。此时bigipmonitor可以获取流量连接等信息42配置配置monitor的最佳的最佳实践践不要在virtualserver层面定义monitor在server层面定义连通性的monitor方法,例如gateway_icmp,当然如果是bigipserver,一定使用bigipmonitor在pool层面定义针对content或应用的monitor(如果poolmember都是来自ltm上学来的,不用额外在pool上再定义了),如果poolmember是来自bigip-based或host-based的混合,那么可以只在host-based的poolmember上指定对应的monitor,而pool层面不定义monitor小心部分monitor是关联具体端口的,你的vs或poolmember端口会和这个monitor冲突吗?43Monitor及pathmetriccollectionPatchmetric是dc到ldns之间的metricdata,为基于path的LB算法决策提供支持仅在使用了pathLB算法的前提下才会启动某台gtm在接到某个新ldns的请求后,接到请求的gtmd即为该ldns的初次负责人,它将调度如果有关DC(条件:1.被选择的vs所在的pool使用了path相关算法如qos,rtt;2.该pool下绿色VS所在的DC。满足上述条件的DC中的big3d才会发起对ldns的探测,否则不会发起。)big3d探测的结果以广播形式发送给每gtmd,因此ldns.gz文件是无需同步的首轮探测结束后,将使用算法重新选举一个gtmd接管成为该ldns的负责人首轮探测后的后续探测:同样只有DC中有vs被用在了使用path算法的pool中,那么该DC种的big3d才会发起对ldns的探测,否则不会发起。如果DC有多条LINK,只有与具体VS(同上vs定义)宿主相同网段的那条link才会被探测如果一个dc没有big3d,但是它的vs却又被用在了使用path算法的pool内的话,怎么办?-将无法完成探测,应避免。GTM利用算法对经常发起解析的ldns保持较高频率对探测,而对使用较少的ldns减少探测*。并有算法保证防止因对newldns的探测而占用过多带宽(dnsflood攻击)44pathmetriccollectiondetail设置pathttl为3分钟,pathretry时间是1分钟。一个gtm都用自己的探测来记时,每分钟组内选举一次,找一个人探测;由于下一次探测有可能不再是自己,所以存在超时,例如探测第一次后,分钟时候选举变成gtm2探测,那么对gtm1来说第分钟时候自己并没探测,于是自己的pathttl超时,超时后等待pathretry时间自己主动retry探测一次。在测试环境下个选举探测人的时候总是轮询,因此对每一个自己来说就变成了:每分钟看到一次探测包。从个全局来看便是:分钟一次,然后一分钟后一次,然后再分钟后一次,然后再一分钟后一次。但这个并无实际意义。对于每个的链路来看,就等于是每pathttl+pathretry时间有一次探测,对于缺省设置来说就是每42分钟探测一次。45pathmetriccollectionBIG3DGTMDGTM1DC1BIG3DGTMDGTM2DC2LDNS46私有地址server情形下的NAT处理GTM在添加server时提供了translation的配置,意在解决NAT问题47私有地址server情形下的NAT处理GUI界面的address表示public地址,translation表示private地址!为何如此设计?就是这么设计的。在增加一个host-based类型server时,直接正确填写正确地址即可在增加一个bigip-based类型server时,需先正确填写server的相关ip(公私地址都应填),然后手工在该server下增加具体的vs(公私地址都填),此时自动发现功能将自动失效48私有地址server情形下的NAT处理Big3d何时使用public地址,何时使用private地址来通讯呢?当一个big3d所在的server在GTM是以translation方式配置时,在同一个DC中通信时使用private(translation)地址,在DC间使用public(address)地址,但如果不是以translation方式配置,则只能用public地址49私有私有VS地址地址一个一个CASE环境是LTMcomboGTM用户首先将box理解为GTM加入server(with地址转换),然后将box理解为LTM加入server(without地址转换),这样做的目的是为了能从LTM部分自动发现VS(这里不考虑这样将导致GTM解析出私有地址问题)实际效果:能自动发现VS,但是有一部分vs是红的,即使这些VS在LTM部分都是绿色的50算法:算法:GTM persistenceStaticpersistence(pool层面中)对每一个ldns进行hash关联一个解析结果Dynamicpersistence(wideip层面配置,由pool里的LB算法决定第一次解析结果,随后在该vs可用且在设定的timeout时间内保持)51算法:算法:pool中的中的Fallback算法算法在pool中的第三个算法(fallback算法)中部分算法是要依赖于“respectfallbackdependency”功能.那些需要使用GTMD判断可用性的算法需要依赖它。例如RR/GA等算法。fallbackip/R2dns这些本身不需要gtmd决定vs状态的算法则不依赖“respectfallbackdependency”52算算法:拓扑法:拓扑使用f(ldns,pool/vs/DC)组合在topology表中从上到下搜索,一旦匹配某条,即将分值付给wideip下的pool条目,或者pool下的VS条目并停止继续搜索(无论是否选择了longestmatch)。Wideip下的pool条目或者pool下的vs条目均得到赋值后,系统选取得分最大的那个条目(注意不要被ASKF5上的sol的一些描述误导),如果恰巧分值相同,系统将RR。请看备注中的举例以更好的理解已经配置的topology,修改其order(v11GUI)或者改动longestmatch可能无法达到预期的效果,即匹配可能依旧是按照旧topo走。可能需要重配或者重启gtmd53Named.conf,zone,wideip.conf,persistence的同步在gtm间的iquery中相互通信这heartbeat信息,包含了named,wideip,persistence的timestamp,每10秒发送一次rootgtm1:Activeconfig#iqdump38.1.1.12lab2_team2|grep-i_timestamp126922452512689863831269224606-EarlierversionsofGTM(pre9.3.0and9.4.2)使用,现已废弃!如果wideip或者named文件有更新那么该时间戳将会发生变化,接到变化通知的gtm将会启动相关同步程序进行配置文件的同步Wideip_timestamp表示当前wideip.conf文件的最新修改时间,如果该时间变新,将触发named.conf等文件同步,zone文件也可能会同步。Named_timestamp表示named.conf文件的最新修改时间,如果时间变心,将触发named.conf以及zone文件的同步Persistence的同步较为复杂因此首先第一步配置NTP服务器是GTM中非常关键的一步54Wideip_timestamp变化后化后如果发现比自己的wideip.conf时间新,那么gtmd将使用syncer脚本从对方拉取相关文件,包含/config/gtm下的诸多重要文件.用gtmparsel分析文件并load如何查看一个wideip.conf文件的最新时间rootgtm2:Activeconfig#moregtm/wideip.conf#(gtm2.training.com38.1.1.12)dumped03/26/201023:17:24PDT-GTMVersion9.3.1.37.0.0(如果起初system-generalpropertiesgtmgeneral下的syncronization没有打钩或同步组名不一样,那么在gtm_add过后再手工再改这个配置的话需要全部手工改完才会彼此开始同步,所以请注意此时必须小心考虑谁的配置是最新的,最新配置的GTM应该最后去打这个钩,因为widedip.conf是靠比较时间的!小心!)但是上面的这个配置gtm_add时候是可以同步的55Named_timestamp变化后化后Gtmd如果发现时间戳比本地新,那么将通过mcpd发送一个start_sync_zones的消息给zrdZrd将促发sync_zones拉取差异化数据(zones)Sync_zones调度rsync拉取配置文件(使用独立的iquery通道)Sync_zones在同步时会临时备份文件到一个flielist里,然后使用named-checkconf命令检查,如果有错误则恢复备份的文件正确更新完毕后,zrd通过mcpd发送end_sync_zones信息给gtmd告知其同步已完成在日志里看到synstarted,说明这台设备是被同步的(此GTM是同步的目的方)56ZoneRunner&BINDZonerunner,图形化的BIND配置工具,表现为zrd进程为bind和mcpd通信提供桥梁,gtmd修改wideip将通过mcpdzrd告知BIND进程进行对应的修改使用动态更新机制控制bind中的zone更新!allow-updatelocalhost;57ZoneRunner&BIND由于使用动态更新方式控制zone,所以不要轻易尝试手工编辑zone文件Wideip,zonerunner界面的配置修改,并不会立即同步到对应的zone文件中这些变化临时存在于/var/named/config/namedb下对应zone的jnl文件中BIND的named.conf文件存放于/var/named/config目录下,zonerunner界面也可以编辑F5的BIND默认不提供递归功能58ZoneRunner&BINDSeeSOL7176:F5NetworkssupportforZoneRunner,BIND,andthenameddaemon59GTM配置十步法1.DefineVLANs2.DefineSelfIPs3.Createdefaultroute4.DefineNTPservers5.DefineGTMlisteners6.Createdatacenters7.CreateServerobjects8.big3d_installorbigip_addforBIG-IPservers9.CreateGTMpoolObjects10.CreateWideIPs60日志检查及排错Gtm日志保存在/var/log/gtm中当需深入排错时,可以打开gtmd的一些高级日志GTM.QueryLogging=enable/defaultdisableGTM.DebugProbeLogging=enable/defaultdisableLog.GTM.Level=debug/defaultnoticeLog.Big3d.Level=debug/defualtnotic61日志检查及排错rootb1500-930-1b:Active config # tail -f /var/log/gtm |grep 172.24.9.15Jul2213:55:20b1500-930-1bgtmd1036:011ae039:7:CheckprobingofIP:Port172.24.9.15:80inDCdc3Jul2213:55:20b1500-930-1bgtmd1036:011ae03a:7:Willnotprobe172.24.9.15:80inDCdc3becausewillbedonebyotherGTM(gtm2dc2.training.com:172.24.9.12)Jul2213:55:31b1500-930-1bgtmd1036:011ae03d:5:Probefrom172.24.9.13:buffer=tcp:ffff:172.24.9.1580:ffff:172.24.9.1580642state:timeoutJul2213:55:31b1500-930-1bgtmd1036:011ae0f2:1:Monitorinstancetcp172.24.9.15:80UP-DOWNfrom172.24.9.13(state:timeout)Jul2213:55:31b1500-930-1bgtmd1036:011a6006:1:SNMP_TRAP:VS172.24.9.15:80(Serverdc3_ext-host_training_server)statechangegreen-red(VSdc3_ext-host_training_server:Monitortcpfrom172.24.9.13:state:timeout)Jul2213:55:31b1500-930-1bgtmd1036:011a5004:1:SNMP_TRAP:Serverdc3_ext-host_training_server(ip=172.24.9.15)statechangegreen-red(Serverdc3_ext-host_training_server:NoenabledVSavailable)rootb1500-930-1b:Active ucs # tail -f /var/log/gtm |grep WideJul2213:55:31b1500-930-1bgtmd1036:011a3004:1:SNMP_TRAP:WideIPww1.acme.comstatechangegreen-red(WideIPww1.acme.com:Noenabledpoolsavailable)62日志检查及排错rootb1500-925-1a:Active ucs # tail -f /var/log/gtm |grep 172.24.9.15Jul2213:55:26b1500-925-1agtmd987:011ae039:7:CheckprobingofIP:Port172.24.9.15:80inDCdc3Jul2213:55:26b1500-925-1agtmd987:011ae03b:7:Willprobe172.24.9.15:80inDCdc3Jul2213:55:26b1500-925-1agtmd987:011ae03d:5: Probe to 172.24.9.13:buffer=tcp:ffff:172.24.9.1580:ffff:172.24.9.158012015110042SEND=1RECV_I=3Jul2213:55:31b1500-925-1agtmd987:011ae03d:5:Probefrom172.24.9.13:buffer=tcp:ffff:172.24.9.1580:ffff:172.24.9.1580642state:timeoutJul2213:55:31b1500-925-1agtmd987:011ae0f2:1:Monitorinstancetcp172.24.9.15:80UP-DOWNfrom172.24.9.13(state:timeout)Jul2213:55:31b1500-925-1agtmd987:011a6006:1:SNMP_TRAP:VS172.24.9.15:80(Serverdc3_ext-host_training_server)statechangegreen-red(VSdc3_ext-host_training_server:Monitortcpfrom172.24.9.13:state:timeout)Jul2213:55:31b1500-925-1agtmd987:011a5004:1:SNMP_TRAP:Serverdc3_ext-host_training_server(ip=172.24.9.15)statechangegreen-red(Serverdc3_ext-host_training_server:NoenabledVSavailable)63日志检查及排错Mar 17 05:55:48 gtm3 gtmd1260: 011ae03c:7: getconfig_put: Could not find my own box, will not continue with auto discovery. 把把LTM加入到加入到GTM, ,iquery都建立了,却没有都建立了,却没有vs被被发现,如果有此日志,如果有此日志说明明gtm自己没有被加入到自己没有被加入到server中中64日志检查及排错Iqdumppeer_ipaddresssync_group_name不跟sync_group_name只能看到基本的心跳和server统计信息,无法看到vs信息Dig或nslookup得到类似AUTHORITY:2的flag,意味着结果是由BIND给出。65日志检查及排错某个object由哪个big3d负责探测是可能不断变化的,这在某种情形下或许会导致server状态的flapping在1500平台上,Big3d,gtmd竞争20%的CPU资源,因此大量的path探测可能会导致性能问题,可以关闭GTM上的big3d对path的探测功能,在加gtm到server的时候有iqueryoption,关闭path探测即可66日志检查及排错SOL8187:TroubleshootingBIG-IPLTMandGTMdevicecertificatesSOL8195:OverviewoftheBIG-IPGTMbig3d_install,bigip_add,andgtm_addutilitiesSOL4039:OverviewofiQuerycommunicationbetweenBIG-IPand3-DNSversion4.xandBIG-IPLTMandGTMversion9.xSOL5965:TheBIG-IPGTMisunabletomonitorBIG-IPversion4.x67日志检查及排错wideip层面选择GA,GA所要选择的pool变红,但是该pool里的某个算法可以实现解析出一个IP地址,测试GTM依然会选择该POOL。例如pool里的算法是fallbackip/returntodns.因此如果要在WIDEIP层面做GA,应该不容许pool层面总是可以得到结果的情况出现。Pool中算法选择none是控制算法跳过或跳跃到下一个可用pool的好方法。68Topologyhttps:/support.f5.com/kb/en-us/solutions/public/9000/600/sol9620.htmlhttps:/support.f5.com/kb/en-us/solutions/public/10000/700/sol10721.html69Topology都都miss的情况下的情况下 (注意注意备注注)如果wideip层面的top算法都failed,则行为如下(V9.3.1wideip下有2个pool):1.选择第一个可用的pool2.按照被选择的pool里所设定的算法来作为pool间的算法,例如pool中是的第一算法是RR,则在POOL间轮询。3。如果被选择pool的第一算法failed,则使用第二算法,因此类推。4。如果被选择pool的算法所决定的最终算法是returntodns则意味着这个pool不可用,此时returnto到wideip上,而不是真正的BIND,即又会回到wideip层面选取下一个可用pool并按照该pool设定的算法执行,如果这个pool的算法最终又是returntodns,就会真正的returntoBIND.70与排与排错相关的更多相关的更多资源源GTM配置关键点及排错总结.pptx这篇文档在给channel的资料U盘上有超超的GTM2daystraining-v2.pptxhttp:/www.adntech.com/bbs/viewthread.php?tid=1476&highlight=GTMGTM部署模型方案讨论http:/www.adntech.com/bbs/viewthread.php?tid=982&extra=page%3D171关于开关于开GTM CASENSE虽然通过wideip.conf可以大体复现一个网络结构,但是这往往不全面,提供全面清晰的GTM网络结构图往往非常有助于解决问题L3的服务,记得一定先自我仔细排查并搜集有效的信息及证据,准确描述问题现象及时间是关键提供gtmd的debug及gtmd的probedebug日志信息往往更有效Askf5,devcentral,adntech.com拥有很多优秀的资源,常规问题或许别人已经见过出现问题前做过什么,往往会有惊奇发现相互理解更能快速解决问题72CASE-cert troubleshooting-clueIquery通信正常时候,gtmd,big3d之间的SSL过程:以GTM和LTM为例,gtm要用其gtmd主动发起一个SSL到LTM上的big3d的协商,此过程中,GTM作为ssl的client端,ltm作为ssl的server端。这是一个双向SSL认证过程:GTM(gtmd)sslclient-LTM(big3d)sslserver那么:1.Gtmd发clienthello2.big3d响应serverhello并发送服务端cert(httpd证书),certrequest(携带可接受的CA-从client.crt中读取)给gtmd3.Gtmd得到big3d发来的证书后,用其server.crt来校验big3d发来的证书。并看big3d发来的可接受CA中是否有自己devicecert所对应的CA。然后gtmd发送客户端cert(httpd证书)给big3d,并发送certverify申请4.big3d端检验gtmd发来的客户端证书并做hash校验如果一切OK,则通过73正常正常时模模拟iquery 连接接rootB3600-R18-S41:Activeconfig#openssls_client-tls1-showcerts-connect61.61.61.200:4353-cert/config/httpd/conf/ssl.crt/server.crt-key/config/httpd/conf/ssl.key/server.key-verify/config/gtm/server.crtverifydepthis0CONNECTED(00000003)depth=0/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-server端发出的证书信息verifyerror:num=18:selfsignedcertificate-可以忽略verifyreturn:1depth=0/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20verifyreturn:1-Certificatechain-server端证书链信息0s:/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20i:/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-BEGINCERTIFICATE-下面的证书传给clientMIICTDCCAbWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJDTjEQMA4GA1UECBMHYmVpamluZzEQMA4GA1UEBxMHYmVpamluZzEOMAwGA1UEChMFZjVsdG0xETAPBgNVBAsTCDIwMTAwNzAxMRYwFAYDVQQDEw1CMzQwMC1SMTctUzIwMB4XDTEwMDcwMTA1MjA1N1oXDTIwMDYyODA1MjA1N1owbDELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB2JlaWppbmcxEDAOBgNVBAcTB2JlaWppbmcxDjAMBgNVBAoTBWY1bHRtMREwDwYDVQQLEwgyMDEwMDcwMTEWMBQGA1UEAxMNQjM0MDAtUjE3LVMyMDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxy1oFb8B1wmBRUwJGwY1kCVlAlpqUMnHslOpA2aWNguADkI5P5cL2KSnoQvdt/6pX1WjJDhipA4yEJbCkYpmO+Lj28rzVKs+5FEa+IRDYsA/B6jUs5rwlzB07TWx8SZY5kLNX3IOzegOBnCw5Sllrm2rEdc3GCG2ciQGC14wlCkCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBq0yhPtxNdAfZlNgRw06cDX5B1lmZS/C+N12B8a5R9fpqaZ4VX5jbFZT/rxs8S/G9G6ch+b+RQHEW9L0D8yjc15l3Mii4eWH7mbjJBaJ7rDSRvQomYOIqIs+FZrXqmLdn75YNIc+wdrZcNiC6ud1Lecue+/sO7PKCPa+iZVSbjgQ=-ENDCERTIFICATE-74正常正常时模模拟iquery 连接接Cont.-Servercertificate-服务端证书信息及其issuersubject=/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20issuer=/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-AcceptableclientcertificateCAnames-服务端发出的certrequest,表明其可接受这些CA下的证书/C=-/ST=WA/L=Seattle/O=MyCompany/OU=1277774828/CN=localhost.localdomain/emailAddress=rootlocalhost.localdomain/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-SSLhandshakehasread1040bytesandwritten1414bytes-New,TLSv1/SSLv3,CipherisAES256-SHAServerpublickeyis1024bitCompression:zlibcompressionExpansion:zlibcompressionSSL-Session:Protocol:TLSv1Cipher:AES256-SHASession-ID:63010946C033659C1F0D739320E9B514A2247F828B600D4DAC35D003308BA3B9Session-ID-ctx:Master-Key:930D767A9579440DE37D5CD45D989E9FD2BA646896669A33A068DD7531BC3CE85DCE77E82C45BEF70625409EBA43D702Key-Arg:NoneKrb5Principal:NoneCompression:1(zlibcompression)StartTime:1278039408Timeout:7200(sec)Verifyreturncode:18(selfsignedcertificate)-x2?O?M.?K-*,a.?0?Qh?gg?glllS?.-握手通过后传出的压缩报文75CASE1: :cert troubleshooting -clue环境:一个GTM,一个LTM,bigip_add同步证书后,应该在GTM的server.crt里有GTM+LTM的证书,在LTM的client.crt里有GTM+LTM的证书确认证书同步没错,iquery正确,LTM也绿色在GTM的trustedservercertificate中删掉LTM的证书,然后重启LTM的big3d,使iquery重连。在GTM上openssl发起连接测试,得到下页结果76在在gtm-server.crt中中删除除ltmcert测试verifydepthis0CONNECTED(00000003)depth=0/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20verifyerror:num=18:selfsignedcertificate-verifyreturn:1depth=0/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20verifyreturn:1-Certificatechain0s:/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20i:/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-BEGINCERTIFICATE-MIICTDCCAbWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJDTjEQMA4GA1UECBMHYmVpamluZzEQMA4GA1UEBxMHYmVpamluZzEOMAwGA1UEChMFZjVsdG0xETAPBgNVBAsTCDIwMTAwNzAxMRYwFAYDVQQDEw1CMzQwMC1SMTctUzIwMB4XDTEwMDcwMTA1MjA1N1oXDTIwMDYyODA1MjA1N1owbDELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB2JlaWppbmcxEDAOBgNVBAcTB2JlaWppbmcxDjAMBgNVBAoTBWY1bHRtMREwDwYDVQQLEwgyMDEwMDcwMTEWMBQGA1UEAxMNQjM0MDAtUjE3LVMyMDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxy1oFb8B1wmBRUwJGwY1kCVlAlpqUMnHslOpA2aWNguADkI5P5cL2KSnoQvdt/6pX1WjJDhipA4yEJbCkYpmO+Lj28rzVKs+5FEa+IRDYsA/B6jUs5rwlzB07TWx8SZY5kLNX3IOzegOBnCw5Sllrm2rEdc3GCG2ciQGC14wlCkCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBq0yhPtxNdAfZlNgRw06cDX5B1lmZS/C+N12B8a5R9fpqaZ4VX5jbFZT/rxs8S/G9G6ch+b+RQHEW9L0D8yjc15l3Mii4eWH7mbjJBaJ7rDSRvQomYOIqIs+FZrXqmLdn75YNIc+wdrZcNiC6ud1Lecue+/sO7PKCPa+iZVSbjgQ=-ENDCERTIFICATE-77接上接上页-Servercertificatesubject=/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20issuer=/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-AcceptableclientcertificateCAnames/C=-/ST=WA/L=Seattle/O=MyCompany/OU=1277774828/CN=localhost.localdomain/emailAddress=rootlocalhost.localdomain/C=CN/ST=beijing/L=beijing/O=f5ltm/OU=20100701/CN=B3400-R17-S20-SSLhandshakehasread1040bytesandwritten1414bytes-New,TLSv1/SSLv3,CipherisAES256-SHAServerpublickeyis1024bitCompression:zlibcompressionExpansion:zlibcompressionSSL-Session:Protocol:TLSv1Cipher:AES256-SHASession-ID:00DC03FFA492BE4C00A2D57043E5AFA6801FEE4E897483A60E464434039E4EE2Session-ID-ctx:Master-Key:8D0FF68C39573FE57B7018B9117F7FD04BEAF42033A5C3F2BBA0592BE022ED890E5AEA66F3473959D22B34DF12B42F0AKey-Arg:NoneKrb5Principal:NoneCompression:1(zlibcompression)StartTime:1278034050Timeout:7200(sec)Verifyreturncode:18(selfsignedcertificate)-x2?O?M.?K-*,a.?0?Qh?gg?glllS?78看看iqdump输出的技巧出的技巧rootB3600-R18-S41:Activeconfig#iqdump61.61.61.2003466:error:14090086:SSLroutines:SSL3_GET_SERVER_CERTIFICATE:certificateverifyfailed:s3_clnt.c:897:-第一行给出最终的SSL错误错在哪!这很重要,例如上面信息说明,client提交证书后请求certverify,但最终server认为verify出错(客户端lgtmd上关于ltm的证书被删除了-顺延上面的ppt)-New,(NONE),Cipheris(NONE)SSL-Session:Protocol:TLSv1Cipher:0000Session-ID:1B7E30B22EF72147A34177B7DF5740B4123A0042EFDD94EA84C3C19FA9EB0AF7Session-ID-ctx:Master-Key:Key-Arg:NoneKrb5Principal:NoneStartTime:1278042375Timeout:7200(sec)Verifyreturncode:0(ok)-上面这一块给出SSL的协商会话信息,如果这里的returncode没错,往往意味着SSL握手过程没错,但不代表就真的SSL通信正常79看看iqdump输出的技巧出的技巧-cont.见备注基于P62所述环境的输出80思想:bgi3d作为SSLserver端,gtmd作为sslclient端,从SSL握手验证角度考虑证书验证关系:GTM自己验证自己不用考虑根证问题81Some caseC713247,v10.1(ltmcombogtm),不要将ltm中不存在的vs(即generichost)定义到gtm的server下,会导致一些其他的vsflapping.C681773,v10.1某种情形下同步触发后会导致wideip文件出现乱字符,EnhotfixC708249v10.1作为委派的NSrecord建立后,GUI不能点击进去查看该记录,显示“Resolverreturnednosuchrecord.”已知问题,以后版本修复SOL12062不要在gtm的vs层面设置snmpmonitor82SG gtm training 2011、 、7.7tcpdump-ni0.0:nnns0port53tcpdump-nitmm0s0port53Tmm0可以抓取从tmm发给bind的包
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号