Protokol TCP/IP (Transmission Control Protocol/Internet Proto-
col) yavlyaetsya bazovym transportnym setevym protokolom v
UNIX'e. V zagolovke TCP/IP paketa ukazyvaetsya:
IP-adres otpravitelya
IP-adres poluchatelya
Nomer porta (Fakticheski - nomer prikladnoj programmy,
kotoroj etot paket prednaznachen)
TCP/IP-ishnye pakety imeyut interesnuyu osobennost': oni sposobny
"dobrat'sya" do adresata, projdya skvoz' raznorodnye lokal'nye
seti, ispol'zuya raznoobraznye fizicheskie nositeli. "Marshrutiza-
ciyu" IP-paketa (perebrosku ego v trebuemuyu set') osushchestvlyayut
"na dobrovol'nyh nachalah" komp'yutery, vhodyashchie v TCP/IP set'.
Vsemirnaya set' Internet.
Vse kompyutery mira, podderzhivayushchie protokol TCP/IP i kakim-libo
obrazom podklyuchennye drug k drugu, obrazuyut global'nuyu
vsemirnuyu set' TCP/IP "Internet". Tempy rosta "Internet":
100000 IP-adresov v mesyac. V nastoyashchij moment (konec 1994 goda)
k Internet'u podklyucheno okolo:
20,000 setej
4,000,000 komp'yuterov
35,000,000 pol'zovatelej
Kazhdaya mashina v mire imeet svoj unikal'nyj IP-adres.
IP-adres - 32-bitnoe chislo, kotoroe prinyato zapisyvat' v sme-
shannom 16-richno-desyatichnom formate, v vide 4 chisel, razdelennyh
tochkami. Naprimer:
193.124.148.73
128.8.2.1
Kazhdoe desyatichnoe chislo zdes' predstavlyaet na samom dele dva
shestnadcaterichnyh razryada. Mozhet prinimat' znacheniya ot 0 do
255. Dopustima takzhe shestnadcaterichnaya zapis':
c1.7c.94.49 ili 0xC17C9449
80.08.02.01 ili 0x80080201
V usloviyah korrektno skonfigurennoj lokal'noj seti, i pri uslo-
vii podklyucheniya ee k vsemirnoj seti Internet, protokol TCP/IP
pozvolyaet vashej setevoj programme rabotat' s LYUBYM komp'yuterom
v mire, kak esli by on nahodilsya v vashej lokal'noj seti.
Unikal'nost' IP-adresov podderzhivaetsya prosto. Oni vydayutsya
centralizovanno. Kontora, kotoraya etim zanimaetsya, nazyvaetsya
NIC - Network Informational Center. Evropejskoe otdelenie NIC
raspolozheno v Amsterdame. Ona VYDAET IP-adresa. V adres NIC
nuzhno poslat' formu-zapros ustanovlennogo obrazca, i cherez ne-
kotoroe vremya vam prishlyut "pachku" IP-adresov, vydelennyh dlya
vashej seti. E-mail adres, po kotoromu nuzhno poslat' zapros:
hostmaster@sri-nic.net
Moskovskij uzel, razdayushchij IP-adresa, a tak zhe domeny *.ru
dostupen po adresu
RosNIIROS xSU/RU NetworkInformationalCenter
ncc@ripn.net ili ncc@ussr.eu.net
www.ripn.net/nic/ripn-docs/
IP-set' - "pachka" iz 2**n IP-adresov, IDUSHCHIH PODRYAD. Samyj
mladshij - rezerviruetsya. |tot adres nazyvaetsya adresom IP-seti.
Naprimer 128.8.0.0, ili 193.125.149.64 . Adres seti ispol'zuet-
sya, kogda trebuetsya ukazat' vsyu set' celikom, naprimer, kogda
zadaetsya marshrutizaciya do etoj seti.
Maska seti - fakticheski razmer seti, zadaet chislo adresov v se-
ti. Zadaetsya libo kolichestvom bitov v maske seti (naprimer 8bit
- 256 adresov, 6 bit - 64 adresa), libo bitovoj maskoj vida
b'111...11100...00'
chislo^^ ^^ bitov
kotoruyu tozhe prinyato zapisyvat' v desyatichno-pobajtnoj zapisi,
naprimer:
255.255.255.192 - maska na 64 adresa
255.255.255.0 - maska na 256 adresov
255.255.0.0 - maska na 64Kb adresov
Broadcast adres seti - samyj starshij adres v seti. Rezervi-
ruetsya dlya peredachi soobshchenij tipa "vse-vsem-vsem" (v seti).
128.8.255.255
Seti delyatsya na klassy:
Klass A. "Ogromnye" seti.
Adresa etih setej lezhat v promezhutke: 1 - 126.
Maska seti: 255.0.0.0
Soderzhit do 16387064 adresov (256*256*256).
Adresa hostov v etih setyah vida: 125.*.*.*
Klass B. "Srednie" seti.
Adresa etih setej lezhat v promezhutke: 128.0 - 191.255
Maska seti: 255.255.0.0
Soderzhit do 64516 adresov (256*256).
Adresa hostov v etih setyah vida: 136.12.*.*
Klass C. "Malen'kie" seti.
Adresa setej lezhat v intervale: 192.0.0 - 255.254.255
Maska seti: 255.255.255.0
Soderzhit 254 adresa.
Adresa hostov v etih setyah vida: 195.136.12.*
Klass D. "Multicast-seti" (gruppovaya adresaciya) (v stadii razrabotki)
Adresa setej lezhat v intervale: 224-239
Klass E. "|ksperimental'nye" 240-250
Adresa 0, 127, 255 - special'nye i dlya obychnyh IP ne ispol'zuetsya
2.1. Private Address Space
Esli vasha set' budet ispol'zovat'sya tol'ko vnutri
organizacii, i mashiny ne budut imet' neposredstvennogo vyhoda v
internet, to adresa dlya nee mozhno brat' "s potolka".
V dokumente RFC 1597 "Address Allocation for Private Internets"
March 1994:
The Internet Assigned Numbers Authority (IANA) zarezerviroval
tri bloka IP adresov dlya ispol'zovaniya vo vnutrennih setyah:
10.0.0.0 - 10.255.255.255 Klass A
172.16.0.0 - 172.31.255.255 Klass B
192.168.0.0 - 192.168.255.255 Klass C
Routery bol'shinstva ISP eti adresa ne marshrutiziruyut, chto
dobavlyaet im(adresam) bezopasnosti.
2. Ob®yavlyaem IP-adres na nash ethernet'nyj kontroller.
Konfiguraciya seti na UNIX-mashine obychno delaetsya avtomaticheski
pri nachal'noj zagruzke. Vkratce ee mozhno opisat' tak:
Opredelenie treh odnotipnyh kart v Linux (1*ISA, 2*PnP):
/etc/conf.modules
alias eth0 ne
alias eth1 ne
alias eth2 ne
options ne io=0x220,irq=5
Ob®yavlyaem, chto nash IP-adres 198.8.2.1 i on podnyat na
ethernet'nuyu kartu po imeni elx70 . V sluchae Motorol'y tak na-
zyvaetsya ethernet, torchashchij iz glavnoj sistemnoj platy - platy
s processorom.
ifconfig e1x70 198.8.2.1 up
Ob®yavlyaem, chto nash vtoroj kontroller s imenem m3760 (nizhnyaya
plata) imeet IP-adres 198.8.3.1
ifconfig m3760 198.8.3.1 up
3. Marshrutizaciya lokal'noj seti.
Ob®yavlyaem, chto mashiny s adresami vida 198.8.2.* *=1,...,254 si-
dyat na nashem verhnem lokal'nom segmente ethernet, i razgovari-
vat' s nimi nado napryamuyu, cherez verhnij ethernet, sootvetstvu-
yushchij nashemu adresu 198.8.2.1 - t.e. - elx70. A s mashinami, ime-
yushchimi adresa vida 198.8.3.* - cherez nizhnij ethernet - s adresom
198.8.3.1
route add net 198.8.2.0 198.8.2.1 netmask 255.255.255.0 0
route add net 198.8.3.0 198.8.3.1 netmask 255.255.255.0 0
Setevye pakety dlya IP-adresov, kotorye ne lezhat v nashej lokal'-
noj seti, perepravlyat' na mashinu s setevym adresom 198.8.2.107
- a uzh ona sama budet razbirat'sya, chto s nimi delat', i kak
dostavit' ih do konkretnyh adresatov.
route add default 198.8.2.107 1
Poslednij argument komandy route - metrika. Ee mozhno interpre-
tirovat' kak "rasstoyanie" do "togo" gateway'ya, ili "skol'ko pe-
resadok mezhdu gateway'yami pridetsya sdelat' IP-paketu po doroge
tuda. Poskol'ku IP-adresa 198.8.2.1 i 198.8.3.1 sootvetstvuyut
nashim sobstvennyj platam ethernet, to i metrika (rasstoyanie) do
nih 0. 198.8.2.107 - drugaya mashina - "rasstoyanie do nee" 1.
Smotrim, chto u nas poluchilos'
netstat -rn # raspechatat' tablicu marshrutizacii
ping -s fedfond # "prozvonit'" uzly seti
ping -s fedfond-gate
ping -s 198.8.2.107
netstat -i # statistika o rabote setevyh interfejsov
Nastala pora ob®yasnit', chto takoe lo0 i localhost. |to tak na-
zyvaemyj Loop-back interfejs. On imitiruet setevoj interfejs
lokal'no, ne vyhodya za granicy nashego komp'yutera. Loop-back in-
terfejsu sootvetstvuet zarezervirovannyj za nim IP-adres
127.0.0.1
4. Konfigurirovanie TCP/IP na Motorole 922.
Pridumajte setevoe imya vashego komp'yutera. Pust' vy reshili, chto
vash komp'yuter dolzhen nazyvat'sya fedfond, i imet' IP-adres
198.8.2.1 . Odnako ne zabyvajte, chto u Motoroly DVA ether
net-kontrollera, i KAZHDYJ iz nih DOLZHEN imet' svoj UNIKALXNYJ
IP-adres. My reshaem, chto vtoroj nash ethernet budet imet'
IP-adres 198.8.3.1, nu i etomu adresu mozhno naznachit' vpolne
chelovecheskoe imya, naprimer "fedfond-gate".
VNIMANIE: esli vy vnimatel'no rassmotrite soderzhanie fajla
/etc/inet/rc.inet, osobenno stroku vida
/usr/sbin/ifconfig e1x70 `uname -n`-gate $net_mask up
to pojmete, chto vtoroj ethernet dolzhen nazyvat'sya imenno
fedfond-gate , i nikak inache.
Itak, chtoby ustanovit' setevoe imya i IP-adresa nashego host'a
1. komandoj sysadm ustanovite "nodename" . VNIMANIE: imenno
nodename (imya uzla) a ne systemname (imya operacionnoj sistemy)
2. V fajl /etc/hosts vstav'te strochki, privyazyvayushchie IP-adresa
k imeni fedfond i, VNIMANIE!, fedfond-gate
198.8.2.1 fedfond
198.8.3.1 fedfond-gate
3. Perezagruzites'.
Konfigurirovanie 2-go ethernet v Linux
Pervyj-to ethernet konfiguritsya s razdachi - slozhnost' poyavitsya,
kogda my zahotim uvidet' vtoroj. Naprimer mozhno v
/etc/rc.d/rc.local postavit' takie komandy:
# podgruzka dravera s dekovskim chipom 2140
insmod /lib/modules/2.0.18/de4x5.o io=0
# vydelenie IP # staticheskij routing na vtoruyu setku
ifconfig eth1 10.232.172.1
route add -net 10.232.172.0 gw 10.232.172.1 netmask 255.255.255.0
Esli draver 2-go ethernet'a vkompilirovan v yadro, to
aktivizirovat' ego mozhno tak: v fajl /etc/lilo.conf vpisat'
append="ether=0,0,eth0 ether=0,0,eth1" # esli srabotaet autoprobe
# v sluchae yavnogo zadaniya parametrov kart
append="ether=10,0x300,0xe800,eth0 ether=12,0x280,eth1"
Vklyuchit' routing:
echo 1 > /proc/sys/net/ipv4/ip_forward
Kak uznat' hardware adres ethernet'noj karty
Esli mashiny normal'no skonfigurirovany dlya TCP/IP, to
dostatochno popingovat' ih yavno ili po broadkastu, zatem arp -a
ping [-s] 123.456.789.255
arp -a
Pochti vsegda mozhno razobrat' mashinu, i posmotret' adres,
napechatannyj na samoj plate.
Linux: Adres pechataetsya pri zagruzke yadra.
Esli karta skonfigurirovana, to adres soobshchaet komanda
ifconfig
Sun: Adres pechataetsya boot-monitorom pri starte
Hardware adres ethernet'a na Sun mozhno proizvol'no menyat'
nahodyas' v boot-monitore, ili komandoj ifconfig
podrobnosti sm. v Sun NVRAM & hostid FAQ
HP-UX: Adres mozhno uznat' komandoj lanscan. Na rabochih stanciyah
adres mozhno uznat' eshche i iz boot-monitora PDC.
5. Prikladnye interfejsy.
CHtoby pisat' programmy, rabotayushchie s set'yu, programmist dolzhen
pol'zovat'sya kakim-libo naborom sistemnyh vyzovov i funkcij. Ot
BSD-Unix'a v zhizn' voshel poluchivshij bol'shuyu populyarnost' API
Berkeley-sockets. AT&T System V porodila TLI (Transport Level
Interface) - postroennyj na tehnologii "potokov" (streams).
SVR4 podderzhivaet i to, i drugoe. Podderzhku soketov
obespechivaet demon inetd (Internet Super Server), podderzhku TLI
obespechivaet demon listen (Network Listener).
Demon listen upravlyaetsya special'noj bazoj dannyh, v kotoruyu
neobhodimo vpisat' IP-adres nashego host'a. Delaetsya eto "odin
raz v zhizni". IP-adres zadaetsya v hitroj shestnadcaterichnoj za-
pisi.
Itak, esli nashi IP-adresa 198.8.2.1 i 198.8.3.1, ih shestnadca-
terichnaya zapis' C6080201, C6080301 , to my dolzhny edinovremenno
vypolnit' tri komandy:
nlsadmin -i tcp
nlsadmin -l '\x00020acec60802010000000000000000' tcp
nlsadmin -l '\x00020acec60803010000000000000000' tcp
"volshebnoe ^^^^^^^^shestnadcat' nulej
slovo 0ace" |
|
syuda vpisyvaetsya nash fakticheskij IP-adres
7. Konfiguraciya BSD soketov.
Dlya etogo nichego delat' ne nado. Vrochem, v dal'nejshem,
vozmozhno, vam pridetsya etim zanimat'sya. Nastrojki inetd lezhat v
fajlah:
/etc/inetd.conf nazvanie setevogo --> imya obsluzhivayushchej
servisa programmy
/etc/services nomer porta --> nazvanie setevogo servisa
Sostoyanie tekushchih soedinenij mozhno posmotret' komandoj:
netstat (ili netstat -ta - esli u vas Linux)
Eshche neskol'ko protokolov
ARP - Address Resolution Protocol
Protokol nizkogo urovnya. Podderzhivaetsya na urovne yadra i/ili
dravera setevoj platy. Dlya opredeleniya, kakoj ethernet'nyj
adres imeet mashina, esli izvesten ee IP-adres. Rabotaet po
principu broadcast: "ej, vse, vse, vse: IP-takoj_to -
otzovis'", i on odin otzyvaetsya.
arp -a # raspechatat' izvestnye nam IP-adresa i ih eth-adresa
RARP - Reverse Address Resolution Protocol.
Dlya opoveshcheniya bezdiskovyh klientov, kakoj u nih IP-adres. Na
servere zapuskaetsya demon rarpd. U nego est' fajl-tablica:
ether-adres -> IP-adres. Po zaprosu-broadcast'u bezdiskovogo
klienta vida: "ej, vse,vse,vse, moj eth-adres takoj-to. Kak
menya zovut?" rarpd soobshchaet emu, kakoj u nego IP (a drugoj de-
mon bootparamd soobshchaet emu dopolnitel'nuyu informaciyu - gde emu
brat' svoyu kornevuyu fajlovuyu sistemu, naprimer).
Dlya obmena informaciej o routinge (marshrutizacii) ispol'zuyutsya
protokoly RIP, BGP, EGP, ICMP.
RIP - Routing Information Protocol
Vnutrennij protokol routinga (vnutri avtonomnoj sistemy). Ego
podderzhivayut demony routed i/ili gated.
BGP - Border Gateway Protocol
EGP - External Gateway Protocol
Routing mezhdu avtonomnymi sistemami. Ih podderzhivaet demon
gated
ICMP - Internet Control Message Protocol
peredaet soobshcheniya ob oshibkah v TCP/IP (naprimer "port
unreachable"), ispol'zuetsya programmami ping, traceroute, mozhet
peredavat' soobshchenie o neracional'nom routinge tipa "redirect":
"voobshche-to mozhno napravlyat' pakety cherez menya, odnako est' i bo-
lee korotkij put'".
Dlya obmena informaciej o simvolicheskih imenah host'ov,
pol'zovatelej, grupah pol'zovatelej i pr. ispol'zuyutsya
protokoly DNS i NIS/YP
DNS - Domain Name System.
Pozvolyaet ispol'zovat' simvolicheskie imena hostov pomimo cifro-
vyh IP-nomerov, i organizovyvat' "derevyannuyu" strukturu naime-
novaniya domenov (tipa pc101.fedfond.msk.su , ftp.sco.com i
t.p.) Server DNS - host, na kotorom zapushchen demon bind, i hra-
nyatsya imena hostov v zone(domene). Na ostal'nyh hostah dlya op-
redeleniya IP-adresa po imeni ispol'zuyutsya bibliotechnye funkcii
biblioteki "resolver" - gethostbyname, gethostbyaddr, kotorye
obrashchayutsya po seti k blizhajshemu serveru DNS, i vyyasnyayut u nego
IP-adres mashiny po ee imeni (domain-name).
NIS/YP - Network Information System (ispol'zuetsya tak zhe
nazvanie, prishedshee ot firmy Sun - Yellow Pages). Pozvolyaet
hranit' na odnom NIS-servere (s demonom ypserv) informaciyu,
edinuyu dlya vsej lokal'noj seti: imena hostov, imena i prava
pol'zovatelej, grupp pol'zovatelej, nazvanie ih domashnih
katalogov, simvolicheskie imena portov i t.d. i t.p.
Eshche raz ob otlichiyah DNS ot NIS/YP: DNS - sistema "global'naya" -
dejstvuet v ramkah vsego Interneta, no soderzhit TOLXKO imena
hostov. NIS/YP - soderzhit pomimo imen hostov neskol'ko drugih
informacionnyh baz, no zato podderzhivaetsya tol'ko v ramkah seti
odnoj organizacii.
Konfigurirovanie TCP/IP na skoruyu ruku
V bol'shinstve unix-ov imeetsya prostaya menyushnaya utilita
pozvolyayushchaya skonfigurirovat' osnovnye parametry komp'yutera: Imya
hosta, IP adres i parametry seti, DNS servera
HP/UX: /etc/set_parms initial
Linux Slackware: net_config
Solaris: /etc/???
V redhat-opodobnyh Linux
/sbin/ifup-pre-local
/sbin/ifdown-pre-local
/sbin/ifup-local
/sbin/ifdown-local
Esli oni est' i ispolnyaemy, to do/posle podnyatiya/opuskaniya interfejsov
oni budut vyzyvat'sya s parametrom ${DEVICE}
Last-modified: Sun, 23 Oct 2005 20:05:37 GMT