各导航系统使用的时钟

概述 美国GPS导航卫星采用了铯原子钟和铷原子钟结合的方式; 欧盟Galileo导航卫星采用了铷原子钟和被动型氢原子钟结合的方式; 俄罗斯Glonass-K三代导航卫星也将采用铷原子钟和被动型氢原子钟结合的方式。 北斗导航卫星正在开展铷原子钟和被动型氢原子钟相结合的授时方式。 铷原子钟:体积小重量轻、功耗低、技术难度相对较低、可靠性高等优势,但长期稳定度和漂移率指标相对较差; 铯原子钟:低漂移特性,不过寿命是致命短板; 被动型氢原子钟:稳定度指标在传统三样中最优,研发难道高。 1. GPS 早期的GPS使用的霍普金斯大学研制的石英振荡器,相对频率稳定度为10^-11/秒。误差为14m。 1974年以后,GPS卫星采用铷原子钟,相对频率稳定度达到 10^-12/秒,误差8m。 1977年,BOKCK II型采用了马斯频率和时间系统公司研制的铯原子钟后,相对稳定频率达到10^-13/秒,误差再降为2.9m。 1981年,休斯公司研制的相对稳定频率为10^-14/秒的氢原子钟使BLOCK IIR型卫星误差降至仅为1m。 2. 北斗 早期北斗试验系统的卫星原子钟是由瑞士进口 北斗二号的星载原子钟逐渐开始使用中国航天科工二院203所提供的国产铷原子钟。 2015年有发射载有星载氢原子钟的北斗卫星。 203所2017年9月30日成功研发了星载铯钟,预计北斗三号可能使用。

October 13, 2017 · 1 min · pm

tshark实时抓包获取DNS请求信息

1. tshark的安装 CentOS6 YUM源内的wireshark安装后,不支持GeoIP,需要自己编译一下最新的版本。 yum install GeoIP GeoIP-devel geoipup date -y ./configure –with-geoip=/usr/share/GeoIP/ –enable-tshark=yes make rpm-package wireshark自身Makefile带了各发型版的打包功能,所以直接make rpm-package就能make出rpm包 2. 使用范例 抓取DNS请求 sudo /usr/local/bin/tshark -i eth0 -o "ip.use_geoip:TRUE" -Y "udp.dstport == 53" -T fields -E separator='|' -e ip.src -e ip.geoip.src_country -e ip.geoip.src_asnum -e dns.flags -e dns.id -e dns.qry.name -e dns.qry.type -e dns.count.answers -e dns.count.answers -e dns.flags.rcode -e ip.len 抓到的内容如下: 211.138.19.28|China,China|AS24445 Henan Mobile Communications Co.,Ltd,AS24445 Henan Mobile Communications Co.,Ltd|0x00000010|0x0000355f|fxxxx.com|28||0||82 221.204.186.218|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x00004111|xxxx.com|1||0||75 123.157.135.3|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x00001108|xxxx.com|1||0||85 58.30.131.56|China,China|AS9811 srit corp.,beijing.,AS9811 srit corp.,beijing.|0x00000000|0x00005901|xxxxx.com|28||0||82 101.226.66.17|China,China|AS4812 China Telecom (Group),AS4812 China Telecom (Group)|0x00000010|0x00008d2a|xxxx.com|1||0||92 60.31.184.168|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x00005b22|xxxxx.com|1||0||79 60.31.184.168|China,China|AS4837 CNCGROUP China169 Backbone,AS4837 CNCGROUP China169 Backbone|0x00000000|0x0000da7e|lxxxx.com|1||0||74 74.125.176.202|United States,United States|AS15169 Google Inc.,AS15169 Google Inc.|0x00000000|0x0000ca93|xxxx.com|1||0||79 ...

May 4, 2017 · 1 min · pm

使用TLS增强docker的安全性

之前部署docker的时候都是没对docker的HTTP/socker接口进行加密。最近在线上部署的时候就得考虑这个。使用证书对docker进行加密主要参考官方的文档:1. https://docs.docker.com/v1.13/engine/security/https/2. https://github.com/docker/swarm/issues/341 docker engine配置TLS 主要注意做swarm cluster的时候 需要签发证书的时候subjectAltName里把本机的IP。生成证书的从网上找到的一个脚本做了修改,直接在里面把集群的IP都填进去,这样每个机器可以证书相同: #!/bin/bas h # This script will help you setup Docker for TLS authen tication. # Run it passing in the arguement for the FQDN of your docker server # For example: ./create-docker-tls.sh myhost.docker.com The script will also create a profile.d (if it exists) entry which configures your docker client to use TLS We will also overwrite /etc/sysconfig/docker (again, if it exists) to configure the daemon. A backup will be created at /etc/sysconfig/docker.unixTimestamp MIT License applies to this script. I don’t accept any responsibility for damage you may cause using it. set -e STR=2048 ...

March 21, 2017 · 4 min · pm

利用BGP community黑洞路由

场景 在被攻击的时候,当入口无法承受巨大的流量时大家采用的方式是切换业务IP,然后把之前的IP做黑洞。在与ISP对接时,每个ISP都有自己的BGP配置规范。接入方可以参考commuity属性对自己的路由做很多设置,包括MED,Localpref,AS-PATH 添加、路由定向宣告等,另外一个常用的就是黑洞某条路由 模拟拓扑 测试的环境有4个路由器:– R1:企业路由器– R2:ISP路由器– R3:其他ISP的路由器– R4: 其他ISP的客户 测试的方案 先把R1-R4的BGP调通,然后分别按下属操作:1. R1上添加prefix-list把5.5.5.6/32这个明细路由直接发送给R2,并设置community属性4134:666(电信的黑洞属性).2. R2上添加对community 4134:666的匹配操作 ip community-list standard cm-blackhole permit 4134:666 route-map out-filter permit 20 match community cm-blackhole set local-preference 10 set ip next-hop 172.20.20.1 set community additive no- export route-map out-filter permit 30 set local-preference 30 set metric 30 可以观察在R1-R4上的路由情况: R1 路由 094846cab3a9# show ip bgp BGP table version is 0, local router ID is 10.10.0.22 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete ...

March 14, 2017 · 6 min · pm

BGP路由重分发过滤

