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

前端之家收集整理的这篇文章主要介绍了domain-name-system – 基于目的地DNS名称的iptables prerouting?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个关于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 apache2
http://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>

猜你在找的HTML相关文章