Bull GNU/Linux NFSv4 project

rpcbind testing

June 1st, 2005
Aurelien Charbon

Test of rpcbind user part

When the server runs rpcbind (version 4, 3 and 2) Here is an ethereal capture when we do a mount operation: we can clearly see that rpcbind version 4 is used first.

Frame 740 (182 bytes on wire, 182 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:00:4c:7f:79:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.31 (172.16.109.31)
Transmission Control Protocol, Src Port: 640 (640), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 116
Remote Procedure Call, Type:Call XID:0xfc6898b2
Portmap
    Program Version: 4
    V4 Procedure: GETADDR (3)
    RPCB
        Program: MOUNT (100005)
        Version: 3
        Network Id: ???
            length: 3
            contents: ???
            fill bytes: opaque data
        Universal Address: 172.16.109.31.0.111
            length: 19
            contents: 172.16.109.31.0.111
            fill bytes: opaque data
        Owner of this Service: ??????????????????
            length: 27
            contents: ??????????????????
            fill bytes: opaque data
 
Frame 741 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:00:4c:7f:79:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.31 (172.16.109.31), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 640 (640), Seq: 1, Ack: 117, Len: 0
 
Frame 742 (118 bytes on wire, 118 bytes captured)
Ethernet II, Src: 00:00:4c:7f:79:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.31 (172.16.109.31), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 640 (640), Seq: 1, Ack: 117, Len: 52
Remote Procedure Call, Type:Reply XID:0xfc6898b2
Portmap
    Program Version: 4
    V4 Procedure: GETADDR (3)
    Universal Address: 172.16.109.31.128.33
        length: 20
        contents: 172.16.109.31.128.33

When the server runs only portmapper (ie rpcbind version 2 only)
The client try to use version 4, then version 3 and finally version 2

Frame 3336 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 686 (686), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 0
 
Frame 3337 (178 bytes on wire, 178 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 686 (686), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 112
Remote Procedure Call, Type:Call XID:0xfc6df546
    Fragment header: Last fragment, 108 bytes
    XID: 0xfc6df546 (4235064646)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 4
    Procedure: GETADDR (3)
    The reply to this request is in frame 3339
    Credentials
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 4
    V4 Procedure: GETADDR (3)
    RPCB
        Program: NFS (100003)
        Version: 3
        Network Id: \??
            length: 3
            contents: \??
            fill bytes: opaque data
        Universal Address: 172.16.109.30.0.111
            length: 19
            contents: 172.16.109.30.0.111
            fill bytes: opaque data
        Owner of this Service: ??
x??i
            length: 21
            contents: ??
x??i
            fill bytes: opaque data
 
Frame 3338 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 686 (686), Seq: 1, Ack: 113, Len: 0
 
Frame 3339 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 686 (686), Seq: 1, Ack: 113, Len: 36
Remote Procedure Call, Type:Reply XID:0xfc6df546
    Fragment header: Last fragment, 32 bytes
    XID: 0xfc6df546 (4235064646)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 4
    Procedure: GETADDR (3)
    Reply State: accepted (0)
    This is a reply to a request in frame 3337
    Time from request: 0.000488000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: remote can't support version # (2)
    Program Version (Minimum): 2
    Program Version (Maximum): 2
 
Frame 3340 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 686 (686), Dst Port: 111 (111), Seq: 113, Ack: 37, Len: 0
 
Frame 3341 (178 bytes on wire, 178 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 686 (686), Dst Port: 111 (111), Seq: 113, Ack: 37, Len: 112
Remote Procedure Call, Type:Call XID:0xfb6df546
    Fragment header: Last fragment, 108 bytes
    XID: 0xfb6df546 (4218287430)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 3
    Procedure: GETADDR (3)
    The reply to this request is in frame 3342
    Credentials
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 3
    V3 Procedure: GETADDR (3)
    RPCB
        Program: NFS (100003)
        Version: 3
        Network Id: \??
            length: 3
            contents: \??
            fill bytes: opaque data
        Universal Address: 172.16.109.30.0.111
            length: 19
            contents: 172.16.109.30.0.111
            fill bytes: opaque data
        Owner of this Service: ??
x??i
            length: 21
            contents: ??
x??i
            fill bytes: opaque data
 
Frame 3342 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 686 (686), Seq: 37, Ack: 225, Len: 36
Remote Procedure Call, Type:Reply XID:0xfb6df546
    Fragment header: Last fragment, 32 bytes
    XID: 0xfb6df546 (4218287430)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 3
    Procedure: GETADDR (3)
    Reply State: accepted (0)
    This is a reply to a request in frame 3341
    Time from request: 0.000419000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: remote can't support version # (2)
    Program Version (Minimum): 2
    Program Version (Maximum): 2
 
Frame 3343 (98 bytes on wire, 98 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
User Datagram Protocol, Src Port: 686 (686), Dst Port: 111 (111)
Remote Procedure Call, Type:Call XID:0x4292289a
    XID: 0x4292289a (1116874906)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 2
    Procedure: GETPORT (3)
    The reply to this request is in frame 3344
    Credentials
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 2
    V2 Procedure: GETPORT (3)
    Program: NFS (100003)
    Version: 3
    Proto: TCP (6)
    Port: 0
 
Frame 3344 (70 bytes on wire, 70 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
User Datagram Protocol, Src Port: 111 (111), Dst Port: 686 (686)
Remote Procedure Call, Type:Reply XID:0x4292289a
    XID: 0x4292289a (1116874906)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 2
    Procedure: GETPORT (3)
    Reply State: accepted (0)
    This is a reply to a request in frame 3343
    Time from request: 0.000748000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: RPC executed successfully (0)
Portmap
    Program Version: 2
    V2 Procedure: GETPORT (3)
    Port: 2049

Test of rpcbind kernel part

Method: launching connectathon locking tests to see what happens

With a server running rpcbind:
Frame 781 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1019 (1019), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 0
 
Frame 782 (138 bytes on wire, 138 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1019 (1019), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 72
Remote Procedure Call, Type:Call XID:0xe42428eb
    Fragment header: Last fragment, 68 bytes
    XID: 0xe42428eb (3827575019)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 4
    Procedure: GETVERSADDR (9)
    The reply to this request is in frame 785
    Credentials
        Flavor: AUTH_NULL (0)
        Length: 0
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 4
    V4 Procedure: GETVERSADDR (9)
    Data (28 bytes)
 
0000  00 01 86 b5 00 00 00 04 00 00 00 03 74 63 70 00   ............tcp.
0010  00 00 00 00 00 00 00 04 72 70 63 62               ........rpcb
 
Frame 784 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1019 (1019), Seq: 1, Ack: 73, Len: 0
                                                                                                                                                                                    
Frame 785 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1019 (1019), Seq: 1, Ack: 73, Len: 36
Remote Procedure Call, Type:Reply XID:0xe42428eb
    Fragment header: Last fragment, 32 bytes
    XID: 0xe42428eb (3827575019)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 4
    Procedure: GETVERSADDR (9)
    Reply State: accepted (0)
    This is a reply to a request in frame 782
    Time from request: 0.000793000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: remote can't support version # (2)
    Program Version (Minimum): 2
    Program Version (Maximum): 2
 
Frame 786 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1019 (1019), Dst Port: 111 (111), Seq: 73, Ack: 37, Len: 0

[...]

Frame 795 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1018 (1018), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 0
 
Frame 796 (138 bytes on wire, 138 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1018 (1018), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 72
Remote Procedure Call, Type:Call XID:0x1038df9c
    Fragment header: Last fragment, 68 bytes
    XID: 0x1038df9c (272162716)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 3
    Procedure: GETADDR (3)
    The reply to this request is in frame 798
    Credentials
        Flavor: AUTH_NULL (0)
        Length: 0
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 3
    V3 Procedure: GETADDR (3)
    RPCB
        Program: NLM (100021)
        Version: 4
        Network Id: tcp
        Universal Address: 
        Owner of this Service: rpcb
 
Frame 797 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1018 (1018), Seq: 1, Ack: 73, Len: 0
 
Frame 798 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1018 (1018), Seq: 1, Ack: 73, Len: 36
Remote Procedure Call, Type:Reply XID:0x1038df9c
    Fragment header: Last fragment, 32 bytes
    XID: 0x1038df9c (272162716)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 3
    Procedure: GETADDR (3)
    Reply State: accepted (0)
    This is a reply to a request in frame 796
    Time from request: 0.000556000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: remote can't support version # (2)
    Program Version (Minimum): 2
    Program Version (Maximum): 2
 
Frame 799 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1018 (1018), Dst Port: 111 (111), Seq: 73, Ack: 37, Len: 0
 
[...]
 
Frame 826 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1017 (1017), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 0
 
Frame 827 (126 bytes on wire, 126 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:02:b3:bd:a3:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.30 (172.16.109.30)
Transmission Control Protocol, Src Port: 1017 (1017), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 60
Remote Procedure Call, Type:Call XID:0x3beda703
    Fragment header: Last fragment, 56 bytes
    XID: 0x3beda703 (1005430531)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 2
    Procedure: GETPORT (3)
    The reply to this request is in frame 832
    Credentials
        Flavor: AUTH_NULL (0)
        Length: 0
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 2
    V2 Procedure: GETPORT (3)
    Program: NLM (100021)
    Version: 4
    Proto: TCP (6)
    Port: 0
 
Frame 828 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1017 (1017), Seq: 1, Ack: 61, Len: 0
 
Frame 832 (98 bytes on wire, 98 bytes captured)
Ethernet II, Src: 00:02:b3:bd:a3:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.30 (172.16.109.30), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1017 (1017), Seq: 1, Ack: 61, Len: 32
Remote Procedure Call, Type:Reply XID:0x3beda703
    Fragment header: Last fragment, 28 bytes
    XID: 0x3beda703 (1005430531)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 2
    Procedure: GETPORT (3)
    Reply State: accepted (0)
    This is a reply to a request in frame 827
    Time from request: 0.004719000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: RPC executed successfully (0)
Portmap
    Program Version: 2
    V2 Procedure: GETPORT (3)
    Port: 32771

If the server runs rpcbind version 4, 3 and 2 then the version used is version 4, as we can see on this capture:

Frame 974 (138 bytes on wire, 138 bytes captured)
Ethernet II, Src: 00:02:b3:f0:05:8c, Dst: 00:00:4c:7f:79:61
Internet Protocol, Src Addr: 172.16.109.53 (172.16.109.53), Dst Addr: 172.16.109.31 (172.16.109.31)
Transmission Control Protocol, Src Port: 1017 (1017), Dst Port: 111 (111), Seq: 1, Ack: 1, Len: 72
Remote Procedure Call, Type:Call XID:0xd5269811
    Fragment header: Last fragment, 68 bytes
    XID: 0xd5269811 (3576076305)
    Message Type: Call (0)
    RPC Version: 2
    Program: Portmap (100000)
    Program Version: 4
    Procedure: GETVERSADDR (9)
    The reply to this request is in frame 976
    Credentials
        Flavor: AUTH_NULL (0)
        Length: 0
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Portmap
    Program Version: 4
    V4 Procedure: GETVERSADDR (9)
    Data (28 bytes)
 
0000  00 01 86 b5 00 00 00 04 00 00 00 03 74 63 70 00   ............tcp.
0010  00 00 00 00 00 00 00 04 72 70 63 62               ........rpcb
 
Frame 975 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:00:4c:7f:79:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.31 (172.16.109.31), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1017 (1017), Seq: 1, Ack: 73, Len: 0
 
Frame 976 (118 bytes on wire, 118 bytes captured)
Ethernet II, Src: 00:00:4c:7f:79:61, Dst: 00:02:b3:f0:05:8c
Internet Protocol, Src Addr: 172.16.109.31 (172.16.109.31), Dst Addr: 172.16.109.53 (172.16.109.53)
Transmission Control Protocol, Src Port: 111 (111), Dst Port: 1017 (1017), Seq: 1, Ack: 73, Len: 52
Remote Procedure Call, Type:Reply XID:0xd5269811
    Fragment header: Last fragment, 48 bytes
    XID: 0xd5269811 (3576076305)
    Message Type: Reply (1)
    Program: Portmap (100000)
    Program Version: 4
    Procedure: GETVERSADDR (9)
    Reply State: accepted (0)
    This is a reply to a request in frame 974
    Time from request: 0.000892000 seconds
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: RPC executed successfully (0)
Portmap
    Program Version: 4
    V4 Procedure: GETVERSADDR (9)
    Data (24 bytes)
 
0000  00 00 00 14 31 37 32 2e 31 36 2e 31 30 39 2e 33   ....172.16.109.3
0010  31 2e 31 35 2e 32 30 35                           1.15.205


Page maintained by: Aurelien Charbon
Accessed times since its creation.
 
Last update: 2005, June 09