关于 NAT 网络访问的问题

查看 92|回复 9
作者:ryuutanyou   
最近在做一些实验,在一个环境中有两个路由器和两台主机,连接方式如下图,过程中产生了几个问题,查询了一些资料 NAT 转换过程是单向的,下层网主动访问上层网时会转换为上层 IP,而上层网访问下层网 IP 时无法转换。
按照这个说法
[ol]
  • 机器 A 可以 ping 通机器 B
  • 机器 B 不能 ping 通 A 机器
  • 机器 A 可以访问到 192.168.100:4000
  • 机器 B 不能访问 192.168.5.100:5000
    [/ol]
    问题 1:但是机器 A 访问机器 B 网站时候,通信不也是双向的么,机器 B 需要返回响应给机器 A 的浏览器,那么就说明机器 B 在回传消息时候是能找到机器 A ,但是这个现象又和上述的 2 和 4 相悖,这种原因是什么?
    问题 2:如果想让机器 B 能正常访问或者 ping 通机器 A ,在只操作机器 A 的情况下,有什么办法么?类似于问题 1 中描述的,机器 B 回传响应的方式,这种方式如何在 A 机器上实现。

    机器, 访问, ping, NAT

  • lifekevin   
    问题 1:在 NAT 之后,机器 B 就不再与机器 A 通信了,而是与 Router NAT 进行通信,所以机器 B 不知道有机器 A 也访问不到机器 A ;
    问题 2:做了 NAT 之后,想要访问 NAT 里面的机器,可以使用端口映射的方式,把机器 A 的 5000 端口映射到 Router NAT 的 5000 端口,映射之后,访问 192.168.5.1:5000 ,Router NAT 会把访问请求发送给机器 A 的 192.168.5.100:5000 ,这样就可以让机器 B 访问到 192.168.5.100:5000
    ttvast   
    你这图,根本看不懂啊。
    router NAT 和 router ,两个接口,怎么只有一个 IP
    ScepterZ   
    nat 的时候路由器会暂时记住这个转换,让回包的数据能传回来,玩一些游戏时常说的 nat 类型和这个有关,可以查查
    最严格的类型也会保证里边机器主动发起的 tcp 是双向能通的
    zpf124   
    1 ,A 访问 B 时,发送 源 A:port1 -> 目标 B:4000, 路由 5 收到后转发时修改为 源 路由 5:portxxxx -> 目标 B:4000 , 同时记录映射关系,即 路由 5:portxxxx -> 目标 B:4000 实际源为 源 A:port1 -> 目标 B:4000; B 收到请求实际与 路由 5 建立通讯,5 再收到地址后再转发给 A 。
    2 、在 路由 1 上添加静态路由表,路由对于查不到的 ip 会转发到 wan 由上一层路由去处理,而你需要配置一个路由告诉他收到某个 5 的 ip 段时不发送到 wan 口,而是发送到与路由 5 连接的那个 lan 口。
    cpstar   
    这个网络结构不应该上 NAT ,纯路由转发就行了。有了 IP 层的通信,才有 TCP 层的通信。
    kiracyan   
    加静态路由表就可以跨网段了
    ryuutanyou
    OP
      
    @lifekevin
    问题 1:但是机器 A 访问机器 B 的部署的网站时候,能返回响应,这是怎么做到的
    问题 2:我知道在路由器 192.168.5.1 上可以做端口转发,有没有方法不通过操作路由器,直接在机器 A 上能做到端口转发呢?
    ryuutanyou
    OP
      
    @zpf124
    问题 1:也就是说和 @ScepterZ 说的类似,在这单次请求的中,机器 A 访问机器 B 的时候,在路由器( 192.168.5.1 )上,临时记录了映射关系,所以能返回响应数据,一旦这个请求和响应完成之后,这个映射关系也就不在了吧。
    问题 2:有没有办法在机器 A 做某些操作,能让路由器( 192.168.5.1 )穿透 NAT 呢?
    zpf124   
    @ryuutanyou
    2:没有,最少得 AB 都安装 VPN 软件(约等于新开一个路由器把 AB 连一起),或者路由 1 上开启 VPN 然后 A 连上(约等于把 A 接在了 1 路由上),以此来让 AB 都在同一个网段下。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部