网络拓扑如上图,要求是从公网访问内网的vSRX,既可以从左侧黑线走,也可以从右侧红线走。
其中左侧黑线出口是pp0.0(物理接口为ge-0/0/1),本身就是公网IP,很容易实现从这条线路来的访问。
但是右侧红线出口是ge-0/0/0接口先连接到无线路由器(172.16.10.1),然后走无线路由器的公网出去。
从公网来的ssh请求,从两个公网入口都可以到达vSRX,但是到ssh请求的源地址的出口却总是pp0.0;
这就导致了从右侧红线入口进来的SSH请求不被应答。
(因为ssh回应包的源IP应该是ge-0/0/0的私网IP,但如果走pp0.0出去,那么源IP就是pp0.0的公网IP了)。
解决思路就是让从无线路由器公网入口进来的ssh请求的ssh应答包仍然从无线路由器送出去。
但问题的关键是,无论从哪个方向来ssh,ssh请求包的源IP地址总是“156.137.8.56”发来的;
而vSRX上到“156.137.8.56”的路由却永远只能有一个,所以,这条路由的出口在哪个方向,就决定了从哪个方向的SSH能进来。
所以我们要想办法创建两个独立的路由环境,路由“156.137.8.56”在这两个环境里面的出口分别是左右两个方向。
具体实现办法是用Junos里面的routing-instance,如下配置:
lab@vSRX# show routing-instances
ssh-redirect-to-ge-0-0-0 {
instance-type virtual-router;
interface ge-0/0/0.0;
----------------------从右侧红线入口来的ssh请求从ge-0/0/0.0送到vSRX;
routing-options {
static {
route 0.0.0.0/0 next-table inet.0;
route
156.137.8.56/32 next-hop 172.16.10.1;
---------通过明细路由将到达这个routing-instance的ssh请求送回到无线路由器(172.16.10.1);
route
156.137.8.57/32 next-hop 172.16.10.1;
}
}
}
而master instance里面,如下设置:
lab@vSRX# show routing-options static | display set | match
156.137.8.
set routing-options static route
156.137.8.56/32 next-hop pp0.0
-------------------这样配置明细路由的目的是防止IPSec VPN拨上后,该路由有可能走st0.0;
set routing-options static route
156.137.8.57/32 next-hop pp0.0
如上设置完成后,从两个方向登录测试,发现已经成功了:
PS,无线路由器上记得做vSRX的ssh端口映射。
lab@vSRX# run show system users no-resolve
10:31AM up 14:43, 2 users, load averages: 0.06, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE WHAT
lab p0 156.137.8.56 10:20AM - -cli (cli)
lab p1 156.137.8.56 10:30AM - -cli (cli)
作者:张蒙
QQ:407960134
电子邮箱:qdzhangmeng@163.com
博客地址:zmouc.blog.chinaunix.net
建立日期:2016年11月9日
阅读(884) | 评论(0) | 转发(0) |