드레스룸 시스템행거 인테리어

반응형

ubuntu 18.04 netplan - bonding 구성

 

 

centos에서의 bonding은 항상 익숙하고 편리한데 ubuntu에서는 많이 해보지 않아 불편하다. 또한 ubuntu16.04 대역 까지는 networks/interfaces를 사용하여 나름 편리하였지만 18.04부터 netplan을 쓰다 보니 상당히 불편하다. 그래도 변화에 적응해야 하니 ubuntu18.04 대역부터 사용하는 netplan의 bonding에 대하여 작성해 보도록 하겠다.

 

 

link test

(base) root@ckkim:~# ethtool eno1
Settings for eno1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: on (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes
(base) root@ckkim:~# ethtool eno2
Settings for eno2:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: on (auto)
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

 

현재 Test하고 있는 Ethernet port인 eno1과 eno2의 링크를 ethtool로 확인하였다. 링크가 살아있나 만 확인 하기 위해 Link detected : yes 부분만 확인하고 넘어가겠다. 혹시 ethtool이 설치가 되어 있지 않다면 apt install ethtool을 진행해주면 간편하게 설치가 된다.

 

 

01-network-manager-all.yaml

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: networkd
  ethernets:
          eno1:
                  dhcp4: false
                  optional: true
          eno2:
                  dhcp4: false
                  optional: true

 

ethernet port인 eno1과 eno2의 본딩 작업을 위하여 01-network-manager-all.yaml 파일을 위와 같이 수정하였다. 새로운 환경에서 새로운 옵션들을 알기란 참 복잡하고 귀찮다 하지만 사용하는 옵션을 왜 쓰는지는 알아야 하기에 확인 해봤다. 당연히 bonding을 사용하기 위해서는 dhcp4는 사용하지 않기 때문에 false를 사용하겠지만 아래 optional을 사용하는 사람도 있고 사용하지 않는 사람도 봤다.

optional: true 설정은 인터페이스가 연결되어 있는지 여부를 확인하지 않음으로써 부팅 시간을 단축시키는 옵션이다. 설정하지 않으면 default는 false 옵션으로 설정되어 있다.

 

 

02-bondings.yaml

network:
        version: 2
        renderer: networkd
        bonds:
                bond0:
                        interfaces: [eno1,eno2]
                        addresses: [192.168.15.170/24]
                        gateway4: 192.168.15.1
                        nameservers:
                                addresses: [168.126.63.1, 8.8.8.8]
                        dhcp4: false
                        optional: true
                        parameters:
                                 mode: active-backup
                                 mii-monitor-interval: 100

 

위와 같이 02-bondings.yaml 파일을 생성 후 위와 같이 정리 해준다. interfaces에는 본인의 서버의 사용할 ethernet devices 이름을 적어 주면 된다. 아래 parameters 값에 mode는 bonding 모드를 적어 주면 된다. bonding 모드는 centos와 동일하며 모른다면 아래 링크를 참조하기 바란다.

2020/07/30 - [linux] - linux - centos 본딩(bonding)종류 및 설정하기

 

linux - centos 본딩(bonding)종류 및 설정하기

linux centos 본딩(bonding) 종류 및 설정하기 서버를 사용하다 보면 여러 가지 이유로 본딩을 묶게 된다. 본딩을 묶는 이유는 본딩모드에 따라 여러 가지가 될 수 있다. 빨리 쓰고 싶은사람도 있고 또�

kyumdoctor.tistory.com

나는 기본적으로 많이 사용하는 active-backup모드를 사용 하였고, mii-monitor-interval 시간은 설정하지 않게 된다면 default값은 0이기 때문에 centos에서 bonding 할 때 사용하였던 100을 주었다. 위와 같이 설정이 끝났다면 저장 후 netplan apply로 적용해주게 되면 bonding 구성이 잘 되었을 것이다.

 

 

netplan apply

(base) root@ckkim:/etc/netplan# netplan apply
(base) root@ckkim:/etc/netplan# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.15.170  netmask 255.255.255.0  broadcast 192.168.15.255
        inet6 fe80::681d:99ff:fe7e:e731  prefixlen 64  scopeid 0x20<link>
        ether 6a:1d:99:7e:e7:31  txqueuelen 1000  (Ethernet)
        RX packets 10954  bytes 8592789 (8.5 MB)
        RX errors 0  dropped 13  overruns 0  frame 0
        TX packets 3304  bytes 279149 (279.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 6a:1d:99:7e:e7:31  txqueuelen 1000  (Ethernet)
        RX packets 211469  bytes 95416613 (95.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11497232  bytes 851736093 (851.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xab120000-ab13ffff

eno2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 6a:1d:99:7e:e7:31  txqueuelen 1000  (Ethernet)
        RX packets 5034  bytes 489144 (489.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 133  bytes 13354 (13.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xab100000-ab11ffff

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8064  bytes 746780 (746.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8064  bytes 746780 (746.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

만약 netplan apply 명령어 사용시 error가 나온다면 아까 설정한 파일에서 띄어쓰기 및 들여 쓰기 오류 혹은 오타 일 수 있으니 잘 확인해 보도록 하자. netplan의 가장 귀찮은 점은 내 마음대로 띄어쓰기하게 된다면 error가 발생한다. 하나씩 작성하면서 enter후 아래 줄에 위치하는 곳에 바로 작성하면 된다. 본인 마음대로 취향에 따라 띄어쓰기하거나 하면 오류가 나온다.

 

 

bonding 확인

(base) root@ckkim:/etc/netplan# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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

Slave Interface: eno2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: ac:1f:6b:3a:96:cf
Slave queue ID: 0

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: ac:1f:6b:3a:96:ce
Slave queue ID: 0

 

위와 같이 bond0 파일을 확인 하였을 때 MII Status가 up이 되어 있고 또한 speed 또한 자신의 network 속도에 맞게 표기되면 정상적으로 bonding구성이 완료된 것이다.

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band