CentOS 7 и настройка сети
Если во время установки CentOS Minimal вы не настроили сеть или вам необходимо временно назначить дополнительный IP-адрес для интерфейса, вы можете использовать команды IP и ROUTE. Установка производится через консоль.
Имейте в виду, что доступ ко всем функциям предлагает только ip. Используя route, вы не сможете настроить «расширенные» функции, такие как политики маршрутизации, и вы не увидите их в выходных данных команды просмотра, если они уже настроены в системе. Поэтому вы должны использовать ip всякий раз, когда это возможно.
Использование ip
Синтаксис ip имеет структуру, аналогичную синтаксису Cisco IOS. Все опции могут быть сведены к неоднозначности, например, ip ro ad вместо ip route add.
Добавление маршрута через шлюз
ip route add 172.16.1.0/24 via 192.168.10.1
Добавление маршрута через интерфейс
ip route add 172.16.1.0/24 dev eth0
Маршрут с метрикой
ip route add 172.16.1.0/24 dev eth0 metric 100
Назначить адрес
ip a add 10.55.100.3/24 dev eth0
Назначить адрес 2:
ifcfg eth0 192.168.10.2/24
Назначить маршрут по умолчанию
ip route add default via 192.168.10.1
Команда вида ip route add blackhole 10.58.53.0/27 добавляет «нулевой» маршрут (аналог ip route … null0 в Cisco). Пакеты в сеть с этим маршрутом будут отброшены по причине «No route to host». Может быть полезно при DoS-атаке с хоста или других подобных случаев.
Действия с маршрутами:
Кроме add также поддерживаются и другие действия:
del — удалить маршрут.
replace — заменить маршрут другим.
change — изменить параметры маршрута.
Equal Cost Multi Path
Если вы добавите два маршрута в одну и ту же сеть, используя одну и ту же метрику, ядро начнет распределять нагрузку между ними, выбирая один или другой с равной вероятностью (round robin). Работает и на более чем двух маршрутах. Предупреждение: это может вызвать проблемы с входящими соединениями, потому что иногда ответ может пойти по другому маршруту, отличному от запроса. Будьте осторожны.
ip route add default dev eth0
ip route add default dev eth1
Использование route
Чтобы использовать команду route, вам нужен пакет net-tools. По умолчанию его нет в минимальной установке. Поэтому после начальной настройки с помощью команды ip вы можете установить ее.
yum -y install net-tools
Добавление маршрута через шлюз
route add -net 192.168.0.0/16 gw 10.0.0.1
Добавление маршрута через интерфейс
route add -net 192.168.0.0/16 dev eth1
Маршрут до отдельного хоста
route add -host 192.168.10.1 gw 172.16.0.1
Назначить маршрут по умолчанию
route add default gw 192.168.10.1
Удаление маршрута
route del ...
Сохранение настроек сети
Определяем, какие интерфейсы есть в системе
Сохраняем настройки
Для сохранение я настроек необходимо внести изменения я конфигурационный файл интерфейса, который находиться /etc/sysconfig/network-scripts/ifcfg-eth0 и приводим его к виду:
DEVICE="eth0"
BOOTPROTO=none
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE="Ethernet"
UUID="7f9fe579-ac2f-4e35-9445-7685620fa61d"
HWADDR=00:15:17:19:5F:D8
IPADDR=10.17.0.1
PREFIX=28
GATEWAY=10.17.0.254
DNS3=8.8.4.4
DNS2=8.8.8.8
DNS1=192.168.11.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
Перезапуск сети
После внесения изменений необходимо перезапустить демон сети
service network restart
или так
/etc/init.d/network restart
Сохранение статических маршрутов
Статические маршруты указываются в файлах /etc/sysconfig/network-scripts/route-IFNAME с добавлением имени интерфейса
Оба варианта имеют право на существование, но первый немного лаконичней. После чего необходимо перезагрузить демон сети
Привязка интерфейса к карте
При наличии нескольких сетевых карт возникает вопрос о порядке их нумерации. В CentOS 6 эта задача возложена на подсистему обнаружения и конфигурации устройств – udev.
Конфигурационный файл обновляется автоматически при первом обнаружении очередной сетевой карты и находится в файле /etc/udev/rules.d/70-persistent-net.rules файл состоит из строк такого содержания:
- PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”52:54:00:29:24:1e”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
Видно, что нумерация опирается на аппаратный (MAC) адрес карты. Если в компьютере заменить карту, то интерфейс eth0 станет недоступным, а новая карта получит имя eth1. Если есть желание вручную назначить имена картам, то можно отредактировать этот файл, выставив желаемые соответствия между MAC адресами именами интерфейсов (возможно потребуется перезагрузка)
Общие настройки сети
Файл /etc/sysconfig/network используется стартовыми скриптами и содержит ключевые параметры – нужна ли сеть, нужно ли конфигурировать IP v6, имя компьютера. Сюда можно вписать шлюз по умолчанию, но CentOS 6 ориентируется на динамическое подкючение к сетям через WiFi и вписывает его в конфигурацию подходящего интерфейса.
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=www.example.com
GATEWAY=10.10.10.1
Конфигурация интерфейса
Файлы в каталоге /etc/sysconfig/network-scripts с именами вида ifcfg-eth0
Динамическая конфигурация интерфейса
ONBOOT="yes"
DEVICE="eth0"
BOOTPROTO="dhcp"
Ручная конфигурация
Статическая конфигурация интерфейса
ONBOOT="yes"
DEVICE="eth1"
BOOTPROTO="static"
IPADDR=86.15.131.211
PREFIX=24
Конфигурация шлюза и DNS
GATEWAY=192.168.1.1
DEFROUTE=yes
DNS1=192.168.1.12
NM – NetworkManager – графическая оболочка + автоматизация настроек
NM_CONTROLLED=”no”
Дополнительный IP адрес на интерфейсе eth1
ONBOOT=no
DEVICE=eth1:0
BOOTPROTO=static
IPADDR=172.16.13.6
NETMASK=255.255.0.0
Следующие два параметра можно не писать, они вычисляются из IP и маски
BROADCAST=172.16.255.255
NETWORK=172.16.0.0
Инициализация VLAN на eth1
DEVICE=eth1.72
VLAN=yes
VLAN_TRUNK_IF=eth1
BOOTPROTO=static
IPADDR=10.10.10.1
NETMASK=255.255.255.192
ONBOOT=yes
Настройка DNS Файл /etc/resolv.conf
- мой домен, для подстановки в короткие имена
search example.com - сервер DNS
nameserver 8.8.8.8
Ручная настройка имен хостов файл /etc/hosts
127.0.0.1 localhost.localdomain localhost ANY
::1 localhost6.localdomain6 localhost6