Articles of NAT

虚拟箱linux路由

对不起,基本的问题,但我不能找出这一个。 我想build立一个小型的Linux服务器networking进行testing。 所以我有一个主机服务器运行虚拟框与以下接口: wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.4 netmask 255.255.255.0 broadcast 192.168.0.255 Then a guest vm with the following networking set up: eth0 Link encap:Ethernet HWaddr 08:00:27:EA:15:4F inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 eth1 Link encap:Ethernet HWaddr 08:00:27:E3:E2:BC inet addr:172.16.0.1 Bcast:172.16.7.255 Mask:255.255.248.0 第二位客串嘉宾如下: eth0 Link encap:Ethernet HWaddr 08:00:27:15:CA:14 inet addr:172.16.0.2 Bcast:172.16.7.255 Mask:255.255.248.0 inet6 addr: fe80::a00:27ff:fe15:ca14/64 Scope:Link […]

networking服务器短时间无法访问

我们有一个开发Web服务器(Ubuntu的)与一些网站上运行。 大多数时候这工作正常,但自从我们开发的一段时间,我们得到一个“无法连接”的错误,当加载一个网页,没有什么特别的,即使在一个简单的HTML页面。 一分钟前工作正常的页面,这持续了几分钟,之后又开始工作。 所以几分钟,我们不能连接到我们的服务器与http请求,SSH例如工作正常。 我们监视了服务器的负载,但是这一直保持在0.03。 我们认为问题将是Apache或Mysql,但即使重新启动它们,服务器仍然无法访问。 更新:当通过域名服务器不可达时,当我们使用服务器的IP地址时,它仍然工作。 所以我不认为服务器本身是问题,但在路由器上的DNS我们的东西。 任何人都知道问题可能是什么?

将KVM虚拟networking连接到互联网

我有一个运行KVM的CentOS服务器,需要连接一个虚拟networking到互联网。 networking必须路由或NAT,不能桥接(端口安全)。 如果可能的话,我想用第二个IP地址将networking连接到eth0的别名,并为主机留下第一个IP,但是可能会颠倒这一点。 客人不提供需要互联网访问的服务,但需要访问和主机。 只有KVM的networking设施,我无法find任何指示。 关于如何连接一台机器或多台机器上的单个端口有几处提到,但没有讨论如何连接整个networking,并让它处理机器之间的交换stream量。 有几篇文章build议使用路由的虚拟networking,但在这种情况下,似乎没有任何区别于NAT的路由。 开放的vSwitch已经被提及了几次,虽然几乎没有文档存在似乎讨论与桥梁运行它。 一些文章说,他们正在运行在NAT模式,然后继续build立似乎是一个桥梁。 无论如何,我正在努力构buildOVS,试图build立起来。

NAT公网ip到那个很多的pvt ip

我有一个两个接口一个与IP 10.10.18.2和其他与IP 192.168.1.2,192.168.1.3别名的Linux机箱。 xen主机通过交换机与ip 10.10.18.3和网关10.10.18.2连接。 在Xen主机2虚拟机运行与IP 10.10.18.43和10.10.18.44与网关10.10.18.3(xen主机)。 要求:对应vms的NAT 192.168.1.0/24到10.10.18.0。 如果我做DNAT; 即每一个目的地址为192.168.1.2到10.10.18.43的数据包将会从10.10.18.43到10.10.18.43的数据包到达请求IP地址,因为在10.10.18.43接收到的数据包将具有源IP地址作为请求IP地址,从而拒绝来自10.10.18.43请求结束。 如果我做的是从 10.10.18.43到192.168.1.2来解决上述问题,那么DNAT ing 192.168.1.3到10.10.18.44如何与上面现有的SNAT规则一起工作呢?

通过将数据包传递到外部节点来设置IP伪装

