公司让多个用户只共享一个公共 IP 地址的情况有多普遍?
我希望答案是“不是很常见”,因为我正在开发的软件依赖于非常独特的 IP 号码。
我们使用 WordPress 插件来检查损坏的链接。它使用 cURL 来做到这一点。外部链接工作正常,但内部链接,不是那么多。连接被拒绝。
与我们的主持人讨论了这个问题,他们说“我们将服务器放在内部专用网络上,然后通过 NAT 连接到互联网。
curl 命令必须直接连接到服务器的私有 IP 地址。”
换句话说,curl people-press.org/about/danielle-gewurz/
需要...
curl -H “主持人:people-press.org” 10.5.1.66/about/danielle-gewurz/
我真的不想弄乱插件来让它与我们不寻常的设置一起工作,所以从网络架构的角度你有什么可以推荐的吗?
我知道我正在寻找的是一种叫做发夹式 NAT 环回 / NAT 内部到内部的东西,看起来像这样...... www.juniper.net/techpubs/en_US/junos11.2/information-products/topic- collections/security/software-all/security/index.html?topic-56995.html
当然,我的主人不知道我在说什么。
在设置我们的 OpenStack 环境时,我遇到了一个问题,即阻止实例联系在主机上运行的服务器。元数据服务(暴露 HTTP API)在主机的 8775 端口上运行,OpenStack 网络代码添加以下 DNAT 规则以通过端口 80 上的特殊地址授予访问权限:
-A PREROUTING -d 169.254.169.254/32
-p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8775
Run Code Online (Sandbox Code Playgroud)
实例通过本地桥接设备连接到主机,并169.254.169.254分配给lo.
虽然此规则成功匹配来自尝试访问的来宾实例的数据包http://169.254.168.254/,但它们永远不会到达侦听服务。
用基本上等效的 REDIRECT 替换此 DNAT 规则可使一切正常工作:
-A PREROUTING -d 169.254.169.254/32
-p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8775
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么 REDIRECT 起作用而 DNAT 失败。从 iptables 文档中不清楚该DNAT规则是否适用于本地目标流量。我希望这里有人可以提供权威的答案,最好有文档支持,或者可以建议我的配置中可能有什么问题阻止了 DNAT 规则按预期工作。
我有 Mikrotik RB750 的基本 NAT/路由问题,过去几天我一直无法解决。我们的 ISP 有 26 个 IP 地址:10.10.10.192/27,其中10.10.10.193是网关, 10.10.10.194 是第一个可用 IP。
我需要的是,连接到ether2 的所有东西都从 DHCP 服务器获取公共 IP,而连接到ether3 的所有东西都从另一个 DHCP (192.168.100.0/24) 获取本地 IP。所有客户端都应该可以访问互联网(我稍后会弄清楚带宽限制)并且最好只是“看到”彼此(所有机器都是 Win7,我想这最终可以通过 VPN 处理)。
这是我的设置: ether1 (10.10.10.194) 直接连接到 ISP。
20个客户端连接到ether2(10.10.10.195),和另外20至ether3(10.10.10.196)(均通过相同的24个端口的交换机)。
这是我的设置,它不起作用,ether2 的所有 20 个客户端都可以访问互联网,尽管都是 comm. 似乎来自 10.10.10.194(这是由于 ether1 上的伪装吗?),而ether3根本无法访问互联网。
我认为我需要伪装ether3和 SNAT/DNAT 或 NETMAP ether2,但这也不起作用,我想我需要以某种方式将ether2+3都“连接”到ether1。
地址列表:
# ADDRESS NETWORK INTERFACE
0 ;;; public …Run Code Online (Sandbox Code Playgroud) 我对 NAT 的简单理解是这样的事情可能会发生:
两台客户端PC 192.168.1.2和192.168.1.3打开一个src端口=12345的连接,网关收到这些,需要使用NAT,所以其中一个保持12345,另一个保持12346对外IP 1.1.1.1。
192.168.1.2:12345 1.1.1.1:12345 <-> 2.2.2.2:80
-----> 192.168.1.1 ----->
192.168.1.3:12345 1.1.1.1:12346 <-> 3.3.3.3:443
Run Code Online (Sandbox Code Playgroud)
当数据包回到 1.1.1.1 时,它必须映射到正确的内部 IP 和端口。这将需要某种映射表。
我想知道,那张桌子通常能用多久?
因此,例如,如果我有一个不规则地以任何方式发送数据的协议,是否存在映射已经消失而另一方认为连接已关闭(没有确认)的风险?
在Linux中,有没有办法看到这个表?
我们目前在具有冗余 ip 连接的位置运行 ASA9。我们很乐意进行配置,ip sla以便 Internet 访问能够在单个运营商中断的情况下继续存在。我知道 ip sla 命令,但是当我尝试预填充所需的 NAT 规则时,第二条规则的添加将覆盖第一条规则。下面是一个例子:
object network NYHQ_GUESTWIRELESS_10.110.6.0_24
nat (NYHQ-GUESTWIRELESS,NYHQ-OUTSIDE_FIOS) dynamic interface
Run Code Online (Sandbox Code Playgroud)
当我尝试添加额外的 nat 规则时,也许
nat (NYHQ-GUESTWIRELESS,NYHQ-OUTSIDE_COGENT) dynamic interface
新规则会覆盖先前存在的规则,如下所示:
object network NYHQ_GUESTWIRELESS_10.110.6.0_24
nat (NYHQ-GUESTWIRELESS,NYHQ-OUTSIDE_COGENT) dynamic interface
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让这两个规则都到位,以便 NAT 可以与我们的 SLA 规则合作,以确保无论使用哪个提供商,NAT 仍能正常工作?
在许多具有不同内核版本的服务器上具有相同的效果。
Iptables DNAT 规则有多种:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 12345 -j DNAT --to-destination 10.20.30.40:5678
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23456 -j DNAT --to-destination 10.11.12.13:5789
....
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j LOG --log-prefix 'natudp: '
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.55.66.77:34567
Run Code Online (Sandbox Code Playgroud)
问题:UDP 规则不适用于来自 eth0 的传入请求。
它们的数据包和字节计数器的值为零。
简化(删除 dport)没有效果。
结果,请求被传递到过滤器/输入链而不是转发。
来自虚拟接口(tap、veth)的数据包不存在这样的问题 - 它们被预路由规则捕获。
TCP 则没有这样的问题。
UDP …
我只是在阅读IPv4 地址耗尽真的有多糟糕?并注意到此评论,这似乎暗示运营商级 NAT 实际上已广泛部署。我一直认为,很少有 ISP 部署运营商级 NAT,而是硬着头皮部署 IPv6(尽管现在我想起来我不知道我从哪里得到这个想法)。
不是这样吗?
几年来,我一直在 AWS 上运行四台服务器。这是一个业余爱好项目。所有服务器都位于同一 VPC 的同一子网中。
为了简化帐户和权限的管理,我决定使用 Active Directory。这意味着安装域控制器。文档表明要使用 AWS 域控制器服务,域控制器必须位于 VPC 的私有子网中。继续研究私有子网,这是一个我不熟悉的术语,我了解到私有子网中的 EC2 必须位于 NAT 网关之后——或者至少这是一个强烈的建议。
将域控制器放在 NAT 网关后面的私有子网中的建议显然是基于所提供的安全优势。这引出了我的问题:这些安全优势究竟是什么?
这就是为什么我问...
我现有的四台服务器都有一个私有 IP 和一个可路由(“弹性”)IP,但防火墙阻止任何人连接到后者,除非我创建了一个允许它的安全规则。为什么这对于域控制器会有所不同?我知道 DC 只会被我网络上的服务器使用,而永远不会被 Internet 上的随机外部方使用,但是除非我创建相反的入站安全规则,否则这不会只是默认状态吗?将这些 DC 与它们自己的 NAT 网关隔离在一个隔离的子网上有什么意义?它似乎增加了复杂性,但没有真正的好处。那么,想必是一个颠倒,我只是不知道它是什么,所以我的问题。
(我是业余爱好者,不是专业人士,所以如果你觉得这个问题更适合超级用户,我会删除并在那里重新发布。我只是想,因为它与服务器相关,这个网站可能更合适。)
nat domain-controller amazon-web-services windows-server-2016
我在偏远的地方有一个 4G 路由器来连接互联网。
我的 ISP 没有给我的路由器提供公共 IP,而是似乎将多个 sim 卡放入 NAT 后面的某个专用网络(我显然无法控制)。
所以它可能看起来有点像这样:
--------------------------------------
Internet
--------------------------------------
ISP NAT
--------------------------------------
My 4G Router
------------------------
My hardware firewall
------------------------
My local network
------------------------
Run Code Online (Sandbox Code Playgroud)
我的硬件防火墙可以充当 VPN 服务器,我最好使用该服务器,但我也愿意在本地网络中的计算机上运行单独的 VPN 服务器来解决此问题。
在这种情况下,有什么方法可以运行一个可以接受传入 VPN 连接的 VPN 服务器(我可以从本地网络内初始化到外部 VPN 服务器的 VPN 连接。但我希望能够启动从外部到外部 VPN 服务器的连接)我的网络内的 VPN 服务器)?