Най-четените учебни материали
Най-новите учебни материали
***ДОСТЪП ДО САЙТА***
ДО МОМЕНТА НИ ПОСЕТИХА НАД 2 500 000 ПОТРЕБИТЕЛИ
БЕЗПЛАТНИТЕ УЧЕБНИ МАТЕРИАЛИ ПРИ НАС СА НАД 7 700
Ако сме Ви били полезни, моля да изпратите SMS с текст STG на номер 1092. Цената на SMS е 2,40 лв. с ДДС.
Вашият СМС ще допринесе за обогатяване съдържанието на сайта.
SMS Login
За да използвате ПЪЛНОТО съдържание на сайта изпратете SMS с текст STG на номер 1092 (обща стойност 2.40лв.)Линукс. Linux Lan |
![]() |
![]() |
![]() |
Да предположим, че имаме три компютъра и искаме да ги свържем в локална мрежа в къщи. Единият нарочваме за концентратор като му слагаме две мрежови карти и евентуално за gateway към Интернет ако му поставим и модем, а другите два използваме за работни станции. Ако компютърът-шлюз (gateway) е достатъчно мощен нищо не му пречи той да бъде ползван също като работна станция или някакъв сървър - файлов сървър, FTP или web-сървър. Както вече споменахме по-горе двете карти могат да са различни - едната да е за тънък коаксиален кабел, а другата зa UTP - от тук нататък приемаме, че коректно и съгласно всички изисквания сте изградили физическата си връзка - остава да стартираме мрежа върху нея.
Ако правилно сме конфигурирали интерфейсите и те работят, подавайки командата ifconfig трябва да получим резултат подобен на следния: eth0 Link encap:Ethernet HWaddr 00:06:29:38:0C:99 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4140723 errors:0 dropped:0 overruns:0 frame:0 TX packets:4461135 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:15 Base address:0x2180 eth1 Link encap:Ethernet HWaddr 00:10:5A:F4:71:F3 inet addr:192.168.17.1 Bcast:192.168.17.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7096657 errors:10 dropped:0 overruns:0 frame:10 TX packets:4465753 errors:0 dropped:0 overruns:0 carrier:2 collisions:535 txqueuelen:100 Interrupt:10 Base address:0x5100 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:429912 errors:0 dropped:0 overruns:0 frame:0 TX packets:429912 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 Единият ни компютър нека има адрес 192.168.1.2, а другият от другата мрежа 192.168.17.2. Ако решим да включим например и преносимия си компютър в мрежата или ни дойде на гости познат с лаптоп можем например да му дадем адрес 192.168.17.3. /sbin/route add default gw 192.168.1.1 или да редактирате на ръка конфигурационния файл /etc/sysconfig/network като установите правилния default gateway. Файлът /etc/sysconfig/static-routes има следния вид - малко обратен на формата на командата route: eth0 net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 eth0 net 192.168.17.0 netmask 255.255.255.0 gw 192.168.17.1 За някои дистрибуции трябва вместо това да добавите командата /sbin/route add default gw 192.168.1.1 в /etc/rc.d/rc.local. /sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 или /sbin/route add -net 192.168.1.0 netmask 255.255.255.0 eth0 Ако пък нямате такива записи изпълнете горните команди или редактирайте файла /etc/sysconfig/static-routes или пък добавете горните команди в /etc/rc.d/rc.local. Така ядрото на Linux ще знае как да разпределя пакетите съответно за 192.168.1.0 и 192.168.17.0 мрежите. Вярната routing таблица обаче не е достатъчно условие за прехвърляне на пакети от единия мрежови сегмент към другия. Ако опитате командата ping 192.168.17.2 от компютъра 192.168.1.2 ще видите, че нямате връзка с 192.168.17.2. В този момент нашият gateway вижда всички компютри от двата сегмента, всички компютри от двата сегмента също го виждат от своята си страна, но компютрите от двете мрежи не се виждат. Това е защото не сме казали на нашия Linux, че ще бъде рутер (router). Това за повечето Linux дистрибуции става с командата: echo "1" > /proc/sys/net/ipv4/ip_forward Така разрешаваме на ядрото да прехвърля пакетите от единия интерфейс към другия. Трябва да сме сигурни, че всичко това ще се запази и след рестарт за целта прегледайте файлa /etc/sysconfig/network там трябва да има FORWARD_IPV4=true или FORWARD_IPV4="yes" също така и файла /etc/sysctl.conf трябва да няма Disable IP forwarding опции. Това е валидно за Red Hat дистрибуции и подобни на нея - за други ще трябва да добавите командата echo "1" > proc/sys/net/ipv4/ip_forward в /etc/rc.d/rc.local. Ето примерен файл /etc/sysconfig/network: NETWORKING=yes GATEWAYDEV=eth1 GATEWAY=212.36.11.1 HOSTNAME=jam FORWARD_IPV4=yes и /etc/sysctl.conf: # Enables packet forwarding net.ipv4.ip_forward = 1 # Enables source route verification net.ipv4.conf.all.rp_filter = 1 # Disables automatic defragmentation (needed for masquerading, LVS) net.ipv4.ip_always_defrag = 0 # Disables the magic-sysrq key kernel.sysrq = 0 Сега нашата мрежа трябва да е съвсем наред - всички виждат всички (по TCP/IP). Разбира се това беше твърде сложен пример за една домашна мрежа - обикновено съвсем нямате нужда от два сегмента - един коаксиален ви е напълно достатъчен. Целта на примера беше да покаже малко повече теория. Разбира се, точно тук следва въпроса - как компютрите от нашата мрежа да могат да ползват Интернет - ами вариантите са два - ако можете да се свържете като допълнителен сегмент към мрежа, която има връзка към Интернет достатъчно е да добавите трета мрежова карта на вашия Linux-рутер в случая eth2 да му зададете някакъв IP от въпросната мрежа и да добавите default gateway за рутера например така: /sbin/route add default gw 212.36.12.75 Как обаче нашата вътрешна мрежа, която е с частни IP адреси 192.168.x.x ще излезе навън в Интернет, където частните адреси въобще не се рутират - сигурно сте чували за NAT, за маскиране (masquerading) - е ние ще използваме маскирането. Това означава, че всички заявки от нашата вътрешна мрежа ще изглеждат за света все едно, че идват от нашия gateway-рутер. Всъщност тъй като той е default gateway за всички компютри от нашата вътрешна мрежа те изпращат заявките си на него - той ги получава, изпраща ги от свое име в Интернет и като получи отговор го препраща на машината от вътрешната мрежа, която го е поискала и така за всеки пакет. По темата masquerading вече има материал на български език на адрес http://linux.gyuvet.ch/html/solution/ip_masq.html затова тук само ще споменем как да добавим маскирането, което ще ни помогне, а именно: /sbin/ipchains -F или по-кратко /sbin/ipchains -F ако eth2 e интерфейсът на рутера, който "гледа" към Интернет. Необходимо е да заредите и съответните модули, които ще ползвате като затова трябва да се консултирате с документацията. FTP модулът например се зарежда така: /sbin/modprobe ip_masq_ftp Разбира се, че в къщи по-скоро ще имаме модем, с който да се свързваме към Интернет - това обаче не променя особено нещата в момента в който установите PPP-връзка вие имате ppp-интерфейс, който се третира като мрежови - името му обаче не е eth, a ppp0 например, или ppp1 и т.н. Съответно вие можете да правите маршрутизиране, както и всичко друго необходимо за целта, така както и за мрежови интерфейс. Ако имате нужда от съдействие предполагам, че Интернет доставчика ви ще ви помогне (срещу някакво заплащане, разбира се). Ако направите това след това може би ще поискате да инициирате връзка с Интернет от всеки компютър във вашата мрежа при заявка за поща, FTP или браузване, а не само, когато е установена ръчно връзка от рутера-gateway - това се нарича dial-on-demand. След това вероятно ще поискате да пуснете и прокси-сървър на вашия gateway - всичко това обаче оставям във ваши ръце - имате достатъчно документи за това в мрежата - четете и пробвайте.
|