kuroの覚え書き

96の個人的覚え書き

NFSとNISがポートを取り合い

あるとき再起動したあと、NISクライアントがuserを受け付けてくれなくなり、ちょっと途方に暮れる。
NISサーバがどういうわけか起動していないので再起動してみたが、エラーが出て起動してくれない。

systemd[1]: Starting NIS/YP (Network Information Service) Server...
ypserv[3798]: ypserv: can not bind UDP: Address already in use
systemd[1]: ypserv.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start NIS/YP (Network Information Service) Server.
systemd[1]: Unit ypserv.service entered failed state.
systemd[1]: ypserv.service failed.

このように言われる。ypserv: can not bind UDP: Address already in useここが怪しいよな。
で、

# lsof -i
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind    775     rpc    6u  IPv4   9606      0t0  UDP *:sunrpc 
rpcbind    775     rpc    7u  IPv4   9607      0t0  UDP *:944 
rpcbind    775     rpc    8u  IPv4   9608      0t0  TCP *:sunrpc (LISTEN)
rpcbind    775     rpc    9u  IPv6   9609      0t0  UDP *:sunrpc 
rpcbind    775     rpc   10u  IPv6   9610      0t0  UDP *:944 
rpcbind    775     rpc   11u  IPv6   9611      0t0  TCP *:sunrpc (LISTEN)
avahi-dae  796   avahi   12u  IPv4   8051      0t0  UDP *:mdns 
avahi-dae  796   avahi   13u  IPv4   8052      0t0  UDP *:40829 
chronyd    915  chrony    1u  IPv4  18064      0t0  UDP localhost:323 
chronyd    915  chrony    2u  IPv6  18065      0t0  UDP localhost:323 
flask     1286  rnaseq    3u  IPv4  37148      0t0  TCP mn-rx1330m3:commplex-main (LISTEN)
rpc.ypxfr 1288    root    4u  IPv4  25503      0t0  UDP *:945 
rpc.ypxfr 1288    root    5u  IPv4  25506      0t0  TCP *:945 (LISTEN)
sshd      1292    root    3u  IPv4  26903      0t0  TCP *:ssh (LISTEN)
sshd      1292    root    4u  IPv6  26905      0t0  TCP *:ssh (LISTEN)
cupsd     1297    root    9u  IPv6  21293      0t0  TCP localhost:ipp (LISTEN)
cupsd     1297    root   12u  IPv4  21294      0t0  TCP localhost:ipp (LISTEN)
(以下略)

なんかポート944と945がrpcbindで使われている。どうしてまたわざわざ競合するのだ。
NISはポートを変動させると聞いていたので
/etc/sysconfig/network

# Created by anaconda
NISDOMAIN=nis

YPSERV_ARGS="-p 944"
YPXFRD_ARGS="-p 945"

という感じに固定していたのだ。これをしないとfirewallを抜けれないので。
nfsの方はserviceとしてfirewallに設定しておけるので、変動しても構わないのに。
というわけで、一旦rpcbindをstopしてからypservをstartし、rpcbindをもう一度startしてやることで回避できた。
しかし、これはまた起こる可能性がある事象だし、どうにかならんのかな。