Skip to contentSkip to conversation

Question on portmapper source

DISCUSSION Ben Greear 3 participants 5 messages Jun 7, 2011

Subsystems (2)
lore
Share & tools
lore

Ben Greear

author
#0 lore raw

What is the official upstream project that contains the portmapper source?

Also, the mount.nfs package, as I'll probably need to modify that as well...

I am going to try to allow portmapper to bind to a particular source IP when making outbound requests....

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#1 lore raw
Quoted 2 lines · Ben Greear

What is the official upstream project that contains the portmapper source?

Do you want pormapper or rpcbind? The newer rpcbind actually allows RPC services to register at specific addresses, but the legacy portmapper does not.

Quoted 2 lines

Also, the mount.nfs package, as I'll probably need to modify that as well...

mount.nfs is in nfs-utils.

Quoted 2 lines

I am going to try to allow portmapper to bind to a particular source IP when making outbound requests....

I don't understand. portmapper, as an RPC service, receives incoming requests. But we don't use the rpcbind CALLIT procedure on Linux, thus it doesn't make outbound requests.

Signature · 2 lines
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
author
#2 lore raw
Quoted 7 lines · Chuck Lever
Quoted 2 lines · Ben Greear

What is the official upstream project that contains the portmapper source?

Do you want pormapper or rpcbind? The newer rpcbind actually allows RPC services to register at specific addresses, but the legacy portmapper does not.

I don't know. I was testing my nfs binding patches (which fixes up some of the kernel processes, at least), but when trying to connect through a router, we noticed that this traffic was using the wrong source IP (ie, it wasn't bound):

0.000000 192.168.100.117 -> 172.16.0.100 TCP 33282 > 111 [SYN] Seq=0
Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6981376 TSER=0 WS=10
3.007677 192.168.100.117 -> 172.16.0.100 TCP 33282 > 111 [SYN] Seq=0
Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6984384 TSER=0 WS=10
9.023670 192.168.100.117 -> 172.16.0.100 TCP 33282 > 111 [SYN] Seq=0
Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6990400 TSER=0 WS=10
10.010239 192.168.100.117 -> 172.16.0.100 Portmap V2 GETPORT Call NFS(100003)
V:3 UDP
11.011269 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of #4]V2
GETPORT Call NFS(100003) V:3 UDP
12.012298 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of #4]V2
GETPORT Call NFS(100003) V:3 UDP
20.422093 192.168.100.117 -> 172.16.0.100 TCP 44732 > 111 [SYN] Seq=0
Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7001798 TSER=0 WS=10
23.423683 192.168.100.117 -> 172.16.0.100 TCP 44732 > 111 [SYN] Seq=0
Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7004800 TSER=0 WS=10
29.439676 192.168.100.117 -> 172.16.0.100 TCP 44732 > 111 [SYN] Seq=0
Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7010816 TSER=0 WS=10
30.432383 192.168.100.117 -> 172.16.0.100 Portmap V2 GETPORT Call NFS(100003)
V:3 UDP
31.433420 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of
#10]V2 GETPORT Call NFS(100003) V:3 UDP
32.434458 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of
#10]V2 GETPORT Call NFS(100003) V:3 UDP

I need to make whatever is generating that traffic bind to a source IP.

Quoted 5 lines
Quoted 3 lines

Also, the mount.nfs package, as I'll probably need to modify that as well...

mount.nfs is in nfs-utils.

What is the git repo for it, though?

Quoted 5 lines
Quoted 3 lines

I am going to try to allow portmapper to bind to a particular source IP when making outbound requests....

I don't understand. portmapper, as an RPC service, receives incoming requests. But we don't use the rpcbind CALLIT procedure on Linux, thus it doesn't make outbound requests.

I could easily be confused about where the problem lies. Any idea what is generating those requests on the nfs client above?

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#3 lore raw

On Mon, 06 Jun 2011 20:52:39 -0700, Ben Greear wrote:

Quoted 7 lines · Chuck Lever
Quoted 7 lines · Ben Greear
Quoted 3 lines

What is the official upstream project that contains the portmapper source?

Do you want pormapper or rpcbind? The newer rpcbind actually allows RPC services to register at specific addresses, but the legacy portmapper does not.

greearb> I don't know. I was testing my nfs binding patches (which greearb> fixes up some of the kernel processes, at least), but when greearb> trying to connect through a router, we noticed that this greearb> traffic was using the wrong source IP (ie, it wasn't bound):

greearb> 0.000000 192.168.100.117 -> 172.16.0.100 TCP 33282 > 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6981376 TSER=0 WS=10
greearb> 3.007677 192.168.100.117 -> 172.16.0.100 TCP 33282 > 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6984384 TSER=0 WS=10
greearb> 9.023670 192.168.100.117 -> 172.16.0.100 TCP 33282 > 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6990400 TSER=0 WS=10
greearb> 10.010239 192.168.100.117 -> 172.16.0.100 Portmap V2 GETPORT Call NFS(100003)
greearb> V:3 UDP
greearb> 11.011269 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of #4]V2
greearb> GETPORT Call NFS(100003) V:3 UDP
greearb> 12.012298 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of #4]V2
greearb> GETPORT Call NFS(100003) V:3 UDP
greearb> 20.422093 192.168.100.117 -> 172.16.0.100 TCP 44732 > 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7001798 TSER=0 WS=10
greearb> 23.423683 192.168.100.117 -> 172.16.0.100 TCP 44732 > 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7004800 TSER=0 WS=10
greearb> 29.439676 192.168.100.117 -> 172.16.0.100 TCP 44732 > 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7010816 TSER=0 WS=10
greearb> 30.432383 192.168.100.117 -> 172.16.0.100 Portmap V2 GETPORT Call NFS(100003)
greearb> V:3 UDP
greearb> 31.433420 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of
greearb> #10]V2 GETPORT Call NFS(100003) V:3 UDP
greearb> 32.434458 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of
greearb> #10]V2 GETPORT Call NFS(100003) V:3 UDP

