我想知道什么时候一个数据包到达接口,我有一些PF规则,首先检查,路由表或规则集? ext_if = "em0" int_if = "em1" localnet = $int_if:network VPN_if = 172.16.0.110 nat log on $ext_if from any to any -> ($ext_if) rdr pass log on $ext_if proto tcp from !($ext_if) to any port 1:65000\ -> $VPN_if port 2500 pass log from { lo0, $localnet } to any keep state
简短版本:我们遇到了一个特定的服务器接收大量重复数据包的问题。 在发现很多故障之后,我们发现问题是由于交换机将数据包从每个端口发送出去(即,像集线器一样),3台路由器将数据包reflection回来。 当路由器将数据包reflection回来时,交换机将再次将数据包发送出去,并且再次被其他路由器reflection回来。 这将持续到TTL递减到0.我不明白的是为什么路由器发回数据包。 路由器是否应该删除数据包,因为目标MAC地址与其MAC地址不匹配? 长版本:假设有3台路由器(A,B和C)连接到交换机和虚拟机。 udp数据包将从路由器A到达我的虚拟机。 在这个阶段TTL是60.交换机没有我的虚拟机的mac地址,所以它把数据包洪水每隔一个端口。 路由器B和C收到数据包,看到IP地址在同一个端口上,所以递减TTL并将数据包从同一端口发回。 我们现在有两个TTL为59的数据包,交换机再次将这两个数据包发送出去,并从其他两个路由器reflection回来,最后我们得到了4个TTL为58的数据包。然后,我们得到56,56,16直到数据包开始丢弃。 我的虚拟机一直收到所有这些数据包的副本。 由于虚拟机只收到它永远不会设法进入交换机的MAC表。 ARP帮助在这里,但它的超时大于mac表中的交换机超时。 降低解决了这个问题,但问题仍然是为什么路由器reflection数据包。 从我所了解的这不是标准的行为。 编辑:从wireshark捕获的详细信息(仅显示mac的最后2位数字): MAC TTL 95 60 99 59 EC 59 95 58 EC 58 95 58 99 58 then 8 packets at 57 etc 看看它是如何从MAC地址95结束,然后反弹其他2路由器,然后这两个数据包从另一个2反弹,使4包?
我有一个Linux服务器,我用它作为一个路由器,它有两个networking接口。 我使用eth0(10.76.8.60/24,10.76.8.50/24,路由器:10.76.8.1)连接到networking,eth1(192.168.1.1/24)连接到LAN交换机。 我使用SNAT将数据包从eth1转发到eth0。 问题是我想把数据包从指定的客户端(如192.168.1.8,SNAT到10.76.8.60)转发到10.76.8.111(不是默认网关:10.76.8.1,SNAT到10.76.8.50),但是其他客户端的数据包仍然被转发到默认网关。 我试图解决使用IP路由表的问题,但失败了: ip路由冲刷表testing IP路由添加默认通过10.76.8.111 src 10.76.8.60表testing 我不知道该怎么做,请帮忙。 谢谢。
我的大脑有点油炸,试图弄清楚这一点,但我似乎无法得到私人子网连接到互联网抓取更新例如。 基本上所有我想要的是这些服务器的Web访问。 我已经尝试过在其他post中find的解决scheme,但可能很容易失去一些东西,因为我已经看了很长时间了。 到目前为止,我已经做了以下设置: 在我的NAT实例上禁用源/目的地检查 为公有子网创build一个路由表,并将其源设置为IGW(validation了这一点) 创build专用子网的路由表,并将其源设置为NAT实例 使用入站和出站规则为80/443和ssh创buildNAT实例的安全组 使用入站和出站80/443和ssh为私有实例创build安全组 我可以通过SSH跳转到NAT实例,然后转到私有服务器上,所以我知道很多工作。 我已经通过ping内部地址来validation我的规则,但当我离开本地networking时,我开始有问题。 我需要查看哪些内容或需要排查什么来帮助缩小范围? 是否有一些configuration需要在我忽略的NAT实例上完成? 编辑:configuration更新 VPC:172.16.0.0./16 私有子网:172.16.1.0/24 公共子网:172.16.0.0/24 私有子网路由表: 指向公有子网中的NAT实例。 无法访问互联网,将EIP连接到面向公共互联网的界面。 公有子网路由表: 指向IGW的公共子网,我已经validation了互联网接入。 思考: 我开始认为有些东西需要build立或创build在NAT实例上,这个NAT实例位于公有子网中,用于转发来自私有实例的stream量,但是我不确定需要添加什么。 我发现这个post解释了在iptables中添加伪装规则,这是适用于我的情况?
我一直被困在看我的屏幕大约2小时,试图找出为什么这是行不通的。 我正在build立一个私有和公有子网的典型VPC,并尽可能地locking它。 我有几个安全小组,但是我知道问题出在NACL上,好像我放松了规则,一切正常。 我入境的NACL是 而出境是 我遇到的问题是,我无法从公共或专用子网中的任何EC2实例内访问互联网(端口80和443)。 我知道“问题规则”是入站没有1000,它允许从10.0.0.0/16所有临时端口。 如果我改变这个规则适用于所有的来源( 0.0.0.0/0 ),我可以从两个子网中的所有ec2实例访问互联网(我通过运行不同的应用程序来testing这个;大多数是curl和yum。 我只是努力了解这种行为,因为入站规则应该允许任何ec2实例打开一个短暂的端口,并与路由器通话,然后路由器可以与任何主机的端口80和443通话。 我有我缺less简单的感觉,但关键点在这里:)。 编辑 在ascii艺术中,这是我对规则的理解 EC2 instance does a curl on www.google.com (port 80) SYN Packet out to stablish the connection (ephemeral port on VM to port 80) EC2 vm (somewhere in 10.0.0.0/16:ephemeral) -> SG -> NACL in (in rule 1000 – ALLOW source 10.0.0.0/16 on […]
我试图创build一个使用pfsense与Tinc VPN连接在一起的多站点networking。 这是我目前的拓扑结构: Router A Router B **************** **************** * * * * * 10.0.0.1/16 *——–* 10.1.0.1/16 * * * * * **************** **************** | | | | **************** **************** * * * * * 10.0.0.11/16 * * 10.1.0.16/16 * * * * * **************** **************** Node 1 My Desktop 我的桌面和两台路由器都可以打到networking上的每一台机器,但是节点1只能打路由器A. 路由器B目前正在Verizon路由器的VPN端口转发。 链接build立。 虽然,我怀疑这是这个问题的根源。 我已经三重检查了我的pfsenseconfiguration,它们是相同的。 […]
我在GNS3中设置了EIGRP拓扑。 它看起来像这样: R7和R8之间的邻居关系不断扑动,我不知道为什么。 你好定时器和时间延迟都设置正确。 我认为这一定是我的configuration。 我还在wireshark中嗅探了networkingstream量,并且充斥着从R7发往R8的ICMP TTL Exceeded数据包。 我已经testing它如下: 只打开R1-R6 = EIGRP路由工作正常 只打开R7-R9 = EIGRP路由工作正常 打开所有路由器=邻居震荡和networking充斥着ICMP数据包 这是我的configuration: #R1 int f1/0 ip addr 172.16.1.1 255.255.255.0 no shut int lo0 ip addr 192.168.1.1 255.255.255.240 no shut int lo1 ip addr 192.168.1.17 255.255.255.240 no shut int lo2 ip addr 192.168.1.33 255.255.255.224 no shut int lo3 ip addr 192.168.1.65 […]
安装,它是一个testing实验室,我们有一些奇怪的要求 运行AD / DNS / DHCP的Windows 2012 Server 500个客户端机器每个都使用4个物理networking接口 2个接口是testing资源,对于这种情况并不重要 1接口用于连接到我们的许可证服务器networking(testing工具,Windows许可服务器等),认为它是我们无法控制的黑匣子。 我们得到一个默认网关的DHCP地址,在这个没有select。 1接口被用作我们的后端/pipe理networking。 问题是我们的后端连接。 不使用默认网关,我们必须为每条路由使用“添加路由”。 后端被划分成星形networking模式,每个机架都是在DHCP中有自己的范围的节点(复杂的原因,我们坚持这一点)。 我们configuration了交换机,并且所有的路由设置都可以连接任何子网,但是我们需要一次pipe理500台机器。 我所看到的所有解决scheme都是通过脚本将机器添加到每台机器的启动path上。 有了这么多的知识水平的机器,这是不容易的,所以我需要帮助。 我不是pipe理员或基础设施人员,我写软件来pipe理testing结果。 不过,我已经负责解决这个问题,因为我的谷歌关键字似乎不是正确的… … 有没有办法configuration这个域中的所有机器来维护最新的静态路由? 我宁愿一种方法来设置这个GPO或什么的。 有什么我需要做的路线发生? 我不熟悉组策略编辑器足以知道在哪里看,需要一个微调。 我的想法是,一个脚本可以运行时,任何机器启动并login到域,但我不知道如何。
我的托pipe服务提供商提供了以下信息: 子网:2a02:f99:0:64 :: / 64 网关:2a02:f99:0:64 :: 1 所以我做了(是的, eth3是正确的界面) ip addr add 2a02:f99:0:64::2/64 dev eth3 ip -6 route add ::/0 via 2a02:f99:0:64::1 dev eth3 但 $ ip -6 neigh show 2a02:f99:0:64::1 dev eth3 FAILED $ ping6 google.com PING google.com(ams16s30-in-x0e.1e100.net) 56 data bytes From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable … 我也试过了 ip -6 route […]
我有硬件节点(HN)有两个物理接口(eth0,eth1)。 我正在玩OpenVZ,并希望让我的容器(CT)可以访问这两个接口。 我正在使用基本configuration – venet。 CT可以很好地访问eth0(公共接口)。 但我无法获得CT访问eth1(专用networking)。 我试过了: # on HN vzctl set 101 –ipadd 192.168.1.101 –save vzctl enter 101 ping 192.168.1.2 # no response here ifconfig # on CT returns lo (127.0.0.1), venet0 (127.0.0.1), venet0:0 (95.168.xxx.xxx), venet0:1 (192.168.1.101) 我认为主要的问题是所有的数据包都通过HN上的eth0stream出(通过tcpdump计算出来)。 所以问题可能在HN的路线上。 还是我的逻辑全错了? 我只需要从CT接入HN上的两个接口(networking)。 没什么复杂的