728x90

인터페이스 이중화


- 기존에는 하나의 인터페이스에 하나의 IP 주소 할당 및 사용

- 인터페이스 문제 발생 시 서비스 제공에 지장

- 인터페이스마다 주소가 다르면 접근이 어려움

- 인터페이스 여러 개를 묶어서 사용하는 형태 ===> 본딩 / 티밍 두 가지 방식 존재

 


네트워크 티밍


티밍이란?

- RHEL7 버전부터 제공 (기존의 본딩 방식에서 변경 가능)

- 본딩에 비해 사용자(관리자) 입장에서 편의성 제공

- 인터페이스 장애에 대한 대비

- 효율성 증대

- IP 주소에 대한 부담 감소

- 여러 개의 인터페이스에 대해 IP 주소를 하나만 설정

- 목적:  인터페이스에 문제가 발생하더라도 네트워크가 끊어지지 않도록 하기위함

 

 

러너

- 티밍 구성 시 동작 방식 지정 (트래픽 처리 방식)

- 러너 방식

러너 설명
broadcast 각각의 인터페이스마다 패킷 전달
roundrobin
하나씩 번갈아가면서 패킷 전달
loadbalance 처리량(상태)에 따라 부하분산 기능 제공
active-backup 장애 복구 방식의 기능만 제공
LACP 네트워크 장비(스위치)에서 설정해둔 방식으로 동작

 


 

인터페이스 준비


NAT 네트워크 카드 두 개 설정

> 가상 머신 전원 끄기

> 가상 머신 속성

> 네트워크

> 어댑터 총 3개 설정: NAT 네트워크 2개, 호스트 전용 어댑터 1개

 

 

 

 

 


인터페이스 아키텍처


- 팀 인터페이스를 활성화하더라도 포트 인터페이스는 활성화되지 않음

- 포트 인터페이스 활성화 시 팀 인터페이스 자동 활성화

- 포트 인터페이스 비활성화 시 팀 인터페이스 활성화 유지

- 팀 인터페이스 비활성화 시 모든 포트 인터페이스 비활성화

 

 


인터페이스 설정


NAT 네트워크 비활성화 (enp0s3, enp0s9)

# 연결된 인터페이스 확인

[root@team ~]# nmcli c s
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  a97fc47b-0dd9-3d92-a146-17b8947a836c  ethernet  enp0s9
enp0s8              12fddb3e-080a-4945-9673-80141255a31b  ethernet  enp0s8
virbr0              c1ec0042-e850-4398-8e21-7411149e676d  bridge    virbr0
enp0s3              f093169b-ee0b-4740-9f54-4056c6c3d1bf  ethernet  --

# NAT 네트워크 비활성화
[root@team ~]# nmcli con down enp0s3
[root@team ~]# nmcli con down Wired connection 1

# 인터페이스 상태 확인
[root@team ~]# nmcli dev status
DEVICE      TYPE      STATE         CONNECTION
enp0s8      ethernet  connected     enp0s8
virbr0      bridge    connected     virbr0
enp0s3      ethernet  disconnected  --
enp0s9      ethernet  disconnected  --
lo          loopback  unmanaged     --
virbr0-nic  tun       unmanaged     --

 

 

팀 인터페이스 생성 (team01: 가상 인터페이스)

# type: team / team-slave

 1) team: 팀 인터페이스

 2) team-slave: 포트 인터페이스


# config: 러너 방식 (json 문법)

***작성 시 주의: 입력 시 오타에 대한 오류가 발생하지 않음

 

[root@team ~]# nmcli connection add type team con-name team01 ifname team01 config '{"runner": {"name": "activebackup"}}'
Connection 'team01' (7cbad7b0-7802-4fe1-b1d8-1c561d42059e) successfully added.

 

team01 가상 인터페이스는 생성되었으나 실제 IP 주소가 할당되지 않은 상태

 

 

생성한 팀 인터페이스에 IP 주소 정적 할당

[root@team ~]# nmcli con mod team01 ipv4.addresses 10.0.2.110/24
[root@team ~]# nmcli con mod team01 ipv4.gateway 10.0.2.1
[root@team ~]# nmcli con mod team01 ipv4.dns 8.8.8.8
[root@team ~]# nmcli con mod team01 ipv4.method manual
[root@team ~]# nmcli con up team01
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)

[root@team ~]# teamdctl team01 state
...
ipv4.method:                            manual
ipv4.dns:                               8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         10.0.2.110/24
ipv4.gateway:                           10.0.2.1
...

 

 

포트 인터페이스 생성 (team01-port1, team01-port2: 물리 인터페이스)

-> DHCP 서버에서 IP 주소를 할당받음

 

[root@team ~]# nmcli connection add type team-slave con-name team01-port1 ifname enp0s3 master team01
Connection 'team01-port1' (217bee6c-051c-4eaf-868a-04843ff07741) successfully added.

[root@team ~]# nmcli connection add type team-slave con-name team01-port2 ifname enp0s9 master team01
Connection 'team01-port2' (042b8ca2-9fbf-4506-8295-cd4751098371) successfully added.

 

팀/포트 인터페이스 활성화

*** 팀 인터페이스 활성화를 위해서는 반드시 포트 인터페이스 활성화 필요


[root@team ~]# nmcli con up team01-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)

[root@team ~]# nmcli con up team01-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/12)

[root@team ~]# nmcli con up team01
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)

 

 

참고: 설정한 러너 변경

1) nmcli con mod team01 team.config '{"runner .... 

2) 별도의 json 형태의 파일을 이용 가능

-> nmcli con mod team01 team.config FILE

/usr/share/doc/team-XXX/example_configs/ 에서 참고

nmcli con mod team01 team.config '{"runner": {"name": "roundrobin"}}'

 

728x90

+ Recent posts