본문 바로가기
기타/툴 관련(리눅스)

FreeBSD 에서 두개의 NIC 을 하나로 Bonding 하는 방법입니다.

by WebHack 2009. 6. 18.

FreeBSD 에서 두개의 NIC 을 하나로 Bonding 하는 방법입니다.

FreeBSD 커널 옵션에서 Bonding 을 사용하기 위해 아래와 같은 옵션을 추가 후 커널 컴파일 합니다.

options NETGRAPH

커널 컴파일이 완료된 후 /sys/modules/netgraph/fec 에서 fec 모듈을 컴파일 설치 해줍니다.

cd /sys/modules/netgraph/fec && make && make install

/etc/start_if.bonding0 파일을 생성 후 파일안에 아래와 같은 내용을 작성합니다.

ruo91# vi /etc/start_if.fec0
#!/usr/local/bin/bash
/sbin/kldload /sys/modules/netgraph/fec/ng_fec.ko
/usr/sbin/ngctl mkpeer fec dummy fec
/usr/sbin/ngctl msg fec0: add_iface '"rl0"'
/usr/sbin/ngctl msg fec0: add_iface '"rl1"'
/usr/sbin/ngctl msg fec0: set_mode_inet
/usr/sbin/ngctl msg fec0: set_mode_mac

/etc/rc.conf 에 아래와 같은 내용을 추가 해준후 시스템을 재부팅 시켜줍니다.
(전 DHCP로 설정했습니다.)

ruo91# vi /etc/rc.conf
network_interfaces="rl0 rl1 fec0"
ifconfig_rl0="up"
ifconfig_rl1="up"
ifconfig_fec0="dhcp"
#ifconfig_fec0="inet 116.41.167.25 netmask 255.255.255.128"
ruo91# reboot

이제 Bonding 이 되었는지 ifconfig 로 확인 해봅니다.

ruo91# ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:e0:4d:0b:a9:3e
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:e0:4d:0b:a9:3e
        media: Ethernet autoselect (none)
        status: no carrier
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
fec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:e0:4d:0b:a9:3e
        inet 116.41.167.25 netmask 0xffffff80 broadcast 255.255.255.255
        media: Ethernet none
        status: active

rl0, rl1 두개의 NIC 이 합쳐진게 보이며 정상적으로 fec0 로 잘 받아왔네요..ㅋ

아래는 10초동안에 대역폭측정... 구형 NIC 인데도 속도 나름 안정적으로 잘 나오네요..


Bonding 서버

ruo91# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 116.41.167.25 port 5001 connected with 116.41.167.39 port 59314
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec    104 MBytes  87.1 Mbits/sec


클라이언트에서 측정시..

ruo91# iperf -c 116.41.167.25 -i 1 -t 10
------------------------------------------------------------
Client connecting to 116.41.167.25, TCP port 5001
TCP window size:   145 KByte (default)
------------------------------------------------------------
[  3] local 116.41.167.39 port 59314 connected with 116.41.167.25 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  10.7 MBytes  89.5 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  1.0- 2.0 sec  11.0 MBytes  91.9 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  2.0- 3.0 sec  11.1 MBytes  93.4 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  3.0- 4.0 sec  9.73 MBytes  81.6 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  4.0- 5.0 sec  10.8 MBytes  90.6 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  5.0- 6.0 sec  8.71 MBytes  73.1 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  6.0- 7.0 sec  9.16 MBytes  76.8 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  7.0- 8.0 sec  11.1 MBytes  93.3 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  8.0- 9.0 sec  10.7 MBytes  89.5 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  9.0-10.0 sec  11.1 MBytes  93.0 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec    104 MBytes  87.3 Mbits/sec

'기타 > 툴 관련(리눅스)' 카테고리의 다른 글

VIM  (0) 2009.08.20
Apache 자체 인증서 만든 후 SSL 테스트  (0) 2009.07.07
원격접속 VNC Viewer  (0) 2009.06.01
Linux/Unix date 명령어 공부  (1) 2009.05.08
OWASP - Phoenix/Tools 다양한 분석도구 팁  (0) 2009.05.08