Found at: http://linmag.no/article/articleprint/428/
|
Linux og nettverk (2. del)
|
|
Linux og nettverk (2. del)
Med ISDN har du flere muligheter. Du kan velge den litt tungvinte metoden - ISDN-kort i maskinen. Dette er ikke alltid «rett frem», men mange benytter den. Jeg har ikke til hensikt å beskrive oppsett av ISDN-kort, men henviser dere til en utmerket side på nettet som beskriver dette: http://www.linuxnorge.com/internett.php3.
Den andre måten å aksessere ISDN på med Linux er å benytte en ferdig ISDN-ruter som f.eks. Zyxel Prestige 100IH. Denne setter du så opp via serieporten og minicom med din internettleverandørs tekniske spesifikasjoner. Ruteren gir du en IP-adresse på ditt nett, som feks. 192.168.1.254. Denne adressen oppgir du så som default gateway på de maskinene du har i nettet. ISDN-ruteren kobler opp når den senser trafikk som ikke er ment for ditt nettverk og maskerer maskinene bak seg slik at du kan benytte flere maskiner mot samme internettabonnement. Utad vises kun en adresse som ruteren fikk under oppkoblingen. Prestige 100IH har i tillegg en 4-porters HUB.
Andre måter å koble seg opp med Linux på ISDN? Joda, èn til: Terminaladapter (TA). Dette kan sees på som en mellomting mellom et modem og et ISDN-kort. Det kobles til serieporten og man setter det opp som et vanlig modem som nevnt ovenfor i forbindelse med KPPP. Jeg har nedenfor tatt med et eksempel på oppsett av et slikt TA; Zyxel Omni TA128 Dual-port ISDN Terminal Adapter. Jeg brukte dette i flere år før jeg gikk over til ISDN-ruteren.
Du trenger ikke legge inn noe spesiell ISDN-programvare for å bruke et TA mot Linux. Under en evt. kompilering av kernel sier du NEI til ISDN-support.
Dette må du imidlertid ha:
* TCP-IP med PPP kompilert som modul eller fast i kjernen.
* For eksempel KPPP i KDE eller ved bruk av netconfig eller ved hjelp av diald (litt om dette senere)
konfigurasjon:
Jeg brukte både KPPP, som følger med KDE, samt scriptet ifup PPP0 (for oppringning via kommandolinjen) som følger med Red Hat. PPP-on skulle gjøre samme nytten for andre. KPPP er imidlertid meget enkelt å sette opp, og gir deg meget god kontroll på oppring, bruk og nedkobling. Å bruke et terminaladapter gjør ting meget enkelt, siden man slipper å besitte noen spesielle ISDN-kunnskaper. Man kan faktisk bruke det samme programmet for oppring som man benyttet under analogt modem, man trenger bare å legge til noen kommandoer i init-strengen som vist under:
* String #1 ATZ ========) Reset
* String #2 AT&FB40&O2 ======) B-channel protocol HDLC PPP (64 Kb)
* Alternativ string #2 AT&FB40&O2&J3 ======) B-channel protocol HDLC PPP Multilink (128 Kb)
Multilink lar deg benytte begge ISDN-kanalene og derved oppnår du 128 Kb/s mot 64 Kb/s med èn kanal. Husk imidlertid på at DOBBELTE tellerskritt løper ved multilink.
modem
Modem på Linux er heller ikke noe hokus-pokus. Noen spesielle varianter av disse kan vel skape noe hodebry, men jevnt over er det uproblematisk å koble seg opp på denne måten. De modemene som skaper store problemer er de såkallte Win-modems. Altså modemer som er en hybrid mellom et hardware- og et software modem. Denne softwaren er da beregnet kommende fra Windows, og uten dette; Lite modembruk. Imidlertid er selv dette ikke umulig i dagens Linux-verden, og jeg vil anbefale deg som måtte ha et slikt et å titte her for tips: http://linmodems.org/
For dere andre med «normale» modemer er det ikke store utfordringen å koble seg til internett. Sørg for at PPP er installert, og som jeg nevnte i forbindelse med GSM; Hos meg med RH 7.2 betyr det PPP-2.4.1-2. Etter at du har verifisert dette ville jeg ta en titt her: http://www.linuxnorge.com/mal/mal.php3?/internett/Modem/KPPP_internett.html. Nok en flott side om oppsett av PPP på modem via KDE’s KPPP. For de av dere som benytter Gnome vil lignende verktøy finnes i form av programmet linuxconf m.fl.
Bruk av modem betyr at man må klikke på knapper for å få ringt opp internett. Dette er jo ikke akkurat noen luksus? Her kommer imidlertid diald inn som en reddende engel. Programmet legger seg mellom din PPP-device og de programmene du benytter for nettverksarbeide.
bruk og oppsett av diald
Først lastet jeg ned diald fra http://diald.sourceforge.net/.
Deretter hentet jeg dialmon-0.8 fra ftp://195.92.31.34/pub/dialmon-0.8/dialmon-0.8.tgz. Sistnevnte er et lite kontrollpanel som viser status for diald, samt at det lar deg ta linken opp eller ned, uten å måtte vente på normal timeout. I tillegg lar dialmon deg sette opp hvem på systemet som skal kunne ta opp eller ned linken osv.
Etter at diald er kompilert og installert behøver du følgende filer:
/etc/diald/connect *
/etc/diald/diald.conf *
/etc/diald/diald.defs
/etc/diald/phone.filter
samt at du må ha SLIP installert i tillegg til PPP. Dette siden diald benytter slip-interfacet i forbindelse med oppkoblingen av PPP. Har du en ren installasjon av RH 7.2 vil slip være tilgjengelig som modul. Har du ikke dette må du kompilere om kjernen og legge til PPP og slip under nettverksenheter før diald vil fungere.
De to som er merket med en stjerne må forandres for å få ting til å spille.
/etc/diald/connect
#
part of /etc/diald/connect
#!/bin/sh
# Copyright (c) 1996, Eric Schenk.
#
# This script is intended to give an example of a connection script that
# uses the “message” facility of diald to communicate progress through
# the dialing process to a diald monitoring program such as dctrl or diald-top.
# It also reports progress to the system logs. This can be useful if you
# are seeing failed attempts to connect and you want to know when and why
# they are failing.
#
# This script requires the use of chat-1.9 or greater for full
# functionality. It should work with older versions of chat,
# but it will not be able to report the reason for a connection failure.
# Configuration parameters
# The initialization string for your modem
MODEM_INIT=”AT&FB40&O2"
# The phone number to dial
PHONE_NUMBER=”xxxxxxxx”
# The chat sequence to recognize that the remote system
# is asking for your user name.
USER_CHAT_SEQ=”sername:”
# The string to send in response to the request for your user name.
# Set this to empty if you are using PAP or CHAP.
USER_NAME=””
# The chat sequence to recongnize that the remote system
# is asking for your password.
PASSWD_CHAT_SEQ=”ssword:”
# The string to send in response to the request for your password.
PASSWORD=””
# The prompt the remote system will give once you are logged in
# If you do not define this then the script will assume that
# there is no command to be issued to start up the remote protocol.
PROMPT=””
# The command to issue to start up the remote protocol
PROTOCOL_START=”PPP”
#
/etc/diald/diald.conf:
#
# diald.conf for username
#
# Select the demand dial rules you want
# Bring the link up for anything, timeout in seconds. Use this for
# when the dompute has its own phone line
accept any 420 any
# Use the filter file that comes with diald. This can be a bit drastic,
# so use the filter below
# include /usr/lib/diald/standard.filter
# or use the filter that brings the link up for use on a line shared with
# a phone
# include /etc/diald/phone.filter
# stuff to set up the diald connection
device /dev/cua1
speed 115200
lock
mode PPP
# We may get another terminal server, thus use
# ‘dynamic’ and do not tell PPP the IP number of the other end
# For use with gated, comment out the ‘dynamic’ option, and
# set remote to be the same as local
dynamic
local 10.0.0.1
remote 10.0.0.2 #Dersom du har statisk IP-adresse må du slette dynamic og forandre til de gjeldende adresse
pppd-options name username :
# Delay sending packets for 5 seconds after PPP device opens -
# this allows routes to be established back to the appropriate dialup server.
up-delay 5
defaultroute
modem
crtscts
debug Kun dersom du trenger ekstra debug-info. Husk da å legge inn entry i /etc/syslog.conf
connect /etc/diald/connect
redial-timeout 10
fifo /etc/diald/diald.ctl
# restrict 9:00:00 17:45:00 1 * *
# or-restrict 9:00:00 17:45:00 2 * *
# or-restrict 9:00:00 17:45:00 3 * *
# or-restrict 9:00:00 17:45:00 4 * *
# or-restrict 9:00:00 17:45:00 5 * *
# up
#
for dialmon:
1. Pakk ut dialmonxx.tgz til /usr/src/
2. Definer disse i Makefile til å passe ditt oppsett:
DEFAULT_HOST = hostname
DEFAULT_PORT = 7002
DEFAULT_USER = username
DEFAULT_PASSWORD= hemmelig
1. Turen er nå kommet til å redigere dialmon.conf
[host]
port 7002 #Den porten du satte inn i /etc/services
force 90
fifo /etc/diald/diald.ctl
allow up
allow down
# Further sections are named for the client machines. These can contain# just the allow up, allow down and allow keep directives.
#
[client_name]
allow up
allow down #Dersom du har maskiner i nettet som skal kunne kontrollere diald
2. Deretter skriver du: make
3. Når make er ferdig skriver du:
make install_dialmon
make install_client
make install_man
4. Du skulle nå kunne kjøre /usr/sbin/dialmon og deretter /usr/bin/dialm &.
5. For å automatisere tingene litt kan du gjøre dette:
* Kopier diald til /etc/rc.d/init.d
* Kopier deretter diald-on og diald-off til samme katalog.
6. Tilslutt skriver du:
cd /etc/rc.d/rc3.d
ln -s /etc/rc.d/init.d/diald-on S96diald
cd ../rc5.d
ln -s /etc/rc.d/init.d/diald-on S96diald
cd ../rc6.d
ln -s /etc/rc.d/init.d/diald-off K96diald
7. For automatisk oppstart av selve den grafiske monitoren kan du lage deg en link til /usr/bin/dialm i Autostart mappen dersom du bruker KDE.
Etter dette kan du boote opp maskinen på ny. Du vil da se at diald og dialmon blir startet automatisk. Når du så senere stopper maskinen vil du også se at de samme prosessene blir stengt.
wireless (trådløst) lan
Linux med trådløs forbindelse er faktisk utrolig enkelt å sette opp. Slike systemer består av f.eks.. Dell TrueMobile 1150 PCMCIA-kort, RG1000 Residential Gateway og ditt allerede eksisterende Ethernet nettverk. Det eneste du faktisk ennå MÅ ha Windows til er å sette opp base-enheten RG1000. Dette MÅ gjøres først, og f.eks.. slik:
Dell TrueMobile RG1000 oppsett:
* Koble RG1000 til ditt lokale LAN ved hjelp av en TP-kabel.
* Kjør så konfigurasjonsprogrammet til RG1000 fra en PC med Windows som er koblet til det samme LAN-segmentet.
Gjør så disse valgene:
* No Internet
* Key: xxxxxx (koden består av de 5 første siffrene i network name under)
* NAT - Bridge on RG1000
* Network name: (står på RG1000 og er unik for hver enhet)
Dette skulle være nok her.
Å sette opp selve radiokortet - TrueMobile 1150 (samme korttype som Lucent Orinoco Silver) innebærer vanligvis disse grepene:
1. Sørge for at pcmcia og wireless-tools er installert.
2. Sett kortet i en av PCMCIA-slot’ene.
3. Sjekk /var/log /messages og se etter evt. feilmeldinger.
4. Dersom kortet ble igjenkjent (burde bli det i en normal RH 7.2 installasjon) er vi klar til å fortsette med pkt 11. Dersom maskinen ikke finner kortet, betyr dette sannsynligvis at du mangler den rette modulen i /lib/modules/2.4.7-10/pcmcia/ Den modulen vi er ute etter heter wvlan_cs.o. Har du ikke denne må du enten installere kernel-pcmcia-cs fra CD-rom’en, eller starte fra “scratch” med en full installasjon av pcmcia-
støtte uten de ferdig kompilerte modulene som følger med de fleste distribusjonene av
Linux. Det finnes allerede en utmerket guide for hvordan dette gjøres på
http://ldp.linux.no/HOWTO/PCMCIA-HOWTO.html, og for wireless spesielt kan du
sjekke http://ldp.linux.no/HOWTO/Wireless-HOWTO.html.
5. Lag deg en kjerne som blant annet inneholder denne config’en:
- [*] Support for hot-pluggable devices
- PCMCIA/CardBus support —)
— [*] CardBus support
— [*] i82365 compatible bridge support
- WWireless LAN (non-hamradio) —)
— [*] Wireless LAN (non-hamradio)
— Wireless Pcmcia cards support
(M) Hermes support (Orinoco/WavelanIEEE/PrismII/Symbol 802.11b card
(M) Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards
- PCMCIA network device support —)
— [*] Pcmcia Wireless LAN
— (M) Aviator/Raytheon 2.4MHz wireless support
— (M) Xircom Netwave AirSurfer wireless support
— (M) AT&T/Lucent Wavelan wireless support
6. Kompiler så kernel og moduler.
7. Edit lilo.conf slik at den reflekterer ny kjerne
8. Edit /etc/modules.conf dersom du behøver
9. Reboot
10. Sjekk i messages-fila om pcmcia-kortet nå gjenkjennes og tildeles korrekt modul. Dersom OK, legg til et nytt interface eth0 med IP, gateway, DNS osv (evt DHCP).
11. Kjør iwconfig for å sjekke «radiosiden» av kortet.
12. Edit /etc/pcmcia/network.opts slik:
-Dersom du benytter DHCP i nettverket setter du DHCP=»y» og lar resten være.
-Dersom du benytter fast IP setter du opp slik:
part of /etc/pcmcia/network.opt
DHCP=”n”
# If you need to explicitly specify a hostname for DHCP requests
DHCP_HOSTNAME=””
# Host’s IP address, netmask, network address, broadcast address
IPADDR=”192.168.1.3"
NETMASK=”255.255.255.0"
NETWORK=”192.168.1.0"
BROADCAST=”192.168.1.255"
# Gateway address for static routing
GATEWAY=”192.168.1.2"
# Things to add to /etc/resolv.conf for this interface
DOMAIN=”arctic-linux.tnett.no”
SEARCH=”arctic-linux.tnett.no”
DNS_1=”192.168.1.1"
* Restart pcmcia med /etc/rc.d/init.d/pcmcia restart
* Restart nettverket med /etc/rc.d/init.d/network stop og /etc/rc.d/init.d/network start
* Du burde nå være på nett!!
Dette er hva jeg får opp i /var/log/messages når jeg putter i PCMCIA-kortet på en vanlig RH 7.2 installasjon uten å kompilere om kjernen:
/var/log/messages
Mar 15 10:57:40 localhost cardmgr[722]: executing: “modprobe wvlan_cs”
Mar 15 10:57:40 localhost kernel: wvlan_cs: WaveLAN/IEEE PCMCIA driver v1.0.7
Mar 15 10:57:40 localhost kernel: wvlan_cs: (c) Andreas Neuhaus (andy@fasta.fh-dortmund.de)
Mar 15 10:57:40 localhost kernel: wvlan_cs: index 0x01: Vcc 5.0, irq 3, io 0x0100-0x013f
Mar 15 10:57:40 localhost cardmgr[722]: executing: ‘./network start eth0’
Mar 15 10:57:40 localhost kernel: wvlan_cs: Registered netdevice eth0
Mar 15 10:57:40 localhost kernel: wvlan_cs: MAC address on eth0 is 00 02 2d 37 4f ee
Mar 15 10:57:40 localhost kernel: wvlan_cs: Found firmware 0x6000A (vendor 1) - Firmware capabilities : 1-1-1-1-1
Mar 15 10:57:40 localhost kernel: wvlan_cs: MAC address on eth0 is 00 02 2d 37 4f ee
Mar 15 10:57:40 localhost kernel: wvlan_cs: Found firmware 0x6000A (vendor 1) - Firmware capabilities : 1-1-1-1-1
Mar 15 10:57:40 localhost kernel: wvlan_cs: Valid channels: 1 2 3 4 5 6 7 8 9 10 11
For å sette kortet i funksjon mot lokalnettet har jeg laget et script som jeg kjører etter at kortet er satt i. Dette scriptet kan du nok bruke, men først må du rette opp network name og kode slik at det passer med ditt system.
/usr/local/bin/wireless
#!/bin/sh
#wireless network initialization
#using a special hosts-file at work
/bin/cp /etc/hosts.work /etc/hosts
/sbin/iwconfig eth0 essid your-rg1000-identification
/sbin/iwconfig eth0 rate 11M
/sbin/iwconfig eth0 key s:your-rg1000-code
# To initialize the Ethernet side of the card.
/etc/rc.d/init.d/network stop
/etc/rc.d/init.d/network start
exit
Dette betyr at jeg etter at jeg har satt i kortet kun har en oppgave for å komme meg på nett, nemlig å kjøre scriptet over. VIPS du er på nett trådløst!
Vel, kjære Linux-venner. Dette har vært en vandring i noen av de metodene som kan benyttes for å koble Linux til nettet. Det finnes mange andre som ikke er nevnt her. Jeg håper dette har vært til litt hjelp og at bildet ikke lengre er fullt så uoversiktlig når det gjelder nettverkssiden av Linux. Linux er laget på nettet, for nettet!
I neste nummer av LINUXmagasinet skal vi se på oppsett av din egen Linux-‘
server. Dette inkluderer mail-, news-, web-, ftp-, proxy- (med SquidGuard for beskyttelse mot porno etc), dhcp med mer.