更正 NIC 的路由设置以使用 Ubuntu 16.04 作为路由器

更正 NIC 的路由设置以使用 Ubuntu 16.04 作为路由器

好吧,我很难让它工作。我的家庭内部网络是无线网络,我想要做的是将一个小型有线网络连接到我的一台 Ubuntu 机器上的另一个子网上。这个子网上的设备需要静态 IP 地址,所以share this connection我的eth0接口无法工作。理想情况下,这个有线网络将能够连接到互联网,但这不是必需的。

我读过一些关于如何启动和运行它的指南,但对于正确的方法存在争议。其中大部分似乎建议使用 iptables,但我昨天访问的一个网站说这已经过时了(不幸的是我找不到链接)

网络拓扑结构

目前我已经在“中间的 PC”上启用了 IPv4 转发

will@will-Inspiron-7520 ~ 15:27:52 $ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

并在无线网络中的一台 PC 上设置了路由,以将192.168.1.0子网的请求路由到10.10.10.10(路由 PC 上的 wlan0 接口)

root@ubuntuserver will 15:29:57 # netstat -nra
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.10.10.1      0.0.0.0         UG        0 0          0 wlan0
10.8.0.0        10.8.0.2        255.255.255.0   UG        0 0          0 tun0
10.8.0.2        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 wlan0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
192.168.1.0     10.10.10.10     255.255.255.0   UG        0 0          0 wlan0

我尝试了路由器电脑上 wlan0 接口的几种不同的路由设置,但似乎都不起作用。我可以从路由器 ping 192.168.1.0 子网上的一个(目前唯一的一个)设备

will@will-Inspiron-7520 ~ 15:27:40 $ tracepath -n 192.168.1.91
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.91                                          0.887ms reached
 1:  192.168.1.91                                          0.734ms reached
     Resume: pmtu 1500 hops 1 back 1 

但从 wlan 设备尝试同样的事情会导致此结果

root@ubuntuserver will 15:33:13 #  tracepath -n 192.168.1.91
 1?: [LOCALHOST]                                         pmtu 1500
 1:  10.10.10.10                                           3.480ms 
 1:  10.10.10.10                                           3.315ms 
 2:  no reply
 3:  no reply
 4:  no reply

此操作期间路由器的 TCP 转储如下所示

root@will-Inspiron-7520 /home/will 15:33:18 # tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:33:38.497861 IP ubuntuserver.ftb.59424 > 192.168.1.91.44446: UDP, length 1472
15:33:39.499752 IP ubuntuserver.ftb.59424 > 192.168.1.91.44447: UDP, length 1472
15:33:40.487270 IP 192.168.1.250.34039 > 239.255.255.250.1900: UDP, length 171
15:33:40.500022 IP ubuntuserver.ftb.59424 > 192.168.1.91.44448: UDP, length 1472
15:33:41.487966 IP 192.168.1.250.34039 > 239.255.255.250.1900: UDP, length 171
15:33:41.502207 IP ubuntuserver.ftb.59424 > 192.168.1.91.44449: UDP, length 1472
15:33:42.488416 IP 192.168.1.250.34039 > 239.255.255.250.1900: UDP, length 171
15:33:42.503148 IP ubuntuserver.ftb.59424 > 192.168.1.91.44450: UDP, length 1472
15:33:43.488986 IP 192.168.1.250.34039 > 239.255.255.250.1900: UDP, length 171
15:33:43.503342 IP ubuntuserver.ftb.59424 > 192.168.1.91.44451: UDP, length 1472
15:33:43.503741 ARP, Request who-has 192.168.1.91 tell 192.168.1.250, length 28
15:33:43.504546 ARP, Reply 192.168.1.91 is-at 00:80:45:55:12:e8 (oui Unknown), length 46
15:33:44.258714 IP 192.168.1.250.17500 > 192.168.1.255.17500: UDP, length 177
15:33:44.523228 IP ubuntuserver.ftb.59424 > 192.168.1.91.44452: UDP, length 1472
15:33:45.547240 IP ubuntuserver.ftb.59424 > 192.168.1.91.44453: UDP, length 1472
15:33:46.571280 IP ubuntuserver.ftb.59424 > 192.168.1.91.44454: UDP, length 1472
15:33:47.540967 IP ubuntuserver.ftb.59424 > 192.168.1.91.44455: UDP, length 1472
15:33:48.523486 IP ubuntuserver.ftb.59424 > 192.168.1.91.44456: UDP, length 1472
^C
18 packets captured
18 packets received by filter
0 packets dropped by kernel

路由器上的路由表如下所示

root@will-Inspiron-7520 /home/will 15:33:49 # netstat -nra
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.10.10.1      0.0.0.0         UG        0 0          0 wlan0
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

