от Димитър Василев(21-04-2003)

рейтинг (0)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

18.6 Употреба на SLIP

Първоначално написано от Satoshi Asami. С добавки от Guy Helmer и Piero Selini

18.6.1 Настройване на SLIP клиент

Следният начин е един от многото да се настрои FreeBSD машина за SLIP в мрежа със статични адреси. За машини с динамични разпределения на IP-тата (адресът ви се мени всеки път щом набирате), вероятно ще ви е нужна по-сложна конфигурация.
Първо, определете към кой сериен порт е свързан вашия модем. Много хора задават символна връзка като /dev/modem да сочи към истинското устройство - /dev/cuaaN. Това ви позволява да се абстрахирате от истинското устройство, ако ви се наложи да преместите модема на различен порт. Може да стане доста непосилно да коригирате една камара файлове в /etc и .kermrc файлчетата по целия сървър!
Забележка: /dev/cuaa0 е COM1, cuaa1 е COM2 и т.н.
Проверете дали имате следния ред в конфигурацията на ядрото:

pseudo-device sl 1
Той е включен в GENERIC ядрото, така че не би трябвало да е проблем, освен ако не сте го изтрили.

18.6.1.1 Неща, които ще направите само веднъж

1. Добавете вашата домашна машина, рутера и неймсър-върите към вашия файл /etc/hosts. Моят (на автора – бел.прев.) изглежда тъй:

127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2
2. Проверете дали имате hosts преди bind във вашия /etc/host.conf. Иначе могат да станат забавни случки.
3. Редактирайте /etc/rc.conf
  • 1. Задайте името на машината, редактирайки реда гласящ:
    myname.my.domain
    Пълното име на хоста трябва да бъде поставено тук.
  • 2. Добавете sl0 към списъка от мрежови интерфейси, сменяйки реда гласящ:
    network_interfaces="lo0"
    на:
    network_interfaces="lo0 sl0"
  • 3. Задайте стартовите опции на sl0, добавяйки ред:
    ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"
  • 4. Опишете рутера по подразбиране:
    defaultrouter="NO"
    на:
    defaultrouter="slip-gateway"
  • 5. Създайте /etc/resolv.conf, съдържаш:
    domain CS.Example.EDU
    nameserver 128.32.136.9
    nameserver 128.32.136.12
    Както виждате, тук се задават DNS хостовете. Разбира се, реалните имена и адреси зависят от вашата среда.
  • 6. Задайте паролите за root и toor(и които и да било други потребители, които нямат парола).
  • 7. Рестартирайте и проверете дали машината ''изгрява'' с правилното име.

18.6.1.2 Установяване на SLIP връзка

1. Наберете, въведете slip на промпта, въведете името на хоста си и паролата. Какво е нужно да бъде въведена зависи от вашата среда. Ако използвате kermit, можете да опитате скрипт като този:

# kermit setup set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login define slip
dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0a
Разбира се трябва да смените името на хоста и паролата според вашите. След това, можете просто да въведете slip от промпта на kermit, за да се свържете.
Забележка: Оставяйки паролата си незакодирана, където и са било на вашата система като цяло е лоша идея. Правете го на собствен риск!
2. Оставете kermit там (можете да го ''замразите'', натискайки Ctrl + z) и като root, въведете:
# slattach -h -c -s 115200 /dev/modem
Ако сте в състояние да ping-вате хостове от другата страна на рутера, вие сте вързани! Ако не проработи, можете да смените -c с -a като опция към slattach.

18.6.1.3 Как да спрем връзката

Направете следното:

# kill -INT `cat /var/run/slattach.modem.pid`
да убиете slattach. Имайте в предвид, че трябва да сте root за да сторите горното. След това се върнете обратно в kermit (като въведете fg ако сте го ''замразили'') и излезете от него( натискайки q).
Страницата от наръчника за slattach казва, че трябва да използвате ifconfig sl0 down, за да маркирате интерфейса като неактивен, но това не е кой знае колко различно за мен (за автора – бел. прев.)от горното. (ifconfig sl0 отчита същото като ifconfig sl0 down, след излизане от kermit.)
Понякога модемът ви може да откаже да се разкачи (моят (на автора) често го прави). В такъв случай, просто стартирайте kermit и излезте от него отново. Обикновено става на втория път.