以下图为例 R1 配置 在R1给R2发送路由时,把6.6.6.0/24去掉。对应的配置为 log file /var/log/quagga/bgpd.log password bgp router bgp 65001 distance bgp 250 200 150 bgp router-id 10.10.0.22 neighbor 10.10.0.23 remote-as 65010 neighbor 10.10.0.23 password DOCKER neighbor 10.10.0.23 ebgp-multihop neighbor 10.10.0.23 prefix-list r1-out out neighbor 10.10.0.23 next-hop-self redistribute connected metric 121 access-list all permit any ip prefix-list r1-out seq 5 permit 4.4.4.0/24 ip prefix-list r1-out seq 6 permit 5.5.5.0/24 !ip prefix-list r1-out seq 10 permit 6.6.6.0/24 ip prefix-list r1-out seq 11 permit 8.8.8.0/24 ```bash ip prefix-list r1-out seq 15 permit 100.100.100.0/23 ge 24 le 32 ip prefix-list r1-out seq 25 permit 10.0.0.0/8 ip prefix-list r1-out seq 50 deny any 可以看到R1给R2发送的路由中把本地的 6.6.6.6去掉了 094846cab3a9# show ip bgp neighbors 10.10.0.23 advertised-routes ...

March 12, 2017 · 3 min · pm

bind 9.11 ECS基本测试

9.11 中增加了多EDNS Client Subnet(ECS)的支持。但是目前网上都还没有相关的测试,仅仅在邮件列表有点没配置成功的咨询。在9.11中需要开启ECS需要在编译的时候指定Geoip yum install -y GeoIP ./configure –with-geoip=–with-geoip=/usr/share/GeoIP/ 目前bind的ACL中是把ECS 带的Client地址作为一个独立的特征做匹配 单ECS本身还是做IP地址匹配,非常容易与现有的地址匹配混淆。最开始以为可以这样搞 acl zone1 { ecs 10.0.0.0/8 ; 10.0.0.0/8; }; acl zone2 { ecs 172.0.0.0/8; 172.0.0.0/8; }; view "zone1" { match-clients {zone1; }; zone "test.org" { type master; file "zone/test.org" ; }; }; view "zone2" { match-clients {zone2; }; zone "test.org" { type master; file "zone2/test.org" ; }; }; 发现走10.0.0.0/8内的源地址带172.0.0.0/8的subnet时始终命中zone1,无法到达预期的效果。目前测试OK的配置只能是把ECS的ACL做独立的view匹配。而且鉴于bind acl并非是最精确匹配,只是线性匹配,配置的时候必须要把ecs view写在最前面,否则即使请求带了ECS OPTION,也会因为源地址先匹配到其他view而达不到效果。。 acl zone1 { ecs 10.0.0.0/8; 10.0.0.0/8; }; acl zone2 { ecs 172.0.0.0/8;172.0.0.0/8; }; acl ecs-zone1 { ecs 10.0.0.0/8; }; acl ecs-zone2 { ecs 172.0.0.0/8;}; ...

March 9, 2017 · 2 min · pm

wordpress垃圾评论清理

最近开启了评论,存在大量机器自动填的垃圾评论。网上找了下一些验证插件,要么是使用还得把评论发到其服务端过滤,要么是像myQaptcha这样的太久不更新早已不能使用。网上找了个方案是直接把wp-comments-post.php文件改一下名字,先试试效果吧。 mv wp-comments-post.php wp-comments-post-gnuer.php sed -i 's/wp-comments-post.php/wp-comments-post-gnuer.php/g' $(grep wp-comments-post.php * -R|cut -d: -f1)

March 9, 2017 · 1 min · pm

全球BGP Looking Glass

有几个场景需要使用BGP Looking Glass。1. 确认某个区域/ISP的用户访问自己的服务时走的路线。2. 在使用自己的BGP网络对外宣告地址时,需要看看自己的ISP是否真的接受了对应的路由。 目前国外主流的Tier1 /Tier2都提供了Looking Glass可以查看路由。网上有整理好的looking glass列表 http://www.bgplookingglass.com/。 以Level 3的为例,可以打开http://lg.level3.net/bgp/lg_bgp_main.php。 输入自己要看的网段后即可看到

March 2, 2017 · 1 min · pm

使用anycast抵御DDOS的方案

前面有多次介绍Anycast的相关内容。这几年伴随每次cloudflare被大规模DDOS,Anycast被越来越多的人关注。根据cloudflare的blog和公开的PPT,大致可以猜出其CDN的部署模式是下图因为Cloudflare单个节点基本都在300G以上,全球就几十个节点。因此一般几百G的DDOS在网络层对Cloudflare无法构成威胁。cloudflare的风险点主要还是应用层的防护性能。部署TCP的anycast时,需要注意的点:1. 交换机的hash规则配置,节点内单个机器维护时hash结果会变,会引起闪断。这对于一般的HTTP服务影响不大,但是如果想改善体验,可以在应用服务器上同步好TCP session。2. 隐藏自己的网络接口地址,不然traceroute找到中间网络接口地址,攻击者攻击中间链路是没法阻止的。3. 各服务使用独立的anycast 地址,各服务异常时不会相互影响,服务异常时能自动撤销路由,但是注意得设置好quota,不热一些异常可能导致所有节点的路由都撤销了。4. 确保global节点的具备足够的接入带宽,某些区域性的攻击过大,如果global节点能抗住可以把流量攻击引入到global节点处理。

February 25, 2017 · 1 min · pm

BGP路由反射

接着上一篇文章中的图要想IBGP内各路由器内都有完整的路由信息,可以做的方案:1. 做full mesh,也就是改一下R1/R2的配置,将对方做peer。2. 将R3设置为路由反射器(Route-Reflector)3. 使用BGP联盟,把内部各路由器划到不同分子AS。 路由反射的配置比较简单,R1/R2的配置不变,R3的配置只需要添加一行 log file /var/log/quagga/zebra.log log file /var/log/quagga/bgpd.log ! password bgp ! interface eth0 ipv6 nd suppress-ra link-detect ! interface eth1 ipv6 nd suppress-ra no link-detect ! interface lo no link-detect ! router bgp 65000 bgp router-id 10.1.0.4 redistribute connected metric 121 neighbor IBGP peer-group neighbor IBGP remote-as 65000 neighbor IBGP password DOCKER neighbor IBGP route-reflector-client neighbor 10.1.0.2 remote-as 65001 neighbor 10.1.0.2 password DOCKER neighbor 10.1.0.2 ebgp-multihop 255 neighbor 10.1.0.3 peer-group IBGP neighbor 10.1.0.5 peer-group IBGP distance bgp 250 200 150 exit ! access-list all permit any ! ip forwarding ipv6 forwarding ! line vty ! end ...

February 23, 2017 · 1 min · pm