Лекция 7

Конфигуриране на системата. Мрежова конфигурация.


Един от най-важните аспекти на Линукс е работата му в мрежа. Основаната команда, която служи за конфигурирането на мрежата е ifconfig. Чрез нея може да се задават IP адресите на мрежовите карти, мрежовата маска и т.н. Най-простия начин за нейното използване е:

#ifconfig

Това ще покаже всички интерфейси , които са активни в момента. Типичен изход от тази команда е:

eth0 Link encap:Ethernet HWaddr 00:48:54:51:96:36

inet addr:217.75.146.24 Bcast:217.75.146.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:167735 errors:27 dropped:24 overruns:23 frame:2

TX packets:33803 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

RX bytes:63976099 (61.0 Mb) TX bytes:2873645 (2.7 Mb)

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:1187 errors:0 dropped:0 overruns:0 frame:0

TX packets:1187 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

RX bytes:94999 (92.7 Kb) TX bytes:94999 (92.7 Kb)

eth0 и lo са идентификаторите на мрежовите интерфейси като eth0 е първата мрежова карта, а lo е интерфейса осигуряващ loopback. Този интерфейс съществува винаги, даже и ако компютъра няма инсталирана мрежова карта. inet addr показва IP адреса, който е присвоен на съответния интерфейс; Bcast – адреса за броадкаст на мрежата; Mask - мрежовата маска. Link encap показва типа на интерфейса. Ако интерфейса е мрежова карта Hwaddr показва нейния хардуерен адрес (MAC адрес).

Друг начин за извикване на командата ifconfig е изричното задаване на интерфейса, който искаме да видим:

#ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:48:54:51:96:36

inet addr:217.75.146.24 Bcast:217.75.146.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:210005 errors:46 dropped:41 overruns:40 frame:6

TX packets:49380 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

RX bytes:102780349 (98.0 Mb) TX bytes:3836101 (3.6 Mb)

Освен разглеждането на мрежовите интерфейси, командата позволява и манипулиране с тях. Например спирането и пускането на мрежовия интерфейс eth0 става по следния прост начин:

#ifconfig eth0 down

#ifconfig eth0 up

След изпълнението на първата команда, всякакъв трафик от и към eth0 се прекъсва. Той се възстановява след изпълнение на втората команда.

Основната функция на командата, обаче е задаването на настройки на мрежовите интерфейси. По-важните параметри на командата са:


Ето няколко примерни конфигурации:

#ifconfig eth0 192.168.9.100 – задава на интерфейса eth0 IP адрес 192.168.9.100

#ifconfig ppp0 mtu 512 – задава размер на MTU 512 байта. Удачно при dial-up връзки.

#ifconfig eth0 broadcast 192.168.9.0 – задава като броудкаст адрес, мрежовия адрес. По подразбиране броудкаст адреса е 192.168.9.255

#ifconfig eth0 netmask 255.255.255.32 – задава мрежова маска на интерфейса eth0. По подразбиране маската ма мрежа клас C е 255.255.255.0.


Командата ifconfig може да се използва и за присъединяване на няколко IP адреса към една и съща мрежова карта. Те образуват „псевдоними“:

#ifconfig eth0:1 192.168.10.100 up

Друга важна команда е route. Чрез нея администратора може да манипулира маршрутизиращата таблица на ядрото на операционната система. Най-простото използване на командата е:

#route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

localnet * 255.255.255.0 U 0 0 0 eth0

loopback * 255.0.0.0 U 0 0 0 lo

default moria2.online.b 0.0.0.0 UG 1 0 0 eth0

Ако се използва ключа -n се спира търсенето името на хоста, като вместо него се показва IP адреса:

#route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

localnet * 255.255.255.0 U 0 0 0 eth0

loopback * 255.0.0.0 U 0 0 0 lo

default 217.75.146.1 0.0.0.0 UG 1 0 0 eth0

При този начин на използване на командата се визуализира текущата маршрутизиращата таблица. Премахването на ред от таблицата става с командата:

#route del default

Това ще премахне gateway-а от таблицата. Ако искаме да добавим нов, то трябва да изпълним следната команда:

#route add default gw 192.168.7.1 или #route add default gw gateway2.compsc.mgu.bg

Разбира се, за да се изпълни коректно втория запис е необходимо да има DNS сървър, който да преведе името gateway2.compsc.mgu.bg в IP адреса 192.168.7.1.

Чрез използването на тези две команди може да се конфигурира мрежовата карта и gateway на един компютър, така че той да има достъп до локалната мрежа. Ако се зададе и gateway, компютъра ще получи и достъп до Интернет. Достъпът до Интернет изисква и задаване на DNS сървър във файла /etc/resolv.conf. Въпреки, че бе разгледан, ето формата на този файл:

search axelbg.com

nameserver 217.75.146.1

nameserver 217.75.128.9

Тук може да се задават неограничен брой DNS сървъри, като вградения DNS клиент (наречен resolver) ще ги обходи всичките, докато не намери такъв, който да върне IP адреса на търсения хост.

Въпреки, че е възможно, задаването на тези параметри всеки път е неудобно. Затова Линукс притежава конфигурационни файлове, в които те се пазят. В миналата лекция те бяха бегло спомената, но тук ще бъдат разгледани по-подробно.

Slackware притежава вграден скрипт, който пуска, спира и задава необходимите настройки на мрежата. Този скрипт се намира в директорията /etc/rc.d/ и се нарича rc.inet1. Той чете конфигурацията от файла rc.inet1.conf намиращ се в същата директория. Този файл има следния вид:

# /etc/rc.d/rc.inet1.conf

# Config information for eth0:

IPADDR[0]="217.75.146.24"

NETMASK[0]="255.255.255.0"

USE_DHCP[0]=""

DHCP_HOSTNAME[0]=""


# Config information for eth1:

IPADDR[1]=""

NETMASK[1]=""

USE_DHCP[1]=""

DHCP_HOSTNAME[1]=""

...

GATEWAY="217.75.146.1"

DEBUG_ETH_UP="no"

Тук за всеки един мрежови интерфейс има отделна секция. По-подразбиране тези секции са три, като при добавяне на нова секция е необходимо и промяната на файла rc.inet1. Обяснените на всеки един от параметрите е следното:

Активирането на всички интерфейси става с командата:

#/etc/rc.d/rc.inet1 start или #/etc/rc.d/rc.inet1,

a деактивирането с командата:

#/etc/rc.d/rc.inet1 stop

Използването на DHCP налага инсталирането на специален клиент със собствен конфигурационен файл. Този файл отново се намира в директорията /etc и се нарича dhcpd.conf. В началото той е празен, тъй като настройките по подразбиране, в повечето случаи са достатъчни. Затова той трябва да се променя само ако се забележат проблеми с DHCP сървъра.

Други важни конфигурационни файлове се hosts, HOSTNAME и inetd.conf. Те бяха разгледани в миналата лекция.

За удобство на потребителя повечето дистрибуции притежават приложения, които улесняват конфигурирането на мрежата. Някои от тях са конзолни шел скриптове, а други са графични приложения. Ето и приложенията с които става това при по-популярните дистрибуции:

Red Hat – Red Hat (отскоро Fedora) е оборудван както с графично, така и с конзолно приложение за конфигуриране на мрежата. Графичното приложение може да се стартира от System Settings -> Network или чрез командата redhat-config-network. Същото приложение може да работи и в текстов режим, като за тази цел то трябва да се извика чрез командата redhat-config-network-tui.

SUSE – SUSE притежава мощно средство за цялостно конфигуриране на системата наречено YaST. YaST се интегрира в Control Panel на KDE и може да бъде стартиран от там. В конзолен режим YaST се стартира с командата yast2.

Mandrake – Mandrake също притежава програми за удобно конфигуриране на мрежата. Можете да ги извикате с командите drakconnect или drakconf. Под конзола може да използвате netconf за целта.

Knoppix – администрирането на мрежата става с командата netcardconfig.

Slackware – Slackware няма графично приложение за конфигуриране на мрежата, но притежава шел скрипт, който прави това. Той се стартира чрез командата netconfig. Този скрипт попълва необходимите файлове и се опитва да „вдигне“ интерфейса eth0. След неговото изпълнение е необходимо да се изпълнят командата killall -HUP inetd или /etc/rc.d/rc.inetd restart (в последната версия на Slackware), за да влезе в сила промяната на файла resolv.conf.

2