<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[学习实践]防火墙DNAT与SNAT详谈以及用tcpdump抓包解决定位SNAT源IP（可能有俩源IP），防火墙经过地址转换抓包详解。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Wed, 03 Jul 2019 06:42:12 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	对于SNAT这种转换，肯定是跨网段了，怎么个意思呢？<br/>对于家里网想访问公网，肯定会把家里电脑的如：192.168.1.100转为申请的公网出口IP地址。<br/>而对于武哥讲到的：<br/><br/><a href="tcpdump -q -tttt&nbsp;&nbsp;-nn &#039;tcp and dst 10.73.234.1** and dst port 8080&#039; -P in -i eth0" target="_blank">tcpdump -q -tttt&nbsp;&nbsp;-nn &#039;tcp and dst 10.73.234.1** and dst port 8080&#039; -P in -i eth0</a><br/>参数解释：<br/>-P：指定要抓取的包是流入还是流出的包。可以给定的值为&quot;in&quot;、&quot;out&quot;和&quot;inout&quot;，默认为&quot;inout&quot;。<br/><br/>tcpdump -q -tttt&nbsp;&nbsp;-nn &#039;tcp and dst 10.10.0.45 and dst port 9500&#039; -P in -i enp0s3<br/>Warning: -P switch is not compatible with the upstream version. You should use -Q instead.<br/>tcpdump: verbose output suppressed, use -v or -vv for full protocol decode<br/>listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes<br/>2021-07-29 10:00:14.149878 IP 10.10.2.1.37566 &gt; 10.10.0.45.9500: tcp 0<br/>2021-07-29 10:00:14.157827 IP 10.10.2.1.37566 &gt; 10.10.0.45.9500: tcp 0<br/>2021-07-29 10:00:14.158114 IP 10.10.2.1.37566 &gt; 10.10.0.45.9500: tcp 522<br/>2021-07-29 10:00:14.165897 IP 10.10.2.1.37566 &gt; 10.10.0.45.9500: tcp 0<br/><br/>10.10.2.1 指公网XX云VPN虚拟地址。<br/><br/>更多：SLB健康检测的IP和VIP不是同一个IP，且NAT模式VIP下在的机器访问自己的VIP肯定出现1/N的访问不到的情况，于是淘宝采用了FullNat模型，其本质是通过会话查表规避出现源和目的一样的情况。Tcpdump查检测IP方法：<a href="https://jackxiang.com/post/10128/" target="_blank">https://jackxiang.com/post/10128/</a><br/><br/>也就是说LVS的浮动IP向内转到里面的Jenkins某一台服务器时，其源IP和LVS浮动IP不一样且有可能是俩IP（主A备B），也就是同一台客户机发起请求，居然有可能是从A过来，也可能是从B过来，此时在Jenkins（10.73.234.180）配置的防火墙上面配置的IP可能只有A，而没有B，那么从B过来的包被拦截后，也就无法通过外包服务器触发里面的这台Jenkins进行部署代码，起码有一半的概率。<br/>同理：对于GitLab里也出现类似问题，探测IP在探测后端机时，也是因为有俩IP，IPtable里面只写了一个，导致探测出现认为后端两机器都活着，在用户作SSH里连接Gitlab（10.73.234.179）时，出现LVS发现后端另一台也活着，Git Client在SSH 时会时而连接另外一台，在另一台日志出现被攻击的提示，且要修改/home/xiangdong/.ssh/known_hosts 的IP地址，因为另一个SNAT的IP过来连接了，会认为不安全，得删掉。<br/><br/><br/><br/>对于同一个SLB下的服务器N台访问自己的VIP，会出现1/N的的概率访问不通的解释：<br/>S--&gt;SLB--&gt;D<br/>16.1.1.1 -&gt; 18.1.1.1-&gt;出现在SLB里访问的口当SLB的VIP向自己进行回包时,查路由表时，发现源地址一样，导致SLB不再转包，原因是源的目的地址都一样：<br/>X@eth10 IP 18.1.1.1 &gt; 18.1.1.1: S 4229408411:4229408411(0) win 64240 cmss&nbsp;&nbsp;#这俩地址一样了于是不再转发，于是发的包没有回收到，于是出现业务上卡住了。<br/><br/><br/><br/>防火墙经过地址转换抓包详解：<br/>https://blog.csdn.net/shiyuqi_blog/article/details/90230186<br/>防火墙DNAT与SNAT详谈：<br/>https://blog.51cto.com/luosea/1686022<br/><br/>R表示收到，X表示发出，R@eth1是从eth1口收到数据包。X@eth2是从2口发出数据包<br/>16.1.1.1&gt;18.1.1.2 表示IP 16.1.1.1发给IP 18.1.1.2<br/>Seq后面的数是序列号 request和reply的号一致就是一个数据包<br/><br/>抓包过程详解：<br/>防火墙eth1口收到16.1.1.1发给18.1.1.2的request数据包<br/>接着从eth2口这个request数据包转发出去<br/>然后防火墙eth2口收到18.1.1.2发给16.1.1.1的reply数据包<br/>防火墙再从eth1口转发这个reply给16.1.1.1<br/>--------------------- <br/>作者：一只认真的鱼 <br/>来源：CSDN <br/>原文：https://blog.csdn.net/shiyuqi_blog/article/details/90230186 <br/>版权声明：本文为博主原创文章，转载请附上博文链接！<br/><br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [学习实践]防火墙DNAT与SNAT详谈以及用tcpdump抓包解决定位SNAT源IP（可能有俩源IP），防火墙经过地址转换抓包详解。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>