标签: nat

直接在集群中的节点之间路由流量

如果这是一个非常愚蠢的问题,我深表歉意。

客观的

确保要在集群中的节点之间传输的流量不会(低效地)离开集群然后再返回,而是直接在节点之间传输。

背景

我们在发出旨在在节点之间进行的请求时使用外部 IP 地址。

当前的架构如下所示:

            Verizon FIOS ISP(商业,多个静态 IP)
                   |
                   |
            Verizon FIOS 路由器 (Actiontec MI424WR)
            (通过使用将外部 IP 转发到内部 IP 来配置 
             静态 NAT)
                   |
                   |
            托管交换机 (Dlink DGS-1100-24)
               | | | |
               | | | |
            节点 1 节点 2 ... 节点(n)

每个节点都运行Linux Centos并配置了一个内部IP地址(192.168.1.xxx)

路由器配置为使用静态 NAT 将分配给每个节点的外部 IP 地址路由到节点的内部 IP 地址。

顾虑

  • 我可以/应该在交换机中配置从外部 IP 地址到内部 IP 地址的转发吗?
  • 使用当前配置,节点之间的流量是被定向到交换机、路由器级别的正确节点,还是一直传到 DNS 服务器或其他什么?
  • 考虑到路由器还将信号从同轴电缆转换为以太网,我应该使用静态 NAT 还是以某种方式将节点本身配置为具有其外部 IP 地址。完全无视对内部 IP 地址的需求?
  • 有什么我应该做的完全不同的事情,或者这个架构有什么根本性的错误?

非常感谢!

static-routes router nat switch static-ip

5
推荐指数
1
解决办法
251
查看次数

FTP - 500 我不会打开到 xx.xx.xx.xx 的连接

我在 AWS 上运行服务器,并连接到合作伙伴的 FTP 站点(不太了解他们在运行什么)。我的服务器有一个弹性 IP。在下面的结果中 xx.xx.xx.xx 是内部 IP(与我从 IPConfig 得到的相同)。yy.yy.yy.yy 是外部 IP(与 RDPed 相同)。

Connected to ftp.site.com.
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 22:47. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
User (ftp.site.com:(none)): someuser
331 User someuser OK. Password required
Password:
230 OK. Current restricted directory is /
ftp> literal pasv
227 Entering …
Run Code Online (Sandbox Code Playgroud)

firewall nat ftp amazon-ec2 amazon-web-services

5
推荐指数
1
解决办法
2万
查看次数

你如何在 IOS 8.3+ 中 NAT Hairpin

正如我在此处询问并此处重复的那样,似乎 NAT Hairpinning 是我正在寻找的答案,以允许内部服务器通过 ASA 环回以访问外部 IP(不使用 DNS Doctoring)。但是,这些帖子中提供的说明以及此处http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807968d1.shtml#solution2似乎并未涵盖 IOS 8.3+ 上的 NAT Hairpinning(我是运行 9.1) 9.1 甚至不再有静态命令(本身)。

我如何在 IOS 8.3+(特别是 Cisco ASA 5505 上的 9.1(2))中 NAT 发夹。

谢谢!

更新:

这是我在 Cisco 的支持站点上发布的内容...也许附加信息使我的情况更加清楚

我似乎无法让 nat hairpinning 工作......互联网上的大多数说明都表明如何使用 8.3 之前可用的命令来做到这一点。

我尝试了以下方法:

same-security-traffic permit intra-interface

asa-box(config-network-object)# object network my-inside-address-obj
asa-box(config-network-object)# nat (inside,inside) static my-outside-address-obj
Run Code Online (Sandbox Code Playgroud)

这不起作用。

然后我补充说:

access-list hairpin_allow extended permit tcp object Internal_NAT_Range object External_NAT_Range
Run Code Online (Sandbox Code Playgroud)

access-group hairpin_allow in interface inside
Run Code Online (Sandbox Code Playgroud)

这也不起作用(试图在这里表现出应有的勤奋......)。

然后我尝试:

nat (inside,inside) source …
Run Code Online (Sandbox Code Playgroud)

cisco nat ios loopback

5
推荐指数
1
解决办法
5559
查看次数

Proxmox Nat 网络问题

定义

我已经安装了 Proxmox 3.2,我正在尝试将虚拟机配置为处理所有流量并将它们转发到具有私有 ip 的节点的通信服务器。