我无法通过 GUI 将 192.168.1.250 作为网关,但当我运行时,sudo route delete -net 192.168.1.0 netmask 255.255.255.0 gw 0.0.0.0 && sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.250我的路由表会变成这样

root@will-Inspiron-7520 /home/will 15:37:33 # netstat -nra
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.10.10.1      0.0.0.0         UG        0 0          0 wlan0
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
192.168.1.0     192.168.1.250   255.255.255.0   UG        0 0          0 eth0

这反过来又改变了tcpdump这一点

root@will-Inspiron-7520 /home/will 15:39:35 # tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:39:40.490804 IP 192.168.1.250.46819 > 239.255.255.250.1900: UDP, length 171
15:39:40.553050 IP ubuntuserver.ftb.33901 > 192.168.1.91.44446: UDP, length 1472
15:39:41.491671 IP 192.168.1.250.46819 > 239.255.255.250.1900: UDP, length 171
15:39:41.554906 IP ubuntuserver.ftb.33901 > 192.168.1.91.44447: UDP, length 1472
15:39:42.492371 IP 192.168.1.250.46819 > 239.255.255.250.1900: UDP, length 171
15:39:42.555628 IP ubuntuserver.ftb.33901 > 192.168.1.91.44448: UDP, length 1472
15:39:43.493366 IP 192.168.1.250.46819 > 239.255.255.250.1900: UDP, length 171
15:39:43.557677 IP ubuntuserver.ftb.33901 > 192.168.1.91.44449: UDP, length 1472
15:39:44.365950 IP 192.168.1.250.17500 > 192.168.1.255.17500: UDP, length 177
15:39:44.659103 IP ubuntuserver.ftb.33901 > 192.168.1.91.44450: UDP, length 1472
15:39:45.581510 IP ubuntuserver.ftb.33901 > 192.168.1.91.44451: UDP, length 1472
15:39:46.605286 IP ubuntuserver.ftb.33901 > 192.168.1.91.44452: UDP, length 1472
15:39:47.628312 IP ubuntuserver.ftb.33901 > 192.168.1.91.44453: UDP, length 1472
15:39:48.652259 IP ubuntuserver.ftb.33901 > 192.168.1.91.44454: UDP, length 1472
15:39:49.697026 IP ubuntuserver.ftb.33901 > 192.168.1.91.44455: UDP, length 1472
15:39:50.599268 IP ubuntuserver.ftb.33901 > 192.168.1.91.44456: UDP, length 1472
15:39:51.622447 IP ubuntuserver.ftb.33901 > 192.168.1.91.44457: UDP, length 1472
15:39:52.563705 IP ubuntuserver.ftb.33901 > 192.168.1.91.44458: UDP, length 1472
15:39:53.669767 IP ubuntuserver.ftb.33901 > 192.168.1.91.44459: UDP, length 1472
15:39:54.594106 IP ubuntuserver.ftb.33901 > 192.168.1.91.44460: UDP, length 1472
15:39:55.616774 IP ubuntuserver.ftb.33901 > 192.168.1.91.44461: UDP, length 1472
15:39:56.640204 IP ubuntuserver.ftb.33901 > 192.168.1.91.44462: UDP, length 1472

有人能告诉我我哪里做错了吗?正如我所说,192.168.1.0 网络不一定能连接到互联网(尽管最好能),但最低要求是 10.10.10.0 子网能够看到 192.168.1.0 设备。

答案1

好吧,我是个白痴。我没有在 192.168.1.x 机器上正确设置网关。它仍然设置为 192.168.1.1(不存在)

更改此设置后,我现在可以双向 ping 通。并且我可以通过 192.xxx 网络访问互联网。

答案2

1.-步骤:如果您想向您的内部网络添加有线设备,您必须添加网卡(eth1)和一个至少5-8个端口的交换机。

2.- 安装 DHCP 服务器并为有线计算机进行 IP 保留。

3.- 执行 IPTables

#!/bin/sh

iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables --delete-chain
iptables --table nat --delete-chain


iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

modprobe ip_conntrack
modprobe ip_conntrack_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward

# Internet for Wireless 
iptables -t nat -A POSTROUTING -s 192.168.1.X/X -o wlan0 -j MASQUERADE
# Internet for Wired
iptables -t nat -A POSTROUTING -s 192.168.2.X/X -o wlan0 -j MASQUERADE

答案3

您很可能已经正确设置了此设置,这可能与您使用的无线接口有关。通常,执行此类操作的方法是使用专用无线接入点通过以太网连接到控制器(在本例中为服务器)。查看 ubnt.com,他们有一些相对便宜的好产品。

相关内容