NFSv4 Open Source Project Update

Similar documents
NFS Version 4 Open Source Project. William A.(Andy) Adamson Center for Information Technology Integration University of Michigan

GridNFS: Scaling to Petabyte Grid File Systems. Andy Adamson Center For Information Technology Integration University of Michigan

NFSv4 and rpcsec_gss for linux

NFS Version 4 Security Update

NFS Version 4 17/06/05. Thimo Langbehn

File Locking in NFS. File Locking: Share Reservations

Distributed File Systems: Design Comparisons

Kerberized NFS 2010 Kerberos Conference

Status of the Linux NFS client

NFSv4 Multi-Domain Access. Andy Adamson Connectathon 2010

Distributed File Systems. Distributed Systems IT332

NFSv4 Multi-Domain Access. Andy Adamson ABFAB WG, IETF 80 March 2011

NFSv4 Enhancements and Best Practices Guide: Data ONTAP Implementation

review of the potential methods

Internet Engineering Task Force (IETF) Request for Comments: 8000 Category: Standards Track. November 2016

Introduction to the Network File System (NFS)

Nicolas Williams Staff Engineer Sun Microsystems, Inc.

CS 470 Spring Distributed Web and File Systems. Mike Lam, Professor. Content taken from the following:

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

CS 470 Spring Distributed Web and File Systems. Mike Lam, Professor. Content taken from the following:

Operating Systems Design Exam 3 Review: Spring 2011

Reasons to Migrate from NFS v3 to v4/ v4.1. Manisha Saini QE Engineer, Red Hat IRC #msaini

The NFS Version 4 Protocol

GSS Context Management for NFS: The NFS PAG. William A. (Andy) Adamson Connectathon 2014

NFS with Linux: Current and Future Efforts. Chuck Lever, Network Appliance, Inc Steve Dickson, Red Hat Red Hat Summit 2006

Administring NFSv4 with Webmin

NFS version 4 LISA `05. Mike Eisler Network Appliance, Inc.

Introduction to the Network File System (NFS)

NFS in Userspace: Goals and Challenges

COS 318: Operating Systems. NSF, Snapshot, Dedup and Review

Lecture 19. NFS: Big Picture. File Lookup. File Positioning. Stateful Approach. Version 4. NFS March 4, 2005

Network Working Group. Category: Standards Track June 1999

NFSv4 extensions for performance and interoperability

Network File System (NFS)

Network File System (NFS)

2 SCANNING, PROBING, AND MAPPING VULNERABILITIES

Introducing Network File System Version 4 on HP-UX 11i v3

DISTRIBUTED FILE SYSTEMS & NFS

NFS/RDMA Draft Status

dcache NFSv4.1 Tigran Mkrtchyan Zeuthen, dcache NFSv4.1 Tigran Mkrtchyan 4/13/12 Page 1

Intended status: Standards Track July 21, 2014 Expires: January 22, 2015

tcpcrypt: real transport-level encryption Andrea Bittau, Mike Hamburg, Mark Handley, David Mazieres, Dan Boneh. UCL and Stanford.

Scope Statement For Shared Key Authentication and Encryption in Lustre 2.X

Today: Distributed File Systems. File System Basics

Operating Systems Design Exam 3 Review: Spring Paul Krzyzanowski

Today: Distributed File Systems

Distributed File Systems. CS 537 Lecture 15. Distributed File Systems. Transfer Model. Naming transparency 3/27/09

"Charting the Course... Enterprise Linux Security Administration Course Summary

NFS Version 4 Update

NFS Version 4.1. Spencer Shepler, Storspeed Mike Eisler, NetApp Dave Noveck, NetApp

416 Distributed Systems. Distributed File Systems 1: NFS Sep 18, 2018

Advanced Operating Systems

NFS around the world Tigran Mkrtchyan for dcache Team dcache User Workshop, Umeå, Sweden

The Parallel NFS Bugaboo. Andy Adamson Center For Information Technology Integration University of Michigan

Distributed Systems. Lecture 07 Distributed File Systems (1) Tuesday, September 18 th, 2018

Operating Systems. Week 13 Recitation: Exam 3 Preview Review of Exam 3, Spring Paul Krzyzanowski. Rutgers University.

CS 416: Operating Systems Design April 22, 2015

Configuring Request Authentication and Authorization

Draft-ietf-nfsv4-rpcsecgssv3-05. William A. (Andy) Adamson IETF 88 Vancouver

User Authentication. Modified By: Dr. Ramzi Saifan

Chapter 11 DISTRIBUTED FILE SYSTEMS

Advanced Network and System Administration

Leveraging NFSv4 to Build a Federated File System Protocol

Configuring NFSv4 on SUSE Linux Enterprise 10

NFSv4.1 Using pnfs PRESENTATION TITLE GOES HERE. Presented by: Alex McDonald CTO Office, NetApp

Clustered Data ONTAP 8.2 File Access Management Guide for NFS

An NFS Replication Hierarchy

Symbolics Network File System (NFS) User s Guide. Introduction to Symbolics Network File System (NFS)

NFS Design Goals. Network File System - NFS

Distributed Systems. Distributed File Systems. Paul Krzyzanowski

Message Networking 5.2 Administration print guide

Network Security: Kerberos. Tuomas Aura

The CephFS Gateways Samba and NFS-Ganesha. David Disseldorp Supriti Singh

User Authentication. Modified By: Dr. Ramzi Saifan

NFS: Naming indirection, abstraction. Abstraction, abstraction, abstraction! Network File Systems: Naming, cache control, consistency

Embedded Web Server Security. Administrator's Guide

The KX.509 Protocol. William Doster Marcus Watts Dan Hyde University of Michigan ABSTRACT

System that permanently stores data Usually layered on top of a lower-level physical storage medium Divided into logical units called files

Nimsoft Service Desk. Single Sign-On Configuration Guide. [assign the version number for your book]

February 15, 2012 FAST 2012 San Jose NFSv4.1 pnfs product community

The case for ubiquitous transport-level encryption

Operating Systems Design 16. Networking: Remote File Systems

Configuring EAP-FAST CHAPTER

416 Distributed Systems. Distributed File Systems 2 Jan 20, 2016

NFSv4.1 Plan for a Smooth Migration

File systems: management 1

Distributed File Systems. Directory Hierarchy. Transfer Model

Managing External Identity Sources

Configuring Content Authentication and Authorization on Standalone Content Engines

Kerberos & HPC Batch systems. Matthieu Hautreux (CEA/DAM/DIF)

Parallel NFS Dr. Oliver Tennert, Head of Technology. sambaxp 2008 Göttingen,

Brent Callaghan Sun Microsystems, Inc. Sun Microsystems, Inc

Trusted Intermediaries

AIT 682: Network and Systems Security

Operating system security models

Operating Systems, Fall

The File Systems Evolution. Christian Bandulet, Sun Microsystems

Samba in a cross protocol environment

SDC EMEA 2019 Tel Aviv

Keys and Passwords. Steven M. Bellovin October 17,

Transcription:

NFSv4 Open Source Project Update Andy Adamson CITI, University of Michigan Ann Arbor Page 1 of 40

A little bit of history NFSv4 Open Source Reference Implementation Project Sponsored by Sun Microsystems IETF reference implementation 212 page spec Linux and OpenBSD Page 2 of 40

Topics Brief overview of implemented features Changes to Linux kernel POSIX vs NFSv4 State Management Administration Page 3 of 40

Implemented Features Pseudo File system Compound RPC Byte-Range Locking Access Control Lists RPCSEC_GSS Delegation Page 4 of 40

Pseudo Filesystem NFSv4 RFC does not specify the relationship between the names in the pseudo fs and the names of the actual exported directories on the server In our implementations, the namespaces are completely independent Page 5 of 40

Pseudo Filesystem / /exp1 /exp2 /exp3 The pseudofs is just a device to allow clients to browse the exports without need for an auxiliary protocol Page 6 of 40

Compound RPC Designed to reduce traffic Complex calling interface, complex to parse Partial results used RPC/XDR layering RPC layer does not interpret compound operations Additional replay cache for lock mutating ops Have to decode to decide which replay cache to use Variable length: malloc buffer for args and recv Page 7 of 40

Mount Compound RPC PUTROOTFH LOOKUP GETATTR GETFH Start with the pseudofs root, lookup mount point Path name, and return attributes and file handle. Page 8 of 40

Compound RPC Latest Linux implementation uses hand coded XDR encode and decode compound RPC operations with buffer overflow checks and short call stack. Decode handlers provide ideal place to process common errors Wrong RPC security flavor Lease expiration Page 9 of 40

Locking: POSIX vs. Windows POSIX locking has the curious property that locks can be split W W W W W 0 1 2 3 4 Fcntl(F_SETLK, F_UNLCK, 2, 1) W W W W 0 1 2 3 4 Page 10 of 40

Locking: POSIX vs. Windows or coalesced W W W R R R R R R R R 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 fcntl(f_setlk, F_RDLCK, 2, 13) W W R R R R R R R R R R R R R 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Locking: POSIX vs. Windows In fact, any byte range is legal in a POSIX locking request! For the sake of discussion, call any locking request which splits or coalesces a byte range "exotic". Page 12 of 40

Locking: POSIX vs Windows Problem: Windows servers cannot support exotic locking requests! According to NFSv4 RFC, Servers should support exotic locking requests if possible, but are not required to. clients wanting to emit an exotic requests is responsible for simulating it by a sequence of non-exotic requests. Page 13 of 40

The "Lost Lock" Race Condition Given: W W W W W Want to Unlock byte 2 0 0 W 0 1 2 3 4 1 2 3 4 W 2 3 4 Unlock 0-4 Lock 0-1 W W1 W W Lock 3-4 0 2 3 4 Page 14 of 40

Linux Implementation of Locking Two code paths, as mount option RFC compliant, simulate exotic requests with a sequence of nonexotic ones Send exotic requests unmodified to the server, this is the default behavior Against a non-windows server use 2 Against a Windows server???? Page 15 of 40

Access Control Lists We're implementing on top of Andreas Gruebacher's POSIX ACL patch (http://acl.bestbits.at). ACL code within CONFIG_POSIX_ACL NFSv4 defines ACL's which are much richer and more highly granulated than POSIX ACL's. Page 16 of 40

Access Control Lists Implemented a subset of the NFSv4 ACL spec which is functionally equivalent to POSIX ACL's In a purely Linux environment, can use POSIX ACL's over NFSv4 In an environment containing other NFSv4 implementations, ACL's may not work Page 17 of 40

Access Control Lists Complete implementation of NFSv4 ACL spec deferred to a future project Outstanding issue with NFSv4 ACL's: support for POSIX ACL_MASK. Page 18 of 40

RPCSEC_GSS RFC 2203 defines the addition of the GSSAPI to the ONC RPC. An application which uses the GSSAPI can "plug in" any security service which implements the API RPCSEC_GSS not widely implemented Page 19 of 40

GSSAPI MIT Kerberos 5 currently implements the GSSAPI. We're implementing LIPKEY, a GSSAPI-based service that requires SPKM3. We re implementing SPKM3, (Simple Public Key Mechanism) The combination of LIPKEY and SPKM3 provides a security service similar to TLS Page 20 of 40

RPCSEC_GSS Defines an on-the-wire scheme for embedding GSSAPI tokens into RPC requests. Initial exchange of context establishment tokens takes place over a sequence of overloaded RPC NULL procedures. Page 21 of 40

Kerberos 5 Security Initialization Kerberos 5 KDC 3 2 GSSD GSSD user 4 kernel 1 5 6 NFS client 8 NFSD 9 10 7 user kernel 2,3 Kerberos 5 TCP/IP 1,4,6,7 GSSD RPC interface 5,8 NFSV4 overloaded NULL procedure 9,10 NFSV4 COMPOUND procedure

RPCSEC_GSS RPC header, with an auth flavor of AUTH_GSS. Per message verifier hashed with a negotiated algorithm Import GSS context from GSSD after initialization Linux kernel crypto patch: currently cryptoapi-2.4.10.diff Page 23 of 40

SPKM3 Server has public keypair, which is not required on client Similar to "one-sided" security services such as SSL, TLS, and as such, suffers from the same manin-the middle attack Client public kepairs are allowed we plan to use client machine keypairs Page 24 of 40

SPKM3 Diffie-Hellman keyexchange in combination with server (and possibly client) PKI certificates establish a secure channel If User PKI credentials have not been used, User is still anonymous to the server Page 25 of 40

LIPKEY The user is prompted for a username and password which is sent to the server encrypted with SPKM3 established session key. LIPKEY does not specify how the server validates username and password. Linux: GSSD will attempt an ordinary unix login. Page 26 of 40

RPCSEC_GSS Implementation RPCSEC_GSS (userspace & in kernel) GSSD (userspace) SPKM3 (userspace) LIPKEY (userspace) Performance-critical GSSAPI calls for Kerberos 5 and LIPKEY (kernel) Page 27 of 40

File Delegation Server issues delegations to clients A read delegation on a file is a guarantee that no other clients are writing to the file. A write delegation on a file is a guarantee that no other clients are accessing the file. Page 28 of 40

File Delegation Eases revalidation requirements. Not necessary for correctness. Designed to reduce RPC requests to the server Expect performance enhancement Non-delegated files fall back to NFSv3 semantics Page 29 of 40

File Delegation Server may recall a delegation at any time when another client OPENs a file. Might not have two way reachability (server must probe callback path) before it knows it's safe to issue delegations. Client cannot regain a recalled delegation without another OPEN Page 30 of 40

File Delegation Delegation state management implemented Exploring two choices for client cache Virtual memory system: let the pager store the files on disc Local filesystem Page 31 of 40

Administrative Issues New server export model Namespace management Server state management Page 32 of 40

Export Management In NFSv3, clients must rely on an auxiliary protocol, the MOUNT protocol, to: request a list of the server's exports obtain the root file handle of a given export Changes to the server export list requires changes to the client mount request Page 33 of 40

Export Management NFSv4 pseudo fs allows the client to mount the root of the server, and browse to discover the offered exports Access into the pseudo fs is readonly and requires no credentials Access into an export is based on the users credentials. No more client list in /etc/exports Page 34 of 40

/etc/exports A sample /etc/exports with the pseudo fs followed by the directories to be exported /home /home/kmsmith /pub/src /usr/local/src /pub/log /var/log Page 35 of 40

/etc/exports and the Pseudo FS / /home /home/kmsmith /pub /pub/src /usr/local/src /pub/src /var/log Page 36 of 40

Namespace Management NFSv4 user and group names are of the form name@realm Translation between the names and UID/GID used by the local file system is needed Currently, /etc/passwd and /etc/group is used Page 37 of 40

State Management Sometimes client state on the server will need to be reaped by administrators We re developing a TCL/TK based tool to manage server side state Page 38 of 40

Availability New and Improved Client and Server based on the Linux 2.4.4 kernel first week of November, 2001. OpenBSD port will be concentrated on in following months. We expect a release by years end. Page 39 of 40

Any questions? http://www.citi.umich.edu/ Page 40 of 40