Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FTS Request: Set the IP Stack for a TPC transfer #1472

Closed
mpatrascoiu opened this issue Jun 28, 2021 · 11 comments
Closed

FTS Request: Set the IP Stack for a TPC transfer #1472

mpatrascoiu opened this issue Jun 28, 2021 · 11 comments
Assignees

Comments

@mpatrascoiu
Copy link
Contributor

Hello,

Related with #1471, the next step would be to request which IP stack to be used for the TPC transfer.

This request is on a more relaxed timeline.

Cheers,
Mihai

@abh3
Copy link
Member

abh3 commented Jul 1, 2021 via email

@abh3
Copy link
Member

abh3 commented Sep 13, 2022

This is essentially a duplicate of 1471 so I am closing this one.

@abh3 abh3 closed this as completed Sep 13, 2022
@mpatrascoiu
Copy link
Contributor Author

Hello Andy,

I don't agree with the duplicate statement.

#1471 wants to find out whether the TPC was done voer IPv4 or IPv6.
This ticket (#1472) tells the storage to do the TPC via IPv4 or IPv6.

@xrootd-dev
Copy link

xrootd-dev commented Sep 13, 2022 via email

@mpatrascoiu
Copy link
Contributor Author

In #1471, that is the goal: find out whether the TPC went over IPv4 or IPv6.

In this issue, the request is different. What I want as the client is to request a TPC be done only via the preferred IPv4 or IPv6. As mentioned right at the beginning, the timeline for this is much more relaxed.

@abh3
Copy link
Member

abh3 commented Sep 13, 2022

Ah, I misread the intent here. Sorry about that. Well, this is easy to do for xroot protocol but much harder for http, Good that we are on a relaxed time line.

@abh3 abh3 reopened this Sep 13, 2022
@abh3 abh3 self-assigned this Sep 29, 2022
@paulmillar
Copy link
Contributor

Hi everyone,

If I've understood correctly, the goal here is for FTS to control with which IP family (IPv4 or IPv6) is used when transferring a file. FTS should be able to say "use IPv4" to the active party and the storage system should reject any IPv6 address for the passive party (obtained from DNS) and try to connect only with IPv4 addresses, or vice versa.

@mpatrascoiu, could you elaborate on the use-case here?

AFAIK, address selection is well-established; e.g., RFC 6724 and autonomous to the storage system.

I don't see any good reasons for doing this, only some bad reasons ;-)

@mpatrascoiu
Copy link
Contributor Author

Hello Paul,

This is a request FTS(/Gfal2) gets from time to time. One way to handle that is to delegate to the underlying client library (XRootd or HTTP-TPC protocol).

In the past, I've had GridFTP transfers involving an IPv4-only site that failed when trying to contact a dual-stack site. Gfal2 support for GridFTP allowed enforcing only IPv4 and this would solve it.

It is true this problem has not resurfaced for XRootd and/or HTTP transfers. More so, this ticket only concerns itself with XRootd transfers and it is why I leave it to XRootd developers to decide whether they want to provide this or not.

@bbockelm
Copy link
Contributor

bbockelm commented Oct 3, 2022

Hi @mpatrascoiu -

In the case you outline, we benefit from the fact that HTTP is more network-friendly than GridFTP. The latter would send one side of the transfer an IP address and had to make an educated guess of whether the remote side could speak IPv6 (or not). In HTTP, the 'client' typically gets a hostname which it can resolve to an IP address using its own resolution rules. That allows the IPv4-only site to implement IPv4-only transfers via managing the hostname lookups (e.g., gai.conf) -- no help from FTS should be needed!

The downside of the request is that someone uses it in production, sets it, forgets about it, and causes transfers to be permanently pinned to IPv4 for the rest of our lifetime.

Since the use case is pretty targeted, has an alternate workaround if needed, and has a potentially large downside, I'm reluctant to go down this route.

@paulmillar
Copy link
Contributor

Just to amplify @bbockelm point (that this is unlikely to be a problem in HTTP-TPC), by mentioning that adding a control mechanism (through FTS) would mean selectively disabling IPv6 on a transfer-by-transfer basis.

I suppose this could be needed, but I'm struggling to see when it would be needed (or appropriate, even).

Therefore, I suggest we should wait to see some concrete use-cases for this functionality, before updating the protocol.

@abh3
Copy link
Member

abh3 commented Oct 4, 2022

OK, given the rather negative view of this feature by the http team and my concurrence that the same issues exist in xroot, I am closing this ticket as feature unlikely to be implemented.

@abh3 abh3 closed this as completed Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants