위 그림처럼 interface
2개를 bonding
으로 묶은 이후 해당 bond interface
를 bridge
로 만들어야 하는 경우가 있다.
일반적인 linux network (ifconfig) 방식에서는 쉽게 만들수 있지만 NetworkManager
를 통해서 만들어야 하는경우 약간 복잡해진다.
무엇보다 nmtui
에서 Bridge
의 Slave interface로 bond interface
를 지정하지 못하는 문제가 있어서 NetworkManager
를 사용해야 하는경우
nmtui
를 사용하면 안되고 nmcli
로 수동으로 구성해줘야 한다.
먼저 Bridge Interface를 생성한다.
br-ext
라는 Bridge
를 생성한다.
BRIDGE=br-ext BRIDGE_STP=yes BRIDGE_MTU=1500 nmcli con add type bridge con-name "${BRIDGE}" ifname "${BRIDGE}" ### STP와 MTU는 필요한경우 설정한다. nmcli con modify "${BRIDGE}" bridge.stp "${BRIDGE_STP}" nmcli con modify "${BRIDGE}" 802-3-ethernet.mtu "${BRIDGE_MTU}"
해당 브릿지 인터페이스에서 사용할 IP를 설정한다.
nmcli con modify "${BRIDGE}" ipv4.method manual ipv4.address 192.168.0.123/24 ipv6.method ignore ### IP사용하지 않을경우 nmcli con modify "${BRIDGE}" ipv4.method disabled ipv6.method ignore
브릿지 인터페이스 활성화
nmcli con up "${BRIDGE}" nmcli con brctl show
BOND=bond0 BOND_SLAVE0=eth0 BOND_SLAVE1=eth1 BOND_MODE=active-backup BOND_MTU=9000 nmcli con add type bond ifname "${BOND}" con-name "${BOND}" nmcli con modify "${BOND}" bond.options mode="${BOND_MODE}" nmcli con modify "${BOND}" 802-3-ethernet.mtu "${BOND_MTU}" nmcli con add type ethernet con-name "${BOND}-slave-${BOND_SLAVE0}" ifname "${BOND_SLAVE0}" master "${BOND}" nmcli con add type ethernet con-name "${BOND}-slave-${BOND_SLAVE1}" ifname "${BOND_SLAVE1}" master "${BOND}" nmcli con modify "${BOND}-slave-${BOND_SLAVE0}" 802-3-ethernet.mtu "${BOND_MTU}" nmcli con modify "${BOND}-slave-${BOND_SLAVE1}" 802-3-ethernet.mtu "${BOND_MTU}"
이후 해당 bond 인터페이스를 브릿지 인터페이스에 연결해준다.
nmcli con modify "${BOND}" master "${BRIDGE}" slave-type bridge nmcli con up "${BOND}" cat /proc/net/bonding/bond0 nmcli con ls /sys/class/net/br-bond0/brif/ brctl show
VLAN을 사용할 브릿지 인터페이스 생성
VLAN=123 BOND=bond0 BRIDGE=br-vlan${VLAN} BRIDGE_STP=yes BRIDGE_MTU=9000 nmcli con add type bridge con-name "${BRIDGE}" ifname "${BRIDGE}" nmcli con modify "${BRIDGE}" bridge.stp "${BRIDGE_STP}" nmcli con modify "${BRIDGE}" 802-3-ethernet.mtu "${BRIDGE_MTU}" nmcli con up "${BRIDGE}"
해당 VLAN 인터페이스를 브릿지에 연결
nmcli con add type vlan con-name "${BOND}.${VLAN}" ifname "${BOND}.${VLAN}" dev "${BOND}" id "${VLAN}" nmcli con modify "${BOND}.${VLAN}" master "${BRIDGE}" slave-type bridge nmcli con modify "${BOND}.${VLAN}" 802-3-ethernet.mtu "${BRIDGE_MTU}" nmcli con brctl show