CoreOS: Решение проблем с bond-интерфейсом при загрузке
Проблема
Имеется сервер с 2 сетевыми картами, подключенный к коммутатору, сетевые карты обьедены в один bond0 интерфейс. Если в ручную настроить:
ip link set dev enp6s0f0 down
ip link set dev enp6s0f1 down
modprobe bonding miimon=100
ip link set dev enp6s0f0 master bond0
ip link set dev enp6s0f1 master bond0
ip ad add 192.168.1.200/24 dev bond0
то сеть работает. Но если перегрузить сервер, то bond0 интерфейс создается, но enp6s0f0 и enp6s0f1 не будут добавлены к bond0. соответственно сеть не работает.
Начал изучать интернет, оказалось проблема в следующем:
- coreos поднимает интерфейс enp6s0f0, enp6s0f1
- интерфейс bond0 не может включить enp6s0f0, enp6s0f1, так как эти интерфейсы уже подняты.
Решение
если в cloud-config.yaml включить данный код:
coreos:
units:
- name: runcmd.service
command: start
content: |
[Unit]
Description=Solve bond0 problem
[Service]
Type=oneshot
ExecStart=/bin/sh -c "ip link set dev enp6s0f0 down; ip link set dev enp6s0f1 down; systemctl restart systemd-networkd.service; systemctl restart fleet.service"
то после перезагрузки сеть работает.
Links