通過交換機通過 dd-wrt 路由 RFC1918 地址
我對我的一個實驗有點卡住了。
我有一個看起來有點像這樣的網路。
| Internet | | ---- |Switch| ---- | | Server w/pub IP | DD-WRT router 192.168.1.1 | | RFC1918 clients 192.168.1.0/24
我想要的是 RFC1918 客戶端可以直接相互交談。
在具有公共 IP 的伺服器上,我有這條路由:
192.168.1.0/24 dev eth0 scope link
並且可以看到數據包實際上到達了 192.168.1.1 的 dd-wrt 路由器,即使我沒有得到答案。嘗試從公共 IP 伺服器訪問 RFC1918 客戶端之一不會得到任何結果,因為 dd-wrt 路由器沒有在其外部介面上宣布該網路(
arp who-has 192.168.1.107 tell xxx.xxx.xxx.xxx
,但沒有答案)。作為 WLAN dd-wrt 路由器的路由器當然有大量路由、VLAN 和介面:
xxx.xxx.xxx.1 dev vlan2 scope link 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.244 84.215.64.0/18 dev vlan2 proto kernel scope link src xxx.xxx.xxx.xxx 169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1 127.0.0.0/8 dev lo scope link 0.0.0.0 via xxx.xxx.xxx.1 dev vlan2
xxx.xxx.xxx.xxx
是公共 IP,並且xxx.xxx.xxx.1
是公共 IP 的預設路由。我不知道從哪裡繼續這個。我會發現我都需要在 dd-wrt 路由器上進行路由,以及一些 iptables 魔術?
為什麼要做這麼複雜的事情?為什麼不 ;)
另外,不要介意“Internet”可以獲取 RFC1918 流量,它不會出牆。
編輯 1:根據燉肉的提示,我確實得到了正確的 ARP 流動。並添加一個 iptables 規則以允許來自該特定公共 IPd 機器的流量我獲得系統之間的流量!
奇怪的是,我從帶有 pub IP 的伺服器 -> RFC1918 客戶端獲得的速度與將流量路由到 Internet 並返回的速度相同。
編輯 2:好的,斷開外部 Internet 連接仍然會提供相同的、糟糕的傳輸速度。所以它必須是別的東西。
編輯3:好的,我想這個糟糕的速度還有其他原因。結案。:)
您需要 dd-wrt 將 arp 請求從一個介面代理到另一個介面。嘗試:
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp echo 1 > /proc/sys/net/ipv4/conf/br0/proxy_arp