IT 이야기/Linux

[RHEL7] NetworkManager 환경의 Bonding VLAN Tagging 설정

찬찬이 아빠 2019. 12. 6. 17:18
반응형

RHEL7 기반에서 NetworkManager를 이용하여 네트워크 통신을 수행하는 환경에서 Bonding Tagging 설정을 하려면 어떻게 해야 할까요?

 

1. Bonding Mode 종류

 - mode=0 (balance-rr) : 패킷을 보낼때 순차적 전송

 - mode=1 (active-backup) : Active된 이더넷에 문제 발생시 backup 이더넷으로 전환

 - mode=2 (balance-xor) : xor 연산을 이용한 목적지 Mac과 근원지 Mac을 이용해 패킷 분배

 - mode=3 (broadcast) : 송수신 패킷을 복사해서 모든 이더넷 디바이스에 동일한 패킷 전송

 - mode=4 (802.3ad) : IEEE 802.3ad 프로토콜을 사용해서 스위치 사이에서 동적으로 aggregation을 작성

 - mode=5 (balance-tlb) : 이더넷 디바이스 중 부하가 낮은 장치를 선택해서 ㅐ킷을 보내며 수신은 특정 장치로 지정

 - mode=6 (balance-alb) : 송수신 모두 부하가 낮은 장치를 체크해서 사용

 

2. 설정내역 확인 및 설정 제거

1) 기존 설정 내역 확인

   - /proc/net/bonding/bond0에 설정된 Slave 디바이스명 확인

   - /etc/sysconfig/network-scripts/ifcfg-bond0에서 IP와 Gateway 확인 후 설정 파일 삭제

 

 2) 수행 방법

# cat /etc/sysconfig/network-scripts/ifcfg-bond0
# nmcli connection delete bond0

 

3. Bonding 및 VLAN Tagging 설정 방법

 1) bond0 설정

   - mode 802.3ad로 ipv4.mothod, ipv6.mothod disabled로 설정

   - /etc/sysconfig/network-scripts/ifcfg-bond0 설정 내용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DEVICE=bond0
BONDING_OPTS="miimon=100 updelay 0 downdelay 0 mode=802.3ad"
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=xxxxxxx-xxxxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxxxx
ONBOOT=yes
cs

   

 2) Bonding할 Slave Device 설정

  - /proc/net/bonding/bond0에 설정된 Slave 디바이스명으로 eth0, eth1로 가정하여 설명함

  - /etc/sysconfig/network-scripts/ 디렉터리 내에 Slave Device 설정 내용 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<ifcfg-eht0>
TYPE=Ethernet
NAME=eth0
UUID=xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
 
<ifcfg-eht1>
TYPE=Ethernet
NAME=eth1
UUID=xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
cs

 

   - 설정내역 확인 결과 위와 같이 설정되어 있다면 아래 설정 생략

   - Bonding할 Slave Device는 설정 내역 확인에서 설정된 Device 리스트로 설정

# nmcli connection add type bond-slave ifname eth0 con-name eth0 master bond0
# nmcli connection add type bond-slave ifname eth1 con-name eth1 master bond0

 

 3) Bonding 설정 내역 업데이트

# nmcli connection up bond0

 

 4) VLAN Tagging 설정 및 게이트웨이 추가

  - VLAN Tagging ID 설정과 현 서버의 IP 및 게이트웨이르르 추가하여 bond0.100 파일 생성

# nmcli connection add type vlan ifname bond0.100 con-name bond0.100 id 100 dev bond0 ip4 xxx.xxx.xxx.xxx(로컬IP)/24 gw4 xxx.xxx.xxx.xxx(게이트웨이IP)

  - BootProtocol static으로 변경 (nmcli 설정 시 기본값은 dhcp)

# nmcli connection modify bond0.100 ipv4.method static
# nmcli connection modify bond0 ipv4.method static

 

  - DNS 추가

# nmcli connection modify bond0.100 ipv4.dns xxx.xxx.xxx.xxx

 

  - 도메인명 추가 (도메인명 : chanchan.com)

# nmcli connection modify bond0.100 ipv4.dns-search chanchan.com

 

  - /etc/sysconfig/network-scripts/ifcfg-bond0.100 설정 내용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
VLAN=yes
TYPE=Vlan
DEVICE=bond0.100
PHYSDEV=bond0
VLAN_ID=100
REORDER_HDR=yes
GVRP=no
MVRP=no
PROXY_METHOD=none
BROWER_ONLY=no
BOOTPROTO=none
IPADDR=xxx.xxx.xxx.xxx
PREFIX=24
GATEWAY=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0.100
UUID=xxxxxxxxx-xxxxxxx-xxxxxxxx-xxxxxxx-xxxxxxxxxx
ONBOOT=yes
DOMAIN=chanchan.com
cs

 

 5) Bonding 설정 내역 업데이트

# nmcli connection reload

 

 6) 네트워크 재시작

# systemctl restart network
# systemctl restart NetworkManager

 

 

4. 서비스 상태 확인

 - netstat -nr 명령어로 게이트웨이가 등록되었는지 확인

 - route 명령어로 bond0.100의 게이트웨이가 정상적으로 등록되었는지 확인

 - ping 게이트웨이 며ㅇ령어로 게이트웨이까지 ping이 정상적인지 확인

 

 

5. 시스템 재부팅

 시스템 재부팅 후 서비스 상태 확인

 

 

6. 설정 스크립트 (스크립트를 이용한 설정)

 - Bondig이 이미 구성되어 잇는 경우 Slave 디바이스 설정은 생략

반응형