greearb> I need to make whatever is generating that traffic bind to a source IP.

It's hard to say what's "rigth" and "wrong" from just this tcpdump:
there is only one IP address.

Recently there was a change to libtirpc to fix IP address selection for UDP datagrams:

http://git.infradead.org/users/steved/libtirpc.git/commit/74ef3df0236c55185225c62fba34953f2582da72

This is on the server side - it looks to me you're trying to deal with client side so it may be irrelevant.

Quoted 4 lines
Quoted 4 lines
Quoted 2 lines

Also, the mount.nfs package, as I'll probably need to modify that as well...

mount.nfs is in nfs-utils.

greearb> What is the git repo for it, though?

http://git.infradead.org/users/steved/nfs-utils.git

Quoted 6 lines
Quoted 6 lines
Quoted 2 lines

I am going to try to allow portmapper to bind to a particular source IP when making outbound requests....

I don't understand. portmapper, as an RPC service, receives incoming requests. But we don't use the rpcbind CALLIT procedure on Linux, thus it doesn't make outbound requests.

greearb> I could easily be confused about where the problem lies. greearb> Any idea what is generating those requests on the nfs client greearb> above?

mount.nfs does.

max

author
#4 lore raw
Quoted 46 lines · Max Matveev

On Mon, 06 Jun 2011 20:52:39 -0700, Ben Greear wrote:

Quoted 7 lines · Chuck Lever
Quoted 7 lines · Ben Greear
Quoted 3 lines

What is the official upstream project that contains the portmapper source?

Do you want pormapper or rpcbind? The newer rpcbind actually allows RPC services to register at specific addresses, but the legacy portmapper does not.

  greearb>  I don't know.  I was testing my nfs binding patches (which
  greearb>  fixes up some of the kernel processes, at least), but when
  greearb>  trying to connect through a router, we noticed that this
  greearb>  traffic was using the wrong source IP (ie, it wasn't bound):

greearb> 0.000000 192.168.100.117 -> 172.16.0.100 TCP 33282> 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6981376 TSER=0 WS=10
greearb> 3.007677 192.168.100.117 -> 172.16.0.100 TCP 33282> 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6984384 TSER=0 WS=10
greearb> 9.023670 192.168.100.117 -> 172.16.0.100 TCP 33282> 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=6990400 TSER=0 WS=10
greearb> 10.010239 192.168.100.117 -> 172.16.0.100 Portmap V2 GETPORT Call NFS(100003)
greearb> V:3 UDP
greearb> 11.011269 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of #4]V2
greearb> GETPORT Call NFS(100003) V:3 UDP
greearb> 12.012298 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of #4]V2
greearb> GETPORT Call NFS(100003) V:3 UDP
greearb> 20.422093 192.168.100.117 -> 172.16.0.100 TCP 44732> 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7001798 TSER=0 WS=10
greearb> 23.423683 192.168.100.117 -> 172.16.0.100 TCP 44732> 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7004800 TSER=0 WS=10
greearb> 29.439676 192.168.100.117 -> 172.16.0.100 TCP 44732> 111 [SYN] Seq=0
greearb> Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSV=7010816 TSER=0 WS=10
greearb> 30.432383 192.168.100.117 -> 172.16.0.100 Portmap V2 GETPORT Call NFS(100003)
greearb> V:3 UDP
greearb> 31.433420 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of
greearb> #10]V2 GETPORT Call NFS(100003) V:3 UDP
greearb> 32.434458 192.168.100.117 -> 172.16.0.100 Portmap [RPC retransmission of
greearb> #10]V2 GETPORT Call NFS(100003) V:3 UDP

greearb> I need to make whatever is generating that traffic bind to a source IP.

It's hard to say what's "rigth" and "wrong" from just this tcpdump:
there is only one IP address.

Quoted 7 lines

Recently there was a change to libtirpc to fix IP address selection for UDP datagrams:

http://git.infradead.org/users/steved/libtirpc.git/commit/74ef3df0236c55185225c62fba34953f2582da72

This is on the server side - it looks to me you're trying to deal with client side so it may be irrelevant.

It's not really wrong for most users..just for me because I need it (mount.nfs, evidently) to use a specific source-IP so that my ip routing rules choose the correct route.

Quoted 17 lines
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines

Also, the mount.nfs package, as I'll probably need to modify that as well...

mount.nfs is in nfs-utils.

greearb> What is the git repo for it, though?

http://git.infradead.org/users/steved/nfs-utils.git

Quoted 6 lines
Quoted 6 lines
Quoted 2 lines

I am going to try to allow portmapper to bind to a particular source IP when making outbound requests....

I don't understand. portmapper, as an RPC service, receives incoming requests. But we don't use the rpcbind CALLIT procedure on Linux, thus it doesn't make outbound requests.

Quoted 5 lines
  greearb>  I could easily be confused about where the problem lies.
  greearb>  Any idea what is generating those requests on the nfs client
  greearb>  above?

mount.nfs does.

Thanks, I'll dig into the mount.nfs code.

Thanks,
Ben

Quoted 6 lines

max
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com