微信扫码资讯 微信扫码资讯

一个路由问题引起的DDNS错误

CU技术社区
CU技术社区
2
文章
0
评论
2020-04-1320:17:47 常见问题阅读 2,753
一个路由问题引起的DDNS错误-
我的网络拓扑如下,实现了PPPoE双拨双出口:
一个路由问题引起的DDNS错误-1
为了实现国内外网络分流,在vSRX上导入了近8000条国内路由网段的静态路由,然后缺省路由0.0.0.0/0走IPSec VPN的出口st0.0。
lab@vSRX# run show route protocol static inet.0: 7652 destinations, 7652 routes (7652 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0          *[Static/5] 00:06:36 > to 10.0.65.2 via st0.0 1.0.1.0/24         *[Static/5] 4d 05:23:01 > via pp0.0 1.0.2.0/23         *[Static/5] 4d 05:23:01 > via pp0.0 1.0.8.0/21         *[Static/5] 4d 05:23:01 > via pp0.0 1.0.32.0/19        *[Static/5] 4d 05:23:01 > via pp0.0
由于这条缺省路由只有在IPSec VPN建起来之后才会生效,所以群晖DSM的ddns数据包在这种情况下,没有路由,导致DDNS失败。
在群晖上开启ssh,用root登陆(密码和admin一样),tcpdump抓包看,应该是到服务器的路由不通。
但是此时quickconnect一切正常,这可能是因为quickconnect使用了网内网段,所以有路由出口。解决方案是为0.0.0.0/0添加一个nexthop指向pp0.0即可:
lab@vSRX# show routing-options static route 0/0 next-hop 10.0.65.2; qualified-next-hop pp0.0 { metric 100; }[edit] lab@vSRX# run show route 0/0 exact inet.0: 7646 destinations, 7647 routes (7646 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0          *[Static/5] 00:03:40 > to 10.0.65.2 via st0.0 [Static/5] 00:06:06, metric 100 > via pp0.0
这样在IPSec不可用时,仍能走pp0.0出去。这样改动之后,发现IPSec VPN没有拨号的情况下,DDNS一切正常;
而IPSec VPN拨号的情况下,DDNS的IP地址有时候会解析为IPSec VPN对端出口的公网IP。
这是因为IPSec VPN拨号后,0.0.0.0/0的nexthop优选st0.0,导致DDNS更新数据包有时会走st0.0出去,导致解析错误。
解决方案是,DDNS解析的时候,在DSM上tcpdump抓包,分析目的IP地址,然后把这些与DDNS相关的目的网段都添加为静态路由,nexthop设置为pp0.0抓包命令为:DSM-IPSec> tcpdump -i eth0 -s 0 -n src host 172.16.10.22 -w ddos01.pcap (172.16.10.22就是DSM的内网IP)经过抓包分析,群晖DSM的DDNS过程会用到下面的几个/24网段,添加相应的静态路由后,解析IP就总是pp0.0的公网IP地址了。
lab@vSRX# show | compare rollback 2 [edit routing-options static] route 0.0.0.0/0 { ... } +    route 60.251.87.0/24 next-hop pp0.0; +    route 54.64.187.0/24 next-hop pp0.0; +    route 54.148.98.0/24 next-hop pp0.0; +    route 54.64.93.0/24 next-hop pp0.0; +    route 54.69.83.0/24 next-hop pp0.0; +    route 54.93.172.0/24 next-hop pp0.0;lab@vSRX# run show interfaces terse pp0 Interface               Admin Link Proto    Local                 Remote pp0                     up    up pp0.0                   up    up   inet     111.194.xxx.xxx     --> 111.194.xxx.1
 

点击展开全文

相关推荐