Работа с сетевыми интерфейсами на Debian
В этой стать будет рассмотрено множество способов по работе с сетевыми интерфейсами.
Все сетевые настройки прописаны в файле /etc/network/interfaces, который и изменяется под нужные сетевые настройки для Вашего компьютера.
В Debian все изменения файла /etc/network/interfaces делаются через команду sudo, так как требуются права супер пользователя на изменение конфигурационных файлов, пример:
для использование редактора vi: sudo vi /etc/netwotk/interface для использование редактора nano: sudo nano /etc/netwotk/interface для использование редактора mcedit: sudo mcedit /etc/netwotk/interface
Зависит от того, с каким редактором Вам больше нравится работать.
Настройка интерфейсов по DHCP
Рассмотрим, как требуется настраивать сетевой интерфейс. Сетевой интерфейс lo – обратная петля (его IP-адрес 127.0.0.*), использующийся для тестирования сетевой подсистемы, всегда настраивается автоматически и не требуется его настраивать как то по иному.
Для настройки интерфейса lo используются следующие строки в файле /etc/network/interfaces:
auto lo iface lo inet loopback
Далее настраиваем сетевую карту, если сетевая карта у Вас одна, то она будет называться eth0, если две, то вторая будет идти как eth1, можно также устанавливать на одну сетевую карту по два и более IP адресов, что будет рассмотрено ниже...
Настройка сетевой карты eth0 под автоматическое получения рабочей группы (DHCP):
auto eth0 iface eth0 inet dhcp
Строка "auto eth0" указывает системе запускать автоматически этот интерфейс с настройкой при загрузке системы и при перезапуске службы сети.
И наш конфигурационный файл /etc/network/interfaces, теперь выглядит таким образом:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
Также можно написать и таким образом:
auto lo eth0 iface lo inet loopback iface eth0 inet dhcp
Теперь можно сделать перезапуск службы сети коммандой:
sudo /etc/init.d/networking restart
И проверить, что у Вас получилось, смотрим по команде:
ifconfig
Настройка интерфейсов вручную
Для ручной настройки нужно указать строку в файле /etc/network/interfaces:
iface eth0 inet static address адрес netmask маска gateway шлюз
Например, если у вас IP-адрес 192.168.0.200, маска сети 255.255.255.0, то строка конфигурации будет такой:
iface eth0 inet static address 192.168.0.200 netmask 255.255.255.0 gateway 192.168.0.1
Необязательно все прописывать в одну строчку, можно записать так:
iface eth0 inet static address 192.168.0.200 netmask 255.255.255.0 gateway 192.168.0.1
Параметр gateway – необязательный. Если сеть без выхода в Интернет, то этот параметр можно не указывать:
iface eth0 inet static address 192.168.0.200 netmask 255.255.255.0
Можно использовать необязательные параметры network и broadcast, задающие, соответственно, адрес сети и широковещательный адрес:
iface eth0 inet static address 192.168.0.200 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Интерфейс eth0 настраивается по DHCP, а интерфейс eth1 настраивается вручную.
Если у вас два сетевых адаптера, то они настраиваются аналогично, только указываются разные имена интерфейсов. Вот пример настройки двух сетевых адаптеров:
auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.0.200 netmask 255.255.255.0 gateway 192.168.0.1
Несколько IP адресов на одном интерфейсе
Так как у нас всего одна сетевая плата, то имя первого виртуального интерфейса – eth0, имя второго – eth0:1, имя третьего - eth0:2 и так далее.
Обратите внимание: не eth1, а eth0:1, что указывает, что это виртуальный интерфейс, работающий через физический интерфейс eth0.
Приведем конфигурацию такого примера:
auto eth0 eth0:1 eth0:2 iface eth0 inet static address 192.168.0.201 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 iface eth0:1 inet static address 192.168.0.202 network 192.168.0.0 netmask 255.255.255.0 iface eth0:2 inet static address 192.168.0.203 network 192.168.0.0 netmask 255.255.255.0
Команды pre-up и pre-down
Рассмотрим, что такое pre-up и pre-down:
pre-up – позволяет запускать команды перед поднятием интерфейса
pre-down – позволяет запускать команды перед закрытием интерфейса
Вот пример запуска интерфейса eth0 при условии, что файл /etc/network/local-network-ok существует. Если такой файл не существует, интерфейс eh0 не поднимется:
auto eth0 iface eth0 inet dhcp pre-up [ -f /etc/network/local-network-ok ]
Но это только теоретический пример, на практике команды pre-up и pre-down используются для более серьезных вещей. Предположим, что у вас есть два сетевых интерфейса – eth0, подключенный к локальной сети и eth1, подключенный к Интернету. Это типичная конфигурация компьютера-шлюза
auto eth0 eth1 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 pre-up /usr/local/sbin/enable-masq iface eth1 inet dhcp pre-up /usr/local/sbin/firewall
Перед поднятием этих интерфейсов неплохо бы проверить их MAC-адреса (уникальные аппаратные адреса). Сейчас поясню, для чего. Сегодня у вас есть два интерфейса eth0 с MAC-адресом А и eth1 с MAC-адресом Б. Завтра вы установили новое ядро, использующее иной порядок поиска сетевых интерфейсов и сетевая карта с MAC-адресом Б стала интерфейсом eth0, а плата с MAC-адресом А стала интерфейсом eth1. Сами понимаете, что ваша конфигурация не будет работать. Поэтому нужно проверить MAC-адреса интерфейсов:
auto eth0 eth1 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 pre-up /path/to/check-mac-address.sh eth0 xx:xx:xx:xx:xx:xx pre-up /usr/local/sbin/enable-masq iface eth1 inet dhcp pre-up /path/to/check-mac-address.sh eth1 xx:xx:xx:xx:xx:xx pre-up /usr/local/sbin/firewall
Программа check-mac-address.sh – это сценарий, проверяющий MAC-адрес. Его можно найти в каталоге /usr/share/doc/ifupdown/examples, но не нужно этого делать, поскольку сейчас мы опишем более совершенную конфигурацию, идентифицирующую интерфейсы по MAC-адресу, а не по имени интерфейса:
auto eth0 eth1 mapping eth0 eth1 script /path/to/get-mac-address.sh map xx:xx:xx:xx:xx:xx lan map xx:xx:xx:xx:xx:xx internet iface lan inet static address 192.168.42.1 netmask 255.255.255.0 pre-up /usr/local/sbin/enable-masq $IFACE iface internet inet dhcp pre-up /usr/local/sbin/firewall $IFACE
Сценарий get-mac-address.sh можно найти в каталоге /usr/share/doc/ifupdown/examples. Лучше всего скопировать его в каталог /usr/bin и сделать исполнимым:
cp /usr/share/doc/ifupdown/examples/get-mac-address.sh /usr/bin chmod +x /usr/bin/get-mac-address.sh
Если по какой-то причине этого файла у вас нет, то его содержимое приведен ниже.
Файл get-mac-address.sh:
#!/bin/sh set -e export LANG=C iface="$1" mac=$(/sbin/ifconfig "$iface" | sed -n -e '/^.*HWaddr \([:[:xdigit:]]*\).*/{s//\1/;y/ABCDEF/abcdef/;p;q;}') which="" while read testmac scheme; do if [ "$which" ]; then continue; fi if [ "$mac" = "$(echo "$testmac" | sed -e 'y/ABCDEF/abcdef/')" ]; then which="$scheme"; fi done if [ "$which" ]; then echo $which; exit 0; fi exit 1
Файл /etc/network/interfaces может использоваться для настройки любых сетевых интерфейсов, а не только для настройки Ethernet-интерфейсов. Вот пример настройки DSL-интерфейса dsl-provider, созданного программой pppoeconf:
auto dsl-provider iface dsl-provider inet ppp pre-up /sbin/ifconfig eth0 up provider dsl-provider
Вот мы и рассмотрели основы настройки сетевых интерфейсов.
Если есть вопросы, то просим Вас посетить наш форум, на котором Вы сможете попросить бесплатно описание...
- Show paged
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Страница для печати