Udp/111の代わりにDebianWheezyでrpcbind
にtcp/111を使用しようとしています。 Squeezeのportmap
は特別な設定なしでtcp/111を使用しますが、Wheezyは失敗します。
多くのサイト(およびRFC)でさえ、TCPまたはUDPが動的に選択される、またはUDPが失敗した場合にTCPが使用される...-私がiptables
を使用してWheezyクライアントでudp/111(rpcbind
を使用)を拒否すると、エラーが発生します。
# showmount -e server
Export list for server:
....
# iptables -I OUTPUT -j REJECT -d server -p udp --dport 111 --reject-with icmp-port-unreachable
# showmount -e server
clnt_create: RPC: Port mapper failure - Unable to send: errno 1 (Operation not permitted)
# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
#
TCPのみ)を使用するようにrpcbind
を設定するにはどうすればよいですか?
_vers=3,proto=tcp
_でマウントする場合、実際のマウントをrpcbind
に照会するときに、TCPが使用されます。
_$ tshark -nr nfs.pcap "tcp.stream eq 0"
2 192.168.1.89 36200 192.168.1.60 111 TCP 74 [SYN]
3 192.168.1.60 111 192.168.1.89 36200 TCP 74 [SYN, ACK]
4 192.168.1.89 36200 192.168.1.60 111 TCP 66 [ACK]
5 192.168.1.89 36200 192.168.1.60 111 Portmap 126 V2 GETPORT Call
6 192.168.1.60 111 192.168.1.89 36200 TCP 66 [ACK]
7 192.168.1.60 111 192.168.1.89 36200 Portmap 98 V2 GETPORT Reply (Call In 5)
8 192.168.1.89 36200 192.168.1.60 111 TCP 66 [ACK]
9 192.168.1.89 36200 192.168.1.60 111 TCP 66 [FIN, ACK]
10 192.168.1.60 111 192.168.1.89 36200 TCP 66 [FIN, ACK]
11 192.168.1.89 36200 192.168.1.60 111 TCP 66 [ACK]
_
showmount
がUDPを使用するようにハードコードされているとしか思えません。 nfs-utils のソースを読み取ろうとしましたが、clnt_call()
の後の_showmount.c
_で失われました。申し訳ありません。