DIY路由器沒有回復大多數請求
我正在嘗試在具有 Ubuntu 伺服器 18.04 的機器上設置路由器。伺服器主機板上有一個網卡和兩個PCI網卡,每個有4個介面。我在同一台機器上設置了 DHCP 伺服器和 DNS 伺服器。我使用了本教程。我的網路設置如下:
當我
ping 192.168.1.1
從 192.168.1.2 執行時,一切正常,但是當我嘗試使用 ping google 的 ip 時,ping 172.217.17.36
我沒有得到任何回复。nslookup google.com 192.168.1.1
超時。但是,當我nslookup google.com 192.168.0.113
從筆記型電腦執行時,我確實得到了預期的答复。ping google.com
在 ubuntu 路由器上執行也可以正常工作。我的網路計劃設置如下:
network: ethernets: eno1: dhcp4: true enp9s0: addresses: - 192.168.1.1/24 dhcp4: false nameservers: addresses: - 127.0.0.1 search: [] enp10s0: addresses: - 192.168.1.1/24 dhcp4: false nameservers: addresses: - 127.0.0.1 search: [] enp11s0: addresses: - 192.168.1.1/24 dhcp4: false nameservers: addresses: - 127.0.0.1 search: [] ...same for other interfaces... version: 2
我的 ip 表設置如下:
iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
我的 dhcp.conf 如下:
option domain-name "example.com"; option domain-name-servers 127.0.0.1; default-lease-time 600; max-lease-time 7200; ddns-update-style none; authoritative; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.2 192.168.1.254; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option broadcast-address 192.168.1.255; }
我正在為我的 DNS 伺服器使用 pi-hole。
ifconfig
在 ubuntu 路由器上導致:eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.113 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::12c3:7bff:fe6c:c81b prefixlen 64 scopeid 0x20<link> inet6 2a02:1812:d38:c300:274d:5b5:ce56:bdf6 prefixlen 64 scopeid 0x0<global> inet6 2a02:1812:d38:c300:12c3:7bff:fe6c:c81b prefixlen 64 scopeid 0x0<global> ether 10:c3:7b:6c:c8:1b txqueuelen 1000 (Ethernet) RX packets 13961 bytes 1287100 (1.2 MB) RX errors 0 dropped 9010 overruns 0 frame 0 TX packets 2150 bytes 372856 (372.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xdfd00000-dfd20000 enp10s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::2e0:4cff:fe68:873e prefixlen 64 scopeid 0x20<link> ether 00:e0:4c:68:87:3e txqueuelen 1000 (Ethernet) RX packets 1041 bytes 233462 (233.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1427 bytes 460072 (460.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp11s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 00:e0:4c:68:87:3f txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ... enp9s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 00:e0:4c:68:87:3d txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 8029 bytes 524899 (524.8 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8029 bytes 524899 (524.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
當外部 IP 來自 192.168.1.2 時,我如何才能弄清楚為什麼我的路由器沒有回復對外部 IP 的 ping 和 dns 請求?
如果您希望我發布更多資訊,請告訴我。
我在此設置中看到多個不相關的問題:
無法從 ping 外部 IP
192.168.1.2
。你應該檢查的事情:是否
192.168.1.2
配置了適當的路由?檢查輸出ip route
是否包含預設路由,192.168.1.1
作為網關(如中配置dhcp.conf
)是否
192.168.1.1
配置了適當的路由?再次,請檢查ip route
這裡。但是,既然您可以google.com
從那裡 ping 通,應該就是這種情況。
ip_forward
在路由器上啟用了嗎?這是我的猜測。
- 檢查輸出
cat /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
啟用無法解析 DNS 請求:
在你的
dhcp.conf
你有option domain-name-servers 127.0.0.1;
但這應該是
option domain-name-servers 192.168.1.1;
否則桌面會嘗試使用
127.0.0.1
ie 作為 DNS 伺服器。這很可能是這裡的問題。此外,您可以測試解析明確指定 DNS 伺服器的 DNS 請求,執行
host example.org 192.168.1.1
在桌面和路由器上。還要檢查兩個主機上通過 DHCP 有效配置的 DNS 伺服器: * 在桌面上這可能是現在
127.0.0.1
,見上文,但應該是192.168.1.1
- 在路由器上這可能
192.168.0.1
是上游路由器,通過 DHCP 配置。因此:即使您可以成功解析路由器上的 DNS 請求 - 作為客戶端- 這並不意味著 DNS 守護程序 - 作為伺服器- 已配置並正常工作。
- 所有介面上的相同子網:這個問題還沒有困擾你*,但*一旦你將多根電纜連接到路由器,它很可能會成為一個問題。
目前,您已
192.168.1.1/24
在所有配置為第 3 層介面的下游介面上進行了配置。如果這些介面中的一個以上處於活動狀態,作業系統將難以決定將包路由到192.168.1.0/24
子網中的哪一個。相反,您應該將所有物理介面連接到虛擬網橋設備並將 IP 地址分配給該網橋。這是物理介面,充當相互連接的第 2 層交換機介面。