我有一个路由问题,我不太清楚为什么我无法解决它。 也许我正在以错误的方式思考这个问题。
在我的公司,每个客户端都通过DHCP获得IP,但是pipe理员不希望人们将未知计算机插入networking。 因为我使用了很多运行linux的embedded式系统和笔记本等,我不想去pipe理员告诉他最新的MAC,他允许我在我的笔记本上运行我自己的子网。
我的eth0接口通过DHCP获取IP
我的eth2接口configuration为192.168.10.1
我已经在笔记本上安装和configuration了isc-dhcp-server并进行了绑定。 我跨越了192.168.10.0/24networking,dhcp-daemon只通过eth2监听传入的请求。
subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option routers 192.168.10.1; option domain-name-servers 192.168.10.1; allow bootp; authoritative; server-name "192.168.10.1"; next-server 192.168.10.1; filename "pxelinux.0"; option domain-name "intern.pse.de"; ... (many host entries) }
我也有一个这个脚本,我需要启动我的dhcpd服务器时执行:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE iptables --append FORWARD --in-interface eth2 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward
此设置工作正常,任何系统连接到我的eth2获取一些IP,并能够访问互联网。
我的公司也有一个无线networking,为了testing目的,我有一个设备(西门子PLC),可通过WiFi。 使用wpa_supplicant,我将wlan0接口连接到wifi并分配了一个固定的地址:
ifconfig wlan0 192.168.1.99
我需要的是我的一个embedded式系统(IP为192.168.10.113)可以访问西门子plc,通过wifi可以使用。 我的embedded式连接到我的eth2接口,它可以到达互联网没有porblem。 所以我认为我应该可以用IP 192.168.1.160 ping plc。 在embedded式系统上,我无法ping通plc。
所以我开始在谷歌寻找commong路由设置,我发现这个: http : //www.thegeekstuff.com/2012/04/route-examples/特别是第二部分。 示例networking体系结构(了解路由) ,其中有一个网关和2个不同的子网。 这非常类似于我想要做的事情,所以我将这条路线(如链接文章中所示)添加到我的笔记本中:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.99
但是这也不起作用。 我的embedded式系统仍然无法ping通plc。
我的整个路由表
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.3 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.1.0 192.168.1.99 255.255.255.0 UG 0 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.90.0 0.0.0.0 255.255.255.0 U 0 0 0 intern0
我错过了什么? 我如何设置我的路由,以便我的192.168.10.0/24客户端能够访问通过我的wlan0接口可访问的所有东西?
它看起来像你的无线设备不知道如何到达192.168.10.0/24。 尝试添加这个,所以他们认为这些请求来自你的PC的主要networking地址:iptables –table nat –append POSTROUTING –out-interface wlan0 -j MASQUERADE
另外我觉得你不需要192.168.1.0/24通过192.168.1.99的路由。 这应该由wlan0的现有路线覆盖。