我试图find一个解决scheme,以防止远程机器确定我的networking服务器的源IP。 这是为了隐藏networking服务器的实际IP,帮助避免DDoS攻击。 传入的请求已经在HTTP代理上,因此在这种情况下IP不可见,但是我的传出连接(ping和状态查询)会向攻击者显示源IP。 本质上,我希望传出的TCP和UDP数据包通过远程节点(这将执行NAT)。 然后节点将转发包含节点IP的数据包,并接收任何响应,这些响应将被传回到源机器。 如果我也可以指定多个节点进行故障转移,那将是非常好的,但我不知道这是否可行。 道歉,如果这是使用错误的术语,我在这方面的知识是有限的。 编辑1 我已经添加了一些我想要实现的示例图像。 这是我目前拥有的,攻击者可以从请求中追踪我的源IP。 (全尺寸: http : //puu.sh/25FNG ) 这是我想要实现的,源IP隐藏的地方,如果一个节点被攻击,它不会影响我的根服务器。 (全尺寸: http : //puu.sh/25FR9 )

在NAT内部和外部工作的被动FTP

我在NAT后面使用了vsftpd 2.2.2。 为了使它工作,我将pasv_address设置为我的外部(互联网)IP。 现在的问题是客户端通过局域网连接 – 他们试图连接到服务器通告的被动IP,显然失败。 我知道一些ftp客户端可以configuration为忽略广告的地址,但不是所有的不幸的。 这怎么解决?

Nat Traversal,同事无法沟通

我目前正在做一个需要穿越NAT的项目,但我似乎遇到了困难。 我有以下设置运行testing: R1,Verizon Fios路由器连接到互联网。 R2,Belkin路由器通过以太网连接到它的WAN口到R1的交换机。 我介绍服务器,通过以太网连接到R1。 R1转发端口6666到我。 A和B,运行客户端软件的计算机通过Wifi连接到R2。 介绍服务器和客户端说明: 当A和B启动客户端时,客户端在端口6666上向外部地址R1(72.82.59.10)发送一个“HelloPacket”。 接收到一个HelloPacket后,服务器首先检查是否已经看到源地址和源端口标识符。 如果不是,则首先将它的对端标识符表(source ip / port)中的每个条目发送给它从其接收到HelloPacket的对等端,然后将其作为新条目存储在其对等表中。 如果有,则重置对等端超时,以便它知道继续将这个对等标识符发送给将来连接的对等端。 在客户端最初将HelloPacket发送到Intro服务器后,如果有已经将自己引入到服务器的对等端,则可以期望从服务器接收名为IntroPackets的数据包。 这些IntroPackets包含对等体的外部和内部IP /端口。 既然对等方知道现有的对等体,那么新连接的对等体就有责任将HelloPacket发送给现有的对等体,让他们知道它的存在。 这是我有麻烦的地方。 我没有足够的声望发布图像,但这里是我在设置的颜色的图表: http : //i.stack.imgur.com/7E5I8.png 这里是事件的顺序和我遇到的问题: 介绍服务器启动并侦听types为“HelloPacket”的UDP数据包 Peer A启动它的客户端,然后将HelloPacket发送到地址/端口上的Intro服务器: 72.82.59.10,6666 介绍服务器接收到HelloPacket,并向其表中添加一个条目,并且不会将任何IntroPackets发送给对等体A,因为表中没有其他对等体。 表A中的条目类似于以下对于A: IP:72.82.59.10,端口:1024 Peer B启动它的客户端,然后将HelloPacket发送到介绍服务器。 介绍服务器接收HelloPacket并向其表中添加条目。 介绍服务器然后发送一个IntroPacket到包含对等体A的地址和端口的新连接的对等体。 介绍服务器的表在这一点上看起来如下所示: 同侪A:72.82.59.10,1024 对等B:72.82.59.10,1025 对等体B接收到IntroPacket,然后尝试向对等体A发送一个hello分组。 第6步是我的devise失败的地方。 Peer A永远不会收到来自Peer B的HelloPacket。据我了解,当路由器收到一个目标端口为1024的数据包时,它将使用它的NAT映射到内部地址和端口。 它是否正确? 我试过运行一个外部程序,只是发送数据报到外部地址和端口映射到客户端A,但这些似乎并没有通过,所以我不认为这是一个超时问题。 我也知道我应该尝试连接到内部地址和端口,看看客户端是否在同一个NAT后面,并计划在未来实现这一点。 而且,在客户端和服务器代码中都使用Go-Back-N可靠地完成所有通信。 问题: 我可以忽略在我的devise中至关重要的东西,或者仅仅是不能简单地理解UDP穿越NAT? 对等体A能够从服务器接收一个数据包而不是对等体B的原因是什么? (由于对等方能够从服务器接收数据包) NAT是否考虑到源地址? 任何input是非常感谢! […]

如何通过VPN发送cURL发出的HTTP请求?

请原谅(可能)noob问题,但我对Linuxnetworking很新。 我已经花了几天的时间在网上search我的问题的答案,但无法find一个,所以我决定在这里发布一个问题,因为我知道很多熟练的专业人士访问这个网站。 无论如何,在实际的问题:我有两个服务器可用。 我们称之为Server-A和Server-B。 我使用OpenSWAN在Server-A和Server-B之间build立了一个VPN隧道。 我为服务器A分配了源IP:192.168.2.1,为服务器B分配了172.16.2.1。 我成功地能够从Server-A ping 172.16.2.1,从Server-B ping 192.168.2.1,所以我假设我已经正确设置了VPN,并且两台服务器都能够通信。 现在,在服务器-A,我想能够做到这一点: 当我通过libcurl发出一个HTTP请求,像这样: curl http://checkip.dyndns.com/ 我想看看通过服务器的公共IP地址发出的请求。 但是,当我发出: curl –interface 192.168.2.1 same_url_as_in_the_above_request 我希望请求通过VPN,为了使用服务器B的Internet访问,所以我希望看到服务器B的公共IP地址在checkip响应中列出。 现在,当我发出这样的请求时,我收到以下错误: curl(7):无法连接到主机 我能做些什么来达到这个目标,还是完全走错了路? 所有我想要做的就是使用服务器-A从服务器-A的Internet访问只访问某些网站,或者当服务器-A的ISP由于某种原因而closures时。 我不需要自动化,只是希望能够在需要时手动执行此操作。 我想我需要做一些路由或NAT,但我不知道该怎么做 – 过去几天我已经阅读了很多资料,但是我很难弄清楚确切的iptables和/或路由命令应该看起来像,如果在所有设置VPN是正确的解决scheme。 我真的希望这里有人能给我一个build议,我真的很抱歉,如果我让你们都笑这样一个noob问题。 最好的祝福!

iptables可以丢弃stream量,但不能redirect

假设TCP数据包被发送到目的ip(dest_ip)并且可以通过以下命令被丢弃: iptables -A INPUT -d dest_ip -p tcp -j DROP 但是,当我尝试使用iptables NAT将数据包redirect到不同的ip(diff_ip)时,数据包仍旧到达旧目标(dest_ip): iptables -t nat -A PREROUTING -d dest_ip -p tcp -j DNAT –to-destination diff_ip 有一些iptables,我不太明白在这里,因为我期待数据包不能再达到dest_ip。 有人能解释为什么这样吗? 谢谢。 可能相关的其他信息: / proc / sys / net / ipv4 / ip_forward已经设置为1 ifconfig显示两个接口:eth0和lo; dest_ip在eth0上,diff_ip是远程ip 更新1:使用telnet进一步testing 在12800上build立一个使用socat的监听器来接收telnet消息: socat -u TCP-LISTEN:12800,reuseaddr,keepalive,reuseaddr OPEN:/tmp/output.txt,creat,append Telnet连接使用随机消息进行: telnet 127.0.0.1 12800 1)testing使用: iptables -A INPUT […]

