AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 107668
Accepted
Alex
Alex
Asked: 2010-01-30 11:48:47 +0800 CST2010-01-30 11:48:47 +0800 CST 2010-01-30 11:48:47 +0800 CST

在 SLES 10.2 中启动时网络服务失败,可能导致 NFS 客户端问题

  • 772

在最近从 SLES 9.3 升级到 10.2 的机器上,我看到以下问题:

在升级之前,NFS 挂载(通过 yast 定义,即它出现在 中/etc/fstab)正常工作。但是,在升级之后,它失败了。网络跟踪显示它正在通过 TCP 与 NFS 服务器建立初始连接(对于 portmapper RPC),但随后切换到 UDP 以进行后续 MOUNT 调用;由于 NFS 服务器不允许 UDP(有充分的理由,由于可能存在数据损坏问题,如 中所示nfs(5)),连接将无法通过。

添加 TCP 选项(无论是在 fstab 中,还是在命令行等处)都没有效果。

在对此进行故障排除的过程中,我发现 /var/adm/messages 报告在引导期间发生以下情况:

Failed services in runlevel 3: network

(我应该注意,尽管有此错误消息,但显然至少启动了一些网络服务,因为该框可通过 SSH 访问。)

那么我的问题:

  1. 我应该看什么来确定服务启动失败的原因?
  2. 这确实会导致上述 NFS 的问题吗?
  3. 如果 (2) 的答案是否定的,那么关于寻找什么的任何建议?

编辑以添加与以下答案相关的一些信息。

事实证明,网络服务在启动时失败,因为其中一个接口(此框中有两个)使用 DHCP,而此时该接口尚不可用。所以我暂时禁用它,停止/重新启动网络服务和 NFS 客户端服务,但仍然得到相同的结果。

客户端没有防火墙。此外,客户端的 iptables -L 表明一切都被接受;/etc/hosts.allow 或 /etc/hosts.deny 中没有条目。

在 NFS 服务器端,没有任何变化。远程 nfsserver 确实在宣传它允许 TCP 和 UDP 用于所有 NFS 服务(尽管有一个 iptables 规则阻止 UDP)。

/etc/fstab 条目是非常基本的——在 yast 中设置它会得到什么:

x.x.x.x:/volume      /localdir   nfs     defaults 0 0

客户端框的 rpcinfo -p 仅显示正在运行的 portmapper v2,同时通告 TCP 和 UDP。对于服务器,它显示了所有常用服务:

   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp   4047  status
    100024    1   tcp   4047  status
    100011    1   udp   4049  rquotad
    100021    1   udp   4045  nlockmgr
    100021    3   udp   4045  nlockmgr
    100021    4   udp   4045  nlockmgr
    100021    1   tcp   4045  nlockmgr
    100021    3   tcp   4045  nlockmgr
    100021    4   tcp   4045  nlockmgr
    100005    1   udp   4046  mountd
    100005    1   tcp   4046  mountd
    100005    2   udp   4046  mountd
    100005    2   tcp   4046  mountd
    100005    3   udp   4046  mountd
    100005    3   tcp   4046  mountd
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs

上面的 /etc/fstab 条目的 mount 调用很简单:

mount /localdir

虽然我也尝试过各种选项,如 tcp、v3 等。

/etc/fstab 条目(因此挂载)和 rpcinfo -p 调用都使用 IP 地址,因此不涉及 DNS 解析问题。

nfs networking sles10
  • 6 6 个回答
  • 3050 Views

6 个回答

  • Voted
  1. Alex M
    2010-02-02T09:58:56+08:002010-02-02T09:58:56+08:00

    出于类似原因,请检查以确保/etc/hosts.deny不包含 和 的条目。对于它的价值,我通常清除并使用来控制访问。mountdhosts.allowhosts.denyiptables

    用于rpcinfo -p nfsserver确保mountd确实是在宣传 TCP——有一个选项-n可以禁用 TCP 侦听,这(SuSE 上的 IIRC)可能会设置在其中/etc/sysconfig/nfs或附近。

    • 1
  2. Christian
    2010-02-03T08:01:47+08:002010-02-03T08:01:47+08:00

    据我了解您的问题,您可以执行以下操作:

    • SSH 到您的 nfs 客户端系统
    • 从客户端“连接”rpcinfo到服务器
    • 您已禁用 dhcp 接口,因此每个流量都通过一个接口,并且没有其他路由

    但是您无法在 nfs 客户端上从 nfs 服务器挂载文件系统,并且您不会收到任何错误消息。

    rpcinfoyour和mountcall有什么区别?您是否在一个中使用 ip 地址而在另一个中使用 fqdn?能否请您发布带有输出和返回码的两个命令?

    • 1
  3. Christopher Karel
    2010-02-04T13:48:49+08:002010-02-04T13:48:49+08:00

    几件事。首先,您在开始时声明since the NFS server doesn't allow UDP,然后在您的编辑中提及The remote nfsserver is indeed advertising that it allows both TCP and UDP for all of the NFS services。这似乎有点奇怪。为什么服务器会宣传它不允许的内容?

    其次,您是在尝试使用 NFS 版本 2 还是版本 3?版本 2 仅支持 UDP,而 TCP 需要版本 3。也许在挂载选项中手动指定版本 3 会有所帮助?(vers=3) 如果它默认为 2,那么即使指定 TCP 也对您没有任何好处。

    当服务器不太支持它时,我也遇到了尝试使用版本 4 的新客户端的问题。您的 SLES 升级可能导致不同的默认版本。更有理由明确指定它。

    你为什么不在 /etc/fstab 中发布条目呢?

    • 1
  4. Kamil Kisiel
    2010-02-02T09:42:36+08:002010-02-02T09:42:36+08:00
    1. 尝试手动启动服务service network restart并查看您收到的消息。那里应该有一些信息。
    2. 可能...
    3. 检查您的系统是否默认启用了任何防火墙,这可能会导致问题。特别是如果失败的网络启动没有正确加载防火墙规则。
    • 0
  5. user15590
    2010-02-07T10:52:57+08:002010-02-07T10:52:57+08:00

    尝试明确地设置事物,看看你会得到什么。例如,在 /etc/fstab 中:

    x.x.x.x:/vol /local nfs proto=tcp,port=2049,mountport=4046,nfsvers=3 0 0
    

    这至少应该绕过端口映射器并显式尝试连接到您上面列出的 TCP 端口,并在调试期间更容易跟踪每个通道。

    • 0
  6. Best Answer
    Alex
    2010-03-02T14:47:09+08:002010-03-02T14:47:09+08:00

    作为参考,以防其他人遇到此问题并想要答案:

    我终于在这方面向 Novell 开了一张票。事实证明,这是 SLES 10.2 中的一个已知错误(491140:mount ignores "proto=" for "nfs"),并且有一个补丁(util-linux-2.12r-35.35.2.x86_64.rpm) . 安装后,挂载按预期工作,所有请求都通过 TCP 发出。(Novell 支持人员还告诉我,这已在 SLES 10.3 中合并。)

    • 0

相关问题

  • 10 Gb 网络:在光纤和双绞线之间做出决定

  • 如何在 Windows Server PPTP VPN 中自动为客户端分配路由?

  • 为什么我的电脑休眠时 VPN 连接会中断?[关闭]

  • 有什么软件可以模拟局域网?

  • 带宽利用工具?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve