Windows

Linux 路由器上的 iptables 不在兩個 LAN 之間轉發 DHCP

  • October 6, 2014

我有一個內部網路如下:

  • 用作路由器的 Linux 系統,使用 iptables,帶有兩個網卡
  • 客戶端機器
  • DHCP 伺服器

Router 的 eth1 與客戶端在同一個 LAN 上。

Router 的 eth2 與伺服器在同一個 LAN 上。

客戶 ↔

$$ eth1 $$路由器$$ eth2 $$↔ DHCP 伺服器

我已經將客戶端設置為使用 DHCP,但我無法讓正確的 iptable 節正常工作(即,在客戶端和伺服器之間轉發 DHCP UDP 數據包。客戶端給出:)An error occurred while renewing interface Local Area Connection 2 : unable to contact your DHCP server. Request has timed out.

這是/etc/sysconfig/iptables我現在擁有的,#DHCP xxx註釋之間的行是我正在嘗試的 DHCP 轉發:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
-A FORWARD -o eth2 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -p tcp --sport 22 -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i eth1 -o eth2 -p tcp --dport 80 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -p tcp --sport 80 -j ACCEPT
-A FORWARD -i eth1 -o eth2 -p tcp --dport 53 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -p tcp --dport 53 -j ACCEPT
-A FORWARD -i eth1 -o eth2 -p udp --dport 53 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -p udp --dport 53 -j ACCEPT
# DHCP start
-A FORWARD -i eth1 -o eth2 -p udp --dport 67 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -p udp --dport 67 -j ACCEPT
-A FORWARD -i eth1 -o eth2 -p udp --dport 68 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -p udp --dport 68 -j ACCEPT
# DHCP end
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

您能否提出一些更改,使客戶端機器能夠從 DHCP 伺服器獲取 IP 地址?

筆記:

  • 路由器上的 IP 轉發有效,因為我能夠在客戶端和伺服器之間 ping 通(反之亦然)。
  • Router 是 CentOs,Client 和 Server 是 Windows。

DHCP 是一種您無法轉發的廣播協議(另一個網路上沒有目標 IP)。您需要的是向 DHCP 伺服器顯示的 IP 助手(路由器必須充當 DHCP 中繼代理,將廣播轉換為單播)。

引用自:https://serverfault.com/questions/633810