LINUX.ORG.RU

Как определить slave интерфейсы у bond'a?


0

1

Привет. Есть ли какой-нибудь системный вызов или что-либо подобное? Т.е. интересует программный метод, как можно получить интерфейсы.

Парсить /sys:

ll /sys/class/net/bond0/
total 0...
lrwxrwxrwx  1 root root    0 Aug 11 14:24 slave_eth1 -> ../../../pci0000:00/0000:00:02.0/0000:03:00.1/net/eth1
lrwxrwxrwx  1 root root    0 Aug 11 14:24 slave_eth5 -> ../../../pci0000:00/0000:00:1c.0/0000:0a:00.2/net/eth5

Или /proc

cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 2c:44:fd:85:40:d1
Slave queue ID: 0

Slave Interface: eth5
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: d8:9d:67:1f:9e:92
Slave queue ID: 0

как-то велосипедно, как мне кажется.

Буду признателен, если есть способы сделать это через snmp.

★★★★★

Парсить /sys:

Скорее всего это самый правильный способ. Более правильным может быть только запрос к ядру через netlink. Но я не помню, чтобы с бондингом умели работать утилиты iproute2, так что возможно соотвествующего netlink-интерфейса ещё нет или он появился совсем недавно.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Интерфейсы в бондинге:

/sys/class/net/bond0/bonding/slaves

Активный:

/sys/class/net/bond0/bonding/active_slave

Парсить тут особо нечего.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.