通过VPN提供公共访问本地Web服务器

我有一个build立在两个服务器之间的VPN隧道:VPS-A和VPS-B,虚拟公共IP地址分别为66.55.44.33和77.88.55.66,VPN端点分别为10.0.1.1和10.0.2.1。 在VPS-A上运行Web服务器。 我可以没有问题SSH到VPS-B,并通过curl向10.0.1.1发出HTTP请求时收到响应,例如: curl http://10.0.1.1/ 我也可以在连接到互联网的任何给定计算机上打开浏览器并成功打开 http://66.55.44.33/ …但是我也想通过发送一个请求到VPS-B(即VPS-A)来到达VPS-A的networking服务器 http://77.88.55.66/ 现在,我在VPS-B上添加了以下规则( 编辑显示正确的规则 ) iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to-destination 10.0.1.1:80 …当我在端口80上做一个tcpdump ,我可以清楚地看到http://77.88.55.66/请求是如何正确地转发到http://10.0.1.1 。 但是,VPS-A上的Web服务器似乎没有确认TCP请求。 以下是tcpdump显示的内容: 2013-04-27 03:45:15.001564 IP 45.248.82.171.51377 > 10.0.1.1.80: S 791893048:791 2013-04-27 03:45:15.252571 IP 45.248.82.171.51378 > 10.0.1.1.80: S 670490211:670 2013-04-27 03:45:18.001526 IP 45.248.82.171.51377 > 10.0.1.1.80: S 791893048:791 2013-04-27 […]