domain-name-system – 基于目的地DNS名称的iptables prerouting?

domain-name-system – 基于目的地DNS名称的iptables prerouting?,第1张

概述我有一个关于iptable prerouting的问题. 我对网络/路由/ iptables并不熟悉,所以我希望这根本不是一个愚蠢的问题.所以我要求你的理解和放纵. 我所做的是: 我使用LXC来分隔容器中的应用程序.要访问容器中的服务(可能是apache2),我必须像这样进行预处理: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2008 我有一个关于iptable prerouting的问题.
我对网络/路由/ iptables并不熟悉,所以我希望这根本不是一个愚蠢的问题.所以我要求你的理解和放纵.

我所做的是:
我使用LXC来分隔容器中的应用程序.要访问容器中的服务(可能是apache2),我必须像这样进行预处理:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20080 -j DNAT --to <container-ip>:80

到目前为止,这么好,按预期工作.

想象一下,主机系统也运行apache2(端口80).它分配了1个NIC和2个DNS名称:DNS1(HostRecord)和DNS2(DNS1的别名)
我想要做的是PREROUTE不使用dport但使用DNS名称,以便:

http://DNS1:80 #ends up at the host apache2http://DNS2:80 #ends up at lxc-container's apache2 (at the the same host)

是否可能,如果是,如何配置iptables?

解决方法 TCP / IP数据包路由到IP地址和网络端口,而不是路由到主机名.

因此,iptables packetfilter也适用于IP地址,网络端口和协议,而不适用于DNS /主机名.

你的选择是:

>配置桥接,以便您的容器获得公共IP地址
比限制在主机和设置DNS的私有范围
因此.
>使用在DNS主机名级别工作的apache反向代理功能(或类似功能),并在应用程序级别路由http请求:

例如:

nameVirtualHost *:80 <VirtualHost *:80>   # The DNS1 site is hosted locally   Servername DNS1   documentRoot /var/www./... </VirtualHost> <VirtualHost *:80>   Servername DNS2   # Forward all requests to container:   Proxypass / http://<container-ip>   ProxypassReverse / http://<container-ip> </VirtualHost>
总结

以上是内存溢出为你收集整理的domain-name-system – 基于目的地DNS名称的iptables prerouting?全部内容,希望文章能够帮你解决domain-name-system – 基于目的地DNS名称的iptables prerouting?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1123984.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存