美文网首页
谈DevOps平台实施:实现从内网拉取外网依赖的一种方案

谈DevOps平台实施:实现从内网拉取外网依赖的一种方案

作者: 翟志军 | 来源:发表于2019-11-04 14:16 被阅读0次

背景

在大型企业内部,网络通常会被划分成多个不能直接访问的区域。比如本例中,网络被分成了内网和DMZ两个区域。出于安全的考虑,内网的机器不能直接访问外网。内网访问 DMZ 的机器、DMZ的机器要访问外网都需要单独提流程。

但是,我们的应用能部署到 DMZ 区域中吗?答案是技术上不是问题,但是管理上不允许这样做。

所以,在这样的大型企业内部,应用都会部署到内网中(本例中的A、B、C、D)。

可是,总会有一些应用需要发 HTTP 请求到外网。比如实施DevOps平时,我们的应用需要从外网拉取依赖。

这时,怎么办呢?本文就是为解决此问题而写。

解决方案

最后的解决方案如下:

image.png
  • Privoxy 是一个HTTP 协议过滤代理。
  • Squid 是HTTP代理服务器软件。Squid用途广泛,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。

说实话,光看介绍,笔者一开始也一头雾水。不过,看完本文就应该知道它们的作用了。

以下是方案具体实施步骤:

  1. 在应用机器上设置全局环境变量:
export http_proxy=http://192.168.1.100:3126
export https_proxy=http://192.168.1.100:3126

这一步的作用是将本机的 http 流量都代理到 192.168.1.100 的 3126 端口

  1. 在 192.168.1.100 上安装 Privoxy。它的作用是根据配置,决定流量走哪个网络。本例中,它的作用是我们指定的http请求,走到 dmz。而其它的则和原来一样。它的配置如下:
cat /etc/privoxy/config
listen-address  192.168.1.100:3126
forward  .abc.com/  192.168.42.12:3127
  • listen-address 指 Privoxy 监听的IP和端口
  • forward 指接收到符合域名规则(.abc.com)的请求,将转发给 192.168.42.12 的 3127 端口。

到此,得到的效果就是当在应用机器访问 abc.com,admin.abc.com 等时,这些流量都会被 Privoxy 转发到 192.168.42.12 的 3127 端口。其它 HTTP 请求则不会。

而 192.168.42.12 则是安装了 Squid 实现 HTTP 代理的机器的 IP。

  1. 在 DMZ 区的机器上安装并配置 Squid。它的作用才是真正地将请求代理到外网。Squid 的配置样例如下:
cat /etc/squid/squid.conf
http_port 192.168.42.12:3127
cache_mem 64 MB
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
http_access allow all
visible_hostname squid.demo

以上步骤,还要注意机器本身的防火墙策略。

后记

在大型企业内部实施 DevOps 平台,还会遇到另一个网络问题,就是内部网络区域之间,也会有不通的情况,这种情况如何解决呢?留给下篇写吧。

0.png

相关文章

  • 谈DevOps平台实施:实现从内网拉取外网依赖的一种方案

    背景 在大型企业内部,网络通常会被划分成多个不能直接访问的区域。比如本例中,网络被分成了内网和DMZ两个区域。出于...

  • Openshift4 中的 Image policies 与 M

    概述 在指定 pod 拉取外网镜像重定向到内网镜像仓库经常出现拉取外网镜像失败的问题,这个问题在离线安装opera...

  • docker自动发布方案

    内网jenkins拉取git代码打包构建docker 镜像,发布到内网私有仓库,远程ssh或者rancher发布外网容器

  • 利用反向代理实现内网的ssh连接

    内容实现了再补 参考文章:SSH如何反向代理稳定穿透内网利用ssh反向代理以及autossh实现从外网连接内网服务器

  • 物资app下载

    IOS 外网 内网 电力外网 Android 外网 内网 电力外网

  • 外网访问内网方案

    WEB服务器可以采用云服务器,但价格较贵,4核16GB,10M带宽一年就要1万左右。内网服务器配置高,但没有公网I...

  • centos7下搭建DNS服务器

    由于网络控制需要,某项服务使用不同的ip地址对内网和外网的终端提供服务,这就需要我们在内网和外网分别假设服务器,实...

  • 利用AutoSSH建立SSH隧道,实现内网穿透

    当我们使用公司或家中电脑搭建了 Web 服务时,一般不能直接从外网访问,为了实现从外网直接访问到内网的服务,一般会...

  • iptables简单配置DMZ

    要求 内网可以访问外网 内网可以访问DMZ区 外网不能访问内网 外网能访问DMZ区的服务 DMZ区不能访问内网 D...

  • 让 Ngrok 变得更好,Ngrok 重构小记

    我们经常需要由外网访问内网的机器,什么时候会用到外网访问内网?我们就假设这么一种情景,有 1000 台设备安装我们...

网友评论

      本文标题:谈DevOps平台实施:实现从内网拉取外网依赖的一种方案

      本文链接:https://www.haomeiwen.com/subject/rzndzqtx.html