18.6.1.4 Отстраняване на проблеми

Ако не работи, чувствайте се свободни да ме питате. Ето какво откриха хората досега:
1. Пропускане на опциите -c или -a в slattach (Това не би трябвало да е фатално, но някои потребители съобщиха, че им е решило проблемите.)
2. Употребата на s10 вместо sl0 (разликата може да бъде трудно уловена при някои шрифтове).
3. Опитайте ifconfig sl0 да видите статуса на интерфейса. Например, може да получите:

# ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00
4. Ако получите съобщение за грешка ``no route to host'' от ping, може да има проблем с рутиращата таблица. Можете да използвате netstat -r, за да видите текущите маршрути (routes):
# netstat -r

Routing tables
Destination Gateway Flags Refs Use Iface MTU Rtt Netmasks:
(root node)
(root node) Route Tree for Protocol Family inet:
(root node)=>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example.UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example.UGH 34 47641234 lo0 – 0.438
(root node)
Предходните примери са от сравнително заета система. Стойностите за вашата система ще зависят от мрежовата активност.

18.6.2 Настройване на SLIP сървър

18.6.2.1 Подготовка

Този раздел е много технически по своя характер. Желателно е да имате предварителни познания по темата. Предполага се, че сте запознати с TCP/IP мрежовия прото-кол; в частност мрежово и системно (node) адресиране, мрежови маски, разделяне на подмрежи, рутиране и протоко-ли за рутиране, като RIP.
Настройването на SLIP услуги на дайъл-ъп сървър изисква познаване на тези концепции. Ако не сте запозна-ти с тях, моля да прочетете една от двете книги: ''TCP/IP Network Administration'' от Craig Hunt, публикувана от O'Reilly & Associates, Inc. (ISBN 0-937175-82-X); или книгите на Douglas Comer относно TCP/IP протокола.
Освен това се предполага че вече сте настроили модема/ите/ и настроили съответните системни файлове, за да позволите влизания през модемите. Ако не сте подготвили системата си все още затова, моля вижте ръководството за настройване на дайъл-ъп услуги; ако имате браузър, разгледайте списъка на FreeBSD.org. Можете също да разгледате on-line страниците от наръчника за sio(4) относно информация за серийните драйвъри, ttys(5), gettytab(5), getty (8), init(8) за съответната информация по настройване на системата да приема влизания на модеми и вероятно stty(1) за информация по настройване парамет-рите на серийния порт (като clocal за директно свързани серийни интерфейси).

18.6.2.2 Бърз преглед

В типичната конфигурация под FreeBSD, SLIP работи по следния модел: SLIP потребител набира вашата система от сървъри и влиза, използвайки специално SLIP ID, което използва /usr/sbin/sliplogin като шел на въпросния потребител. Програмата sliplogin разглежда /etc/sliphome/slip.hosts да открие съответствие за въпросния потребител и ако го открие, свързва серийната линия към наличния SLIP интерфейс и после стартира шел скрипта /etc/sliphome/slip.login да настрои SLIP интерфейса.

18.6.2.2.1 Пример за влизане в SLIP сървър

Например, ако имаше ID на SLIP потребител Shelmerg, то неговия низ в /etc/master.passwd би изглеждал така:

