Работа с сетевыми интерфейсами (Debian, Ubuntu)

Но это только теоретический пример, на практике команды 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



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов