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

Ссылка 1 Ссылка 2

comments powered by Disqus