/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
Ако всичко върви добре, /etc/sliphome/slip.login ще изададе командата ifconfig за SLIP интерфейса към който sliplogin се е закачил (slip интерфейс 0, в горния пример който беше първият параметър зададен в списъка към slip.login) за да настрои локалния IP адрес (dc-slip), отдалечения адрес (sl-helmer), мрежовата маска за SLIP интерфейса (0xfffffc00) и много други допълнителни флагове (autocomp). Ако нещо се обърка, обикновено sliplogin логва много полезни съобщения чрез daemon функцията на syslog, които могат да бъдат намерени във /var/log/messages (вижте man syslogd(8), syslog.conf(5) и вероятно проверете /etc/syslog.conf да видите какво syslogd записва и къде го прави.
Добре, достатъчно примери – да се гмурнем в дълбокото и настроим машината.

18.6.2.3 Настройване на ядрото

Ядрото по подразбиране на FreeBSD обикновено идват с два зададени SLIP интерфейса (sl0 и sl1); можете да ползвате netstat -i, за да видите дали те са зададени във вашето ядро.
Примерен резултат от netstat -i:

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
ed0 1500<Link> 0.0.c0.2c.5f.4a 291311 0 17409 0
139 ed0 1500 138.247.224 ivory 291311 0 17409 0 139
lo0 65535 <Link> 79 0 79 0 0
lo0 65535 loop localhost 79 0 79 0 0
sl0* 296 <Link> 0 0 0 0 0
sl1* 296 <Link> 0 0 0 0 0
Интерфейсите sl0 и sl1 показани от netstat -i, разкриват че има два SLIP интерфейса вградени в ядрото. (Звездичките след sl0 и sl1 показват, че те са неак-тивни.)
Подразбиращото се ядро на FreeBSD обаче не е настроено да препраща пакети (по подразбиране вашата FreeBSD машина няма да действа като рутер) поради изискванията за Интер-нет хостовете (вижте RFC-та 1009 [Requirements for Internet Gateways], 1122 [Requirements for Internet Hosts - Communication Layers] и вероятно 1127 [A Perspective on the Host Requirements RFCs]). Ако искате вашия FreeBSD SLIP сървър да действа като рутер, трябва да редактирате /etc/rc.conf и промените стойността на gateway_enable на YES. После рестартирайте, за да влезе в сила.
Ще забележите, че близо до края на конфигурацията по подразбиране (/sys/i386/conf/GENERIC) има ред гласящ:
pseudo-device sl 2
Това е редът определящ броя на наличните SLIP устройства налични в ядрото; цифрата в края на реда обозначава максималния брой SLIP връзки, които могат да работят едновременно. Моля прегледайте Глава 9 относно допълнителни съвети за преконфигуриране на ядрото.

18.6.2.4 Настройване на sliplogin

Както беше споменато по-рано, има три файла в директорията /etc/sliphome, които са част от конфигу-рацията на /usr/sbin/sliplogin (вижте man sliplogin за същинската страница от наръчника за sliplogin): slip.hosts, който определя SLIP потребителите и полага-щите им се IP адреси; slip.login, който обикновено настройва единствено SLIP интерфейса; и (по желание) slip.logout, който премахва ефектите от slip.login, когато серийната връзка е приключена.

18.6.2.4.1 Настройване на slip.hosts

/etc/sliphome/slip.hosts съдържа редове, които имат поне четири параметъра разделени от интервали:

  1. Потребителското име
  2. Местният адрес (местен за SLIP сървъра) на SLIP връзката
  3. Отдалеченият адрес на SLIP връзката
  4. Мрежовата маска
Местният и отдалеченият адрес могат да бъдат имена на хостове (преобразувани в IP адреси от /etc/hosts или чрез DNS, в зависимост от вашите спецификации в /etc/host.conf). Мрежовата маска може да бъде изписана с букви, която в последствие може да се преобразува чрез запитване в /etc/network. Ето пример за това как изглежда /etc/sliphome/slip.hosts на въображаема машина:
#
#login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp
В края на реда има една или повече опции:
  1. normal – без компресия на заглавните части
  2. compress – компресиране на заглавните части
  3. autocomp - компресиране на заглавните части, ако отдалечената страна го позволява
  4. noicmp – забрана на ICMP пакетите (така че каквито и да било ''ping'' пакети ще бъдат изхвърлени вместо да хабят мрежовия капацитет.)
Изборът ви за локални и отдалечени адреси за вашите SLIP връзки зависи от това дали ще заделите TCP/IP подмрежа или възнамерявате да използвате ''proxy ARP'' на вашия SLIP сървър (това не е ''истинско'' proxy ARP, а терминология използване в този раздел, за да бъде описан). Ако не сте сигурни кой метод да използвате или как да заделите IP адреси, обърнете се към книгите за TCP/IP в раздел 18.6.2.1 и/или се консултирайте с вашия IP мрежов мениджър.
Ако ще заделяте сегмент от адреси за SLIP клиентите си, ще трябва да извадите въпросния сегмент от наличните ви адреси и зачислявате на всеки клиент адрес от този сегмент. После, вероятно ще трябва да настроите статичен път (static route) към SLIP сегмента чрез вашия SLIP сървър на най-близкия IP рутер.
Иначе, ако ще използвате ''proxy ARP'' метода, ще трябва да заделите за клиентите си адреси от Ethernet сегмента на SLIP сървъра. Ще трябва също да нагласите /etc/sliphome/slip.login и /etc/sliphome/slip.logout да използват arp(8) за управление на proxy-ARP низовете в ARP таблицата на SLIP сървъра.

18.6.2.4.2 Настройване на slip.login

Типичният /etc/sliphome/slip.login изглежда така:

#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
# generic login file for a slip line.
# sliplogin invokes this with the parameters:
#1 2 3 4 5 6 7-n
#slipunit ttyspeed loginname local-addr remote-addr mask opt-
#args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
Този файл slip.login единствено стартира ifconfig за съответния SLIP инетрфейс с локалния, отдалечения адрес и мрежовата маска на SLIP интерфейса.
Ако сте решили да използвате ''proxy ARP'' метода (вместо да зачислявате отделна подмрежа за SLIP клиентите ви), вашият /etc/sliphome/slip.login ще трябва да изглеж-да подобно на:
#!/bin/sh -
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#generic login file for a slip line. sliplogin invokes this
#with the parameters:
#1 2 3 4 5 6 7-n
#slipunit ttyspeed loginname local-addr remote-addr mask opt-
#args
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
#Answer ARP requests for the SLIP client with our Ethernet
#addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pub
Допълнителният ред в този slip.login, arp -s $5 00:11:22:33:44:55 pub, създава ARP низ в ARP таблицата на SLIP сървъра. Този ARP низ кара SLIP сървъра да отговаря с Ethernet MAC адреса си всеки път щом друго IP на Ethernet мрежата прати заявка за комуникация с IP адреса на SLIP клиента.
Когато използвате горният пример, уверете се че сменя-те Ethernet MAC адреса (00:11:22:33:44:55) с MAC адреса на вашата Ethernet карта или вашето ''proxy ARP'' опреде-лено няма да проработи! Можете да откриете Ethernet MAC адреса на сървъра, гледайки в резултатите от командата netstat -i. Вторият ред на резултата трябва да изглежда подобно на:
ed0 1500 <Link> 0.2.c1.28.5f.4a 191923 0 129457 0 116
Това показва, че Ethernet MAC адреса на нашата примерна машина е 00:02:c1:28:5f:4a - точките в него, дадени от netstat -i трябва да бъдат сменени в двоеточия и нули трябва да бъдат добавени към всеки единичен шестнадесетичен знак, за да бъде преобразуван адреса във формат желан от arp(8); вижте man arp за пълна информация относно употребата.
Забележка: Когато създавате /etc/sliphome/slip.login и /etc/sliphome/slip.logout, ''изпълнимия'' бит (chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout) трябва да бъде зададен, иначе sliplogin няма да може да ги изпълни.

18.6.2.4.3 Конфигурация на slip.logout

Файлът /etc/sliphome/slip.logout не е строго задължи-телен (освен ако не възприемате ''proxy ARP''), но ако решите да го създадете, ето пример на прост slip.logout:

#!/bin/sh -
#
#slip.logout#
#logout file for a slip line.sliplogin invokes this
#with the parameters:
#1 2 3 4 5 6 7-n
#slipunit ttyspeed loginname local-addr remote-addr mask opt-
#args
#
/sbin/ifconfig sl$1 down
Ако използвате ''proxy ARP'', ще желаете /etc/sliphome/slip.logout да премахне ARP реда за SLIP клиента:
#!/bin/sh -
#
#@(#)slip.logout
#logout file for a slip line. sliplogin invokes this
#with the parameters:
#1 2 3 4 5 6 7-n
#slipunit ttyspeed loginname local-addr remote-addr mask opt-
#args
/sbin/ifconfig sl$1 down
#Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5
Командата arp -d $5 премахва ARP описа, който файла slip.login с ``proxy ARP'' възможности добавя при влизане на клиент.
Струва си да повторим: бъдете сигурни, че /etc/sliphome/slip.logout има зададен изпълнимия бит след като е бил създаден от вас (тоест chmod 755 /etc/sliphome/slip.logout).

18.6.2.5 Разчети при рутирането

Ако не използвате ''proxy ARP'' метода за рутиране на пакетите между SLIP клиентите си и остатъка от вашата мрежа (вероятно и Internet), може да ви се наложи да добавите статични маршрути към най-близкия рутер/и/ по подразбиране да рутирате пакетите от мрежовия сегмент за SLIP клиентите си чрез вашия SLIP сървър.

18.6.2.5.1 Статични маршрути (Static Routes)

Добавянето на статични маршрути към най-близкия подразбиращ се рутер може да бъде неприятно (или невъзможно ако нямате такива правомощия...). Ако имате мрежа с множество рутери във вашата организация, някои от тях, като тези произведени от Cisco и Proteon, може не само да се нуждаят от настройка за статичния маршрут към SLIP сегмента, а също и да им бъде указано за кои статични пътища да съобщават на останалите рутери. Така че ще е нужно известно познание, опит и настройване, за да накарате рутирането със статични маршрути да работи.

18.6.2.5.2 Gated

Gated вече е фирмен софтуер и повече няма да бъде наличен като изходен код за обществеността (повече информация на сайта на gated). Този раздел съществува единствено да осигури обратна съвместимост за онези, които все още използват по-стари версии.
Инсталирането и конфигурирането на gated да ползва съответните протоколи (RIP/OSPF/BGP/EGP) на вашия FreeBSD SLIP сървър е алтернатива на главоболията от статичното рутиране. Ще трябва да напишете файл /etc/gated.conf, за да настроите gated; ето пример, подобен на онзи, който автора ползваше на FreeBSD SLIP сървър:

#
# gated configuration file for dc.dsu.edu; for gated version
#3.5alpha5
#Only broadcast RIP information for xxx.xxx.yy out the ed
#Ethernet interface
#
#
#tracing options
#
traceoptions "/var/tmp/gated.output" replace size 100k files 2 general;
rip yes {
interface sl noripout noripin;
interface ed ripin ripout version 1 ;
traceoptions route ;
} ;
#
# Turn on a bunch of tracing info for the interface to the kernel:
kernel {
traceoptions remnants request routes info interface ;
} ;
#
#Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
#
export proto rip interface ed {
proto direct { xxx.xxx.yy mask 255.255.252.0 metric 1;# SLIP connections
} ;

#
#Accept routes from RIP via ed Ethernet interfaces
import proto rip interface ed {
all ;
} ;
Този примерен файл gated.conf разпространяван информация за маршрутите, засягаща SLIP сегмента xxx.xxx.yy чрез RIP на Ethernet мрежата; ако използвате различен драйвър от ed, ще трябва да смените препратките към ed където е необходимо.
Също така, този примерен файл задава файл /var/tmp/gated.output за проследяване на проблеми при дейността на gated. Можете да изключите проследяващите функции, ако gated работи OK за вас. Ще трябва да смените xxx.xxx.yy в мрежовия дял на вашата SLIP подмрежа (уверете се, че сте сменили и мрежовата маска в proto direct също така).
Веднъж gated е инсталиран и настроен на вашата машина, ще трябва да укажете на стартовите скриптове на FreeBSD да го стартират наместо routed. Най-лесният начин да се постигне това е да се настроят променливите router и router_flags в /etc/rc.conf. Моля прочетете страницата от наръчника за gated относно информация за опциите в коман-ден ред.

1Преписано 1:1 от оригиналния документ. Не ме питайте зашо е така – не знам ;) (бел. прев.)

1Потребителското име, дадено ви от вашия доставчик

2Паролата, дадена ви от вашия доставчик

1Потребителското име, дадено ви от доставчика

2Вашата парола за достъп



Страници: 1 2 3 4 [5]

<< Инсталация и стартиране на debian dosemu paradox4.5 | Как да си подкарате скенер Acer S2W 3300U под Дебиан/GNU >>