我正在设置一个小型集群(四个节点运行 ubuntu14),并且我有以下配置:
# Internet and lab - 192.168.10.0/24
iface eth0 inet dhcp
dns-nameservers 192.168.100.1
# privte network
iface eth1 inet static
address 192.168.30.20
netmask 255.255.255.0
network 192.168.30.0
互联网连接工作正常,我可以在网络中使用 ssh 节点192.168.10.0/24
。但是当我尝试 ping 网络中的节点时,192.168.30.0/24
出现destination host unreachable
错误。
/proc/sys/net/ipv4/ip_forward
我通过在所有节点上编辑和来启用 ip_forwarding /etc/sysctl.conf
,但仍然无法使用其他以太网接口到达节点。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.254 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.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.30.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
ip route show
给出以下输出:
default via 192.168.10.254 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.60
192.168.30.0/24 dev eth1 proto kernel scope link src 192.168.30.20
可能是什么问题?我错过了什么吗?
答案1
在每个节点上,检查:
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
如果是1,则改为0:
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
答案2
了解 Unix 或类 Unix 操作系统和版本会有所帮助,因为软件和文件位置可能不同。如果我理解这个问题,您希望每台计算机都可以使用 WAN 访问eth0
和 LAN 访问eth1
。
对于任何 Linux,创建一个新的路由表eth1
,将网络命名为“mgmt”,或任何您喜欢的名称。
echo '200 mgmt' >> /etc/iproute2/rt_tables
对于基于 Debian 的系统...
# /etc/network/interfaces
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
dns-nameservers 192.168.100.1
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.30.20
netmask 255.255.255.0
post-up ip route add 192.168.30.0/24 dev eth1 src 192.168.30.20 table mgmt
post-up ip route add default via 192.168.30.1 dev eth1 table mgmt
post-up ip rule add from 192.168.30.20/32 table mgmt
post-up ip rule add to 192.168.30.20/32 table mgmt
如果您愿意,我可以为基于 RHEL 的系统或基于 Void 的系统发布相同的解决方案。这在具有多个 NIC 的机器上非常有效。
该dns-nameservers
线路是给网络管理员的,对吗?我不知道这样的手动配置是否适用于网络管理员。