From fdfb9c799694f76a85fd72974be752d18b1f123c Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Sat, 17 Jul 2010 19:01:05 +0000 Subject: [PATCH] Generated. --- ...ting_brer_om_seg___fabrikkene_best__r.html | 12 +- blog/A_manual_for_standards_wars___.html | 12 +- ...__the_Xreset_d_feature_is_implemented.html | 12 +- blog/Amigafolket_holder_ut.html | 12 +- ...omatic_Munin_and_Nagios_configuration.html | 12 +- ...upgrade_testing_from_Lenny_to_Squeeze.html | 12 +- blog/Avisene_i_endring.html | 12 +- ...der_om_piratkopiering_m__ter_motstand.html | 12 +- ..._and_group_on_a_roaming_Debian_laptop.html | 12 +- ...er__while_still_getting_useful_output.html | 12 +- ...t_status_for_Dell__HP_and_IBM_servers.html | 12 +- ...ng_PowerDNS_and_ISC_DHCP_LDAP_objects.html | 12 +- blog/Danmark_g__r_for_ODF_.html | 12 +- ...sed_on_Lenny_released__work_continues.html | 12 +- blog/Debian_boots_quicker_and_quicker.html | 12 +- ...d_to_dependency_based_boot_sequencing.html | 12 +- ...lige_Lisensvalget___ikke_lag_din_egen.html | 12 +- ...to_the_Lenny_based_Debian_Edu_release.html | 12 +- ...smekanismer__DRM__b__r_f___mva_fritak.html | 12 +- ...amentet_raner_fellesskapet_for_musikk.html | 12 +- ...kkbyggesettet_for_reprapen_sporet_opp.html | 12 +- ...esettet_kommer_fram_p___andre_fors__k.html | 12 +- ..._ordrett_referat_fra_norske_domstoler.html | 12 +- blog/Endelig_er_Debian_Lenny_gitt_ut.html | 12 +- ...ll_med_st__tte_for_ord_med_bindestrek.html | 12 +- ...register_for_Fri_programvare_i_skolen.html | 12 +- ...iseregningsskjema_som_fri_programvare.html | 12 +- blog/F__rste_NUUG_fordrag_sendt_p___TV.html | 12 +- ...greringsfors__k___Z_aksen_beveger_seg.html | 12 +- ..._rste_vellykkede_videostr__m_fra_NUUG.html | 12 +- blog/Fiksgatami_begynner____ta_form.html | 12 +- ...lovlig___ulovlig_fildeling_er_ulovlig.html | 12 +- ..._change_their_password_on_first_login.html | 12 +- ...lovforslag_hinker_gjennom_parlamentet.html | 12 +- ...__pen_standard__slik_Digistan_ser_det.html | 12 +- blog/Frikanalen_og_jul_i_studentr__det.html | 12 +- ...yright__and_the_Future_of_the_Future_.html | 12 +- blog/Hva_er_egentlig_en___pen_standard_.html | 12 +- blog/Hvor_flyter_Microsofts_penger_.html | 12 +- blog/Hvorfor_jeg_ikke_bruker_eFaktura.html | 12 +- ...rvermarkedet_vil_vokse_med_21__i_2009.html | 12 +- blog/ISO_still_hope_to_fix_OOXML.html | 12 +- ...P_info_to_be_combined_into_one_object.html | 12 +- ...or_storing_LTSP_configuration_in_LDAP.html | 12 +- ...uelt_privilegium___et_bedre_IP_begrep.html | 12 +- ...kke_vokterne_av_sine_kunders_nettbruk.html | 12 +- ...ernet_sensur_skal_i_retten_p___mandag.html | 12 +- ..._beholde_tusenlappen___jeg_bruker_den.html | 12 +- blog/Jeg_vil_ikke_ha_BankID.html | 12 +- ...dia_cards___and_no_one_try_to_fix_it_.html | 12 +- ...Kart_over_overv__kningskamera_i_Norge.html | 12 +- ...ata_men_er_fortsatt_ikke_interessante.html | 12 +- blog/Kerberos_for_Debian_Edu_Squeeze_.html | 12 +- blog/Korrupsjon_p___h__yeste_niv___.html | 12 +- blog/Kryptert_harddisk___naturligvis.html | 12 +- blog/LUMA__a_very_nice_LDAP_GUI.html | 12 +- blog/Lenker_samlet_2009_05_09.html | 12 +- ...pt_vs_aptitude_with_the_Gnome_desktop.html | 12 +- ...pgrades__removals_by_apt_and_aptitude.html | 12 +- ..._for_NUUG_opptakene_endelig_p___plass.html | 12 +- ...roblemet_med_elektronisk_stemmegiving.html | 12 +- ...S_Word_kr__ller_det_til_for_politiet_.html | 12 +- ...ed_DRM__ikke_MVA_p___b__ker_uten_DRM_.html | 12 +- ...billetter_fra_Flytoget_og_Hurtigruten.html | 12 +- ..._kollektivtrafikken_i_Oslo_planlegges.html | 12 +- ...ikk_delen_av_reprap_byggesettet_i_hus.html | 12 +- ...k_delen_av_reprap_byggesettet_p___vei.html | 12 +- blog/Mens_vi_venter_p___3D_skriveren.html | 12 +- ...rgumentasjon_rundt_multimediaformater.html | 12 +- blog/Min_reprap_tar_sakte_form.html | 12 +- ...firmware_handling_in_debian_installer.html | 12 +- ...lbiblioteket_legger_ut_b__ker_p___web.html | 12 +- ...ch_is_not_better_than_a_useless_patch.html | 12 +- blog/Norge_trenger_en_personvernforening.html | 12 +- ...DF_bruk_i_staten__ikke_helt_p___plass.html | 12 +- blog/Officeshots_taking_shape.html | 12 +- blog/Opphavet_til_Skolelinux_prosjektet.html | 12 +- ...gne_av_vanvitting_mange__Aftenposten_.html | 12 +- ...is_now_the_default_in_Debian_unstable.html | 12 +- ...eem_to_hold_up_well_in_Debian_testing.html | 12 +- ...ian_Squeeze___ready_for_wider_testing.html | 12 +- ...f_the_roaming_laptop_puzzle_in_Debian.html | 12 +- blog/Recording_video_from_cron_using_VLC.html | 12 +- ...etaling_i_standardkatalogen_versjon_2.html | 12 +- ...ringen_om_standardkatalogen_versjon_2.html | 12 +- ..._document_formats__MS_Office_vs__ODF_.html | 12 +- blog/Reprap_bygging_i_p__sken.html | 12 +- blog/Reprap_pakke_tapt_i_posten.html | 12 +- ...g_from_Skolelinux_developer_gathering.html | 12 +- ...ter__og_hvordan_gj__re_verden_sikrere.html | 12 +- ...enger_sj__kart_uten_bruksbegresninger.html | 12 +- ...p__Listing_MAC_address_of_all_clients.html | 12 +- ...computer_hardware_models_used_at_site.html | 12 +- ...aget_for_sentraldrifting__naturligvis.html | 12 +- blog/Software_video_mixer_on_a_USB_stick.html | 12 +- ...rer_best_n__r_en_samler_seg_rundt_dem.html | 12 +- ...formats__not_vendors_and_applications.html | 12 +- blog/Taking_over_sysvinit_development.html | 12 +- ...ram_for_Go_Open_2009_er_nesten_ferdig.html | 12 +- blog/Tester_blog.html | 12 +- ...Testing_av_reprap_elektronikken_igang.html | 12 +- ..._multimedia_browser_plugins_in_Debian.html | 12 +- ...n_roaming_laptop_setup_for_Debian_Edu.html | 12 +- ...new__LDAP_schemas_replacing_RFC_2307_.html | 12 +- blog/Togsatsing_p___norsk__mot_sykkel.html | 12 +- ...ullball_og_en_funksjonell_tiln__rming.html | 12 +- ...ed_the_quality_of_free_software_a_lot.html | 12 +- ...r_sysvinit___as_init_d_scripts_see_it.html | 12 +- ...Using_bar_codes_at_a_computing_center.html | 12 +- ..._flere_planlegger____gj__re_det_samme.html | 12 +- blog/Vitenskapens_dogmer___.html | 12 +- ...ebbasert_tegneseriearkiv_p___trappene.html | 12 +- ...g_for___PowerDNS_and_ISC_DHCP_in_LDAP.html | 472 ++++++++++++++++++ ...ser_developers_make_a_video_player___.html | 12 +- ..._pne_tr__dl__snett_er_et_samfunnsgode.html | 12 +- blog/archive/2008/11/index.html | 12 +- blog/archive/2008/12/index.html | 12 +- blog/archive/2009/01/index.html | 12 +- blog/archive/2009/02/index.html | 12 +- blog/archive/2009/03/index.html | 12 +- blog/archive/2009/04/index.html | 12 +- blog/archive/2009/05/index.html | 12 +- blog/archive/2009/06/index.html | 12 +- blog/archive/2009/07/index.html | 12 +- blog/archive/2009/08/index.html | 12 +- blog/archive/2009/09/index.html | 12 +- blog/archive/2009/10/index.html | 12 +- blog/archive/2009/11/index.html | 12 +- blog/archive/2009/12/index.html | 12 +- blog/archive/2010/01/index.html | 12 +- blog/archive/2010/02/index.html | 12 +- blog/archive/2010/03/index.html | 12 +- blog/archive/2010/04/index.html | 12 +- blog/archive/2010/05/index.html | 12 +- blog/archive/2010/06/index.html | 12 +- blog/archive/2010/07/07.rss | 320 ++++++++++++ blog/archive/2010/07/index.html | 345 ++++++++++++- blog/index.html | 387 ++++++++++++-- blog/index.rss | 363 ++++++++++++-- blog/jXplorer__a_very_nice_LDAP_GUI.html | 12 +- blog/sitemap.xml | 5 + ...an_interesting_alternative_to_upstart.html | 12 +- blog/tags/3d-printer/index.html | 12 +- blog/tags/amiga/index.html | 12 +- blog/tags/aros/index.html | 12 +- blog/tags/bootsystem/index.html | 12 +- blog/tags/debian edu/debian edu.rss | 320 ++++++++++++ blog/tags/debian edu/index.html | 345 ++++++++++++- blog/tags/debian/debian.rss | 320 ++++++++++++ blog/tags/debian/index.html | 345 ++++++++++++- blog/tags/english/english.rss | 320 ++++++++++++ blog/tags/english/index.html | 345 ++++++++++++- blog/tags/fiksgatami/index.html | 12 +- blog/tags/fildeling/index.html | 12 +- blog/tags/kart/index.html | 12 +- blog/tags/ldap/index.html | 345 ++++++++++++- blog/tags/ldap/ldap.rss | 320 ++++++++++++ blog/tags/lenker/index.html | 12 +- blog/tags/ltsp/index.html | 12 +- blog/tags/multimedia/index.html | 12 +- blog/tags/norsk/index.html | 12 +- blog/tags/nuug/index.html | 345 ++++++++++++- blog/tags/nuug/nuug.rss | 320 ++++++++++++ blog/tags/opphavsrett/index.html | 12 +- blog/tags/personvern/index.html | 12 +- blog/tags/reprap/index.html | 12 +- blog/tags/rss/index.html | 12 +- blog/tags/sikkerhet/index.html | 12 +- blog/tags/sitesummary/index.html | 12 +- blog/tags/standard/index.html | 12 +- blog/tags/stavekontroll/index.html | 12 +- blog/tags/video/index.html | 12 +- blog/tags/vitenskap/index.html | 12 +- blog/tags/web/index.html | 12 +- 174 files changed, 6031 insertions(+), 1082 deletions(-) create mode 100644 blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html diff --git a/blog/3D_printing_brer_om_seg___fabrikkene_best__r.html b/blog/3D_printing_brer_om_seg___fabrikkene_best__r.html index d9748c30eb..2ad8c6258e 100644 --- a/blog/3D_printing_brer_om_seg___fabrikkene_best__r.html +++ b/blog/3D_printing_brer_om_seg___fabrikkene_best__r.html @@ -84,7 +84,7 @@ massemarkedet.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -141,11 +141,11 @@ massemarkedet.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -153,7 +153,7 @@ massemarkedet.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -163,7 +163,7 @@ massemarkedet.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/A_manual_for_standards_wars___.html b/blog/A_manual_for_standards_wars___.html index 15d3db61fb..5e6c6f5f06 100644 --- a/blog/A_manual_for_standards_wars___.html +++ b/blog/A_manual_for_standards_wars___.html @@ -57,7 +57,7 @@ following the standards wars of today.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -114,11 +114,11 @@ following the standards wars of today.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -126,7 +126,7 @@ following the standards wars of today.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -136,7 +136,7 @@ following the standards wars of today.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html b/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html index 18c56e7e97..c4a20b46d7 100644 --- a/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html +++ b/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html @@ -69,7 +69,7 @@ similar to how they use the Xsession.d framework today.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -126,11 +126,11 @@ similar to how they use the Xsession.d framework today.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -138,7 +138,7 @@ similar to how they use the Xsession.d framework today.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -148,7 +148,7 @@ similar to how they use the Xsession.d framework today.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Amigafolket_holder_ut.html b/blog/Amigafolket_holder_ut.html index 8f330a2bb9..d180f477da 100644 --- a/blog/Amigafolket_holder_ut.html +++ b/blog/Amigafolket_holder_ut.html @@ -60,7 +60,7 @@ pakke. Kanskje Aros kunne vært interessant for et NUUG-foredrag?

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -117,11 +117,11 @@ pakke. Kanskje Aros kunne vært interessant for et NUUG-foredrag?

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -129,7 +129,7 @@ pakke. Kanskje Aros kunne vært interessant for et NUUG-foredrag?

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -139,7 +139,7 @@ pakke. Kanskje Aros kunne vært interessant for et NUUG-foredrag?

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Automatic_Munin_and_Nagios_configuration.html b/blog/Automatic_Munin_and_Nagios_configuration.html index c0a87dcf4e..60e38dc32b 100644 --- a/blog/Automatic_Munin_and_Nagios_configuration.html +++ b/blog/Automatic_Munin_and_Nagios_configuration.html @@ -96,7 +96,7 @@ everything is taken care of.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -153,11 +153,11 @@ everything is taken care of.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -165,7 +165,7 @@ everything is taken care of.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -175,7 +175,7 @@ everything is taken care of.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html b/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html index 01048eaf4b..694e234ee7 100644 --- a/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html +++ b/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html @@ -170,7 +170,7 @@ packages.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -227,11 +227,11 @@ packages.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -239,7 +239,7 @@ packages.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -249,7 +249,7 @@ packages.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Avisene_i_endring.html b/blog/Avisene_i_endring.html index 8a5940f5ca..da253c5085 100644 --- a/blog/Avisene_i_endring.html +++ b/blog/Avisene_i_endring.html @@ -57,7 +57,7 @@ eksisterer. Det blir spennende Ã¥ se hva vi ender opp med.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -114,11 +114,11 @@ eksisterer. Det blir spennende Ã¥ se hva vi ender opp med.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -126,7 +126,7 @@ eksisterer. Det blir spennende Ã¥ se hva vi ender opp med.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -136,7 +136,7 @@ eksisterer. Det blir spennende Ã¥ se hva vi ender opp med.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/BSAs_p__stander_om_piratkopiering_m__ter_motstand.html b/blog/BSAs_p__stander_om_piratkopiering_m__ter_motstand.html index 9c1115f010..ecf43995fe 100644 --- a/blog/BSAs_p__stander_om_piratkopiering_m__ter_motstand.html +++ b/blog/BSAs_p__stander_om_piratkopiering_m__ter_motstand.html @@ -78,7 +78,7 @@ pÃ¥ Slashdot.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -135,11 +135,11 @@ pÃ¥ Slashdot.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -147,7 +147,7 @@ pÃ¥ Slashdot.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -157,7 +157,7 @@ pÃ¥ Slashdot.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html b/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html index ec5a81c896..a80265af3e 100644 --- a/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html +++ b/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html @@ -249,7 +249,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -306,11 +306,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -318,7 +318,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -328,7 +328,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html b/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html index 8f57aca8a6..d4e504aee3 100644 --- a/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html +++ b/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html @@ -92,7 +92,7 @@ like this.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -149,11 +149,11 @@ like this.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -161,7 +161,7 @@ like this.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -171,7 +171,7 @@ like this.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html b/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html index d5d8a07849..72d9c443d6 100644 --- a/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html +++ b/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html @@ -211,7 +211,7 @@ do so.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -268,11 +268,11 @@ do so.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -280,7 +280,7 @@ do so.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -290,7 +290,7 @@ do so.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html b/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html index 9dc7896358..74442e9655 100644 --- a/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html +++ b/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html @@ -108,7 +108,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -165,11 +165,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -177,7 +177,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -187,7 +187,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Danmark_g__r_for_ODF_.html b/blog/Danmark_g__r_for_ODF_.html index c5c012a21d..51660dadf4 100644 --- a/blog/Danmark_g__r_for_ODF_.html +++ b/blog/Danmark_g__r_for_ODF_.html @@ -67,7 +67,7 @@ platforme.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -124,11 +124,11 @@ platforme.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -136,7 +136,7 @@ platforme.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -146,7 +146,7 @@ platforme.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html b/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html index f1a326275f..e0f8cd51cb 100644 --- a/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html +++ b/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html @@ -65,7 +65,7 @@ and have just a few weeks or months to make it happen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -122,11 +122,11 @@ and have just a few weeks or months to make it happen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -134,7 +134,7 @@ and have just a few weeks or months to make it happen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -144,7 +144,7 @@ and have just a few weeks or months to make it happen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Debian_boots_quicker_and_quicker.html b/blog/Debian_boots_quicker_and_quicker.html index 23cb518634..99844a1b41 100644 --- a/blog/Debian_boots_quicker_and_quicker.html +++ b/blog/Debian_boots_quicker_and_quicker.html @@ -97,7 +97,7 @@ insserv'. Will need to test if that work. :)

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -154,11 +154,11 @@ insserv'. Will need to test if that work. :)

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -166,7 +166,7 @@ insserv'. Will need to test if that work. :)

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -176,7 +176,7 @@ insserv'. Will need to test if that work. :)

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html b/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html index cf023b081e..30dd9992bb 100644 --- a/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html +++ b/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html @@ -62,7 +62,7 @@ non-predictable kernel in the early boot.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -119,11 +119,11 @@ non-predictable kernel in the early boot.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -131,7 +131,7 @@ non-predictable kernel in the early boot.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -141,7 +141,7 @@ non-predictable kernel in the early boot.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Det_vanskelige_Lisensvalget___ikke_lag_din_egen.html b/blog/Det_vanskelige_Lisensvalget___ikke_lag_din_egen.html index 44796a1d48..af217c9af3 100644 --- a/blog/Det_vanskelige_Lisensvalget___ikke_lag_din_egen.html +++ b/blog/Det_vanskelige_Lisensvalget___ikke_lag_din_egen.html @@ -147,7 +147,7 @@ og endrer pÃ¥ betingelsene.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -204,11 +204,11 @@ og endrer pÃ¥ betingelsene.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -216,7 +216,7 @@ og endrer pÃ¥ betingelsene.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -226,7 +226,7 @@ og endrer pÃ¥ betingelsene.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html b/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html index 2b64c428ae..3fcddd999f 100644 --- a/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html +++ b/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html @@ -65,7 +65,7 @@ of these cards.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -122,11 +122,11 @@ of these cards.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -134,7 +134,7 @@ of these cards.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -144,7 +144,7 @@ of these cards.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Digitale_b__ker_uten_digitale_restriksjonsmekanismer__DRM__b__r_f___mva_fritak.html b/blog/Digitale_b__ker_uten_digitale_restriksjonsmekanismer__DRM__b__r_f___mva_fritak.html index b5d7b6946c..9d441ccf8f 100644 --- a/blog/Digitale_b__ker_uten_digitale_restriksjonsmekanismer__DRM__b__r_f___mva_fritak.html +++ b/blog/Digitale_b__ker_uten_digitale_restriksjonsmekanismer__DRM__b__r_f___mva_fritak.html @@ -82,7 +82,7 @@ der for Ã¥ se hva de har.
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -139,11 +139,11 @@ der for Ã¥ se hva de har.
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -151,7 +151,7 @@ der for Ã¥ se hva de har.
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -161,7 +161,7 @@ der for Ã¥ se hva de har.
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/EU_parlamentet_raner_fellesskapet_for_musikk.html b/blog/EU_parlamentet_raner_fellesskapet_for_musikk.html index 76fc55cc31..90830ec167 100644 --- a/blog/EU_parlamentet_raner_fellesskapet_for_musikk.html +++ b/blog/EU_parlamentet_raner_fellesskapet_for_musikk.html @@ -70,7 +70,7 @@ uten musikk med bruksbegresninger.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -127,11 +127,11 @@ uten musikk med bruksbegresninger.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -139,7 +139,7 @@ uten musikk med bruksbegresninger.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -149,7 +149,7 @@ uten musikk med bruksbegresninger.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Elektronikkbyggesettet_for_reprapen_sporet_opp.html b/blog/Elektronikkbyggesettet_for_reprapen_sporet_opp.html index 45b0afbc85..b57e391ab5 100644 --- a/blog/Elektronikkbyggesettet_for_reprapen_sporet_opp.html +++ b/blog/Elektronikkbyggesettet_for_reprapen_sporet_opp.html @@ -67,7 +67,7 @@ jul.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -124,11 +124,11 @@ jul.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -136,7 +136,7 @@ jul.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -146,7 +146,7 @@ jul.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Elektronikkbyggesettet_kommer_fram_p___andre_fors__k.html b/blog/Elektronikkbyggesettet_kommer_fram_p___andre_fors__k.html index 4638ab0627..ea73aab287 100644 --- a/blog/Elektronikkbyggesettet_kommer_fram_p___andre_fors__k.html +++ b/blog/Elektronikkbyggesettet_kommer_fram_p___andre_fors__k.html @@ -90,7 +90,7 @@ pÃ¥stÃ¥r det skulle skje i 2008.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -147,11 +147,11 @@ pÃ¥stÃ¥r det skulle skje i 2008.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -159,7 +159,7 @@ pÃ¥stÃ¥r det skulle skje i 2008.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -169,7 +169,7 @@ pÃ¥stÃ¥r det skulle skje i 2008.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html b/blog/En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html index a17b36b7f6..48ee30161f 100644 --- a/blog/En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html +++ b/blog/En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html @@ -75,7 +75,7 @@ publisert offentlig pÃ¥ web.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -132,11 +132,11 @@ publisert offentlig pÃ¥ web.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -144,7 +144,7 @@ publisert offentlig pÃ¥ web.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -154,7 +154,7 @@ publisert offentlig pÃ¥ web.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Endelig_er_Debian_Lenny_gitt_ut.html b/blog/Endelig_er_Debian_Lenny_gitt_ut.html index 09d6af8f16..170c87cb63 100644 --- a/blog/Endelig_er_Debian_Lenny_gitt_ut.html +++ b/blog/Endelig_er_Debian_Lenny_gitt_ut.html @@ -63,7 +63,7 @@ bootsekvens tilgjengelig i stabil utgave, vha pakken
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -120,11 +120,11 @@ bootsekvens tilgjengelig i stabil utgave, vha pakken
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -132,7 +132,7 @@ bootsekvens tilgjengelig i stabil utgave, vha pakken
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -142,7 +142,7 @@ bootsekvens tilgjengelig i stabil utgave, vha pakken
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Endelig_norsk_stavekontroll_med_st__tte_for_ord_med_bindestrek.html b/blog/Endelig_norsk_stavekontroll_med_st__tte_for_ord_med_bindestrek.html index 8effc450b4..2a20b969f6 100644 --- a/blog/Endelig_norsk_stavekontroll_med_st__tte_for_ord_med_bindestrek.html +++ b/blog/Endelig_norsk_stavekontroll_med_st__tte_for_ord_med_bindestrek.html @@ -74,7 +74,7 @@ stavekontrollen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -131,11 +131,11 @@ stavekontrollen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -143,7 +143,7 @@ stavekontrollen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -153,7 +153,7 @@ stavekontrollen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Endelig_operativt_webbasert_medlemsregister_for_Fri_programvare_i_skolen.html b/blog/Endelig_operativt_webbasert_medlemsregister_for_Fri_programvare_i_skolen.html index f4eadc4965..d31c09d82f 100644 --- a/blog/Endelig_operativt_webbasert_medlemsregister_for_Fri_programvare_i_skolen.html +++ b/blog/Endelig_operativt_webbasert_medlemsregister_for_Fri_programvare_i_skolen.html @@ -67,7 +67,7 @@ GNU.
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -124,11 +124,11 @@ GNU.
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -136,7 +136,7 @@ GNU.
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -146,7 +146,7 @@ GNU.
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/FAD_lanserer_reiseregningsskjema_som_fri_programvare.html b/blog/FAD_lanserer_reiseregningsskjema_som_fri_programvare.html index 9ca03b9b34..d9863a21f7 100644 --- a/blog/FAD_lanserer_reiseregningsskjema_som_fri_programvare.html +++ b/blog/FAD_lanserer_reiseregningsskjema_som_fri_programvare.html @@ -128,7 +128,7 @@ gjorde det litt vanskeligere for brukeren.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -185,11 +185,11 @@ gjorde det litt vanskeligere for brukeren.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -197,7 +197,7 @@ gjorde det litt vanskeligere for brukeren.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -207,7 +207,7 @@ gjorde det litt vanskeligere for brukeren.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/F__rste_NUUG_fordrag_sendt_p___TV.html b/blog/F__rste_NUUG_fordrag_sendt_p___TV.html index b2c5c701fe..443d560f5b 100644 --- a/blog/F__rste_NUUG_fordrag_sendt_p___TV.html +++ b/blog/F__rste_NUUG_fordrag_sendt_p___TV.html @@ -68,7 +68,7 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -125,11 +125,11 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -137,7 +137,7 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -147,7 +147,7 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html b/blog/F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html index 739de3f809..2d82a6e317 100644 --- a/blog/F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html +++ b/blog/F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html @@ -82,7 +82,7 @@ limet egentlig heter, sÃ¥ det er vanskelig Ã¥ søke pÃ¥ nett.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -139,11 +139,11 @@ limet egentlig heter, sÃ¥ det er vanskelig Ã¥ søke pÃ¥ nett.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -151,7 +151,7 @@ limet egentlig heter, sÃ¥ det er vanskelig Ã¥ søke pÃ¥ nett.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -161,7 +161,7 @@ limet egentlig heter, sÃ¥ det er vanskelig Ã¥ søke pÃ¥ nett.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/F__rste_vellykkede_videostr__m_fra_NUUG.html b/blog/F__rste_vellykkede_videostr__m_fra_NUUG.html index 9f2a821d7a..ff73d0e2b0 100644 --- a/blog/F__rste_vellykkede_videostr__m_fra_NUUG.html +++ b/blog/F__rste_vellykkede_videostr__m_fra_NUUG.html @@ -61,7 +61,7 @@ webserver og komprimert.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -118,11 +118,11 @@ webserver og komprimert.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -130,7 +130,7 @@ webserver og komprimert.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -140,7 +140,7 @@ webserver og komprimert.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Fiksgatami_begynner____ta_form.html b/blog/Fiksgatami_begynner____ta_form.html index d4493e6a97..31ac381401 100644 --- a/blog/Fiksgatami_begynner____ta_form.html +++ b/blog/Fiksgatami_begynner____ta_form.html @@ -69,7 +69,7 @@ med dem. Dette blir bra.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -126,11 +126,11 @@ med dem. Dette blir bra.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -138,7 +138,7 @@ med dem. Dette blir bra.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -148,7 +148,7 @@ med dem. Dette blir bra.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Fildeling_er_lovlig___ulovlig_fildeling_er_ulovlig.html b/blog/Fildeling_er_lovlig___ulovlig_fildeling_er_ulovlig.html index c783b5310c..fd11246fcd 100644 --- a/blog/Fildeling_er_lovlig___ulovlig_fildeling_er_ulovlig.html +++ b/blog/Fildeling_er_lovlig___ulovlig_fildeling_er_ulovlig.html @@ -67,7 +67,7 @@ og fildeling av slike filer er fullt ut lovlig.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -124,11 +124,11 @@ og fildeling av slike filer er fullt ut lovlig.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -136,7 +136,7 @@ og fildeling av slike filer er fullt ut lovlig.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -146,7 +146,7 @@ og fildeling av slike filer er fullt ut lovlig.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Forcing_new_users_to_change_their_password_on_first_login.html b/blog/Forcing_new_users_to_change_their_password_on_first_login.html index eb8b6f3a43..2e899e4658 100644 --- a/blog/Forcing_new_users_to_change_their_password_on_first_login.html +++ b/blog/Forcing_new_users_to_change_their_password_on_first_login.html @@ -121,7 +121,7 @@ change.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -178,11 +178,11 @@ change.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -190,7 +190,7 @@ change.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -200,7 +200,7 @@ change.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Fransk_idiotlovforslag_hinker_gjennom_parlamentet.html b/blog/Fransk_idiotlovforslag_hinker_gjennom_parlamentet.html index 32397a2588..57125b8dbf 100644 --- a/blog/Fransk_idiotlovforslag_hinker_gjennom_parlamentet.html +++ b/blog/Fransk_idiotlovforslag_hinker_gjennom_parlamentet.html @@ -66,7 +66,7 @@ rettet mot seg.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -123,11 +123,11 @@ rettet mot seg.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -135,7 +135,7 @@ rettet mot seg.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -145,7 +145,7 @@ rettet mot seg.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Fri_og___pen_standard__slik_Digistan_ser_det.html b/blog/Fri_og___pen_standard__slik_Digistan_ser_det.html index 94334f97aa..4ba34e82d2 100644 --- a/blog/Fri_og___pen_standard__slik_Digistan_ser_det.html +++ b/blog/Fri_og___pen_standard__slik_Digistan_ser_det.html @@ -102,7 +102,7 @@ produkter basert pÃ¥ standarden.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -159,11 +159,11 @@ produkter basert pÃ¥ standarden.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -171,7 +171,7 @@ produkter basert pÃ¥ standarden.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -181,7 +181,7 @@ produkter basert pÃ¥ standarden.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Frikanalen_og_jul_i_studentr__det.html b/blog/Frikanalen_og_jul_i_studentr__det.html index 4178f16de6..fc0a772e31 100644 --- a/blog/Frikanalen_og_jul_i_studentr__det.html +++ b/blog/Frikanalen_og_jul_i_studentr__det.html @@ -90,7 +90,7 @@ NUUG lykkes med Ã¥ fÃ¥ ut sine opptak med like stor suksess.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -147,11 +147,11 @@ NUUG lykkes med Ã¥ fÃ¥ ut sine opptak med like stor suksess.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -159,7 +159,7 @@ NUUG lykkes med Ã¥ fÃ¥ ut sine opptak med like stor suksess.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -169,7 +169,7 @@ NUUG lykkes med Ã¥ fÃ¥ ut sine opptak med like stor suksess.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html b/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html index b130ad89e4..b009697931 100644 --- a/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html +++ b/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html @@ -63,7 +63,7 @@ strongly recommend this book.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -120,11 +120,11 @@ strongly recommend this book.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -132,7 +132,7 @@ strongly recommend this book.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -142,7 +142,7 @@ strongly recommend this book.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Hva_er_egentlig_en___pen_standard_.html b/blog/Hva_er_egentlig_en___pen_standard_.html index 6ba9b8ab4a..05b05ff768 100644 --- a/blog/Hva_er_egentlig_en___pen_standard_.html +++ b/blog/Hva_er_egentlig_en___pen_standard_.html @@ -149,7 +149,7 @@ av en standard for at en standard skal kunne kalles fri og Ã¥pen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -206,11 +206,11 @@ av en standard for at en standard skal kunne kalles fri og Ã¥pen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -218,7 +218,7 @@ av en standard for at en standard skal kunne kalles fri og Ã¥pen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -228,7 +228,7 @@ av en standard for at en standard skal kunne kalles fri og Ã¥pen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Hvor_flyter_Microsofts_penger_.html b/blog/Hvor_flyter_Microsofts_penger_.html index cc54c280bf..6c9ad83eea 100644 --- a/blog/Hvor_flyter_Microsofts_penger_.html +++ b/blog/Hvor_flyter_Microsofts_penger_.html @@ -76,7 +76,7 @@ om spaniaselskapet pÃ¥ spansk, men jeg kan ikke lese spansk. :(

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -133,11 +133,11 @@ om spaniaselskapet pÃ¥ spansk, men jeg kan ikke lese spansk. :(

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -145,7 +145,7 @@ om spaniaselskapet pÃ¥ spansk, men jeg kan ikke lese spansk. :(

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -155,7 +155,7 @@ om spaniaselskapet pÃ¥ spansk, men jeg kan ikke lese spansk. :(

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Hvorfor_jeg_ikke_bruker_eFaktura.html b/blog/Hvorfor_jeg_ikke_bruker_eFaktura.html index 42de555e90..82c2d0b741 100644 --- a/blog/Hvorfor_jeg_ikke_bruker_eFaktura.html +++ b/blog/Hvorfor_jeg_ikke_bruker_eFaktura.html @@ -79,7 +79,7 @@ liker rett og slett ikke dagens faktureringsmodeller.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -136,11 +136,11 @@ liker rett og slett ikke dagens faktureringsmodeller.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -148,7 +148,7 @@ liker rett og slett ikke dagens faktureringsmodeller.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -158,7 +158,7 @@ liker rett og slett ikke dagens faktureringsmodeller.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html b/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html index 528b66abfe..b31febe00d 100644 --- a/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html +++ b/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html @@ -59,7 +59,7 @@ bakgrunnskunnskapen kan jeg godt tro at IDG er inne pÃ¥ noe.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -116,11 +116,11 @@ bakgrunnskunnskapen kan jeg godt tro at IDG er inne pÃ¥ noe.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -128,7 +128,7 @@ bakgrunnskunnskapen kan jeg godt tro at IDG er inne pÃ¥ noe.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -138,7 +138,7 @@ bakgrunnskunnskapen kan jeg godt tro at IDG er inne pÃ¥ noe.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/ISO_still_hope_to_fix_OOXML.html b/blog/ISO_still_hope_to_fix_OOXML.html index 2d43e8dd46..f67a781140 100644 --- a/blog/ISO_still_hope_to_fix_OOXML.html +++ b/blog/ISO_still_hope_to_fix_OOXML.html @@ -66,7 +66,7 @@ seminar this autumn.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -123,11 +123,11 @@ seminar this autumn.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -135,7 +135,7 @@ seminar this autumn.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -145,7 +145,7 @@ seminar this autumn.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html b/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html index a353676474..0b993babc2 100644 --- a/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html +++ b/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html @@ -93,7 +93,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -150,11 +150,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -162,7 +162,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -172,7 +172,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html b/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html index 0036056a58..1bfa7b2151 100644 --- a/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html +++ b/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html @@ -118,7 +118,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -175,11 +175,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -187,7 +187,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -197,7 +197,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Intellektuelt_privilegium___et_bedre_IP_begrep.html b/blog/Intellektuelt_privilegium___et_bedre_IP_begrep.html index 53fc7c9fe2..ef4b8d722d 100644 --- a/blog/Intellektuelt_privilegium___et_bedre_IP_begrep.html +++ b/blog/Intellektuelt_privilegium___et_bedre_IP_begrep.html @@ -71,7 +71,7 @@ forretningshemmeligheter framover.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -128,11 +128,11 @@ forretningshemmeligheter framover.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -140,7 +140,7 @@ forretningshemmeligheter framover.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -150,7 +150,7 @@ forretningshemmeligheter framover.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Internet_leverand__rer_er_ikke_vokterne_av_sine_kunders_nettbruk.html b/blog/Internet_leverand__rer_er_ikke_vokterne_av_sine_kunders_nettbruk.html index 912cfd098b..38d85ec747 100644 --- a/blog/Internet_leverand__rer_er_ikke_vokterne_av_sine_kunders_nettbruk.html +++ b/blog/Internet_leverand__rer_er_ikke_vokterne_av_sine_kunders_nettbruk.html @@ -75,7 +75,7 @@ publiseres med mer brukervennlige vilkÃ¥r, som CC-BY og lignende.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -132,11 +132,11 @@ publiseres med mer brukervennlige vilkÃ¥r, som CC-BY og lignende.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -144,7 +144,7 @@ publiseres med mer brukervennlige vilkÃ¥r, som CC-BY og lignende.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -154,7 +154,7 @@ publiseres med mer brukervennlige vilkÃ¥r, som CC-BY og lignende.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Internet_sensur_skal_i_retten_p___mandag.html b/blog/Internet_sensur_skal_i_retten_p___mandag.html index 8cd970d750..ff9a9e69b9 100644 --- a/blog/Internet_sensur_skal_i_retten_p___mandag.html +++ b/blog/Internet_sensur_skal_i_retten_p___mandag.html @@ -76,7 +76,7 @@ bruk av musikk.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -133,11 +133,11 @@ bruk av musikk.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -145,7 +145,7 @@ bruk av musikk.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -155,7 +155,7 @@ bruk av musikk.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Jeg_vil_beholde_tusenlappen___jeg_bruker_den.html b/blog/Jeg_vil_beholde_tusenlappen___jeg_bruker_den.html index cfc014676d..487d9bf6c8 100644 --- a/blog/Jeg_vil_beholde_tusenlappen___jeg_bruker_den.html +++ b/blog/Jeg_vil_beholde_tusenlappen___jeg_bruker_den.html @@ -100,7 +100,7 @@ kontanter for noen dager siden.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -157,11 +157,11 @@ kontanter for noen dager siden.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -169,7 +169,7 @@ kontanter for noen dager siden.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -179,7 +179,7 @@ kontanter for noen dager siden.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Jeg_vil_ikke_ha_BankID.html b/blog/Jeg_vil_ikke_ha_BankID.html index 6681062d26..c220e2611f 100644 --- a/blog/Jeg_vil_ikke_ha_BankID.html +++ b/blog/Jeg_vil_ikke_ha_BankID.html @@ -134,7 +134,7 @@ nettbankkontroll over egne midler. :(
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -191,11 +191,11 @@ nettbankkontroll over egne midler. :(
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -203,7 +203,7 @@ nettbankkontroll over egne midler. :(
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -213,7 +213,7 @@ nettbankkontroll over egne midler. :(
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html b/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html index e5ff923f3d..0c3df6bace 100644 --- a/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html +++ b/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html @@ -74,7 +74,7 @@ but I am pretty sure that waiting for each other is not it.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -131,11 +131,11 @@ but I am pretty sure that waiting for each other is not it.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -143,7 +143,7 @@ but I am pretty sure that waiting for each other is not it.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -153,7 +153,7 @@ but I am pretty sure that waiting for each other is not it.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Kart_over_overv__kningskamera_i_Norge.html b/blog/Kart_over_overv__kningskamera_i_Norge.html index 449754580a..20385fe725 100644 --- a/blog/Kart_over_overv__kningskamera_i_Norge.html +++ b/blog/Kart_over_overv__kningskamera_i_Norge.html @@ -69,7 +69,7 @@ automatisk over i spesialkartet.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -126,11 +126,11 @@ automatisk over i spesialkartet.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -138,7 +138,7 @@ automatisk over i spesialkartet.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -148,7 +148,7 @@ automatisk over i spesialkartet.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Kartverket__frigj__r__data_men_er_fortsatt_ikke_interessante.html b/blog/Kartverket__frigj__r__data_men_er_fortsatt_ikke_interessante.html index ee6fcd5104..eff7961750 100644 --- a/blog/Kartverket__frigj__r__data_men_er_fortsatt_ikke_interessante.html +++ b/blog/Kartverket__frigj__r__data_men_er_fortsatt_ikke_interessante.html @@ -82,7 +82,7 @@ er ubrukelig til dette.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -139,11 +139,11 @@ er ubrukelig til dette.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -151,7 +151,7 @@ er ubrukelig til dette.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -161,7 +161,7 @@ er ubrukelig til dette.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Kerberos_for_Debian_Edu_Squeeze_.html b/blog/Kerberos_for_Debian_Edu_Squeeze_.html index 61b8b42319..6fe5d4f652 100644 --- a/blog/Kerberos_for_Debian_Edu_Squeeze_.html +++ b/blog/Kerberos_for_Debian_Edu_Squeeze_.html @@ -87,7 +87,7 @@ up in a few days.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -144,11 +144,11 @@ up in a few days.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -156,7 +156,7 @@ up in a few days.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -166,7 +166,7 @@ up in a few days.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Korrupsjon_p___h__yeste_niv___.html b/blog/Korrupsjon_p___h__yeste_niv___.html index 74a7f32de1..67841bf9f7 100644 --- a/blog/Korrupsjon_p___h__yeste_niv___.html +++ b/blog/Korrupsjon_p___h__yeste_niv___.html @@ -67,7 +67,7 @@ Sverige blir søndagskolefortellinger i sammenligning.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -124,11 +124,11 @@ Sverige blir søndagskolefortellinger i sammenligning.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -136,7 +136,7 @@ Sverige blir søndagskolefortellinger i sammenligning.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -146,7 +146,7 @@ Sverige blir søndagskolefortellinger i sammenligning.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Kryptert_harddisk___naturligvis.html b/blog/Kryptert_harddisk___naturligvis.html index 60d9644b95..3e2c9b1b5f 100644 --- a/blog/Kryptert_harddisk___naturligvis.html +++ b/blog/Kryptert_harddisk___naturligvis.html @@ -80,7 +80,7 @@ betydelige.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -137,11 +137,11 @@ betydelige.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -149,7 +149,7 @@ betydelige.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -159,7 +159,7 @@ betydelige.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/LUMA__a_very_nice_LDAP_GUI.html b/blog/LUMA__a_very_nice_LDAP_GUI.html index b3e8756ac0..6347edb224 100644 --- a/blog/LUMA__a_very_nice_LDAP_GUI.html +++ b/blog/LUMA__a_very_nice_LDAP_GUI.html @@ -81,7 +81,7 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -138,11 +138,11 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -150,7 +150,7 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -160,7 +160,7 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Lenker_samlet_2009_05_09.html b/blog/Lenker_samlet_2009_05_09.html index 853b896054..92980143d3 100644 --- a/blog/Lenker_samlet_2009_05_09.html +++ b/blog/Lenker_samlet_2009_05_09.html @@ -69,7 +69,7 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -126,11 +126,11 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -138,7 +138,7 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -148,7 +148,7 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html b/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html index 71e5325d6c..68c6c26226 100644 --- a/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html +++ b/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html @@ -143,7 +143,7 @@ the difference somewhat.
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -200,11 +200,11 @@ the difference somewhat.
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -212,7 +212,7 @@ the difference somewhat.
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -222,7 +222,7 @@ the difference somewhat.
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html b/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html index 637d664d88..db74019d67 100644 --- a/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html +++ b/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html @@ -219,7 +219,7 @@ continue.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -276,11 +276,11 @@ continue.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -288,7 +288,7 @@ continue.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -298,7 +298,7 @@ continue.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html b/blog/Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html index 16952ca56c..112e6a73ff 100644 --- a/blog/Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html +++ b/blog/Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html @@ -60,7 +60,7 @@ i denne sammenhengen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -117,11 +117,11 @@ i denne sammenhengen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -129,7 +129,7 @@ i denne sammenhengen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -139,7 +139,7 @@ i denne sammenhengen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Litt_om_valgfusk_og_problemet_med_elektronisk_stemmegiving.html b/blog/Litt_om_valgfusk_og_problemet_med_elektronisk_stemmegiving.html index 8b1dd51ba1..b2c03c706c 100644 --- a/blog/Litt_om_valgfusk_og_problemet_med_elektronisk_stemmegiving.html +++ b/blog/Litt_om_valgfusk_og_problemet_med_elektronisk_stemmegiving.html @@ -80,7 +80,7 @@ inneholdt i Iran hvis de ikke hadde hemmelige valg?

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -137,11 +137,11 @@ inneholdt i Iran hvis de ikke hadde hemmelige valg?

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -149,7 +149,7 @@ inneholdt i Iran hvis de ikke hadde hemmelige valg?

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -159,7 +159,7 @@ inneholdt i Iran hvis de ikke hadde hemmelige valg?

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/MS_Word_kr__ller_det_til_for_politiet_.html b/blog/MS_Word_kr__ller_det_til_for_politiet_.html index f56d087e4a..d4979ec88d 100644 --- a/blog/MS_Word_kr__ller_det_til_for_politiet_.html +++ b/blog/MS_Word_kr__ller_det_til_for_politiet_.html @@ -71,7 +71,7 @@ offentlig myndighet?

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -128,11 +128,11 @@ offentlig myndighet?

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -140,7 +140,7 @@ offentlig myndighet?

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -150,7 +150,7 @@ offentlig myndighet?

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/MVA_p___b__ker_med_DRM__ikke_MVA_p___b__ker_uten_DRM_.html b/blog/MVA_p___b__ker_med_DRM__ikke_MVA_p___b__ker_uten_DRM_.html index 8f51a9d1a1..8af44cb91d 100644 --- a/blog/MVA_p___b__ker_med_DRM__ikke_MVA_p___b__ker_uten_DRM_.html +++ b/blog/MVA_p___b__ker_med_DRM__ikke_MVA_p___b__ker_uten_DRM_.html @@ -69,7 +69,7 @@ DRM mÃ¥ anses som et kjøp.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -126,11 +126,11 @@ DRM mÃ¥ anses som et kjøp.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -138,7 +138,7 @@ DRM mÃ¥ anses som et kjøp.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -148,7 +148,7 @@ DRM mÃ¥ anses som et kjøp.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Magnetstripeinnhold_i_billetter_fra_Flytoget_og_Hurtigruten.html b/blog/Magnetstripeinnhold_i_billetter_fra_Flytoget_og_Hurtigruten.html index f1f4474dc5..851370fbb1 100644 --- a/blog/Magnetstripeinnhold_i_billetter_fra_Flytoget_og_Hurtigruten.html +++ b/blog/Magnetstripeinnhold_i_billetter_fra_Flytoget_og_Hurtigruten.html @@ -105,7 +105,7 @@ ser jeg mye korrespondanse mellom pÃ¥trykk og magnetstripe.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -162,11 +162,11 @@ ser jeg mye korrespondanse mellom pÃ¥trykk og magnetstripe.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -174,7 +174,7 @@ ser jeg mye korrespondanse mellom pÃ¥trykk og magnetstripe.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -184,7 +184,7 @@ ser jeg mye korrespondanse mellom pÃ¥trykk og magnetstripe.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Massiv_overv__kning_av_kollektivtrafikken_i_Oslo_planlegges.html b/blog/Massiv_overv__kning_av_kollektivtrafikken_i_Oslo_planlegges.html index f70a0a72ad..8eeaff121d 100644 --- a/blog/Massiv_overv__kning_av_kollektivtrafikken_i_Oslo_planlegges.html +++ b/blog/Massiv_overv__kning_av_kollektivtrafikken_i_Oslo_planlegges.html @@ -63,7 +63,7 @@ OsloomrÃ¥det.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -120,11 +120,11 @@ OsloomrÃ¥det.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -132,7 +132,7 @@ OsloomrÃ¥det.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -142,7 +142,7 @@ OsloomrÃ¥det.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Mekanikk_delen_av_reprap_byggesettet_i_hus.html b/blog/Mekanikk_delen_av_reprap_byggesettet_i_hus.html index 212821b622..037ac155f1 100644 --- a/blog/Mekanikk_delen_av_reprap_byggesettet_i_hus.html +++ b/blog/Mekanikk_delen_av_reprap_byggesettet_i_hus.html @@ -68,7 +68,7 @@ og kan melde seg pÃ¥ aktive@nuug.no.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -125,11 +125,11 @@ og kan melde seg pÃ¥ aktive@nuug.no.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -137,7 +137,7 @@ og kan melde seg pÃ¥ aktive@nuug.no.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -147,7 +147,7 @@ og kan melde seg pÃ¥ aktive@nuug.no.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Mekanikk_delen_av_reprap_byggesettet_p___vei.html b/blog/Mekanikk_delen_av_reprap_byggesettet_p___vei.html index 49e6af0976..466ecf2a5f 100644 --- a/blog/Mekanikk_delen_av_reprap_byggesettet_p___vei.html +++ b/blog/Mekanikk_delen_av_reprap_byggesettet_p___vei.html @@ -60,7 +60,7 @@ bort første pakke.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -117,11 +117,11 @@ bort første pakke.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -129,7 +129,7 @@ bort første pakke.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -139,7 +139,7 @@ bort første pakke.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Mens_vi_venter_p___3D_skriveren.html b/blog/Mens_vi_venter_p___3D_skriveren.html index 903c998f3e..051427d464 100644 --- a/blog/Mens_vi_venter_p___3D_skriveren.html +++ b/blog/Mens_vi_venter_p___3D_skriveren.html @@ -72,7 +72,7 @@ hÃ¥per det ikke gÃ¥r tapt pÃ¥ samme vis.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -129,11 +129,11 @@ hÃ¥per det ikke gÃ¥r tapt pÃ¥ samme vis.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -141,7 +141,7 @@ hÃ¥per det ikke gÃ¥r tapt pÃ¥ samme vis.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -151,7 +151,7 @@ hÃ¥per det ikke gÃ¥r tapt pÃ¥ samme vis.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Microsofts_misvisende_argumentasjon_rundt_multimediaformater.html b/blog/Microsofts_misvisende_argumentasjon_rundt_multimediaformater.html index 2a61806989..ded25fb933 100644 --- a/blog/Microsofts_misvisende_argumentasjon_rundt_multimediaformater.html +++ b/blog/Microsofts_misvisende_argumentasjon_rundt_multimediaformater.html @@ -92,7 +92,7 @@ misvisende pÃ¥stander etter i sømmene.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -149,11 +149,11 @@ misvisende pÃ¥stander etter i sømmene.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -161,7 +161,7 @@ misvisende pÃ¥stander etter i sømmene.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -171,7 +171,7 @@ misvisende pÃ¥stander etter i sømmene.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Min_reprap_tar_sakte_form.html b/blog/Min_reprap_tar_sakte_form.html index dbab1bfcc4..5677764511 100644 --- a/blog/Min_reprap_tar_sakte_form.html +++ b/blog/Min_reprap_tar_sakte_form.html @@ -82,7 +82,7 @@ arbeidet.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -139,11 +139,11 @@ arbeidet.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -151,7 +151,7 @@ arbeidet.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -161,7 +161,7 @@ arbeidet.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/More_flexible_firmware_handling_in_debian_installer.html b/blog/More_flexible_firmware_handling_in_debian_installer.html index 9331999308..917ebe0439 100644 --- a/blog/More_flexible_firmware_handling_in_debian_installer.html +++ b/blog/More_flexible_firmware_handling_in_debian_installer.html @@ -92,7 +92,7 @@ contact us on debian-boot@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -149,11 +149,11 @@ contact us on debian-boot@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -161,7 +161,7 @@ contact us on debian-boot@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -171,7 +171,7 @@ contact us on debian-boot@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Nasjonalbiblioteket_legger_ut_b__ker_p___web.html b/blog/Nasjonalbiblioteket_legger_ut_b__ker_p___web.html index 0c872082ca..0c4dfb9a96 100644 --- a/blog/Nasjonalbiblioteket_legger_ut_b__ker_p___web.html +++ b/blog/Nasjonalbiblioteket_legger_ut_b__ker_p___web.html @@ -77,7 +77,7 @@ fortløpende.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -134,11 +134,11 @@ fortløpende.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -146,7 +146,7 @@ fortløpende.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -156,7 +156,7 @@ fortløpende.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/No_patch_is_not_better_than_a_useless_patch.html b/blog/No_patch_is_not_better_than_a_useless_patch.html index 69fbe8c4d6..4d49986b6e 100644 --- a/blog/No_patch_is_not_better_than_a_useless_patch.html +++ b/blog/No_patch_is_not_better_than_a_useless_patch.html @@ -58,7 +58,7 @@ properties.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -115,11 +115,11 @@ properties.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -127,7 +127,7 @@ properties.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -137,7 +137,7 @@ properties.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Norge_trenger_en_personvernforening.html b/blog/Norge_trenger_en_personvernforening.html index 52b290e8e2..fc7cb4f3cb 100644 --- a/blog/Norge_trenger_en_personvernforening.html +++ b/blog/Norge_trenger_en_personvernforening.html @@ -64,7 +64,7 @@ nÃ¥ fÃ¥r vi se om noen er enig.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -121,11 +121,11 @@ nÃ¥ fÃ¥r vi se om noen er enig.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -133,7 +133,7 @@ nÃ¥ fÃ¥r vi se om noen er enig.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -143,7 +143,7 @@ nÃ¥ fÃ¥r vi se om noen er enig.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/ODF_bruk_i_staten__ikke_helt_p___plass.html b/blog/ODF_bruk_i_staten__ikke_helt_p___plass.html index 8bebfd092d..5ac7f575d4 100644 --- a/blog/ODF_bruk_i_staten__ikke_helt_p___plass.html +++ b/blog/ODF_bruk_i_staten__ikke_helt_p___plass.html @@ -64,7 +64,7 @@ Kjenner kun til ufullstendige løsninger for slikt.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -121,11 +121,11 @@ Kjenner kun til ufullstendige løsninger for slikt.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -133,7 +133,7 @@ Kjenner kun til ufullstendige løsninger for slikt.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -143,7 +143,7 @@ Kjenner kun til ufullstendige løsninger for slikt.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Officeshots_taking_shape.html b/blog/Officeshots_taking_shape.html index e57f8eaf6f..f24a5f8949 100644 --- a/blog/Officeshots_taking_shape.html +++ b/blog/Officeshots_taking_shape.html @@ -73,7 +73,7 @@ Windows. This is great.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -130,11 +130,11 @@ Windows. This is great.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -142,7 +142,7 @@ Windows. This is great.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -152,7 +152,7 @@ Windows. This is great.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Opphavet_til_Skolelinux_prosjektet.html b/blog/Opphavet_til_Skolelinux_prosjektet.html index 347ceb7193..be2d355ac8 100644 --- a/blog/Opphavet_til_Skolelinux_prosjektet.html +++ b/blog/Opphavet_til_Skolelinux_prosjektet.html @@ -79,7 +79,7 @@ Resten er historie. :)

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -136,11 +136,11 @@ Resten er historie. :)

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -148,7 +148,7 @@ Resten er historie. :)

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -158,7 +158,7 @@ Resten er historie. :)

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html b/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html index 309307790e..3cb2cae420 100644 --- a/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html +++ b/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html @@ -61,7 +61,7 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -118,11 +118,11 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -130,7 +130,7 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -140,7 +140,7 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html b/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html index a0ac1d14e9..0cd0dbe29e 100644 --- a/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html +++ b/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html @@ -77,7 +77,7 @@ list of usertagged bugs related to this.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -134,11 +134,11 @@ list of usertagged bugs related to this.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -146,7 +146,7 @@ list of usertagged bugs related to this.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -156,7 +156,7 @@ list of usertagged bugs related to this.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html b/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html index c97132e90b..d4aa1a3802 100644 --- a/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html +++ b/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html @@ -90,7 +90,7 @@ list of usertagged bugs related to this.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -147,11 +147,11 @@ list of usertagged bugs related to this.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -159,7 +159,7 @@ list of usertagged bugs related to this.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -169,7 +169,7 @@ list of usertagged bugs related to this.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html b/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html index 480bf03cd0..47f0a915e2 100644 --- a/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html +++ b/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html @@ -86,7 +86,7 @@ list of usertagged bugs related to this.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -143,11 +143,11 @@ list of usertagged bugs related to this.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -155,7 +155,7 @@ list of usertagged bugs related to this.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -165,7 +165,7 @@ list of usertagged bugs related to this.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html b/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html index 5687fef9aa..3b9726d2cb 100644 --- a/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html +++ b/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html @@ -102,7 +102,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -159,11 +159,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -171,7 +171,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -181,7 +181,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Recording_video_from_cron_using_VLC.html b/blog/Recording_video_from_cron_using_VLC.html index 6a577dc383..48e3af5e1d 100644 --- a/blog/Recording_video_from_cron_using_VLC.html +++ b/blog/Recording_video_from_cron_using_VLC.html @@ -88,7 +88,7 @@ wait $pid
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -145,11 +145,11 @@ wait $pid
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -157,7 +157,7 @@ wait $pid
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -167,7 +167,7 @@ wait $pid
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Regjerningen_forlater_prinsippet_om_ingen_royalty_betaling_i_standardkatalogen_versjon_2.html b/blog/Regjerningen_forlater_prinsippet_om_ingen_royalty_betaling_i_standardkatalogen_versjon_2.html index a214b09ebc..0ef524efa8 100644 --- a/blog/Regjerningen_forlater_prinsippet_om_ingen_royalty_betaling_i_standardkatalogen_versjon_2.html +++ b/blog/Regjerningen_forlater_prinsippet_om_ingen_royalty_betaling_i_standardkatalogen_versjon_2.html @@ -80,7 +80,7 @@ høringsuttalelse, men ser ut til Ã¥ ha blitt ignorert.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -137,11 +137,11 @@ høringsuttalelse, men ser ut til Ã¥ ha blitt ignorert.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -149,7 +149,7 @@ høringsuttalelse, men ser ut til Ã¥ ha blitt ignorert.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -159,7 +159,7 @@ høringsuttalelse, men ser ut til Ã¥ ha blitt ignorert.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Regjerningens_oppsummering_av_h__ringen_om_standardkatalogen_versjon_2.html b/blog/Regjerningens_oppsummering_av_h__ringen_om_standardkatalogen_versjon_2.html index f748dc6ed2..04c6147395 100644 --- a/blog/Regjerningens_oppsummering_av_h__ringen_om_standardkatalogen_versjon_2.html +++ b/blog/Regjerningens_oppsummering_av_h__ringen_om_standardkatalogen_versjon_2.html @@ -71,7 +71,7 @@ politidirektoratet om patentproblemer i Theora).

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -128,11 +128,11 @@ politidirektoratet om patentproblemer i Theora).

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -140,7 +140,7 @@ politidirektoratet om patentproblemer i Theora).

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -150,7 +150,7 @@ politidirektoratet om patentproblemer i Theora).

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html b/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html index 4e4efa735e..80bc47f1bb 100644 --- a/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html +++ b/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html @@ -100,7 +100,7 @@ numbers.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -157,11 +157,11 @@ numbers.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -169,7 +169,7 @@ numbers.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -179,7 +179,7 @@ numbers.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Reprap_bygging_i_p__sken.html b/blog/Reprap_bygging_i_p__sken.html index b739eb7fe7..6c9d03ffac 100644 --- a/blog/Reprap_bygging_i_p__sken.html +++ b/blog/Reprap_bygging_i_p__sken.html @@ -104,7 +104,7 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -161,11 +161,11 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -173,7 +173,7 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -183,7 +183,7 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Reprap_pakke_tapt_i_posten.html b/blog/Reprap_pakke_tapt_i_posten.html index f0f2376bf2..78cc8651d0 100644 --- a/blog/Reprap_pakke_tapt_i_posten.html +++ b/blog/Reprap_pakke_tapt_i_posten.html @@ -60,7 +60,7 @@ lenge alt er klart til Go Open
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -117,11 +117,11 @@ lenge alt er klart til Go Open
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -129,7 +129,7 @@ lenge alt er klart til Go Open
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -139,7 +139,7 @@ lenge alt er klart til Go Open
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Returning_from_Skolelinux_developer_gathering.html b/blog/Returning_from_Skolelinux_developer_gathering.html index 09607609dc..6ad6a75c9a 100644 --- a/blog/Returning_from_Skolelinux_developer_gathering.html +++ b/blog/Returning_from_Skolelinux_developer_gathering.html @@ -66,7 +66,7 @@ now. :)

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -123,11 +123,11 @@ now. :)

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -135,7 +135,7 @@ now. :)

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -145,7 +145,7 @@ now. :)

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Sikkerhet__teater__og_hvordan_gj__re_verden_sikrere.html b/blog/Sikkerhet__teater__og_hvordan_gj__re_verden_sikrere.html index 4a64cb32e9..cd4d5a403f 100644 --- a/blog/Sikkerhet__teater__og_hvordan_gj__re_verden_sikrere.html +++ b/blog/Sikkerhet__teater__og_hvordan_gj__re_verden_sikrere.html @@ -62,7 +62,7 @@ pÃ¥ flyplassene.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -119,11 +119,11 @@ pÃ¥ flyplassene.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -131,7 +131,7 @@ pÃ¥ flyplassene.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -141,7 +141,7 @@ pÃ¥ flyplassene.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Sikkerhet_til_sj__s_trenger_sj__kart_uten_bruksbegresninger.html b/blog/Sikkerhet_til_sj__s_trenger_sj__kart_uten_bruksbegresninger.html index 9da2440bbd..30d5c3f56f 100644 --- a/blog/Sikkerhet_til_sj__s_trenger_sj__kart_uten_bruksbegresninger.html +++ b/blog/Sikkerhet_til_sj__s_trenger_sj__kart_uten_bruksbegresninger.html @@ -104,7 +104,7 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -161,11 +161,11 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -173,7 +173,7 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -183,7 +183,7 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html b/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html index 5c0d3a7036..3d07d7e1f1 100644 --- a/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html +++ b/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html @@ -76,7 +76,7 @@ written yet.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -133,11 +133,11 @@ written yet.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -145,7 +145,7 @@ written yet.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -155,7 +155,7 @@ written yet.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html b/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html index 73fb488ca7..1a14dbe7e2 100644 --- a/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html +++ b/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html @@ -83,7 +83,7 @@ collector.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -140,11 +140,11 @@ collector.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -152,7 +152,7 @@ collector.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -162,7 +162,7 @@ collector.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Skolelinux_er_laget_for_sentraldrifting__naturligvis.html b/blog/Skolelinux_er_laget_for_sentraldrifting__naturligvis.html index 13c392033c..07e57e7a69 100644 --- a/blog/Skolelinux_er_laget_for_sentraldrifting__naturligvis.html +++ b/blog/Skolelinux_er_laget_for_sentraldrifting__naturligvis.html @@ -128,7 +128,7 @@ minner.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -185,11 +185,11 @@ minner.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -197,7 +197,7 @@ minner.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -207,7 +207,7 @@ minner.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Software_video_mixer_on_a_USB_stick.html b/blog/Software_video_mixer_on_a_USB_stick.html index 2489af315d..5cc7b7ac6c 100644 --- a/blog/Software_video_mixer_on_a_USB_stick.html +++ b/blog/Software_video_mixer_on_a_USB_stick.html @@ -75,7 +75,7 @@ larger stick as well.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -132,11 +132,11 @@ larger stick as well.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -144,7 +144,7 @@ larger stick as well.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -154,7 +154,7 @@ larger stick as well.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Standarder_fungerer_best_n__r_en_samler_seg_rundt_dem.html b/blog/Standarder_fungerer_best_n__r_en_samler_seg_rundt_dem.html index c8e06e9222..05d8e8a620 100644 --- a/blog/Standarder_fungerer_best_n__r_en_samler_seg_rundt_dem.html +++ b/blog/Standarder_fungerer_best_n__r_en_samler_seg_rundt_dem.html @@ -64,7 +64,7 @@ bidrar positivt.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -121,11 +121,11 @@ bidrar positivt.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -133,7 +133,7 @@ bidrar positivt.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -143,7 +143,7 @@ bidrar positivt.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html b/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html index 68fcbc9b6c..cd291400ff 100644 --- a/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html +++ b/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html @@ -76,7 +76,7 @@ application that do not use open network protocol or open formats.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -133,11 +133,11 @@ application that do not use open network protocol or open formats.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -145,7 +145,7 @@ application that do not use open network protocol or open formats.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -155,7 +155,7 @@ application that do not use open network protocol or open formats.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Taking_over_sysvinit_development.html b/blog/Taking_over_sysvinit_development.html index 4ccddfa61b..d1f692e5d2 100644 --- a/blog/Taking_over_sysvinit_development.html +++ b/blog/Taking_over_sysvinit_development.html @@ -73,7 +73,7 @@ distributions are moving to upstart as a syvinit replacement.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -130,11 +130,11 @@ distributions are moving to upstart as a syvinit replacement.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -142,7 +142,7 @@ distributions are moving to upstart as a syvinit replacement.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -152,7 +152,7 @@ distributions are moving to upstart as a syvinit replacement.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html b/blog/Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html index 875ca9413b..fbcfe3627e 100644 --- a/blog/Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html +++ b/blog/Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html @@ -79,7 +79,7 @@ stort.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -136,11 +136,11 @@ stort.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -148,7 +148,7 @@ stort.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -158,7 +158,7 @@ stort.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Tester_blog.html b/blog/Tester_blog.html index 8013970c73..09a4c9d273 100644 --- a/blog/Tester_blog.html +++ b/blog/Tester_blog.html @@ -54,7 +54,7 @@ forsøk.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -111,11 +111,11 @@ forsøk.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -123,7 +123,7 @@ forsøk.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -133,7 +133,7 @@ forsøk.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Testing_av_reprap_elektronikken_igang.html b/blog/Testing_av_reprap_elektronikken_igang.html index b0bb34868b..d083894c8f 100644 --- a/blog/Testing_av_reprap_elektronikken_igang.html +++ b/blog/Testing_av_reprap_elektronikken_igang.html @@ -82,7 +82,7 @@ reprap-en kvikner til.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -139,11 +139,11 @@ reprap-en kvikner til.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -151,7 +151,7 @@ reprap-en kvikner til.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -161,7 +161,7 @@ reprap-en kvikner til.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html b/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html index 35c2de5070..21aa8b90f0 100644 --- a/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html +++ b/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html @@ -69,7 +69,7 @@ be the only one fitting our needs. :/

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -126,11 +126,11 @@ be the only one fitting our needs. :/

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -138,7 +138,7 @@ be the only one fitting our needs. :/

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -148,7 +148,7 @@ be the only one fitting our needs. :/

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html b/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html index ff3e467801..4cacd92b8f 100644 --- a/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html +++ b/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html @@ -116,7 +116,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -173,11 +173,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -185,7 +185,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -195,7 +195,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html b/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html index 64764cd095..6d5021ad9c 100644 --- a/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html +++ b/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html @@ -83,7 +83,7 @@ new IETF work group?

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -140,11 +140,11 @@ new IETF work group?

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -152,7 +152,7 @@ new IETF work group?

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -162,7 +162,7 @@ new IETF work group?

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Togsatsing_p___norsk__mot_sykkel.html b/blog/Togsatsing_p___norsk__mot_sykkel.html index b3b90c8b4f..5400c0bac5 100644 --- a/blog/Togsatsing_p___norsk__mot_sykkel.html +++ b/blog/Togsatsing_p___norsk__mot_sykkel.html @@ -58,7 +58,7 @@ effekt pÃ¥ omrÃ¥det der?

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -115,11 +115,11 @@ effekt pÃ¥ omrÃ¥det der?

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -127,7 +127,7 @@ effekt pÃ¥ omrÃ¥det der?

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -137,7 +137,7 @@ effekt pÃ¥ omrÃ¥det der?

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Transendentalt_tullball_og_en_funksjonell_tiln__rming.html b/blog/Transendentalt_tullball_og_en_funksjonell_tiln__rming.html index d82647db99..aff9546528 100644 --- a/blog/Transendentalt_tullball_og_en_funksjonell_tiln__rming.html +++ b/blog/Transendentalt_tullball_og_en_funksjonell_tiln__rming.html @@ -70,7 +70,7 @@ oppløsning.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -127,11 +127,11 @@ oppløsning.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -139,7 +139,7 @@ oppløsning.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -149,7 +149,7 @@ oppløsning.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html b/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html index b899806d9a..abb134c61c 100644 --- a/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html +++ b/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html @@ -87,7 +87,7 @@ surrounded by today.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -144,11 +144,11 @@ surrounded by today.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -156,7 +156,7 @@ surrounded by today.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -166,7 +166,7 @@ surrounded by today.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html b/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html index 595cc99b6a..fc4185839a 100644 --- a/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html +++ b/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html @@ -92,7 +92,7 @@ choice.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -149,11 +149,11 @@ choice.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -161,7 +161,7 @@ choice.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -171,7 +171,7 @@ choice.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Using_bar_codes_at_a_computing_center.html b/blog/Using_bar_codes_at_a_computing_center.html index 3eaaf5ab37..71e9eff9ed 100644 --- a/blog/Using_bar_codes_at_a_computing_center.html +++ b/blog/Using_bar_codes_at_a_computing_center.html @@ -92,7 +92,7 @@ easier automatic tracking of computers.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -149,11 +149,11 @@ easier automatic tracking of computers.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -161,7 +161,7 @@ easier automatic tracking of computers.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -171,7 +171,7 @@ easier automatic tracking of computers.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Vinmonopolet_bryter_loven___penlyst___og_flere_planlegger____gj__re_det_samme.html b/blog/Vinmonopolet_bryter_loven___penlyst___og_flere_planlegger____gj__re_det_samme.html index 9c91584ad4..4ba728a4f2 100644 --- a/blog/Vinmonopolet_bryter_loven___penlyst___og_flere_planlegger____gj__re_det_samme.html +++ b/blog/Vinmonopolet_bryter_loven___penlyst___og_flere_planlegger____gj__re_det_samme.html @@ -85,7 +85,7 @@ hÃ¥ndheves strengt.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -142,11 +142,11 @@ hÃ¥ndheves strengt.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -154,7 +154,7 @@ hÃ¥ndheves strengt.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -164,7 +164,7 @@ hÃ¥ndheves strengt.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Vitenskapens_dogmer___.html b/blog/Vitenskapens_dogmer___.html index a1ee72b446..c698c1f2ca 100644 --- a/blog/Vitenskapens_dogmer___.html +++ b/blog/Vitenskapens_dogmer___.html @@ -119,7 +119,7 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -176,11 +176,11 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -188,7 +188,7 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -198,7 +198,7 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/Webbasert_tegneseriearkiv_p___trappene.html b/blog/Webbasert_tegneseriearkiv_p___trappene.html index 2dacdb3ebb..4883cf5208 100644 --- a/blog/Webbasert_tegneseriearkiv_p___trappene.html +++ b/blog/Webbasert_tegneseriearkiv_p___trappene.html @@ -96,7 +96,7 @@ titt.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -153,11 +153,11 @@ titt.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -165,7 +165,7 @@ titt.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -175,7 +175,7 @@ titt.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html b/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html new file mode 100644 index 0000000000..b73453bd96 --- /dev/null +++ b/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html @@ -0,0 +1,472 @@ + + + + Petter Reinholdtsen: What are they searching for - PowerDNS and ISC DHCP in LDAP + + + + +
    +

    + Petter Reinholdtsen + +

    + +
    + + +
    +
    What are they searching for - PowerDNS and ISC DHCP in LDAP
    +
    2010-07-17 21:00
    +
    +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    +
    + + + +
    + + + + + + + + + diff --git a/blog/When_web_browser_developers_make_a_video_player___.html b/blog/When_web_browser_developers_make_a_video_player___.html index dfcd987df5..76f67ea06d 100644 --- a/blog/When_web_browser_developers_make_a_video_player___.html +++ b/blog/When_web_browser_developers_make_a_video_player___.html @@ -93,7 +93,7 @@ sure hope it was using the announced Ogg Theora support. :)

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -150,11 +150,11 @@ sure hope it was using the announced Ogg Theora support. :)

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -162,7 +162,7 @@ sure hope it was using the announced Ogg Theora support. :)

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -172,7 +172,7 @@ sure hope it was using the announced Ogg Theora support. :)

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/__pne_tr__dl__snett_er_et_samfunnsgode.html b/blog/__pne_tr__dl__snett_er_et_samfunnsgode.html index d670f5b470..9c7281c0ea 100644 --- a/blog/__pne_tr__dl__snett_er_et_samfunnsgode.html +++ b/blog/__pne_tr__dl__snett_er_et_samfunnsgode.html @@ -71,7 +71,7 @@ anstrenge oss for Ã¥ beholde.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -128,11 +128,11 @@ anstrenge oss for Ã¥ beholde.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -140,7 +140,7 @@ anstrenge oss for Ã¥ beholde.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -150,7 +150,7 @@ anstrenge oss for Ã¥ beholde.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2008/11/index.html b/blog/archive/2008/11/index.html index c9840581fe..11ae286e28 100644 --- a/blog/archive/2008/11/index.html +++ b/blog/archive/2008/11/index.html @@ -214,7 +214,7 @@ lenge alt er klart til Go Open
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -271,11 +271,11 @@ lenge alt er klart til Go Open
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -283,7 +283,7 @@ lenge alt er klart til Go Open
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -293,7 +293,7 @@ lenge alt er klart til Go Open
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2008/12/index.html b/blog/archive/2008/12/index.html index 4f99aac694..2a57a2b4bc 100644 --- a/blog/archive/2008/12/index.html +++ b/blog/archive/2008/12/index.html @@ -378,7 +378,7 @@ larger stick as well.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -435,11 +435,11 @@ larger stick as well.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -447,7 +447,7 @@ larger stick as well.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -457,7 +457,7 @@ larger stick as well.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/01/index.html b/blog/archive/2009/01/index.html index c6b75ec726..421f7dc7e5 100644 --- a/blog/archive/2009/01/index.html +++ b/blog/archive/2009/01/index.html @@ -547,7 +547,7 @@ produkter basert pÃ¥ standarden.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -604,11 +604,11 @@ produkter basert pÃ¥ standarden.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -616,7 +616,7 @@ produkter basert pÃ¥ standarden.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -626,7 +626,7 @@ produkter basert pÃ¥ standarden.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/02/index.html b/blog/archive/2009/02/index.html index 67e1e1d8ad..d922297981 100644 --- a/blog/archive/2009/02/index.html +++ b/blog/archive/2009/02/index.html @@ -525,7 +525,7 @@ do so.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -582,11 +582,11 @@ do so.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -594,7 +594,7 @@ do so.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -604,7 +604,7 @@ do so.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/03/index.html b/blog/archive/2009/03/index.html index fb1045a6e6..1ad8aa7aa3 100644 --- a/blog/archive/2009/03/index.html +++ b/blog/archive/2009/03/index.html @@ -714,7 +714,7 @@ application that do not use open network protocol or open formats.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -771,11 +771,11 @@ application that do not use open network protocol or open formats.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -783,7 +783,7 @@ application that do not use open network protocol or open formats.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -793,7 +793,7 @@ application that do not use open network protocol or open formats.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/04/index.html b/blog/archive/2009/04/index.html index 60525c5cfe..23049e12cb 100644 --- a/blog/archive/2009/04/index.html +++ b/blog/archive/2009/04/index.html @@ -506,7 +506,7 @@ properties.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -563,11 +563,11 @@ properties.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -575,7 +575,7 @@ properties.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -585,7 +585,7 @@ properties.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/05/index.html b/blog/archive/2009/05/index.html index 1d577e5d8b..5a403df789 100644 --- a/blog/archive/2009/05/index.html +++ b/blog/archive/2009/05/index.html @@ -463,7 +463,7 @@ bidrar positivt.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -520,11 +520,11 @@ bidrar positivt.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -532,7 +532,7 @@ bidrar positivt.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -542,7 +542,7 @@ bidrar positivt.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/06/index.html b/blog/archive/2009/06/index.html index c76c5c71c9..54c2005226 100644 --- a/blog/archive/2009/06/index.html +++ b/blog/archive/2009/06/index.html @@ -226,7 +226,7 @@ misvisende pÃ¥stander etter i sømmene.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -283,11 +283,11 @@ misvisende pÃ¥stander etter i sømmene.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -295,7 +295,7 @@ misvisende pÃ¥stander etter i sømmene.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -305,7 +305,7 @@ misvisende pÃ¥stander etter i sømmene.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/07/index.html b/blog/archive/2009/07/index.html index 946796f5ab..aef2362254 100644 --- a/blog/archive/2009/07/index.html +++ b/blog/archive/2009/07/index.html @@ -214,7 +214,7 @@ non-predictable kernel in the early boot.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -271,11 +271,11 @@ non-predictable kernel in the early boot.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -283,7 +283,7 @@ non-predictable kernel in the early boot.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -293,7 +293,7 @@ non-predictable kernel in the early boot.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/08/index.html b/blog/archive/2009/08/index.html index 0b00d91d21..1e37acf63c 100644 --- a/blog/archive/2009/08/index.html +++ b/blog/archive/2009/08/index.html @@ -227,7 +227,7 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -284,11 +284,11 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -296,7 +296,7 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -306,7 +306,7 @@ det viser at behovet for fribruks-sjøkart er til stedet.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/09/index.html b/blog/archive/2009/09/index.html index be0f11f24a..2b6b97bb74 100644 --- a/blog/archive/2009/09/index.html +++ b/blog/archive/2009/09/index.html @@ -84,7 +84,7 @@ DRM mÃ¥ anses som et kjøp.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -141,11 +141,11 @@ DRM mÃ¥ anses som et kjøp.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -153,7 +153,7 @@ DRM mÃ¥ anses som et kjøp.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -163,7 +163,7 @@ DRM mÃ¥ anses som et kjøp.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/10/index.html b/blog/archive/2009/10/index.html index 219d18fb04..b05985ade1 100644 --- a/blog/archive/2009/10/index.html +++ b/blog/archive/2009/10/index.html @@ -196,7 +196,7 @@ nettbankkontroll over egne midler. :(
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -253,11 +253,11 @@ nettbankkontroll over egne midler. :(
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -265,7 +265,7 @@ nettbankkontroll over egne midler. :(
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -275,7 +275,7 @@ nettbankkontroll over egne midler. :(
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/11/index.html b/blog/archive/2009/11/index.html index 9208fe1d01..48e5882b54 100644 --- a/blog/archive/2009/11/index.html +++ b/blog/archive/2009/11/index.html @@ -181,7 +181,7 @@ er ubrukelig til dette.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -238,11 +238,11 @@ er ubrukelig til dette.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -250,7 +250,7 @@ er ubrukelig til dette.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -260,7 +260,7 @@ er ubrukelig til dette.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2009/12/index.html b/blog/archive/2009/12/index.html index 798b1ab777..ecb2a86dc4 100644 --- a/blog/archive/2009/12/index.html +++ b/blog/archive/2009/12/index.html @@ -166,7 +166,7 @@ pÃ¥ flyplassene.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -223,11 +223,11 @@ pÃ¥ flyplassene.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -235,7 +235,7 @@ pÃ¥ flyplassene.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -245,7 +245,7 @@ pÃ¥ flyplassene.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/01/index.html b/blog/archive/2010/01/index.html index a970d4b7d3..fa5464f5c1 100644 --- a/blog/archive/2010/01/index.html +++ b/blog/archive/2010/01/index.html @@ -149,7 +149,7 @@ platforme.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -206,11 +206,11 @@ platforme.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -218,7 +218,7 @@ platforme.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -228,7 +228,7 @@ platforme.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/02/index.html b/blog/archive/2010/02/index.html index 4fed066f24..793945f76d 100644 --- a/blog/archive/2010/02/index.html +++ b/blog/archive/2010/02/index.html @@ -80,7 +80,7 @@ and have just a few weeks or months to make it happen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -137,11 +137,11 @@ and have just a few weeks or months to make it happen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -149,7 +149,7 @@ and have just a few weeks or months to make it happen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -159,7 +159,7 @@ and have just a few weeks or months to make it happen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/03/index.html b/blog/archive/2010/03/index.html index bc424d5caf..a1450349bd 100644 --- a/blog/archive/2010/03/index.html +++ b/blog/archive/2010/03/index.html @@ -169,7 +169,7 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -226,11 +226,11 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -238,7 +238,7 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -248,7 +248,7 @@ Hr. Fossen. MÃ¥ innrømme at jeg tviler pÃ¥ det.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/04/index.html b/blog/archive/2010/04/index.html index a1c25eb494..bd75e446fe 100644 --- a/blog/archive/2010/04/index.html +++ b/blog/archive/2010/04/index.html @@ -223,7 +223,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -280,11 +280,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -292,7 +292,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -302,7 +302,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/05/index.html b/blog/archive/2010/05/index.html index df43334e3c..97c1e6adde 100644 --- a/blog/archive/2010/05/index.html +++ b/blog/archive/2010/05/index.html @@ -615,7 +615,7 @@ list of usertagged bugs related to this.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -672,11 +672,11 @@ list of usertagged bugs related to this.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -684,7 +684,7 @@ list of usertagged bugs related to this.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -694,7 +694,7 @@ list of usertagged bugs related to this.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/06/index.html b/blog/archive/2010/06/index.html index 0f510462b8..90d5bc5edb 100644 --- a/blog/archive/2010/06/index.html +++ b/blog/archive/2010/06/index.html @@ -1014,7 +1014,7 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -1071,11 +1071,11 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -1083,7 +1083,7 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -1093,7 +1093,7 @@ changes, it will not be an option for Debian Edu based on Squeeze.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/archive/2010/07/07.rss b/blog/archive/2010/07/07.rss index c4bff2cff0..44ec33f629 100644 --- a/blog/archive/2010/07/07.rss +++ b/blog/archive/2010/07/07.rss @@ -508,5 +508,325 @@ please contact us on debian-edu@lists.debian.org.</p> + + What are they searching for - PowerDNS and ISC DHCP in LDAP + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + Sat, 17 Jul 2010 21:00:00 +0200 + +<p>This is a +<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a> +on my +<a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">previous +work</a> on +<a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging +all</a> the computer related LDAP objects in Debian Edu.</p> + +<p>As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.</p> + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +<p><strong>powerdns</strong></p> + +<a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues +on how to</a> set up PowerDNS to use a LDAP backend is available on +the web. + +<p>PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.</p> + +<p>In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:</p> + +<blockquote><pre> +ldapsearch -h ldap \ + -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap \ + -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)' + dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \ + hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \ + srvrecord naptrrecord modifytimestamp +</pre></blockquote> + +<p>In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.</p> + +<blockquote><pre> +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain +objectclass: domainrelatedobject +dc: tjener +arecord: 10.0.2.2 +associateddomain: tjener.intern + +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain2 +objectclass: domainrelatedobject +dc: 2 +ptrrecord: tjener.intern +associateddomain: 2.2.0.10.in-addr.arpa +</pre></blockquote> + +<p>In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.</p> + +<p>The forward and reverse searches can be simulated using ldapsearch +like this:</p> + +<blockquote><pre> +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp +</pre></blockquote> + +<p>In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.</p> + +<p>A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.</p> + +<p>The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p> + +<p>In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.</p> + +<p>There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).</p> + +<p>My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):</p> + +<blockquote><pre> +objectclass ( some-oid NAME 'dnsDomainAux' + SUP top + AUXILIARY + MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $ + DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $ + TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $ + NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $ + A6Record $ DNAMERecord + )) +</pre></blockquote> + +<p>This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.</p> + +<p><strong>ISC dhcp</strong></p> + +<p>The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.</p> + +<p>In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:</p> + +<blockquote><pre> +ldap-base-dn "dc=skole,dc=skolelinux,dc=no"; +ldap-dhcp-server-cn "dhcp"; +</pre></blockquote> + +<p>The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:</p> + +<blockquote><pre> +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no +cn: dhcp +objectClass: top +objectClass: dhcpServer +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +</pre></blockquote> + +<p>The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:</p> + +<blockquote><pre> +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: DHCP Config +objectClass: top +objectClass: dhcpService +objectClass: dhcpOptions +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no +dhcpStatements: ddns-update-style none +dhcpStatements: authoritative +dhcpOption: smtp-server code 69 = array of ip-address +dhcpOption: www-server code 72 = array of ip-address +dhcpOption: wpad-url code 252 = text +</pre></blockquote> + +<p>Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.</p> + +<p>When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:</p> + +<blockquote><pre> +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: hostname +objectClass: top +objectClass: dhcpHost +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname +</pre></blockquote> + +<p>There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +<p><strong>Conclusion</strong></p> + +<p>The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.</p> + +<p>The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.</p> + +<p>Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:</p> + +<blockquote><pre> +ou=services + cn=machine-info (dhcpService) - dhcpServiceDN points here + cn=dhcp (dhcpServer) + cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions) + cn=10.0.2.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions) + cn=192.168.0.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + ou=machines - PowerDNS base points here + cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux) +</pre></blockquote> + +<P>This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.</p> + +<p>The combined object under the machines subtree would look something +like this:</p> + +<blockquote><pre> +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no +dc: hostname +objectClass: top +objectClass: dhcpHost +objectclass: domainrelatedobject +objectclass: dnsDomainAux +associateddomain: hostname.intern +arecord: 10.11.12.13 +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname.intern +</pre></blockquote> + +</p>One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.</p> + + + diff --git a/blog/archive/2010/07/index.html b/blog/archive/2010/07/index.html index ffebaf5891..d6e9f165b6 100644 --- a/blog/archive/2010/07/index.html +++ b/blog/archive/2010/07/index.html @@ -594,6 +594,339 @@ please contact us on debian-edu@lists.debian.org.

    + Tags: debian, debian edu, english, ldap, nuug. + + + +
    + +
    + +
    + 2010-07-17 21:00 +
    + +
    + +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    + +
    +
    + + + Tags: debian, debian edu, english, ldap, nuug.
    @@ -624,7 +957,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -681,11 +1014,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -693,7 +1026,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -703,7 +1036,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/index.html b/blog/index.html index 35101410a0..ffe1afddfd 100644 --- a/blog/index.html +++ b/blog/index.html @@ -19,6 +19,332 @@ +
    + +
    2010-07-17 21:00
    +
    +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    +
    +
    + + + + Tags: debian, debian edu, english, ldap, nuug. + +
    +
    +
    +
    2010-07-14 23:45
    @@ -715,55 +1041,6 @@ like this.

    -
    - -
    2010-06-16 11:00
    -
    -

    Dagbladet -melder at Vinmonopolet med bakgrunn i vekterstreiken som pågår i -Norge for tiden, har bestemt seg for med vitende og vilje å bryte -sentralbanklovens paragraf 14 ved å nekte folk å betale med -kontanter, og at flere butikker planlegger å følge deres eksempel. -Jeg synes det er hårreisende hvis de slipper unna med et slikt -soleklart lovbrudd, og lurer på hva slags muligheter jeg vil ha hvis -jeg blir nektet å handle med kontanter. Jeg handler i hovedsak med -kontanter selv, da jeg anser det som en borgerrett å kunne handle -anonymt uten at det blir registrert. For meg er det et angrep på mitt -personvern å nekte å ta imot kontant betaling.

    - -

    Paragrafen -i sentralbankloven lyder:

    - -
    -

    § 14. Tvungent betalingsmiddel

    - -

    Bankens sedler og mynter er tvungent betalingsmiddel i Norge. Ingen -er pliktig til i én betaling å ta imot mer enn femogtyve mynter av -hver enhet.

    - -

    Sterkt skadde sedler og mynter er ikke tvungent -betalingsmiddel. Banken gir nærmere forskrifter om erstatning for -bortkomne, brente eller skadde sedler og mynter.

    - -

    Selv om en avtale inneholder klausul om betaling av en -pengeforpliktelse i gullverdi, kan skyldneren frigjøre seg med tvungne -betalingsmidler uten hensyn til denne klausul.

    -
    - -

    Det er med bakgrunn i denne lovet ikke tillatt å nekte å ta imot -kontakt betaling. Det er en lov jeg har sans for, og som jeg mener må -håndheves strengt.

    -
    -
    - - - - Tags: norsk, personvern. - -
    -
    -
    -

    RSS feed

    +
    +
    + +
    + +
    + 2010-07-17 21:00 +
    + +
    + +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    + +
    +
    + + + Tags: debian, debian edu, english, ldap, nuug.
    @@ -2312,7 +2645,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -2369,11 +2702,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -2381,7 +2714,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -2391,7 +2724,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/debian/debian.rss b/blog/tags/debian/debian.rss index e8cb53e864..608c2ffaf6 100644 --- a/blog/tags/debian/debian.rss +++ b/blog/tags/debian/debian.rss @@ -1535,5 +1535,325 @@ please contact us on debian-edu@lists.debian.org.</p> + + What are they searching for - PowerDNS and ISC DHCP in LDAP + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + Sat, 17 Jul 2010 21:00:00 +0200 + +<p>This is a +<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a> +on my +<a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">previous +work</a> on +<a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging +all</a> the computer related LDAP objects in Debian Edu.</p> + +<p>As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.</p> + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +<p><strong>powerdns</strong></p> + +<a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues +on how to</a> set up PowerDNS to use a LDAP backend is available on +the web. + +<p>PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.</p> + +<p>In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:</p> + +<blockquote><pre> +ldapsearch -h ldap \ + -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap \ + -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)' + dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \ + hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \ + srvrecord naptrrecord modifytimestamp +</pre></blockquote> + +<p>In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.</p> + +<blockquote><pre> +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain +objectclass: domainrelatedobject +dc: tjener +arecord: 10.0.2.2 +associateddomain: tjener.intern + +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain2 +objectclass: domainrelatedobject +dc: 2 +ptrrecord: tjener.intern +associateddomain: 2.2.0.10.in-addr.arpa +</pre></blockquote> + +<p>In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.</p> + +<p>The forward and reverse searches can be simulated using ldapsearch +like this:</p> + +<blockquote><pre> +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp +</pre></blockquote> + +<p>In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.</p> + +<p>A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.</p> + +<p>The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p> + +<p>In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.</p> + +<p>There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).</p> + +<p>My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):</p> + +<blockquote><pre> +objectclass ( some-oid NAME 'dnsDomainAux' + SUP top + AUXILIARY + MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $ + DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $ + TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $ + NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $ + A6Record $ DNAMERecord + )) +</pre></blockquote> + +<p>This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.</p> + +<p><strong>ISC dhcp</strong></p> + +<p>The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.</p> + +<p>In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:</p> + +<blockquote><pre> +ldap-base-dn "dc=skole,dc=skolelinux,dc=no"; +ldap-dhcp-server-cn "dhcp"; +</pre></blockquote> + +<p>The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:</p> + +<blockquote><pre> +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no +cn: dhcp +objectClass: top +objectClass: dhcpServer +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +</pre></blockquote> + +<p>The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:</p> + +<blockquote><pre> +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: DHCP Config +objectClass: top +objectClass: dhcpService +objectClass: dhcpOptions +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no +dhcpStatements: ddns-update-style none +dhcpStatements: authoritative +dhcpOption: smtp-server code 69 = array of ip-address +dhcpOption: www-server code 72 = array of ip-address +dhcpOption: wpad-url code 252 = text +</pre></blockquote> + +<p>Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.</p> + +<p>When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:</p> + +<blockquote><pre> +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: hostname +objectClass: top +objectClass: dhcpHost +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname +</pre></blockquote> + +<p>There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +<p><strong>Conclusion</strong></p> + +<p>The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.</p> + +<p>The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.</p> + +<p>Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:</p> + +<blockquote><pre> +ou=services + cn=machine-info (dhcpService) - dhcpServiceDN points here + cn=dhcp (dhcpServer) + cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions) + cn=10.0.2.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions) + cn=192.168.0.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + ou=machines - PowerDNS base points here + cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux) +</pre></blockquote> + +<P>This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.</p> + +<p>The combined object under the machines subtree would look something +like this:</p> + +<blockquote><pre> +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no +dc: hostname +objectClass: top +objectClass: dhcpHost +objectclass: domainrelatedobject +objectclass: dnsDomainAux +associateddomain: hostname.intern +arecord: 10.11.12.13 +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname.intern +</pre></blockquote> + +</p>One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.</p> + + + diff --git a/blog/tags/debian/index.html b/blog/tags/debian/index.html index a694247c57..ff64623cdd 100644 --- a/blog/tags/debian/index.html +++ b/blog/tags/debian/index.html @@ -1973,6 +1973,339 @@ please contact us on debian-edu@lists.debian.org.

    + Tags: debian, debian edu, english, ldap, nuug. + +
    + +
    + +
    + +
    + 2010-07-17 21:00 +
    + +
    + +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    + +
    +
    + + + Tags: debian, debian edu, english, ldap, nuug.
    @@ -2004,7 +2337,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -2061,11 +2394,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -2073,7 +2406,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -2083,7 +2416,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/english/english.rss b/blog/tags/english/english.rss index 8687fc630d..e52eca4735 100644 --- a/blog/tags/english/english.rss +++ b/blog/tags/english/english.rss @@ -2475,5 +2475,325 @@ please contact us on debian-edu@lists.debian.org.</p> + + What are they searching for - PowerDNS and ISC DHCP in LDAP + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + Sat, 17 Jul 2010 21:00:00 +0200 + +<p>This is a +<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a> +on my +<a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">previous +work</a> on +<a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging +all</a> the computer related LDAP objects in Debian Edu.</p> + +<p>As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.</p> + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +<p><strong>powerdns</strong></p> + +<a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues +on how to</a> set up PowerDNS to use a LDAP backend is available on +the web. + +<p>PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.</p> + +<p>In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:</p> + +<blockquote><pre> +ldapsearch -h ldap \ + -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap \ + -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)' + dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \ + hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \ + srvrecord naptrrecord modifytimestamp +</pre></blockquote> + +<p>In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.</p> + +<blockquote><pre> +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain +objectclass: domainrelatedobject +dc: tjener +arecord: 10.0.2.2 +associateddomain: tjener.intern + +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain2 +objectclass: domainrelatedobject +dc: 2 +ptrrecord: tjener.intern +associateddomain: 2.2.0.10.in-addr.arpa +</pre></blockquote> + +<p>In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.</p> + +<p>The forward and reverse searches can be simulated using ldapsearch +like this:</p> + +<blockquote><pre> +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp +</pre></blockquote> + +<p>In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.</p> + +<p>A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.</p> + +<p>The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p> + +<p>In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.</p> + +<p>There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).</p> + +<p>My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):</p> + +<blockquote><pre> +objectclass ( some-oid NAME 'dnsDomainAux' + SUP top + AUXILIARY + MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $ + DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $ + TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $ + NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $ + A6Record $ DNAMERecord + )) +</pre></blockquote> + +<p>This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.</p> + +<p><strong>ISC dhcp</strong></p> + +<p>The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.</p> + +<p>In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:</p> + +<blockquote><pre> +ldap-base-dn "dc=skole,dc=skolelinux,dc=no"; +ldap-dhcp-server-cn "dhcp"; +</pre></blockquote> + +<p>The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:</p> + +<blockquote><pre> +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no +cn: dhcp +objectClass: top +objectClass: dhcpServer +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +</pre></blockquote> + +<p>The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:</p> + +<blockquote><pre> +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: DHCP Config +objectClass: top +objectClass: dhcpService +objectClass: dhcpOptions +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no +dhcpStatements: ddns-update-style none +dhcpStatements: authoritative +dhcpOption: smtp-server code 69 = array of ip-address +dhcpOption: www-server code 72 = array of ip-address +dhcpOption: wpad-url code 252 = text +</pre></blockquote> + +<p>Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.</p> + +<p>When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:</p> + +<blockquote><pre> +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: hostname +objectClass: top +objectClass: dhcpHost +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname +</pre></blockquote> + +<p>There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +<p><strong>Conclusion</strong></p> + +<p>The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.</p> + +<p>The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.</p> + +<p>Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:</p> + +<blockquote><pre> +ou=services + cn=machine-info (dhcpService) - dhcpServiceDN points here + cn=dhcp (dhcpServer) + cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions) + cn=10.0.2.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions) + cn=192.168.0.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + ou=machines - PowerDNS base points here + cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux) +</pre></blockquote> + +<P>This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.</p> + +<p>The combined object under the machines subtree would look something +like this:</p> + +<blockquote><pre> +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no +dc: hostname +objectClass: top +objectClass: dhcpHost +objectclass: domainrelatedobject +objectclass: dnsDomainAux +associateddomain: hostname.intern +arecord: 10.11.12.13 +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname.intern +</pre></blockquote> + +</p>One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.</p> + + + diff --git a/blog/tags/english/index.html b/blog/tags/english/index.html index 0532b69065..d77114bd56 100644 --- a/blog/tags/english/index.html +++ b/blog/tags/english/index.html @@ -3082,6 +3082,339 @@ please contact us on debian-edu@lists.debian.org.

    + Tags: debian, debian edu, english, ldap, nuug. + +
    + +
    + +
    + +
    + 2010-07-17 21:00 +
    + +
    + +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    + +
    +
    + + + Tags: debian, debian edu, english, ldap, nuug.
    @@ -3113,7 +3446,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -3170,11 +3503,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -3182,7 +3515,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -3192,7 +3525,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/fiksgatami/index.html b/blog/tags/fiksgatami/index.html index e1c21fab8f..391a96aa7d 100644 --- a/blog/tags/fiksgatami/index.html +++ b/blog/tags/fiksgatami/index.html @@ -86,7 +86,7 @@ med dem. Dette blir bra.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -143,11 +143,11 @@ med dem. Dette blir bra.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -155,7 +155,7 @@ med dem. Dette blir bra.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -165,7 +165,7 @@ med dem. Dette blir bra.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/fildeling/index.html b/blog/tags/fildeling/index.html index aa7f14ba48..bc451f88e3 100644 --- a/blog/tags/fildeling/index.html +++ b/blog/tags/fildeling/index.html @@ -350,7 +350,7 @@ anstrenge oss for Ã¥ beholde.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -407,11 +407,11 @@ anstrenge oss for Ã¥ beholde.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -419,7 +419,7 @@ anstrenge oss for Ã¥ beholde.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -429,7 +429,7 @@ anstrenge oss for Ã¥ beholde.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/kart/index.html b/blog/tags/kart/index.html index 358f4b8433..9a26c4db84 100644 --- a/blog/tags/kart/index.html +++ b/blog/tags/kart/index.html @@ -174,7 +174,7 @@ er ubrukelig til dette.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -231,11 +231,11 @@ er ubrukelig til dette.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -243,7 +243,7 @@ er ubrukelig til dette.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -253,7 +253,7 @@ er ubrukelig til dette.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/ldap/index.html b/blog/tags/ldap/index.html index 0a24456ec7..080ea3a54f 100644 --- a/blog/tags/ldap/index.html +++ b/blog/tags/ldap/index.html @@ -609,6 +609,339 @@ please contact us on debian-edu@lists.debian.org.

    + Tags: debian, debian edu, english, ldap, nuug. + +
    + +
    + +
    + +
    + 2010-07-17 21:00 +
    + +
    + +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    + +
    +
    + + + Tags: debian, debian edu, english, ldap, nuug.
    @@ -640,7 +973,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -697,11 +1030,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -709,7 +1042,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -719,7 +1052,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/ldap/ldap.rss b/blog/tags/ldap/ldap.rss index d48a096d1c..ba2d48fad2 100644 --- a/blog/tags/ldap/ldap.rss +++ b/blog/tags/ldap/ldap.rss @@ -509,5 +509,325 @@ please contact us on debian-edu@lists.debian.org.</p> + + What are they searching for - PowerDNS and ISC DHCP in LDAP + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + Sat, 17 Jul 2010 21:00:00 +0200 + +<p>This is a +<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a> +on my +<a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">previous +work</a> on +<a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging +all</a> the computer related LDAP objects in Debian Edu.</p> + +<p>As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.</p> + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +<p><strong>powerdns</strong></p> + +<a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues +on how to</a> set up PowerDNS to use a LDAP backend is available on +the web. + +<p>PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.</p> + +<p>In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:</p> + +<blockquote><pre> +ldapsearch -h ldap \ + -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap \ + -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)' + dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \ + hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \ + srvrecord naptrrecord modifytimestamp +</pre></blockquote> + +<p>In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.</p> + +<blockquote><pre> +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain +objectclass: domainrelatedobject +dc: tjener +arecord: 10.0.2.2 +associateddomain: tjener.intern + +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain2 +objectclass: domainrelatedobject +dc: 2 +ptrrecord: tjener.intern +associateddomain: 2.2.0.10.in-addr.arpa +</pre></blockquote> + +<p>In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.</p> + +<p>The forward and reverse searches can be simulated using ldapsearch +like this:</p> + +<blockquote><pre> +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp +</pre></blockquote> + +<p>In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.</p> + +<p>A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.</p> + +<p>The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p> + +<p>In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.</p> + +<p>There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).</p> + +<p>My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):</p> + +<blockquote><pre> +objectclass ( some-oid NAME 'dnsDomainAux' + SUP top + AUXILIARY + MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $ + DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $ + TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $ + NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $ + A6Record $ DNAMERecord + )) +</pre></blockquote> + +<p>This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.</p> + +<p><strong>ISC dhcp</strong></p> + +<p>The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.</p> + +<p>In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:</p> + +<blockquote><pre> +ldap-base-dn "dc=skole,dc=skolelinux,dc=no"; +ldap-dhcp-server-cn "dhcp"; +</pre></blockquote> + +<p>The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:</p> + +<blockquote><pre> +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no +cn: dhcp +objectClass: top +objectClass: dhcpServer +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +</pre></blockquote> + +<p>The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:</p> + +<blockquote><pre> +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: DHCP Config +objectClass: top +objectClass: dhcpService +objectClass: dhcpOptions +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no +dhcpStatements: ddns-update-style none +dhcpStatements: authoritative +dhcpOption: smtp-server code 69 = array of ip-address +dhcpOption: www-server code 72 = array of ip-address +dhcpOption: wpad-url code 252 = text +</pre></blockquote> + +<p>Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.</p> + +<p>When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:</p> + +<blockquote><pre> +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: hostname +objectClass: top +objectClass: dhcpHost +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname +</pre></blockquote> + +<p>There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +<p><strong>Conclusion</strong></p> + +<p>The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.</p> + +<p>The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.</p> + +<p>Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:</p> + +<blockquote><pre> +ou=services + cn=machine-info (dhcpService) - dhcpServiceDN points here + cn=dhcp (dhcpServer) + cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions) + cn=10.0.2.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions) + cn=192.168.0.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + ou=machines - PowerDNS base points here + cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux) +</pre></blockquote> + +<P>This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.</p> + +<p>The combined object under the machines subtree would look something +like this:</p> + +<blockquote><pre> +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no +dc: hostname +objectClass: top +objectClass: dhcpHost +objectclass: domainrelatedobject +objectclass: dnsDomainAux +associateddomain: hostname.intern +arecord: 10.11.12.13 +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname.intern +</pre></blockquote> + +</p>One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.</p> + + + diff --git a/blog/tags/lenker/index.html b/blog/tags/lenker/index.html index 14f71c32b9..84539fdbd9 100644 --- a/blog/tags/lenker/index.html +++ b/blog/tags/lenker/index.html @@ -86,7 +86,7 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -143,11 +143,11 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -155,7 +155,7 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -165,7 +165,7 @@ Word 2007 hÃ¥ndterer ODF dÃ¥rlig
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/ltsp/index.html b/blog/tags/ltsp/index.html index 397d2b5adc..4329810750 100644 --- a/blog/tags/ltsp/index.html +++ b/blog/tags/ltsp/index.html @@ -82,7 +82,7 @@ of these cards.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -139,11 +139,11 @@ of these cards.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -151,7 +151,7 @@ of these cards.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -161,7 +161,7 @@ of these cards.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/multimedia/index.html b/blog/tags/multimedia/index.html index c56b905627..504b4ca097 100644 --- a/blog/tags/multimedia/index.html +++ b/blog/tags/multimedia/index.html @@ -306,7 +306,7 @@ politidirektoratet om patentproblemer i Theora).

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -363,11 +363,11 @@ politidirektoratet om patentproblemer i Theora).

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -375,7 +375,7 @@ politidirektoratet om patentproblemer i Theora).

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -385,7 +385,7 @@ politidirektoratet om patentproblemer i Theora).

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/norsk/index.html b/blog/tags/norsk/index.html index fc29d1e3db..5b394b994c 100644 --- a/blog/tags/norsk/index.html +++ b/blog/tags/norsk/index.html @@ -3570,7 +3570,7 @@ offentlig myndighet?

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -3627,11 +3627,11 @@ offentlig myndighet?

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -3639,7 +3639,7 @@ offentlig myndighet?

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -3649,7 +3649,7 @@ offentlig myndighet?

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/nuug/index.html b/blog/tags/nuug/index.html index 86733562b3..bea1534564 100644 --- a/blog/tags/nuug/index.html +++ b/blog/tags/nuug/index.html @@ -4698,6 +4698,339 @@ please contact us on debian-edu@lists.debian.org.

    + Tags: debian, debian edu, english, ldap, nuug. + +
    + +
    + +
    + +
    + 2010-07-17 21:00 +
    + +
    + +

    This is a +followup +on my +previous +work on +merging +all the computer related LDAP objects in Debian Edu.

    + +

    As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.

    + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +

    powerdns

    + +Clues +on how to set up PowerDNS to use a LDAP backend is available on +the web. + +

    PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.

    + +

    In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:

    + +
    +ldapsearch -h ldap \
    +  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap \
    +  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
    +  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
    +  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
    +  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
    +  srvrecord naptrrecord modifytimestamp
    +
    + +

    In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.

    + +
    +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain
    +objectclass: domainrelatedobject
    +dc: tjener
    +arecord: 10.0.2.2
    +associateddomain: tjener.intern
    +
    +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
    +objectclass: top
    +objectclass: dnsdomain2
    +objectclass: domainrelatedobject
    +dc: 2
    +ptrrecord: tjener.intern
    +associateddomain: 2.2.0.10.in-addr.arpa
    +
    + +

    In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.

    + +

    The forward and reverse searches can be simulated using ldapsearch +like this:

    + +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
    +  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
    +  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
    +  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
    +  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
    +
    +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
    +  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
    +
    + +

    In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.

    + +

    A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.

    + +

    The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.

    + +

    In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.

    + +

    There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).

    + +

    My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):

    + +
    +objectclass ( some-oid NAME 'dnsDomainAux'
    +    SUP top
    +    AUXILIARY
    +    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
    +          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
    +          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
    +          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
    +          A6Record $ DNAMERecord
    +    ))
    +
    + +

    This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.

    + +

    ISC dhcp

    + +

    The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.

    + +

    In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:

    + +
    +ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
    +ldap-dhcp-server-cn "dhcp";
    +
    + +

    The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:

    + +
    +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
    +cn: dhcp
    +objectClass: top
    +objectClass: dhcpServer
    +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +
    + +

    The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:

    + +
    +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: DHCP Config
    +objectClass: top
    +objectClass: dhcpService
    +objectClass: dhcpOptions
    +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
    +dhcpStatements: ddns-update-style none
    +dhcpStatements: authoritative
    +dhcpOption: smtp-server code 69 = array of ip-address
    +dhcpOption: www-server code 72 = array of ip-address
    +dhcpOption: wpad-url code 252 = text
    +
    + +

    Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.

    + +

    When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:

    + +
    +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
    +cn: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname
    +
    + +

    There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +

    Conclusion

    + +

    The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.

    + +

    The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.

    + +

    Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:

    + +
    +ou=services
    +  cn=machine-info (dhcpService) - dhcpServiceDN points here
    +    cn=dhcp (dhcpServer)
    +    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
    +      cn=10.0.2.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
    +      cn=192.168.0.0 (dhcpSubnet)
    +        cn=group1 (dhcpGroup/dhcpOptions)
    +    ou=machines - PowerDNS base points here
    +      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
    +
    + +

    This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.

    + +

    The combined object under the machines subtree would look something +like this:

    + +
    +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
    +dc: hostname
    +objectClass: top
    +objectClass: dhcpHost
    +objectclass: domainrelatedobject
    +objectclass: dnsDomainAux
    +associateddomain: hostname.intern
    +arecord: 10.11.12.13
    +dhcpHWAddress: ethernet 00:00:00:00:00:00
    +dhcpStatements: fixed-address hostname.intern
    +
    + +

    One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.

    + +
    +
    + + + Tags: debian, debian edu, english, ldap, nuug.
    @@ -4729,7 +5062,7 @@ please contact us on debian-edu@lists.debian.org.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -4786,11 +5119,11 @@ please contact us on debian-edu@lists.debian.org.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -4798,7 +5131,7 @@ please contact us on debian-edu@lists.debian.org.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -4808,7 +5141,7 @@ please contact us on debian-edu@lists.debian.org.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/nuug/nuug.rss b/blog/tags/nuug/nuug.rss index 03f27a294a..a35b1bbc67 100644 --- a/blog/tags/nuug/nuug.rss +++ b/blog/tags/nuug/nuug.rss @@ -3610,5 +3610,325 @@ please contact us on debian-edu@lists.debian.org.</p> + + What are they searching for - PowerDNS and ISC DHCP in LDAP + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html + Sat, 17 Jul 2010 21:00:00 +0200 + +<p>This is a +<a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a> +on my +<a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">previous +work</a> on +<a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging +all</a> the computer related LDAP objects in Debian Edu.</p> + +<p>As a step to try to see if it possible to merge the DNS and DHCP +LDAP objects, I have had a look at how the packages pdns-backend-ldap +and dhcp3-server-ldap in Debian use the LDAP server. The two +implementations are quite different in how they use LDAP.</p> + +To get this information, I started slapd with debugging enabled and +dumped the debug output to a file to get the LDAP searches performed +on a Debian Edu main-server. Here is a summary. + +<p><strong>powerdns</strong></p> + +<a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues +on how to</a> set up PowerDNS to use a LDAP backend is available on +the web. + +<p>PowerDNS have two modes of operation using LDAP as its backend. +One "strict" mode where the forward and reverse DNS lookups are done +using the same LDAP objects, and a "tree" mode where the forward and +reverse entries are in two different subtrees in LDAP with a structure +based on the DNS names, as in tjener.intern and +2.2.0.10.in-addr.arpa.</p> + +<p>In tree mode, the server is set up to use a LDAP subtree as its +base, and uses a "base" scoped search for the DNS name by adding +"dc=tjener,dc=intern," to the base with a filter for +"(associateddomain=tjener.intern)" for the forward entry and +"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for +"(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For +forward entries, it is looking for attributes named dnsttl, arecord, +nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, +txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, +srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, +ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, +spfrecord and modifytimestamp. For reverse entries it is looking for +the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, +ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, +locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent +ldapsearch commands could look like this:</p> + +<blockquote><pre> +ldapsearch -h ldap \ + -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap \ + -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \ + -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)' + dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \ + hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \ + srvrecord naptrrecord modifytimestamp +</pre></blockquote> + +<p>In Debian Edu/Lenny, the PowerDNS tree mode is used with +ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two +example LDAP objects used there. In addition to these objects, the +parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no +also exist.</p> + +<blockquote><pre> +dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain +objectclass: domainrelatedobject +dc: tjener +arecord: 10.0.2.2 +associateddomain: tjener.intern + +dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no +objectclass: top +objectclass: dnsdomain2 +objectclass: domainrelatedobject +dc: 2 +ptrrecord: tjener.intern +associateddomain: 2.2.0.10.in-addr.arpa +</pre></blockquote> + +<p>In strict mode, the server behaves differently. When looking for +forward DNS entries, it is doing a "subtree" scoped search with the +same base as in the tree mode for a object with filter +"(associateddomain=tjener.intern)" and requests the attributes dnsttl, +arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, +mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, +naptrrecord and modifytimestamp. For reverse entires it also do a +subtree scoped search but this time the filter is "(arecord=10.0.2.2)" +and the requested attributes are associateddomain, dnsttl and +modifytimestamp. In short, in strict mode the objects with ptrrecord +go away, and the arecord attribute in the forward object is used +instead.</p> + +<p>The forward and reverse searches can be simulated using ldapsearch +like this:</p> + +<blockquote><pre> +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \ + cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \ + rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \ + nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \ + rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp + +ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \ + '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp +</pre></blockquote> + +<p>In addition to the forward and reverse searches , there is also a +search for SOA records, which behave similar to the forward and +reverse lookups.</p> + +<p>A thing to note with the PowerDNS behaviour is that it do not +specify any objectclass names, and instead look for the attributes it +need to generate a DNS reply. This make it able to work with any +objectclass that provide the needed attributes.</p> + +<p>The attributes are normally provided in the cosine (RFC 1274) and +dnsdomain2 schemas. The latter is used for reverse entries like +ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p> + +<p>In Debian Edu, we have created DNS objects using the object classes +dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS +attributes) and domainrelatedobject (for associatedDomain). The use +of structural object classes make it impossible to combine these +classes with the object classes used by DHCP.</p> + +<p>There are other schemas that could be used too, for example the +dnszone structural object class used by Gosa and bind-sdb for the DNS +attributes combined with the domainrelatedobject object class, but in +this case some unused attributes would have to be included as well +(zonename and relativedomainname).</p> + +<p>My proposal for Debian Edu would be to switch PowerDNS to strict +mode and not use any of the existing objectclasses (dnsdomain, +dnsdomain2 and dnszone) when one want to combine the DNS information +with DHCP information, and instead create a auxiliary object class +defined something like this (using the attributes defined for +dnsdomain and dnsdomain2 or dnszone):</p> + +<blockquote><pre> +objectclass ( some-oid NAME 'dnsDomainAux' + SUP top + AUXILIARY + MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $ + DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $ + TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $ + NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $ + A6Record $ DNAMERecord + )) +</pre></blockquote> + +<p>This will allow any object to become a DNS entry when combined with +the domainrelatedobject object class, and allow any entity to include +all the attributes PowerDNS wants. I've sent an email to the PowerDNS +developers asking for their view on this schema and if they are +interested in providing such schema with PowerDNS, and I hope my +message will be accepted into their mailing list soon.</p> + +<p><strong>ISC dhcp</strong></p> + +<p>The DHCP server searches for specific objectclass and requests all +the object attributes, and then uses the attributes it want. This +make it harder to figure out exactly what attributes are used, but +thanks to the working example in Debian Edu I can at least get an idea +what is needed without having to read the source code.</p> + +<p>In the DHCP server configuration, the LDAP base to use and the +search filter to use to locate the correct dhcpServer entity is +stored. These are the relevant entries from +/etc/dhcp3/dhcpd.conf:</p> + +<blockquote><pre> +ldap-base-dn "dc=skole,dc=skolelinux,dc=no"; +ldap-dhcp-server-cn "dhcp"; +</pre></blockquote> + +<p>The DHCP server uses this information to nest all the DHCP +configuration it need. The cn "dhcp" is located using the given LDAP +base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The +search result is this entry:</p> + +<blockquote><pre> +dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no +cn: dhcp +objectClass: top +objectClass: dhcpServer +dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +</pre></blockquote> + +<p>The content of the dhcpServiceDN attribute is next used to locate the +subtree with DHCP configuration. The DHCP configuration subtree base +is located using a base scope search with base "cn=DHCP +Config,dc=skole,dc=skolelinux,dc=no" and filter +"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". +The search result is this entry:</p> + +<blockquote><pre> +dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: DHCP Config +objectClass: top +objectClass: dhcpService +objectClass: dhcpOptions +dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no +dhcpStatements: ddns-update-style none +dhcpStatements: authoritative +dhcpOption: smtp-server code 69 = array of ip-address +dhcpOption: www-server code 72 = array of ip-address +dhcpOption: wpad-url code 252 = text +</pre></blockquote> + +<p>Next, the entire subtree is processed, one level at the time. When +all the DHCP configuration is loaded, it is ready to receive requests. +The subtree in Debian Edu contain objects with object classes +top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, +top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options +and information about netmasks, dynamic range etc. Leaving out the +details here because it is not relevant for the focus of my +investigation, which is to see if it is possible to merge dns and dhcp +related computer objects.</p> + +<p>When a DHCP request come in, LDAP is searched for the MAC address +of the client (00:00:00:00:00:00 in this example), using a subtree +scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as +the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet +00:00:00:00:00:00))" as the filter. This is what a host object look +like:</p> + +<blockquote><pre> +dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no +cn: hostname +objectClass: top +objectClass: dhcpHost +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname +</pre></blockquote> + +<p>There is less flexiblity in the way LDAP searches are done here. +The object classes need to have fixed names, and the configuration +need to be stored in a fairly specific LDAP structure. On the +positive side, the invidiual dhcpHost entires can be anywhere without +the DN pointed to by the dhcpServer entries. The latter should make +it possible to group all host entries in a subtree next to the +configuration entries, and this subtree can also be shared with the +DNS server if the schema proposed above is combined with the dhcpHost +structural object class. + +<p><strong>Conclusion</strong></p> + +<p>The PowerDNS implementation seem to be very flexible when it come +to which LDAP schemas to use. While its "tree" mode is rigid when it +come to the the LDAP structure, the "strict" mode is very flexible, +allowing DNS objects to be stored anywhere under the base cn specified +in the configuration.</p> + +<p>The DHCP implementation on the other hand is very inflexible, both +regarding which LDAP schemas to use and which LDAP structure to use. +I guess one could implement ones own schema, as long as the +objectclasses and attributes have the names used, but this do not +really help when the DHCP subtree need to have a fairly fixed +structure.</p> + +<p>Based on the observed behaviour, I suspect a LDAP structure like +this might work for Debian Edu:</p> + +<blockquote><pre> +ou=services + cn=machine-info (dhcpService) - dhcpServiceDN points here + cn=dhcp (dhcpServer) + cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions) + cn=10.0.2.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions) + cn=192.168.0.0 (dhcpSubnet) + cn=group1 (dhcpGroup/dhcpOptions) + ou=machines - PowerDNS base points here + cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux) +</pre></blockquote> + +<P>This is not tested yet. If the DHCP server require the dhcpHost +entries to be in the dhcpGroup subtrees, the entries can be stored +there instead of a common machines subtree, and the PowerDNS base +would have to be moved one level up to the machine-info subtree.</p> + +<p>The combined object under the machines subtree would look something +like this:</p> + +<blockquote><pre> +dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no +dc: hostname +objectClass: top +objectClass: dhcpHost +objectclass: domainrelatedobject +objectclass: dnsDomainAux +associateddomain: hostname.intern +arecord: 10.11.12.13 +dhcpHWAddress: ethernet 00:00:00:00:00:00 +dhcpStatements: fixed-address hostname.intern +</pre></blockquote> + +</p>One could even add the LTSP configuration associated with a given +machine, as long as the required attributes are available in a +auxiliary object class.</p> + + + diff --git a/blog/tags/opphavsrett/index.html b/blog/tags/opphavsrett/index.html index ef134df639..c23c991cab 100644 --- a/blog/tags/opphavsrett/index.html +++ b/blog/tags/opphavsrett/index.html @@ -730,7 +730,7 @@ anstrenge oss for Ã¥ beholde.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -787,11 +787,11 @@ anstrenge oss for Ã¥ beholde.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -799,7 +799,7 @@ anstrenge oss for Ã¥ beholde.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -809,7 +809,7 @@ anstrenge oss for Ã¥ beholde.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/personvern/index.html b/blog/tags/personvern/index.html index b05a7a3ab3..658bcee9a1 100644 --- a/blog/tags/personvern/index.html +++ b/blog/tags/personvern/index.html @@ -671,7 +671,7 @@ hÃ¥ndheves strengt.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -728,11 +728,11 @@ hÃ¥ndheves strengt.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -740,7 +740,7 @@ hÃ¥ndheves strengt.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -750,7 +750,7 @@ hÃ¥ndheves strengt.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/reprap/index.html b/blog/tags/reprap/index.html index 8629933b08..a0088c2102 100644 --- a/blog/tags/reprap/index.html +++ b/blog/tags/reprap/index.html @@ -523,7 +523,7 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -580,11 +580,11 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -592,7 +592,7 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -602,7 +602,7 @@ kommer til Ã¥ bruke denne plasttypen som hÃ¥ndterer temperaturer mellom
  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/rss/index.html b/blog/tags/rss/index.html index 924df7b55d..02b01c17f7 100644 --- a/blog/tags/rss/index.html +++ b/blog/tags/rss/index.html @@ -71,7 +71,7 @@ forsøk.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -128,11 +128,11 @@ forsøk.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -140,7 +140,7 @@ forsøk.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -150,7 +150,7 @@ forsøk.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/sikkerhet/index.html b/blog/tags/sikkerhet/index.html index a063893807..8a5e6e450b 100644 --- a/blog/tags/sikkerhet/index.html +++ b/blog/tags/sikkerhet/index.html @@ -605,7 +605,7 @@ anstrenge oss for Ã¥ beholde.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -662,11 +662,11 @@ anstrenge oss for Ã¥ beholde.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -674,7 +674,7 @@ anstrenge oss for Ã¥ beholde.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -684,7 +684,7 @@ anstrenge oss for Ã¥ beholde.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/sitesummary/index.html b/blog/tags/sitesummary/index.html index fb46bc54ee..9e81f7b87f 100644 --- a/blog/tags/sitesummary/index.html +++ b/blog/tags/sitesummary/index.html @@ -214,7 +214,7 @@ collector.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -271,11 +271,11 @@ collector.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -283,7 +283,7 @@ collector.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -293,7 +293,7 @@ collector.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/standard/index.html b/blog/tags/standard/index.html index e32f7e9b5e..3d00301d1f 100644 --- a/blog/tags/standard/index.html +++ b/blog/tags/standard/index.html @@ -707,7 +707,7 @@ Windows. This is great.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -764,11 +764,11 @@ Windows. This is great.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -776,7 +776,7 @@ Windows. This is great.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -786,7 +786,7 @@ Windows. This is great.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/stavekontroll/index.html b/blog/tags/stavekontroll/index.html index c75bad928d..ab9b3dda0b 100644 --- a/blog/tags/stavekontroll/index.html +++ b/blog/tags/stavekontroll/index.html @@ -91,7 +91,7 @@ stavekontrollen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -148,11 +148,11 @@ stavekontrollen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -160,7 +160,7 @@ stavekontrollen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -170,7 +170,7 @@ stavekontrollen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/video/index.html b/blog/tags/video/index.html index 11f524322b..bb5263b857 100644 --- a/blog/tags/video/index.html +++ b/blog/tags/video/index.html @@ -534,7 +534,7 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -591,11 +591,11 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -603,7 +603,7 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -613,7 +613,7 @@ meg, Tollef og alle andre de som deltok pÃ¥ møtet pÃ¥ TV.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/vitenskap/index.html b/blog/tags/vitenskap/index.html index 218ea44ac1..924d3cf94a 100644 --- a/blog/tags/vitenskap/index.html +++ b/blog/tags/vitenskap/index.html @@ -136,7 +136,7 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -193,11 +193,11 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -205,7 +205,7 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -215,7 +215,7 @@ skyskrapere. Takke meg til en tur til mÃ¥nen.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • diff --git a/blog/tags/web/index.html b/blog/tags/web/index.html index 7590f44036..0dd860de70 100644 --- a/blog/tags/web/index.html +++ b/blog/tags/web/index.html @@ -341,7 +341,7 @@ strongly recommend this book.

  • June (14)
  • -
  • July (6)
  • +
  • July (7)
  • @@ -398,11 +398,11 @@ strongly recommend this book.

  • bootsystem (10)
  • -
  • debian (33)
  • +
  • debian (34)
  • -
  • debian edu (33)
  • +
  • debian edu (34)
  • -
  • english (46)
  • +
  • english (47)
  • fiksgatami (1)
  • @@ -410,7 +410,7 @@ strongly recommend this book.

  • kart (2)
  • -
  • ldap (7)
  • +
  • ldap (8)
  • lenker (1)
  • @@ -420,7 +420,7 @@ strongly recommend this book.

  • norsk (70)
  • -
  • nuug (83)
  • +
  • nuug (84)
  • opphavsrett (13)
  • -- 2.47.2