设想:
+---+
eth0| S | +----------+
internet ======| | | |------PC1
| / | | switch |------PC2
| |========| |------PC3
| R |eth1 +----------+
+---+
S/R:服务器作为路由器
eth0: connection from the internet/other network
eth1: internal network
PC1,PC2,PC3: Ubuntu OS
*另外的PC4连接到Windows操作系统的交换机。
我将 PC1、PC2 和 PC4 设置为自动 DHCP,以便可以访问网络和互联网,但是
PC3 is on static.
PC3 has an IP address same of a router(dhcp:interface=eth1). e.g.
PC3:(fake)
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
gateway 192.168.1.2
问题遭遇:
PC4可以访问网络/互联网,而
PC1和PC2却不能。
观察:
Windows 操作系统可以自动检测真实网关(路由器),而
Ubuntu 操作系统则不能。:(
如果有人配置了与网关(路由器)相同的静态 IP,我们该如何解决这个问题?
答案1
说实话,这听起来更像是用户问题,而不是技术问题。如果人们无法正确配置他们的设备,就不要让他们进入你的家庭网络。
手动配置地址时,人们倾向于从地址空间的低端选择地址。您可以将网关移至 .254,将 DHCP 池设置为 .100 - .199,并将静态分配的地址保留在子网的低端。记得记录所有内容(一张便签就可以了!),这样人们就不会重复使用现有的分配。
您还可以在 PC 上手动设置 ARP 表,将 192.168.1.2 指向 S/R 的 eth1 接口。在 Linux PC 上,运行以太网接口sudo arp -i <iface> -s 192.168.1.2 <macaddr>
在哪里,可能是。是 S/R 上 eth1 适配器的硬件 MAC 地址,您可以在服务器上运行找到它。<iface>
eth0
<macaddr>
ifconfig eth1
如果您是专业的网络管理员,您可能已经拥有技能和硬件预算来防止配置错误的主机破坏网络。
答案2
/etc/网络/接口
...
iface eth0 inet dhcp
post-up arp -i <iface> -s 192.168.1.2 <macaddr>
...