Работа с сетевыми интерфейсами на Debian
Но это только теоретический пример, на практике команды 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
- Show full page
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Страница для печати