我正在嘗試將 Debian Squeeze (ala Dreamplug) 設定為路由器。我似乎無法將各個部分組合在一起。
ETH0:上游/網際網路 - DHCP 用戶端
ETH1:下游/Lan - 192.168.0.1 DHCP 伺服器
sudo vim /etc/網路/接口
auto lo br0
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
iface br0 inet dhcp
bridge_ports eth0 eth1
sudo vim /etc/dhcp/dhcpd.conf
option domain-name "MyPlug.MyServer.com";
option domain-name-servers 8.8.8.8, 192.168.0.1;
default-lease-time 600000000;
max-lease-time 720000000;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
}
sudo vim /etc/default/isc-dhcp-server
INTERFACES="eth1"
服務網路重新啟動
服務 isc-dhcp-server 重新啟動
我的 Windows 7 機器在我強制釋放/更新後取得了一個 IP。我能夠讓它透過膩子連接到伺服器一次。
我的設定有什麼明顯錯誤嗎?或者我還可以找什麼?
答案1
不要橋接內部和外部介面。你的盒子是路由器,不是交換器。要讓您的機器成為路由器,您必須告訴它在介面之間轉送封包。我這樣做是透過echo 1>/proc/sys/net/ipv4/ip_forward
. IIRC 的方法(TM)是在 /etc/sysctl.conf 中新增一行net.ipv4.ip_forward=1
,然後執行/etc/init.d/procps restart
。
proc 檔案系統通常掛載到 /proc,將核心資訊和設定表示為可讀寫的檔案。透過向 /proc/sys/net/ipv4/ip_forward 寫入 0 或 1,我們可以停用或啟用核心功能在介面之間轉送 IP 封包。我們希望內核轉送封包!
現在你的機器是路由器,但你還需要偽裝。為此,您需要:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE
(看http://tldp.org/HOWTO/IP-Masquerade-HOWTO/如果你想了解更多)
只要我們使用 IPv4:您只能從 ISP 取得一個 IP 位址,並且您的所有用戶端在與互聯網上的系統互動時共用此位址。偽裝會處理處理 IP 位址共享的所有事務。關鍵是我們需要告訴 iptables 何時應用偽裝。如果 iptables 不再接受 -i 和 -o ,適當的替換規則是
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE
您可能需要將子網路定義 192.168.0.0/24(兩者!)替換為子網路你的客戶住在。此規則規定“對源自客戶端子網並發送至客戶端子網外部主機的所有資料包進行偽裝”
我不知道 Dreamplug,但是您應該有一些檔案 /etc/firewall* 或 /etc/iptables* 您可以在其中添加此語句,以便在每次重新啟動時執行此語句。檢查您的文件中的「防火牆規則」以及必須將其放置的位置。
對於您的 DHCP 配置,您的租用時間似乎長得離譜。拿3-5 0折。此外,也有可能有些客戶無法/不處理如此大的數字。此外,您還應該顛倒網域名稱伺服器的順序。客戶端將首先詢問清單中的第一個伺服器。如果您的路由器也充當名稱伺服器,它很可能會記住先前的查詢一段時間。這意味著,如果您的客戶第二次請求相同的地址,與詢問Google名稱伺服器相比,答案會快得多。
答案2
拆掉橋。這種安排是不安全的。
相反,安裝該arno-iptables-firewall
軟體包即可輕鬆、安全地設定安全的路由器配置。它將為您完成剩下的工作。
來自 Debian 軟體包描述:
與 Debian 中的其他精實 iptables 前端不同,arno-iptables-firewall 只需提出幾個問題即可設定並載入安全的、限制性的防火牆。這包括配置內部網路以透過 NAT 和潛在的網路服務(例如 http 或 ssh)存取網際網路。
除非您知道如何自行安全地設定 iptables,否則請安裝此軟體包。