Return-Path: Received: from mail.candelatech.com ([208.74.158.172]:40999 "EHLO ns3.lanforge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754238Ab1FGOlT (ORCPT ); Tue, 7 Jun 2011 10:41:19 -0400 Message-ID: <4DEE388C.1000408@candelatech.com> Date: Tue, 07 Jun 2011 07:41:16 -0700 From: Ben Greear To: Max Matveev CC: linux-nfs@vger.kernel.org Subject: Re: Question on portmapper source References: <4DED6DC8.8020500@candelatech.com> <7B1787E7-75DC-4CBB-86DA-FAA1B0366B00@oracle.com> <4DEDA087.5070905@candelatech.com> <19949.55456.285011.382387@regina.usersys.redhat.com> In-Reply-To: <19949.55456.285011.382387@regina.usersys.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Sender: linux-nfs-owner@vger.kernel.org List-ID: MIME-Version: 1.0 On 06/07/2011 12:52 AM, Max Matveev wrote: > On Mon, 06 Jun 2011 20:52:39 -0700, Ben Greear wrote: > > greearb> On 06/06/2011 06:11 PM, Chuck Lever wrote: > >> > >> On Jun 6, 2011, at 8:16 PM, Ben Greear wrote: > >> > >>> 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. 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. > > >>> 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 > > >>> 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. Thanks, I'll dig into the mount.nfs code. Thanks, Ben > > max > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Ben Greear Candela Technologies Inc http://www.candelatech.com