这个应用场景是
10.148.159.124有一批3千万个小文件需要传输到10.181.1.37,大家知道小文件压缩很慢,而且压缩完,每次scp到网络通的一台服务器,传输写盘,再传输再写盘,再传输再写盘,要一直守着,万一中途有事,可能就第二天了,第二天再来一次,就第三天了。本来一个12小时搞定的事,结果搞了3天。
这里通过配置,经过ssh自动的多级跳转,达到直接拷贝到目标服务器
情况是这样子的,有3个机房,分核心区和dmz区,dmz区中的可以连接到另外一个dmz区的某一台
第一个机房是
dmz区10.148.158.0/24
核心区10.148.159.0/24
第二个机房
dmz区10.144.0.0/24
核心区10.144.1.0/24
第三个机房
dmz区10.181.0.0/24
核心区10.181.1.0/24
网络情况是
第一个机房的10.148.158.0/24通过10.10.2.41 访问到第二个机房dmz的10.144.0.29
第二个机房的10.144.0.0/24通过10.20.3.23 访问到第三个机房dmz的10.181.0.87
每个机房的核心区只能连本机房的dmz区
现在的情况时要从第一个机房的核心区拷贝一个文件到第三个机房的核心区
可能比较绕,这里画个图
Host 10.10.2.41
ProxyCommand sshpass -p password ssh -q -W %h:%p user@10.148.158.129
Host 10.20.3.23,10.144.1.*,10.144.0.*
ProxyCommand sshpass -p password ssh -q -W %h:%p user@10.10.2.41
Host 10.181.0.*, 10.181.1.*
ProxyCommand sshpass -p password ssh -q -W %h:%p user@10.20.3.23
首先理下思路,因为当前所在服务器是10.148.159.124,所处的是核心区,
所以要先拷贝到dmz区,
然后再拷贝到第二个机房的dmz区的10.144.0.29(专网地址10.10.2.41)
然后再拷贝到第三个机房的dmz区的10.181.0.87(专网地址10.20.3.23)
最后拷贝到第三个机房的核心区的10.181.1.37这台
首先我们在10.148.159.124执行的命令是scp xxx.tar.gz user@10.181.1.37:/tmp
ssh检测到10.181.1.37 需要执行ProxyCommand sshpass -p password ssh -q -W %h:%p user@10.20.3.23
然后连接10.181.0.87(即专网地址10.20.3.23)
ssh检测到10.20.3.23需要执行ProxyCommand sshpass -p password ssh -q -W %h:%p user@10.10.2.41
然后连接10.10.2.41
ssh检测10.10.2.41需要执行ProxyCommand sshpass -p password ssh -q -W %h:%p user@10.148.158.129
10.148.158段的当前所在的10.148.159.124是可以直接连接的,所以就开始连接,上面到倒推,连的时候就是
10.148.159.124–>10.148.158.129–>10.10.2.41(10.144.0.29)–>10.20.3.23 (10.181.0.87)–>10.181.1.37
这个网络流向,中间经过3个跳转,就是上面配置的
如果需要拷贝到第二个机房10.144.0.30
数据流向就是
10.148.159.124–>10.148.158.129–>10.10.2.41(10.144.0.29)–>10.144.0.30
如果这个配置文件放到10.148.158.47上面
就是10.148.158.47–>10.148.158.129–>10.10.2.41(10.144.0.29)–>10.144.0.30 中间还是经过了2跳
虽然158已经可以通过10.10.2.41直接访问第二个机房的dmz区,但是因为加了第一个配置,ssh还是要跳转一次,
这里如果不需要就要去掉,
如果是在第二个机房的核心区,配置依然要调整,这个就根据需求自己调整了,这里不再说明了,理解这个意思就好
另外如果sshpass不加,每次会提示输入密码,如果密码一样还好,密码不一样,每次要想一下当前的一个网络流向,当然需要输入的是哪一台的密码