A T W HAT C OST ? must create configurations for each kind of host - - PowerPoint PPT Presentation

a t w hat c ost
SMART_READER_LITE
LIVE PREVIEW

A T W HAT C OST ? must create configurations for each kind of host - - PowerPoint PPT Presentation

LISA-97 Chaos out of Order -or- An Anarchists Guide Oct 31, 1997 I MPLEMENTATION S TATUS Distr is freely available from ftp://ftp.eecs.tufts.edu/pub/distr revision: 2.0.0Alpha (not satisfied with specifications) handles UNIX files


slide-1
SLIDE 1

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 21 of 21

IMPLEMENTATION STATUS

❍ Distr is freely available from

ftp://ftp.eecs.tufts.edu/pub/distr

❍ revision: 2.0.0Alpha

(not satisfied with specifications)

❍ handles UNIX files and links

(directories easy given time)

❍ considering supporting NT

slide-2
SLIDE 2

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 20 of 21

SCALABLE DISTRIBUTION ALLOWS

❍ scalable mistakes that disable

networks very efficiently

❒ network storms ❒ rapid propogation of human errors ❍ scalable vulnerability to attack ❒ cracking master cracks slaves ❒ can be used for denial-of-service

slide-3
SLIDE 3

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 19 of 21

AT WHAT COST?

❍ must create configurations for each kind

  • f host and domain

❍ must manually configure a distribution

topology for scalable use

❍ must bootstrap by distributing

configuration files and Perl-5, perhaps with RDIST:)

slide-4
SLIDE 4

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 18 of 21

ILLUSION AND REALITY

✗ illusion: PGP signing provides security ✔ reality: susceptible to replay attacks. ✗ illusion: difficult to write configurations ✔ reality: one basic file per host type ✗ illusion: it’d be easy to auto-configure ✔ reality: very hard problem

slide-5
SLIDE 5

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 17 of 21

UNDERSTANDING IMPORT SCALABILITY

j d f p l g h i a c n k e b

  • responses

import requests

slide-6
SLIDE 6

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 16 of 21

IMPLEMENTING SCALABILITY

❍ import.afterSuccess = sub {

&some(’export.initiate’); }; clients = [’foo’,’bar’];

follows each successful import with an export! ❍ export.before = sub {

&some(’import.initiate’); }; servers = [’foo’,’bar’];

queries servers for the correct versions before exporting to others!

slide-7
SLIDE 7

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 15 of 21

SCALABILITY

if you told two friends, and they told two friends... j d f p l g h i a c n k e b

  • master server

slaves intermediaries

slide-8
SLIDE 8

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 14 of 21

SIMPLE HACKS

❍ import.authentic = \&PGPauthentic;

signers = [’Alva L. Couch’];

authenticates each file against detached PGP signature file.sig ❍ import.before = sub {

my $file = &some(’import.file’); system(”/usr/bin/ci -m ’distr’ \ $file >/dev/null 2>&1”)/256==0; }; implements local pre-distribution archiving.

❍ can be limited to specific cases by naming!

slide-9
SLIDE 9

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 13 of 21

LOCAL CUSTOMIZATION

