Ubuntu 14.04服务器不会路由


1

所以我正在尝试建立一个双宿主BRO IDS盒,作为家庭网络和宽带附带的现有el cheapo路由器之间的网关(?)服务器。我所拥有的是......(管道代表电线,抱歉格式不佳)

Internet  
   |  
ADSL Router running DHCP  (gateway is 192.168.1.254)  
   |  
eth0 (192.168.1.1)  
ubuntu 1404 server running bro IDS, running bind9,   
it serves DHCP on 192.168.2.0 network only on eth1  
eth1 (192.168.2.1)  
   |  
Internal LAN running two Apple Airports in bridge mode  

我觉得我设置正确,但Ubuntu服务器没有路由。我可以在它上面SSH并从中ping两个接口,再加上ping。但是,任一LAN上的主机都无法路由到Ubuntu服务器的另一端。

这是路径-n的输出

Kernel IP routing tableico /etc/network/interfaces
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         
192.168.1.254   0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

这是内容 /etc/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
  address 192.168.1.1
  netmask 255.255.255.0
  gateway 192.168.1.254
  broadcast 192.168.1.255
 auto eth1   
 iface eth1 inet static  
  address 192.168.2.1  
  network 192.168.2.0  
  netmask 255.255.255.0  
  broadcast 192.168.2.255  
  gateway 192.168.1.254

我使用sysctl启用了ipv4 ipforwarding。Ubuntu DHCP服务器配置为仅提供192.168.2.0 Ip地址,并且运行良好。还有另一个服务于eth0(192.168.1.0)的DHCP路由器,我一直保持活跃状态​​,能够在处理问题时使用宽带路由器上的wifi浏览网页。

但无论如何,在使用静态和动态分配的IP登录到双方之后,我仍然无法ping通Ubuntu盒子的另一端。也可以发布dhcpd.conf的内容......?

我错过了一些简单的事吗?我是否可以在Ubuntu盒上进行任何故障排除步骤来验证问题的范围。目前我只是得到'没有路由找到/存在'的消息......这里也是/etc/dhcpd.conf的细节......

ddns-update-style none;  
default-lease-time 600;  
max-lease-time 7200;  
authoritative;  
subnet 192.168.2.0 netmask 255.255.255.0 {  
range 192.168.2.2 192.168.2.240;  
option routers 192.168.1.254;  
option broadcast-address 192.168.2.255;  
option domain-name-servers 192.168.2.1, 8.8.8.8;  
}  

这是ping到路由器的输出

Request timeout for icmp_seq 0  
Request timeout for icmp_seq 1  
Request timeout for icmp_seq 2  

此外,在配置它时,我最初将其设置为桥接,但是很久以前从接口中删除了该配置(它根本不起作用)

根据要求,这是iptables -L的输出

Chain INPUT(策略ACCEPT)
目标prot opt源目标

Chain FORWARD(策略ACCEPT)
目标prot opt源目的地

Chain OUTPUT(策略ACCEPT)
目标prot opt源目标


用于NAT和伪装的iptables?
ssnobody 2015年

昨天我打开伪装作为最后的手段,重新启动并且没有变化。IPtables处于默认状态 - 我更新了问题以显示iptables -L的输出
TemperedGlass 2015年

Answers:


1

有些事情看起来并不清楚,至少对我来说是乍一看。

  1. /etc/dhcpd.conf中的以下行肯定是错误的:

    选项路由器192.168.1.254;

它应该是

  option routers 192.168.2.1

目前,您基本上是在告诉您的DHCP客户端他们的默认网关与他们的子网不在同一个子网上:您希望他们如何能够到达所述网关?传递给客户端的网关的正确地址是路由器的LAN接口。

  1. 当您说无法从DHCP客户端ping时,您是否尝试使用名称(例如 www.google.com)或IP(例如 8.8.8.8)?它之所以有所不同,是因为您没有提及DNS解析,所以可能会发生这种情况

    ping -c1 8.8.8.8

得到答复,而

   ping -c1 www.google.com

才不是。如果是这种情况,您缺少/etc/resolv.conf中的以下两行:

  nameserver 8.8.8.8
  nameserver 8.8.4.4

如果不是这样,请继续阅读。

  1. 你对iptables的看法并不完全一致,因为你声称你已经在iptables中添加了NAT的规则,但是你显示了过滤表的现有iptables规则,而不是nat表。所以,请发出以下命令

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

然后,在重新启动的情况下,尝试发出与上面相同的ping命令。

如果所有这些都失败了,那么请打开Ubuntu机器上的两个终端,并发出以下两个commans:在终端1中,

  tcpdump -i eth0 -n icmp

在终端2

  tcpdump -i eth1 -n icmp

然后转到其中一个DHCP客户端,并尝试上面的ping命令之一。如果一切正常,你应该看到ping和它的回复都飞过两个终端。如果不这样做,请粘贴输出以获得另一轮帮助。


太棒了,Marius,你已修好它,并帮助我理解问题和排除故障。荣誉,伙计。今天早上我更改了错误的DG(花了一段时间宣传,我猜不会马上工作)然后我用建议的命令更改了Iptables,整个设置在三天的斗争后就已经完成了。机场路由器现在服务于“安全”网络。BTW道歉没有在问题中更详细地提及DNS(resolv.conf已经纠正了几天)
TemperedGlass 2015年

顺便说一句,我在这里是个新手,有什么我可以做的让你的'获胜'答案 - 我还没有足够的信誉来赞成!
TemperedGlass 2015年

0

你的Ubuntu路由器正好路由。那不是问题。问题是您的配置无法正常工作,因为ADSL路由器不知道如何到达192.168.2.x网络上的计算机。此外,没有设备配置为192.168.2.x网络执行NAT。所以你的配置没有意义。

所以,例如,请说192.168.2.9ping 8.8.8.8。Ubuntu服务器将它沿着默认路由路由就好了。但随后的ADSL路由器从接收数据包192.168.2.98.8.8.8它的LAN接口上,有不知道该怎么用它做。

更新:要查看一个问题,请考虑ADSL路由器上的路由表。它唯一的本地路由是192.168.1.0/24到局域网。每个其他路由都会转到您的ISP的链接。因此,当它处理到192.168.2.1的数据包时,其路由表表示将该数据包发送到Internet。这显然是行不通的。


非常感谢分析,但是ADSL路由器正在执行NAT。另外,我无法从192.168.2 ping 192.168.1网络(反之亦然),ADSL路由器不参与其中?你是否介意扩大你的答案,我不确定我是否理解它?再次感谢您的回复!
TemperedGlass 2015年

NAT由ADSL路由器为192.168.1.0网络执行。它甚至不知道如何到达 192.168.2.0网络中的主机,也没有任何理由为它们进行NAT(对于不在其LAN上的任何其他地址,它不会是NAT)。
大卫施瓦茨2015年

当然你不能ping - ADSL路由器不知道如何到达192.168.2.0/24网络上的主机。为什么要将这些数据包发送到Ubuntu服务器?你期望路由做魔术。(想象一下,路由器正在尝试将数据包路由到192.168.2.1 - 您认为它会对它做什么以及为什么?提示:它匹配的唯一路由是它的默认路由到Internet!)
David Schwartz

“它甚至不知道如何在192.168.2.0网络中接触主机”这是一个公平的观点 - 我忽略了这一点。
TemperedGlass 2015年

接下来的部分是,即使它确实知道如何到达它们,它也不会知道应该为它们进行NAT。所以问题是Ubuntu服务器路由很好,但这不是它需要做的。
大卫施瓦茨2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.