Уважаемые читатели, сегодня мы продолжаем настраивать наш Ubuntu Server 10.04 LTS. И эта наша статья - о настройке сети в операционной системе Linux.
Для настройки сети через терминал нам понадобится подредактировать один конфигурационный файл. Открываем его в текстовом редакторе nano, выполнив: /etс/network/interfaces В этом файле хранятся настройки всех сетевых интерфейсов (сетевых карт). Знаком решетки в нем (#) экранируются комментарии. Для настройки используются следующие директивы (команды), вот что они значит по порядку:
Команда auto eth0 - автоматически поднимать (запускать) интерфейс eth0
Конструкция iface eth0 inet static/dhcp - на интерфейсе eth0 настройки будут назначены вручную/используя DHCP, они применяются для IPv4
- address - IP адрес этого компьютера в сети
- netmask - сетевая маска
- network - номер подсети (не обязательно)
- broadcast - широковещательный адрес (не обязательно)
- gateway - адрес шлюза (не обязательно)
- dns-nameservers - IP DNS сервера (не обязательно)
- hwaddress ether - MAC адрес в формате 01:23:45:67:89:AB (если нужно подменить реальный, многие провайдеры используют привязку по MAC адресам)
- up - команда, которую нужно выполнить при поднятии интерфейса (не обязательно)
Нам нужно настроить 2 интерфейса, один (eth0) в сторону роутера (Интернета), второй (eth1) в нашу локальную сеть, для этого используем такую конфигурацию:
#To Internet
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
#To local network
auto eth1
iface eth1 inet static
address 192.168.0.254
netmask 255.255.255.0
Так как для сети 192.168.0.0/24 мы сами являемся шлюзом, мы указываем только IP и маску подсети на этом интерфейсе. Когда закончим настройку, нужно будет перезапустить сетевой интерфейс, для этого выполним /etс/init.d/networking restart если все правильно, то мы увидим следующее:
rоot@СoolServ:/home/asus# /etс/init.d/networking restart
* Reconfiguring network interfaces...
ssh stоp/waiting
ssh stаrt/running, process XXX
ssh stоp/waiting
ssh stаrt/running, process XXX
[ OK ]
Проверить конфигурацию сетевых интерфейсов можно введя команду ifconfig и нажав Enter.
Вот так будет выглядеть вывод для наших двух интерфейсов:
eth0
Link encap:Ethernet HWaddr 08:00:27:b7:ca:c8
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feb7:cac8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10643 errors:0 dropped:0 overruns:0 frame:0
TX packets:423 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:797796 (797.7 KB) TX bytes:49487 (49.4 KB)
eth1
Link encap:Ethernet HWaddr 08:00:27:d6:f1:28
inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed6:f128/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3840 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:269174 (269.1 KB) TX bytes:468 (468.0 B)
Теперь у нас есть настроенные интерфейсы и сейчас надо проверить их работоспособность, т.е. - есть ли связь между нашими компьютерами и сервером? Для этого выполним на любом нашем компьютере команду ping 192.168.0.254 , мы должны увидеть следующее:
Это значит, что наша сеть работает исправно и можно продолжать.
Если планируется иметь доступ ко многим сетям, нам нужно прописать маршрутизацию. Вот несколько примеров которые можно использовать в этом файле /etс/network/interfaces
- up route add default gw 192.168.1.1 eth0 – Установить шлюз по умолчанию 192.168.1.1 который доступен через интерфейс eth0
-
up route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.253 eth1 — Добавление маршрута в сеть 10.0.0.0 с маской 255.255.255.0 которая доступна через шлюз с IP
192.168.0.253 и интерфейс eth1. Вместо маски вида 255.255.255.0 можно использовать битовую маску, те команда будет выглядеть так route add -net 10.0.0.0/24 gw 192.168.0.253 eth1 О масках и их назначении мы говорили в предыдущей статье.
Также эти команды можно использовать в терминале, только не указывая up, например: route add default gw 192.168.1.1 eth0
Чтобы удалить маршрут в сеть 10.0.0.0 используется команда route -f 10.0.0.0 (Flush)
Чтобы очистить всю таблицу маршрутов можно использовать route -f
Для просмотра таблицы маршрутизации используется route или netstat -rn для него вывод будет выглядеть так:
Таблица маршрутизации ядра протокола IP
Destination | Gateway | Genmask | Flags | Metric | Ref | Use | Iface |
10.0.0.0 | 192.168.0.253 | 255.255.255.0 | UG | 0 | 0 | 0 | eth1 |
localnet | * | 255.255.255.0 | U | 0 | 0 | 0 | eth0 |
192.168.0.0 | * | 255.255.255.0 | U | 0 | 0 | 0 | eth1 |
default | 192.168.1.1 | 0.0.0.0 | UG | 100 | 0 | 0 | eth0 |
Что это все значит?
Destination - сеть назначения, default - маршрут по умолчанию
Gateway - шлюз, через который доступна сеть назначения, * - непосредственно подключенная.
Genmask - маска подсети
Flags - список флагов
- U (route is up) - маршрут используется
- H (target is a host) - цель маршрута - хост
- G (use gateway) - используется шлюз
- R (reinstate route for dynamic routing)
- D (dynamically installed by daemon or redirect) - маршрут получен динамически
- M (modified from routing daemon or redirect) - модифицирован демоном (службой)
- A (installed by addrconf)
- C (cache entry)
- ! (reject route)
Metrik - метрика, определяет приоритет маршрута, чем ниже, тем больший приоритет маршрута. (используется routing демонами)
Ref - количество ссылок на этот маршрут (не используется в Linux ядре)
Use - граф поисков для маршрута
Iface - интерфейс с которого будет доступна сеть
Разберем пару строк:
Destination | Gateway | Genmask | Flags | Metric | Ref | Use | Iface |
10.0.0.0 | 192.168.0.253 | 255.255.255.0 | UG | 0 | 0 | 0 | eth1 |
default | 192.168.1.1 | 0.0.0.0 | UG | 0 | 0 | 0 | eth0 |
Сеть 10.0.0.0 с маской 255.255.255.0 доступна через шлюз 192.168.0.253 на интерфейсе eth1, маршрут активен и указывает на сеть.
Все пакеты, для которых не получилось определить маршрут, будут отправлены на шлюз 192.168.1.1 на интерфейсе eth0 Метрика 0 указывает на то, что маршрут будет выбран в последнюю очередь, если ничего больше не подойдет.