import = sub { # oversimplified to fit! if (&some(’import.authentic’)) { if (&some(’import.before’)) { if (&some(’import.method’)) { &some(’import.afterSuccess’); } else { &some(’import.afterFailure’); }} } else { &some(’import.afterDenial’); } }; actually does the import user ‘hooks’

slide-10
SLIDE 10

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 12 of 21

USING DISTR

❍ distr -scopes mail.sendmail \

  • tags export

calls distr on a master host to distribute files to a slave host

❍ distr -scopes mail.sendmail \

  • tags import

calls distr on a slave host to request a file from a master host.

slide-11
SLIDE 11

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 11 of 21

DISTR’S PROTOCOL

{’tag’ => ’import’, ’scope’ => ’file’ => <embedded file> } ’mail.sendmail.aliases’, {’error’ => ...} {’success’ => ...}

mail.sendmail.aliases.export.initiate mail.sendmail.aliases.import mail.sendmail.aliases.import.file mail.sendmail.aliases.export.file

server responds to request client initiates request

slide-12
SLIDE 12

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 10 of 21

PARAMETER-PASSING

❍ foo.import.file = ’/foo’;

is used by method foo.import

❍ bar.import.file = ’/bar’;

is used by method bar.import

❍ both these methods are aliases for plain

import (through inheritance)!

slide-13
SLIDE 13

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 9 of 21

INHERITANCE

❍ scope: ‘where’ you are, e.g., ❒

mail.sendmail.aliases

❍ tag: ‘what’ you want, e.g., import ❍ use the first definition you find in the list: ❒ mail.sendmail.aliases.import ❒ mail.sendmail.import ❒ mail.import ❒ import ❍ Perl syntax: &some(’import’)

slide-14
SLIDE 14

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 8 of 21

DISTR CONFIGURATION

mail.sendmail.aliases { import.file = ’/usr/lib/aliases’; import.afterSuccess = sub { system(”/usr/lib/newaliases \ >/dev/null 2>&1”)/256==0; }; }

❍ attributes can be arbitrary Perl-5

scalars, including function references

❍ missing details ‘filled in’ with inheritance

slide-15
SLIDE 15

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 7 of 21

WHAT’S IN A NAME?

❍ mail.sendmail.aliases

is the name of a (distributed) object

❍ mail.sendmail.aliases.import.file

= ’/usr/lib/aliases’;

specifies the target file.

❍ mail.sendmail.aliases.import

is the method for importing that file

slide-16
SLIDE 16

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 6 of 21

DISTR

❍ hosts are both servers and clients ❒ server distrd: reacts to requests ❒ client distr: makes requests ❍ hosts can be both masters and slaves ❒ master: provider of information ❒ slave: consumer of information ❍ bidirectional: master or slave initiates. ❍ slave machines must agree to updates!

Masters can’t force slaves to comply!

slide-17
SLIDE 17

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 5 of 21

TYPICAL APPROACH (RDIST)

mail:/usr/lib/aliases->(slave) install /etc/mail/aliases special ”/usr/sbin/newaliases”

❍ requires a master server ❍ unidirectional: master-to-slave ❍ platform-specific ❍ master needs root privileges on slave ❍ this doesn’t exactly encourage

cooperation between admins!

slide-18
SLIDE 18

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 4 of 21

FILE DISTRIBUTION AND HETEROGENEITY

server: provides file client: receives file: /usr/lib/aliases /etc/mail/aliases

distribute:

✔transmit ✔transform ✔authenticate ✔archive ✔journal

may have:

✔different name ✔different format ✔rollback ✔different actions executes: /usr/sbin/newaliases master: slave:

slide-19
SLIDE 19

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 3 of 21

AN ‘ANARCHIST’ VIEW

❍ replace a venerable and very mature

tool (with a very young and strange one)!

❍ violate (almost all) software engineering

and programming language principles!

❍ develop configuration maintenance

architecture from the bottom up!

❍ redefine what is meant by ‘distribution’

(and perhaps even ‘scalable’)

slide-20
SLIDE 20

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 2 of 21

TO GET ALONG, WE NEED:

❍ a common language for referring to

things and actions

❍ the ability to interpret that language to

make changes for the common good

❍ the ability to limit changes to those

agreed upon by both parties

slide-21
SLIDE 21

LISA-97 Chaos out of Order -or- An Anarchists’ Guide Oct 31, 1997 Alva L. Couch couch@eecs.tufts.edu, http://www.eecs.tufts.edu/~couch Page 1 of 21

CHAOS OUT OF ORDER:

A SIMPLE, SCALABLE FILE DISTRIBUTION FACILITY

FOR “INTENTIONALLY HETEROGENEOUS” NETWORKS

  • OR-

AN ANARCHISTS’ GUIDE

TO HETEROGENEOUS NETWORK

CONFIGURATION MANAGEMENT

Alva L. Couch

  • Assoc. Prof. of EECS, Tufts University

Email: couch@eecs.tufts.edu Web: http://www.cs.tufts.edu/~couch/