LX-INL-INFO-net-mint9
updated sep/24/2010 15:30

Manuele netwerkconfig Linux Mint 9

Als we van Linux Mint 9 (ubuntu10.04) een server willen maken, is het noodzakelijk met vaste ip-adressen te werken. De GUI configurator, NetworkManager, laat dit toe. Die heeft echter een onhebbelijkheid: de netwerkconfiguratie wordt pas actief na inloggen.

Dat kan natuurlijk niet. Services draaien altijd op de achtergrond, en wachten op netwerk-clients calls. Op servers wordt alleen ingelogd als je het systeem wil beheren, en dan meestal nog zonder GUI.


Een andere service, de avahi-daemon, probeert eveneens dynamisch de netwerkconfiguratie bij te stellen. En daar moeten we ook wat aan doen.


In wat volgt schakelen we avahi-daemon en NetworkManager uit, en maken we een manuele configuratie.

  1. avahi-daemon en network-manager

    1. rc.d scripts verwijderen

      Verwijder de eventuele opstartscripts van avahi-daemon en network-manager:
      (network-manager heeft een andere onhebbelijkheid het opstartscript heet network-manager in kleine letters en met een koppelteken, maar de binary heet NetworkManager - andere variaties zijn ook al gezien)


      $ sudo update-rc.d -f network-manager remove
      [sudo] password for jan:
       Removing any system startup links for /etc/init.d/network-manager ...


      $ sudo update-rc.d -f avahi-daemon remove

       Removing any system startup links for /etc/init.d/avahi-daemon ...

      Waarschijnlijk gebeurt er echter helemaal niets. Deze handeling werkt alleen bij sysV compatibele linux/unix systemen, en ubuntu en Mint hebben deze werkwijze definitief verlaten in oktober 2009.

    2. upstart aanpassen

      Mint9 werkt met het pakket upstart voor zijn servicebeheer.
      upstart plaatst service-configuratiefiles in de directory /etc/init.
      Daar moeten we
      avahi-daemon.conf en network-manager.conf ofwel verwijderen met rm, ofwel aanpassen met een editor.

      Het eenvoudigst is deze compromisoplossing
      :

      je maakt een parkeerdirectory aan:

      $ sudo mkdir /etc/init.rm

      om  daarna de twee conf-files te parkeren met

      $ sudo mv -v /etc/init/avahi-daemon.conf /etc/init.rm
      $ sudo mv -v /etc/init/network-manager.conf /etc/init.rm

      Als je de services later weer wil laten opstarten kun je ze terug verplaatsen naar hun originele directory. Of beter nog, een symbolic link ernaar laten verwijzen.

    3. avahi-daemon en network-manager stoppen

      Stop daarna avahi-daemon en NetworkManager:


      $ sudo stop avahi-daemon

       * Stopping Avahi mDNS/DNS-SD Daemon avahi-daemon                [ OK ]
      $ sudo stop network-manager
       * Stopping network connection manager NetworkManager            [ OK ]


  2. ip-adres netmask gateway

    De automatische configuratieservices zijn nu uitgezet. Nu kunnen we beginnen aan de manuele configuratie.

    Pas de file /etc/network/interfaces aan, en voeg per netwerkkaart een blok toe zoals hieronder in vetjes.


    $ sudo pico /etc/network/interfaces

    auto lo

    iface lo inet loopback


    auto eth0

    iface eth0 inet static

    address 172.16.35.45

    netmask 255.255.255.0

    gateway 172.16.35.254


  3. DNS

    Pas de file /etc/resolv.conf aan en vul de juiste nameserver in:

    $ sudo pico /etc/resolv.conf


    nameserver 172.16.35.101

    search linux800.be


  4. Herstart je netwerk

    $ sudo /etc/init.d/networking restart
     * Reconfiguring network interfaces...                            [ OK ]
     * Stopping NTP server ntpd  ...done.
     * Starting NTP server ntpd  ...done.


  5. Test je ip-adres

    $ ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:60:08:56:b6:bf  
              inet addr:172.16.35.45  Bcast:172.16.35.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:739244 errors:0 dropped:0 overruns:0 frame:0
              TX packets:147347 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:191700558 (182.8 MB)  TX bytes:66834778 (63.7 MB)
              Interrupt:19 Base address:0xb800


    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:127 errors:0 dropped:0 overruns:0 frame:0
              TX packets:127 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:102236 (99.8 KB)  TX bytes:102236 (99.8 KB)


  6. Test je router

    $ route -n
    Kernel IP routing table
    Destination   Gateway       Genmask       Flags Metric  Ref  Use Iface
    169.254.0.0   0.0.0.0       255.255.0.0     U     1000   0    0  eth0
    172.16.35.0   0.0.0.0       255.255.255.0   U     0      0    0  eth0
    0.0.0.0       172.16.35.254 0.0.0.0         UG    100    0    0  eth0


  7. Test je DNS

    $ ping google.be
    PING google.be (74.125.79.99) 56(84) bytes of data.
    64 bytes from ey-in-f99.1e100.net (74.125.79.99): icmp_seq=1 ttl=50 time=28.3 ms
    64 bytes from ey-in-f99.1e100.net (74.125.79.99): icmp_seq=2 ttl=50 time=27.5 ms


    of

    $ dig
    ; <<>> DiG 9.4.2-P2 <<>>
    ;; global options:  printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43971
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 9

    ;; QUESTION SECTION:
    ;.                IN    NS

    ;; ANSWER SECTION:
    .            16259    IN    NS    b.root-servers.net.
    .            16259    IN    NS    e.root-servers.net.
    .            16259    IN    NS    c.root-servers.net.
    .            16259    IN    NS    m.root-servers.net.
    .            16259    IN    NS    j.root-servers.net.
    .            16259    IN    NS    i.root-servers.net.
    .            16259    IN    NS    k.root-servers.net.
    .            16259    IN    NS    f.root-servers.net.
    .            16259    IN    NS    a.root-servers.net.
    .            16259    IN    NS    d.root-servers.net.
    .            16259    IN    NS    h.root-servers.net.
    .            16259    IN    NS    l.root-servers.net.
    .            16259    IN    NS    g.root-servers.net.

    ;; ADDITIONAL SECTION:
    b.root-servers.net.    68485    IN    A    192.228.79.201
    m.root-servers.net.    49414    IN    A    202.12.27.33
    j.root-servers.net.    16259    IN    A    192.58.128.30
    i.root-servers.net.    16259    IN    A    192.36.148.17
    k.root-servers.net.    16259    IN    A    193.0.14.129
    f.root-servers.net.    16259    IN    A    192.5.5.241
    a.root-servers.net.    16259    IN    A    198.41.0.4
    d.root-servers.net.    16259    IN    A    128.8.10.90
    h.root-servers.net.    16259    IN    A    128.63.2.53

    ;; Query time: 16 msec
    ;; SERVER: 172.16.35.101#53(172.16.35.101)
    ;; WHEN: Tue Aug 10 20:14:51 2010
    ;; MSG SIZE  rcvd: 385

  8. controle

    De volgorde van de punten 2, 3, 4, 5 en 6 is belangrijk. Indien de network-manager niet is gestopt, kan die de dns settings in /etc/resolv.conf wijzigen en niet statische adressen toewijzen. Indien punt 2 niet goed werd uitgevoerd loop je kans na de volgende herstart weer de settings van network-manager terug te vinden.

    Herstart daarom nu je systeem en controlleer nogmaals met ifconfig, route -n en dig of je settings correct staat.

    Je kan nu met ps -A nakijken of avahi-daemon en network-manager werkelijk verdwenen zijn. (denk eraan dat het network-manager commando hoofdletters bevat /usr/sbin/NetworkManager )

    $ ps -A | grep avahi
    $ ps -A | grep etwork

    In het hogere geval zijn beide processen onbestaand.

    Tenslotte kun je nog het volgende commando intikken om zeker te zijn dat je network-manager en avahi-daemon uit de upstart configuratie zijn verdwenen: (in dit voorbeeld is de avahi-daemon verdewenen, en de network-manager niet gestart)

    $ initctl list | sort
    acpid start/running, process 1436
    alsa-mixer-save stop/waiting
    anacron stop/waiting
    apport stop/waiting
    atd start/running, process 1482
    console-setup stop/waiting
    control-alt-delete stop/waiting
    cron start/running, process 1483
    cryptdisks-enable stop/waiting
    cryptdisks-udev stop/waiting
    dbus start/running, process 1063
    dmesg stop/waiting
    ecryptfs-utils-restore stop/waiting
    ecryptfs-utils-save stop/waiting
    failsafe-x stop/waiting
    gdm start/running, process 1067
    hostname stop/waiting
    hwclock-save stop/waiting
    hwclock stop/waiting
    irqbalance stop/waiting
    module-init-tools stop/waiting
    mountall-net stop/waiting
    mountall-reboot stop/waiting
    mountall-shell stop/waiting
    mountall stop/waiting
    mounted-dev stop/waiting
    mounted-tmp stop/waiting
    mounted-varrun stop/waiting
    mysql start/running, process 1040
    networking stop/waiting
    network-interface (eth0) start/running
    network-interface (eth1) start/running
    network-interface (lo) start/running
    network-interface-security start/running
    network-interface (vboxnet0) start/running
    network-manager stop/waiting
    nmbd start/running, process 1867
    plymouth-log stop/waiting
    plymouth-splash stop/waiting
    plymouth-stop stop/waiting
    plymouth stop/waiting
    procps stop/waiting
    rcS stop/waiting
    rc stop/waiting
    rc-sysinit stop/waiting
    rsyslog start/running, process 1049
    smbd start/running, process 1034
    ssh start/running, process 1897
    tty1 start/running, process 1798
    tty2 start/running, process 1429
    tty3 start/running, process 1430
    tty4 start/running, process 1410
    tty5 start/running, process 1422
    tty6 start/running, process 1432
    udev-finish stop/waiting
    udevmonitor stop/waiting
    udev start/running, process 453
    udevtrigger stop/waiting
    ufw start/running
    upstart-udev-bridge start/running, process 449
    ureadahead-other stop/waiting
    ureadahead stop/waiting