Re: BSD XXI Manifesto [mDNS proposal]

2014-02-27 Thread Matthew Rezny
 On 21 February 2014 20:59, Allan Jude freebsd at allanjude.com wrote:
  I can see the remote controlled installer being especially useful for
  'appliance' type devices, like FreeNAS, pfSense, FUDO, etc.
  
  How would your phone find the address of the machine once it boots off
  the USB, so you could access the web server?
 
 what apple does.
 
 
 
 -a

The solution used by Apple is mDNS and it does work rather well. When 
installing in unstructured environments, I find it quite handy to install 
Apple's mDNSresponder as part of the basic FreeBSD configuration for no reason 
other than the ability to ssh [hostname] from any box to access any other 
box on the network. For completely ad-hoc networks, IPv4LL is also useful in 
conjunction with mDNS.

I think it is time that FreeBSD gains support in base for these ZeroConf 
technologies. Thus, I propose a simple plan to do so.

IPv4LL is supported by dhcpcd in NetBSD. We could use this code in our 
dhclient, or we could simply import their dhcpcd either as replacement for or 
alternate to our dhclient. The choice of approach I leave open to those more 
familiar with our dhclient. The import part is the configuration.

By default, the DHCP client should fallback to IPv4LL if no DHCP server is 
found. This should be the behavior for any interface configured for DHCP i.e. 
ifconfig_[ethif]=DHCP. There also must be a way to disable IPv4LL to enforce 
use of DHCP in environments where it should be present, for which I propose 
the notation ifconfig_[ethif]=DHCP-NOLL. If IPv4LL is in active use, the DHCP 
client should continue to periodically look for a DHCP server and obtain a 
lease without manual user intervention (which is unfortunately required on 
both OS X and Windows, leading to sub-optimal experience in cases of temporary 
unavailability of the DHCP server). When obtaining a lease later, the IPv4LL 
assigned address should still remain as an alias to prevent closure of active 
connections when DHCP becomes available.

Apple's mDNSresponder is currently available in ports. Their implementation 
uses the Apache license so I believe we should be able to import this into 
base without any license issues. The more feature-full Avahi, commonly used on 
Linux system, is also in ports but is LGPL so is not a good choice for base 
due to both size and license.

Use of mDNS should be based on the addressing scheme in use. If there are any 
static addresses, we should assume the admin knows how to reach the box, in 
which case they may enable mDNS. If the box is using purely dynamic addressing 
then we should assume the addresses may be unknown and mDNS will be useful, 
perhaps essential, for locating and accessing the machine. The admin should 
always be able to force mDNS either on or off. Therefore I suggest the rc.conf 
variable MDNS_ENABLE with possible values AUTO, YES, NO. MDNS_ENABLE=AUTO 
should be the default and should implement the above logic; iff all interfaces 
mentioned in rc.conf are not using static addresses then equivalent to YES, 
otherwise NO. The YES and NO settings turn it on and off as expected.

The result is a fresh install that is configured for automatic addressing 
should always have some valid network address and be findable by a known name. 
For headless installation, the installer should have a timeout on the network 
configuration, after which all interfaces attempt DHCP with IPv4LL fallback and 
hostname defaults to FreeBSD-Install. For the case of several machines all 
being installed at once, mDNS resolution should be used to check if that name 
is already in use and if so append a -nnn where nnn is a number to make the 
names unique. On first boot after installation, the configured hostname will be 
used if mDNS in enabled according to the above rules.

Comments?

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: BSD XXI Manifesto [mDNS proposal]

2014-02-27 Thread Lyndon Nerenberg

On Feb 27, 2014, at 12:20 PM, Matthew Rezny matt...@reztek.cz wrote:

 If IPv4LL is in active use, the DHCP 
 client should continue to periodically look for a DHCP server and obtain a 
 lease without manual user intervention (which is unfortunately required on 
 both OS X and Windows, leading to sub-optimal experience in cases of 
 temporary 
 unavailability of the DHCP server).