我使用两个配置完全相同的 CentOS 虚拟机为 NAT 网络配置了服务器。

我所做的

Proxmox wiki 有一个非常有限和基本的 nat 网络文档。
我在这里和 proxmox 论坛上发现了类似的问题(这个这个)。我试图了解linux nat 网络的基础知识,所以我从头到尾完成了这个非常容易理解的教程。我阅读了这篇文章以了解iptables nat 规则

问题

安装和配置后,当我从主机 ping 到 VM 或从 VM 到主机时,输出是:

root@testPrx:~# ping 10.0.4.2
PING 10.0.4.2 (10.0.4.2) 56(84) bytes of data.
From 10.0.4.1 icmp_seq=2 Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)

当我尝试从具有 Internet 连接和 (192.168.0.3) 的同一网络中的服务器通过 telnet 连接到通信服务器的公共 IP 时

bash-4.1# telnet 192.168.0.2 2701
Trying 192.168.0.2...
telnet: connect to address 192.168.0.2: No route to host
Run Code Online (Sandbox Code Playgroud)

当我尝试 …

nat iptables proxmox dnat masquerade

5
推荐指数
1
解决办法
1万
查看次数

从私有 VPC 子网访问 Internet?

我的大脑在试图弄清楚这一点时有点受不了,但我似乎无法让私有子网连接到互联网来获取更新。基本上我想要的是这些服务器的网络访问。我已经尝试过在其他帖子中找到的解决方案,但很容易遗漏一些东西,因为我已经研究了很长一段时间。

到目前为止,我已经完成了以下设置:

  • 在我的 NAT 实例上禁用源/目标检查
  • 为公共子网创建路由表并将其源设置为 IGW(已验证有效)
  • 为私有子网创建路由表并将其源设置为 NAT 实例
  • 使用 80/443 和 ssh 的入站和出站规则为 NAT 实例创建安全组
  • 使用入站和出站 80/443 和 ssh 为私有实例创建安全组

我能够通过 SSH 跳转到 NAT 实例,然后转到私有服务器,所以我知道很多都在工作。我已经通过 ping 内部地址验证了我的规则,但是当我离开本地网络时,我开始遇到问题。

我需要在哪里查看或我需要排除哪些故障以帮助缩小范围?是否有一些需要在我忽略的 NAT 实例上完成的配置?

编辑:配置更新

  • 专有网络:172.16.0.0./16
  • 私有子网:172.16.1.0/24
  • 公共子网:172.16.0.0/24

私有子网路由表:

指向公共子网中的 NAT 实例。无法访问互联网,将 EIP 附加到面向互联网的公共接口。

私人 vpc

公共子网路由表:

将公共子网指向 IGW,我已验证 Internet 访问。

在此处输入图片说明

想法:

我开始认为需要在位于公共子网中的 NAT 实例上设置或创建一些东西来转发来自私有实例的流量,但我不确定需要添加什么。我发现这篇文章解释了在 iptables 中添加伪装规则,这适用于我的情况吗?

nat routing amazon-ec2 amazon-vpc

5
推荐指数
1
解决办法
4812
查看次数

如何从他们在 RouterOS 中输入的同一网关进行连接应答?

我有一个 MikroTik RouterOS 6.23 设备,我的网络如下:

Router
  |
  |-- bridge1_LAN (wlan1 + ether1) (192.168.0.210) -- LAN (192.168.0.0/24)
  |   Here is where computers are. Those include some servers and some users.
  |   Users should be able to navigate always, and servers should
  |   be reachable online always.
  |
  |-- ether2_ADSL (192.168.2.2) -- ADSL router (192.168.2.1) -- WAN
  |   Users should navigate through here because there is no traffic limit.
  |   Incoming traffic should work exactly as with ether3_3G, as a temporary
  | …
Run Code Online (Sandbox Code Playgroud)

nat routing load-balancing mikrotik routeros

5
推荐指数
1
解决办法
9815
查看次数

将环回接口上的端口转发到远程 IP/端口

我有两个 Docker 容器,我试图以特定方式将它们联网。容器 A 在端口 6379 上运行 Redis 服务器。容器 B 正在运行交互式 shell,需要访问 Redis。使用 Docker 的链接功能,容器 B 中的用户可以通过 10.1.0.2:6379 连接到 Redis,该地址通过 Docker 设置的虚拟 eth0 接口传输。

