Domain-Name-System

通過我的 Raspberry PI 重定向所有流量

  • January 16, 2021

我有一個 Raspberry PI 4B,它正在執行 DNS (PiHole+Bind9)、DHCP、Wireguard,…… RPi 位於 192.168.1.2 上,它分發 192.168.1.1(路由器)作為網際網路流量的預設網關。

我的 Chromecast(可能還有其他設備)正在使用硬編碼的 DNS 伺服器,所以我想將該流量重定向回我自己的 DNS。我的路由器無法攔截 DNS 流量,因此唯一的選擇是將我的所有流量路由到 Raspberry Pi 並用於iptables攔截 DNS 請求。我想將 192.168.1.2 指定為 DHCP 伺服器的預設網關,並使用 iptables 將所有流量(除了 DNS)轉發到路由器。我知道這不是 100% 安全的,因為使用者可以手動將網關設置為 192.168.1.1 以防止這種情況發生。我不認為設備會足夠聰明來做到這一點。

我有幾個問題:

  1. Raspberry Pi 4B 的速度是否足以處理 1Gbit/s 的上行鏈路?我有一個 1Gbit/s 的光纖連接,在我目前的設置中可以達到 950Mbit/s。
  2. 如何設置我的 RPI 以將所有傳入流量(不適用於 192.168.1.2)轉發到 192.168.1.1?
  3. 如何攔截 DNS 請求(TCP/UDP 上的埠 53 並將其路由到我在 192.168.1.2 上的 DNS)。
  1. 它應該能夠工作;通常家庭路由器(也是硬體加速很少的軟體路由器)是建立在比 RasPi 4B 強大的處理器上的。但這也取決於配置的許多細節。試著測試一下。
  2. 只需在 RPi 上設置預設路由並啟用 IPv4 轉發 ( sysctl.conf, net.ipv4.ip_forward = 1),基本上就是這樣。然後,您將能夠將其指定為其他系統上的預設網關,並且它將起作用。但我不知道 RPi 上的預設網路配置,您可能還需要禁用重定向(在sysctl.conf啟用轉發的位置,設置net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0)。RPi 可能需要不向主機發出通知:“我為你轉發了這個數據包,但你可以自己做,直接使用 .1.1”。
  3. 這在另一個網站上得到了回答: https ://askubuntu.com/questions/592042/iptables-redirect-dns-queries 這非常適合您的情況。

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