That's not true for Mac OS.  If you have an interface configured to use DHCP, 
and the Mac is unable to renew the lease, it will automatically configure a 
169.254.x.y address on the interface.  All the while it continues its attempts 
to renew the DHCP lease and, once successful, removes the 169.254.x.y address 
from the interface.

--lyndon


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: BSD XXI Manifesto [mDNS proposal]

2014-02-27 Thread Lyndon Nerenberg

On Feb 27, 2014, at 15:59, Matthew Rezny matt...@reztek.cz wrote:

 If they corrected that, it was after I abandoned the platform years ago.

It has been like that since at least 10.8.

And I am also tempted to say that Windows 7 acts the same, but I don't have one 
at hand to double check.
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: BSD XXI Manifesto [mDNS proposal]

2014-02-27 Thread Matthew Rezny
On Thursday 27 February 2014 14:55:55 Lyndon Nerenberg wrote:
 On Feb 27, 2014, at 12:20 PM, Matthew Rezny matt...@reztek.cz wrote:
  If IPv4LL is in active use, the DHCP
  client should continue to periodically look for a DHCP server and obtain a
  lease without manual user intervention (which is unfortunately required on
  both OS X and Windows, leading to sub-optimal experience in cases of
  temporary unavailability of the DHCP server).
 
 That's not true for Mac OS.  If you have an interface configured to use
 DHCP, and the Mac is unable to renew the lease, it will automatically
 configure a 169.254.x.y address on the interface.  All the while it
 continues its attempts to renew the DHCP lease and, once successful,
 removes the 169.254.x.y address from the interface.
 
 --lyndon

If they corrected that, it was after I abandoned the platform years ago. I 
remember repeatedly pushing the Renew Lease button in the Network section of 
System Settings in frustration, waiting to see the address change.

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: BSD XXI Manifesto [agree] [intersting]

2014-02-22 Thread Julian Elischer

On 2/22/14, 2:54 PM, Adrian Chadd wrote:

On 21 February 2014 20:59, Allan Jude free...@allanjude.com wrote:


I can see the remote controlled installer being especially useful for
'appliance' type devices, like FreeNAS, pfSense, FUDO, etc.

How would your phone find the address of the machine once it boots off
the USB, so you could access the web server?

what apple does.


I redeemed an itunes card to day.. and all I had to do was hold it
up to the camera and it read the numbers off the card..
nice..



-a
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org




___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: BSD XXI Manifesto [agree] [intersting]

2014-02-21 Thread Julian Elischer

On 2/18/14, 3:28 PM, Wojciech A. Koszek wrote:

(cross-posted message: eventual discussion let's keep on hackers@)

Hello,

After being disappointed with the list of submitted FreeBSD ideas, I created
my own Machiavellist vision of XXI-century FreeBSD. I paste it below. If you
want to add something, it's here:

https://wiki.freebsd.org/BSD_XXI_Manifesto

GSOC students could use this as an inspiration for their projects. The idea
is to invite non-C, non-OS, non-kernel developers to help out with FreeBSD
stuff.



BSDXXI manifesto

[nice stuff] removed for brevity

I like all this..  I thought you meant XXI to mean the FreeBSD's 21st 
year

but there is more than one year's worth of stuff there.

I really suggest people seriously look at the list.. lots of really 
neat ideas.
peole who are not necessarily C coders could do lots of this if we had 
a project to gather people under to do it.

PCBSD people would be a core of interested people..


___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: BSD XXI Manifesto [agree] [intersting]

2014-02-21 Thread Allan Jude
On 2014-02-21 21:21, Julian Elischer wrote:
 On 2/18/14, 3:28 PM, Wojciech A. Koszek wrote:
 (cross-posted message: eventual discussion let's keep on hackers@)

 Hello,

 After being disappointed with the list of submitted FreeBSD ideas, I
 created
 my own Machiavellist vision of XXI-century FreeBSD. I paste it below.
 If you
 want to add something, it's here:

 https://wiki.freebsd.org/BSD_XXI_Manifesto

 GSOC students could use this as an inspiration for their projects. The
 idea
 is to invite non-C, non-OS, non-kernel developers to help out with
 FreeBSD
 stuff.

 

 BSDXXI manifesto
 [nice stuff] removed for brevity
 
 I like all this..  I thought you meant XXI to mean the FreeBSD's 21st
 year
 but there is more than one year's worth of stuff there.
 
 I really suggest people seriously look at the list.. lots of really neat
 ideas.
 peole who are not necessarily C coders could do lots of this if we had a
 project to gather people under to do it.
 PCBSD people would be a core of interested people..
 
 
 ___
 freebsd-current@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-current
 To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org

I can see the remote controlled installer being especially useful for
'appliance' type devices, like FreeNAS, pfSense, FUDO, etc.

How would your phone find the address of the machine once it boots off
the USB, so you could access the web server?

-- 
Allan Jude



signature.asc
Description: OpenPGP digital signature


Re: BSD XXI Manifesto [agree] [intersting]

2014-02-21 Thread Luigi Rizzo
On Fri, Feb 21, 2014 at 8:59 PM, Allan Jude free...@allanjude.com wrote:

 On 2014-02-21 21:21, Julian Elischer wrote:
  On 2/18/14, 3:28 PM, Wojciech A. Koszek wrote:
  (cross-posted message: eventual discussion let's keep on hackers@)
 
  Hello,
 
  After being disappointed with the list of submitted FreeBSD ideas, I
  created
  my own Machiavellist vision of XXI-century FreeBSD. I paste it below.
  If you
  want to add something, it's here:
 
  https://wiki.freebsd.org/BSD_XXI_Manifesto
 
  GSOC students could use this as an inspiration for their projects. The
  idea
  is to invite non-C, non-OS, non-kernel developers to help out with
  FreeBSD
  stuff.
 
  
 
  BSDXXI manifesto
  [nice stuff] removed for brevity
 
  I like all this..  I thought you meant XXI to mean the FreeBSD's 21st
  year
  but there is more than one year's worth of stuff there.
 
  I really suggest people seriously look at the list.. lots of really neat
  ideas.
  peole who are not necessarily C coders could do lots of this if we had a
  project to gather people under to do it.
  PCBSD people would be a core of interested people..
 
 
  ___
  freebsd-current@freebsd.org mailing list
  http://lists.freebsd.org/mailman/listinfo/freebsd-current
  To unsubscribe, send any mail to 
 freebsd-current-unsubscr...@freebsd.org

 I can see the remote controlled installer being especially useful for
 'appliance' type devices, like FreeNAS, pfSense, FUDO, etc.


yes i agree the approach is nice.
what is unfortunate is that sometimes these appliances
are in environments where there is no [open]
wireless access so one might consider bringing
two usb sticks -- the disk image and a wifi.



 How would your phone find the address of the machine once it boots off
 the USB, so you could access the web server?


I presume UPNP can come to help here.
Otherwise the appliance can try and encode the information with
one of the following methods (with a matching app on the phone):
- with a QR code on the screen, if it has one;
- playing tones on the speakers, if it has one;
- flashing leds (e.g. some USB keys have 'activity' leds)

cheers
luigi
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: BSD XXI Manifesto [agree] [intersting]

2014-02-21 Thread Adrian Chadd
On 21 February 2014 20:59, Allan Jude free...@allanjude.com wrote:

 I can see the remote controlled installer being especially useful for
 'appliance' type devices, like FreeNAS, pfSense, FUDO, etc.

 How would your phone find the address of the machine once it boots off
 the USB, so you could access the web server?

what apple does.



-a
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


BSD XXI Manifesto

2014-02-17 Thread Wojciech A. Koszek
(cross-posted message: eventual discussion let's keep on hackers@)

Hello,

After being disappointed with the list of submitted FreeBSD ideas, I created
my own Machiavellist vision of XXI-century FreeBSD. I paste it below. If you
want to add something, it's here:

https://wiki.freebsd.org/BSD_XXI_Manifesto

GSOC students could use this as an inspiration for their projects. The idea
is to invite non-C, non-OS, non-kernel developers to help out with FreeBSD
stuff.



BSDXXI manifesto

For people seeking for inspiration here are some ideas of how FreeBSD of 
21st century could operate...

- FreeBSD boots from simple USB-stick image or SD card. Image 
  would contain nothing more than HTTP-enabled installer, so that as OS 
  updates are rolled out, the installer doesn't change. It means I can keep 
  the same USB-stick for years, since all packages/installation procedure 
  would actually be fetched from the Internet.

- installer is in high-resolution mode with graphical environment started, 
  and my bluetooth/remote-USB mouse/keyboard working OK. Additionally I have 
  an access to the filesystem on USB-stick. I have Wi-Fi access and/or 
  Ethernet access and a browser to do the installation. This all is in case 
  I want to bother to use a keyboard.

- installer starts HTTP server in the background. It serves responsive 
  'FreeBSD installer' website. You can enter this website with your 
  smartphone and perform the whole installation procedure from your mobile 
  device. This HTTP server is getting left of service partition, so that 
  in case of problems, you can always boot FreeBSD in emergency mode and 
  recover from problems.

- installer asks me whether I'd like to use my FreeBSD account or to setup 
  one. FreeBSD is similar to Apple ID or Amazon ID and remembers my 
  preferences, so that in case of installation/backup/recovery I don't have 
  to be asked same questions 10 times. This data is stored in an encrypted 
  form on my disk, and gets imported by all programs that may ever want to 
  ask me about my name/surname etc. This account is used to submit data 
  about hardware which I use too, so that developers see which hardware is 
  popular among users. This account is used for encrypted crashdump reports, 
  bug reporting and others. This is the key to the contact with the FreeBSD 
  developers community. Also as a part of the account users get easy access 
  to 'BSDDEV' environment, which lets them clone, change and contribute back 
  changes by themselves, without asking any commiters/developers for 
  anything. They may later request this change to be pushed back to the 
  FreeBSD.
 
- installer asks me whether I'd like to pick certain profile of installation 
  and install everything in 1 step. This is similar to 1 click buy on 
  Amazon, and is similar to node.js npm manager -- dozens of users 
  contribute their installation profiles to the FreeBSD portal, and FreeBSD 
  accounts have access to these profiles. Everybody sees which installation 
  profile has most Likes, and based on that users can choose whether to 
  struggle with 100 parameters for the installation, or pick something that 
  expert picked for them. Also desktop users willing to use Flash can pick 
  freebsd_superflash installation profile, which will give them Flash 
  working out of the box etc...
  
- Among installation profiles, installer presents me:

  * mobile installation (cell phone)

FreeBSD of XXI century runs on most of mobile devices, and this is one 
of the types of installation which I can pick for my tablet/smartphone.  
FreeBSD found great adoption in mobile environments, since BSD license 
attracted more people than GPLv4 code. FreeBSD has drivers for all 
sensors, GPSes and GSM/UMTS modules from phones.

  * laptop

This profile installs me all possible optimizations for maximal power 
and maximal battery life, and minimal noise for any leftover laptops 
that still have a fan.
 
  * desktop

This profile installs me everything for a desktop user.

  * VM (cloud solution: EC2, Rackspace etc)

This installation may pick optimized I/O schedulers, so that 
environments which charge for I/O access, network access etc.. end up 
being cheap thanks to smart algorithms in FreeBSD.

  * hosted cloud

This is a profile for enterprise users. Hosted installation is something 
which lets you designate a master, and slaves which connect to the 
master. Once slaves are connected, from 1 installer you can choose what 
all nodes will get installed and how they'll work. So e.g.: if you want 
to have a storage-cloud with 4 servers, you can make them be a redundant 
storage with 2 servers each, for improved efficiency. If servers are 
plugged in the same switch, I'd like to see them all in the menu and be 
able to toggle the ones which I want to be added to the cluster.

- FreeBSD is getting setup in less than 5 minutes. All