有一个程序将在容器 B 中运行,它希望 Redis 在环回接口的 6379 端口可用。假设此程序无法配置为指向不同的 IP。

我想将流量转发到 127.0.0.1:6379 到 10.1.0.2:6379。我在 NAT 表上尝试了几种 iptables 规则的变体,但是在尝试连接到本地地址/端口时,我要么得到“连接被拒绝”,要么连接永远挂起。用什么iptables规则可以达到这个效果?

这是我尝试过的一件事:

$ sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A INPUT -d 10.1.0.2/32 -p tcp -m tcp --dport 6379 -j SNAT --to-source 127.0.0.1
-A OUTPUT -p tcp -m tcp --dport …
Run Code Online (Sandbox Code Playgroud)

networking nat iptables port-forwarding loopback

5
推荐指数
1
解决办法
2827
查看次数

pf (Mac OS X) 规则将所有流量重定向到特定的 ip/端口

我正在尝试使用 pf重新创建这个 iptables 设置(来自https://github.com/darkk/redsocks):

iptables -t nat -A REDSOCKS -p tcp -d 10.0.0.0/8 -j REDIRECT --to-ports 12345
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
Run Code Online (Sandbox Code Playgroud)

我想将所有去往 10.0.0.0/8(无论是什么端口)的连接重定向到本地端口 12345。在 linux 中,这适用于上述指定的规则。现在我正在尝试在 Mac OS X 上重新创建它。目前我没有尝试过,例如

rdr inet proto tcp from any to 10.0.0.0/8 port 0:65535 -> 127.0.0.1 port 12345
Run Code Online (Sandbox Code Playgroud)

我已经设置了sysctl net.inet.ip.forwarding=1

我不确定甚至 rdr 规则是否等同于 iptables nat 重定向。Redsocks 要求连接保持目标 IP/端口,以便通过代理正确转发。所以我想包中的目的地不应该更改/重写为 127.0.0.1:12345。

nat iptables mac-osx redirect pf

5
推荐指数
1
解决办法
6973
查看次数

pfSense + NAT 和 nginx - 日志中未显示真实 IP

我当前的设置包括 pfSense 防火墙,该防火墙将公共 WAN 流量转发到 NAT 内部 IP。

例子:

  • 104.12.134.12:80 (WAN IP) 端口将所有流量转发到 192.168.1.104:80

这按预期工作,流量正确转发。我遇到的问题是我在 Nginx 日志中看到了本地 IP(即 pfSense 路由器 IP,在本例中为 192.168.1.1)。

我已经搜索过很多文章都建议使用 real_ip 模块,并设置 X-Forwarded-For 标头,但这不起作用。

笔记:

  • 我的路由器的 IP 与端口转发的 IP 不同(这是故意的)。
  • 我没有 104.12.134.12,这只是一个例子。

nginx nat ip port-forwarding pfsense

5
推荐指数
1
解决办法
2198
查看次数

如何将 MikroTik hAP ac lite 路由器配置为第 2 层交换机?

以下是网络拓扑的概述: 网络拓扑结构 无论是弗里茨!盒7340的MikroTik HAP交流精简版路由器目前充当DHCP在两个局域网服务器,有效地分割网络。该的MikroTik路由器还配置了一个桥梁192.168.88.xxxLAN。

为了避免双NAT的麻烦,我想将MikroTik hAP ac lite重新配置为二层交换机。这样做比双 NAT优势。

所有 DHCP 和 NAT 都应由Fritz!Box专门处理 此外,MikroTik hAP ac lite应该在相同的本地 IP 地址范围内有一个静态 IP 地址,这样它仍然可以通过其 Web 界面进行管理。

弗里茨!盒的配置是不是一个问题。然而,我是一个管理MikroTik 的 RouterOS的新手,我在网上没有找到关于这个特定问题的说明。因此,我的问题是:

MikroTik hAP ac lite配置为第 2 层交换机、删除其 DHCP 服务器同时保留用于管理的静态 IP 地址的(详细)步骤是什么?

顺便说一下,我使用的是 GNU/Linux,所以使用Winbox不是我的选择。

MikroTik 支持页面

在 MikroTik 支持页面上,我看到了一篇关于如何配置 DHCP 中继的文章。但是,我不清楚 DHCP 中继是与第 …

nat switch mikrotik dhcp-server

5
推荐指数
1
解决办法
1万
查看次数