[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: [Ubuntu/Debian] настройка сети
PandoraBox2007
Настройка интерфейсов по DHCP
    В файле /etc/network/interfaces хранятся настройки всех сетевых интерфейсов. Рассмотрим, как конфигурируется сетевой интерфейс. Сетевой интерфейс lo – обратная петля (его IP-адрес 127.0.0.*), использующийся для тестирования сетевой подсистемы, всегда конфигурируется автоматически. Нет необходимости настраивать его как-нибудь иначе. Для настройки этого интерфейса используются строки:
    auto lo
    iface lo inet loopback

  • Мы пытаемся настроить сетевой Ethernet-интерфейс. Имя этого интерфейса – ethN, где N – это номер. Нумерация начинается с 0. Обычно в системе только одна сетевая плата, поэтому имя интерфейса будет eth0. Если у вас две сетевые платы, то имена у них будут, соответственно, eth0 и eth1. По умолчанию интерфейс eth0 настраивается так:
    auto eth0 
    iface eth0 inet dhcp

  • Строка auto eth0 указывает на то, что этот интерфейс должен автоматически "подниматься" при запуске системы. Вторая строка говорит о том, что интерфейс настраивается автоматически по DHCP.

Настройка интерфейсов вручную
    Для ручной настройки нужно указать строку в файле interfaces:
    iface eth0 inet static address адрес netmask маска gateway шлюз
  • Например, если у вас IP-адрес 192.168.1.10, маска сети 255.255.255.0, то строка конфигурации будет такой:
    iface eth0 inet static address 192.168.110 netmask 255.255.255.0 gateway 192.168.1.1


    Необязательно все записывать в одну строчку, можно еще записать так:
    iface eth0 inet static 
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1

  • Параметр gateway – необязательный. Если шлюза нет (сеть без выхода в Интернет), то этот параметр можно не указывать:
    iface eth0 inet static 
    address 192.168.1.10
    netmask 255.255.255.0

  • Можно использовать необязательные параметры network и broadcast, задающие, соответственно, адрес сети и широковещательный адрес:
    iface eth0 inet static 
    address 192.168.1.10
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.0.255
    gateway 192.168.1.1

Запуск программ при поднятии и закрытии интерфейса
    При настройке сетевого интерфейса можно запускать определенные конфигурационные программы:
    up <программа и ее параметры>

  • Обычно это используется для запуска программы route, управляющей маршрутизацией. Например, следующая команда сообщает, что путь к сети 192.168.2.0 будет осуществляться через шлюз 192.168.1.2:
    up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.2

  • При этом шлюзом по умолчанию, на который будут отправлены все остальные пакеты (которые не адресованы сети 192.168.2.0), будет шлюз 192.168.1.1:
    up route add default gw 192.168.1.1

  • Аналогично, команда down используется для запуска программ при "закрытии" сетевого интерфейса:
    down route del default gw 192.168.1.1
    down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.2

  • Первая команда удаляет маршрут по умолчанию, а вторая – маршрут к сети 192.168.2.0

    Внимание! Очень важно удалить маршруты при закрытии интерфейса. Когда поднимается интерфейс, в таблицу маршрутизации вносятся обслуживаемые ним маршруты. Когда интерфейс закрывается, очень важно эти маршруты удалить из таблицы маршрутизации ядра, поскольку сетевое соединение, обслуживаемое эти маршруты, уже закрыто.
  • Чтобы интерфейс eth0 запускался автоматически при старте системы, нужно добавить команду auto eth0:
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1

Сложные конфигурации
    Если у вас два сетевых адаптера, то они настраиваются аналогично, только указываются разные имена интерфейсов. Вот пример настройки двух сетевых адаптеров:
    auto eth0 
    iface eth0 inet dhcp

    auto eth1
    iface eth1 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1

  • Интерфейс eth0 настраивается по DHCP, а интерфейс eth1 настраивается вручную. В этой главе мы упомянули технологию VLAN (Virtual Local Area Network), позволяющую одному сетевому адаптеру присвоить несколько IP-адресов. Так как у нас всего одна сетевая плата, то имя первого виртуального интерфейса – eth0, имя второго – eth0:1. Обратите внимание: не eth1, а eth0:1, что указывает, что это виртуальный интерфейс, работающий через физический интерфейс eth0.
  • Вот пример такой конфигурации:
    auto eth0 eth0:1
    iface eth0 inet static
    address 192.168.0.100
    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.200
    network 192.168.0.0
    netmask 255.255.255.0


    Прежде, чем рассмотреть следующую конфигурацию, нужно рассмотреть команды 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 AA:BB:CC:DD:EE:FF
    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 11:22:33:44:55:66 lan
    map AA:BB:CC:DD:EE:FF 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


    Если по какой-то причине этого файла у вас нет, то его листинг приведен ниже (лист. 8.1)

    Листинг 8.1. Файл 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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.