Блог сисадміна-початківця Комп’ютер на базі GNU
Комп'ютер на базі GNU/Linux як шлюз
Припустимо, у нас є 2 комп'ютери/ноутбуки (не важливо), на одному з яких дві мережеві карти. Ми хочемо забезпечити інтернетом 2 цих комп'ютерів без використання комутатора/маршрутизатора. Нехай перший комп'ютер має дві мережеві карти і на ньому встановлений linux. На другому комп'ютері встановлено windows. Є вихід в Інтернет. Як шлюз у нас буде виступати комп'ютер з linux на борту, від нього прийматиме інтернет, комп'ютер з windows на борту. Схемка приблизно така:
Друга мережева карта (eth1) буде зв'язувати linux та windows. Оскільки DHCP сервер ми не налаштовували, то ip-шник зробимо статичним. У файл /etc/network/interfaces допишемо налаштування для eth1:
У результаті після цих налаштувань файл /etc/network/interfaces повинен виглядати приблизно так: auto lo #петля iface lo inet loopback
auto eth0 #на інтернет iface eth0 inet dhcp
auto eth1 #на windows
iface eth1 inet static address 192.168.1.2 netmask 255.255.255.0
Оскільки ми відредагували системний файл, ми повинні перезавантажити демон мережі: $ sudo /etc/init.d/networking restart
Зберігаємо цю справу. Пробуємо пінгувати з windows наш linux, в командному рядку пишемо: ping 192.168.1.2 Якщо пінг йде, значить коннект є, але це не означає, що інтернет вже доступний на windows, потрібно ще налаштувати правила маршрутизації та DNS-сервер.
Знову повертаємось до linux. Насамперед потрібно дозволити пересилання пакетів між інтерфейсами, тобто щоб, прийнятий пакет на eth0, можна було відправити на eth1:
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Тепер встановимо пакетdnsmasq, він необхідний для перенаправлення DNS запитів, вищим серверам:
$ sudo apt-get install dnsmasq
Спробуємо перевірити, чи DNS працює на windows. У windows, в консолі, пишемо: