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

2020-04-1320:17:47 评论 303
一个路由问题引起的DDNS错误 1
我的网络拓扑如下,实现了PPPoE双拨双出口:
一个路由问题引起的DDNS错误 2
为了实现国内外网络分流,在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

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: