Ubuntu 14.04 伺服器無法路由

Ubuntu 14.04 伺服器無法路由

因此,我正在嘗試設定一個雙宿主 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 伺服器的另一端。

這是routes -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 位址,且運作良好。還有另一個 DHCP 路由器服務 eth0 (192.168.1.0),我一直保持活動狀態,以便能夠在解決問題時使用寬頻路由器上的 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 的輸出

鏈輸入(策略接受)
目標 prot opt 來源目的地

鏈 FORWARD(策略接受)
目標 prot opt 來源目的地

鏈輸出(策略接受)
目標 prot opt 來源目的地

答案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 解析,所以它可能發生那件事

    平-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 中加入了 NATting 規則,但隨後你顯示了現有的 iptables 規則篩選表,而不是納特桌子。因此,請發出以下命令

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

進而,沒有重新啟動後,嘗試發出與上面相同的 ping 命令。

如果所有這些都失敗,請在 Ubuntu 電腦上開啟兩個終端,並發出以下兩個命令:在終端 1 中,

  tcpdump -i eth0 -n icmp

2 號航廈

  tcpdump -i eth1 -n icmp

然後轉到 DHCP 用戶端之一,並嘗試其中之一上面的命令。如果一切正常,您應該會看到 ping 及其回應飛過兩個都終端。如果不這樣做,請貼上輸出以獲得另一輪幫助。

答案2

你的 Ubuntu 路由器路由正常。那不是問題。問題是您的設定無法運作,因為 ADSL 路由器不知道如何到達 192.168.2.x 網路上的電腦。此外,沒有設備配置為對 192.168.2.x 網路執行 NAT。所以你的配置沒有意義。

例如,說192.168.2.9pings 8.8.8.8。 Ubuntu 伺服器沿著其預設路由很好地路由它。但隨後 ADSL 路由器在其 LAN 介面上收到來自 的封包192.168.2.98.8.8.8並且不知道如何處理它。

更新:若要了解一個問題,請考慮 ADSL 路由器上的路由表。它擁有的唯一本地路由是 192.168.1.0/24 到 LAN 的路由。所有其他路由都指向您的 ISP 的連結。因此,當它處理發送至 192.168.2.1 的資料包時,其路由表會將該資料包發送到網際網路。這顯然行不通。

相關內容