Оглавление
Если во время установки CentOS Minimal вы не настроили сеть или есть необходимость временно назначить вторичный IP адрес на интерфейс, то можно воспользоваться командами IP и ROUTE. Настройка производиться в консоли
При этом следует учитывать, что доступ ко всем возможностям дает только ip. Используя route вы не только не сможете настроить «продвинутые» функции вроде политик маршрутизации, но и не увидите их существование в выводе команды просмотра, если они уже настроены в системе. Поэтому следует по возможности использовать ip.
Использование ip
Синтаксис ip по структуре напоминает синтаксис Cisco IOS. Любые опции могут быть сокращены до потери двусмысленности, например ip ro ad вместо ip route add.
Добавление маршрута через шлюз
1 2 3 |
ip route add 172.16.10.0/24 via 192.168.1.1 |
Добавление маршрута через интерфейс
1 2 3 |
ip route add 172.16.10.0/24 dev eth0 |
Маршрут с метрикой
1 2 3 |
ip route add 172.16.10.0/24 dev eth0 metric 100 |
Назначить адрес
1 2 3 |
ip a add 10.50.100.5/24 dev eth0 |
Назначить адрес2:
1 2 3 |
ifcfg eth0 192.168.11.91/24 |
Назначить маршрут по умолчанию
1 2 3 |
ip route add default via 192.168.1.1 |
Действия с маршрутами
Кроме add также поддерживаются и другие действия:
del — удалить маршрут.
replace — заменить маршрут другим.
change — изменить параметры маршрута.
Equal Cost Multi Path
Если добавить два маршрута до одной и той же сети с одинаковой метрикой, ядро начнет распределять нагрузку между ними путем выбора того или другого с равной вероятностью. Работает и для более чем двух маршрутов. Предупреждение: это может вызвать проблемы со входящими соединениями, потому что иногда ответ может пойти по другому маршруту, чем пришел запрос. Будьте осторожны.
1 2 3 4 |
ip route add default dev eth0 ip route add default dev eth1 |
Использование route
Для использования команды route, необходим пакет net-tools. По умолчанию он отсутствует в минимальной установке. Поэтому после первичной настройки с помощью команды ip, можно установить его.
1 2 3 |
yum -y install net-tools |
Добавление маршрута через шлюз
1 2 3 |
route add -net 192.168.0.0/16 gw 10.0.0.1 |
Добавление маршрута через интерфейс
1 2 3 |
route add -net 192.168.0.0/16 dev eth1 |
Маршрут до отдельного хоста
1 2 3 |
route add -host 192.168.0.1 gw 172.16.0.1 |
Назначить маршрут по умолчанию
1 2 3 |
route add default gw 192.168.1.1 |
Удаление маршрута
1 2 3 |
route del ... |
Сохранение настроек сети
Определяем, какие интерфейсы есть в системе
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:15:17:18:5f:d8 brd ff:ff:ff:ff:ff:ff inet 10.15.0.1/28 brd 91.241.22.15 scope global eth0 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:15:17:18:5f:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.11.101/24 brd 192.168.11.255 scope global eth1 inet 10.49.0.1/8 brd 10.255.255.255 scope global eth1:3 inet 192.168.70.16/24 brd 192.168.70.255 scope global eth1:1 4: gre0: <NOARP> mtu 1476 qdisc noop state DOWN link/gre 0.0.0.0 brd 0.0.0.0 5: gretap0: <BROADCAST,MULTICAST> mtu 1476 qdisc noop state DOWN qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 6: eth1.122@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:15:17:18:5f:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.123.254/23 brd 192.168.123.255 scope global eth1.122 |
Сохраняем настройки
Для сохранение я настроек необходимо внести изменения я конфигурационный файл интерфейса, который находиться /etc/sysconfig/network-scripts/ifcfg-eth0 и приводим его к виду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
DEVICE="eth0" BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="7f9fe579-ac2f-4e35-9445-7685620fa61d" HWADDR=00:15:17:18:5F:D8 IPADDR=10.15.0.1 PREFIX=28 GATEWAY=10.15.0.254 DNS3=8.8.4.4 DNS2=8.8.8.8 DNS1=192.168.11.3 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" |
Перезапуск сети
После внесения изменений необходимо перезапустить демон сети
1 2 3 |
service network restart |
или так
1 2 3 |
/etc/init.d/network restart |
Сохранение статических маршрутов
Статические маршруты указываются в файлах /etc/sysconfig/network-scripts/route-IFNAME с добавлением имени интерфейса
1 2 3 4 5 |
cat /etc/sysconfig/network-scripts/route-eth1 192.168.0.0/16 via 192.168.11.1 10.10.0.0/16 via 192.168.11.1 |
1 2 3 4 5 6 7 8 9 10 11 12 |
cat /etc/sysconfig/network-scripts/route-eth1 ADDRESS0=192.168.0.0 NETMASK0=255.255.0.0 GATEWAY0=192.168.11.1 ADDRESS1=172.16.0.0 NETMASK1=255.196.0.0 GATEWAY1=192.168.11.1 ADDRESS2=10.10.0.0 NETMASK2=255.255.0.0 GATEWAY2=192.168.11.1 |
Оба варианта имеют право на существование, но первый немного лаконичней. После чего необходимо перезагрузить демон сети
Привязка интерфейса к карте
При наличии нескольких сетевых карт возникает вопрос о порядке их нумерации. В 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=wwww.example.com
GATEWAY=10.10.10.1
Конфигурация интерфейса
Файлы в каталоге /etc/sysconfig/network-scripts с именами вида ifcfg-eth0
Динамическая конфигурация интерфейса
1 2 3 4 5 |
ONBOOT="yes" DEVICE="eth0" BOOTPROTO="dhcp" |
Ручная конфигурация
Статическая конфигурация интерфейса
1 2 3 4 5 6 7 |
ONBOOT="yes" DEVICE="eth1" BOOTPROTO="static" IPADDR=145.14.137.221 PREFIX=24 |
Конфигурация шлюза и DNS
1 2 3 4 5 |
GATEWAY=192.168.1.1 DEFROUTE=yes DNS1=192.168.1.14 |
NM_CONTROLLED=»no»
Дополнительный IP адрес на интерфейсе eth1
1 2 3 4 5 6 7 |
ONBOOT=no DEVICE=eth1:0 BOOTPROTO=static IPADDR=172.16.12.6 NETMASK=255.255.0.0 |
1 2 3 4 |
BROADCAST=172.16.255.255 NETWORK=172.16.0.0 |
Инициализация VLAN на eth1
1 2 3 4 5 6 7 8 9 |
DEVICE=eth1.72 VLAN=yes VLAN_TRUNK_IF=eth1 BOOTPROTO=static IPADDR=10.10.0.1 NETMASK=255.255.255.192 ONBOOT=yes |
Настройка DNS Файл /etc/resolv.conf
- мой домен, для подстановки в короткие имена
search example.com - сервер DNS
nameserver 8.8.8.8
Ручная настройка имен хостов файл /etc/hosts
1 2 3 4 |
127.0.0.1 localhost.localdomain localhost ANY ::1 localhost6.localdomain6 localhost6 |