
У меня есть сервер с несколькими адаптерами в связке, bond0.
Я не уверен (даже после обширных исследований), как поднять устройство bond0 без IP-адреса. Я хочу, чтобы VLAN использовали bond0, но не имели нетегированного интерфейса на сервере.
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
bond-slaves none
bond-miimon 100
bond-mode 802.3ad
auto vlan50
iface vlan50 inet static
address 192.168.248.241
netmask 255.255.255.0
network 192.168.248.0
vlan-raw-device bond0
Приведенная выше конфигурация работает, и работает отлично, за исключением того, что у bond0 есть адрес, который не находится в тегированной VLAN.
Коммутатор настроен правильно. VLAN работает нормально. Сервер является членом нескольких VLAN, конфигурация выше упрощена, поскольку остальная часть конфигурации не имеет никакого отношения к моей проблеме.
Да, я мог бы просто добавить фиктивный адрес в интерфейс bond0, но мне это не кажется таким уж чистым.
Я попробовал следующее:
https://wiki.debian.org/NetworkConfiguration#Подключение_интерфейса_без_IP_адреса
Однако это не сработало и оставило bond0 ненастроенным, а следовательно, и без сетевого подключения.
ОС: Ubuntu 14.04.2 LTS
решение1
Я предполагаю, что должно сработать что-то вроде этого:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet static
pre-up ifconfig bond0 up
pre-up ifenslave bond0 eth0 || /bin/true
pre-up ifenslave bond0 eth1 || /bin/true
down ifenslave -d bond0 eth0 || /bin/true
down ifenslave -d bond0 eth1 || /bin/true
auto bond0.50
iface bond0.50 inet static
address 192.168.248.241
netmask 255.255.255.0
network 192.168.248.0
решение2
Я не знаю подробностей файлов конфигурации сети последних выпусков Debian, но вы должны добиться желаемого, выполнив следующие шаги:
- удалить IP-адрес базового интерфейса (bond0) с помощью команды
"ip addr flush dev bond0"
или"ifconfig bond0 ip 0.0.0.0"
- вставьте правила iptables, которые отбрасывают любой трафик, поступающий с нетегированного интерфейса (bond0), с помощью команды
"iptables -I INPUT 1 -i bond0 -j DROP"
В любом случае, вероятно, проще настроить коммутатор на отбрасывание всего нетегированного трафика, поступающего на/с определенных сетевых портов, используемых для объединения.