아래 경로로 가시면 PDF 파일로 다운로드 받을 수 있고, 560 페이지나 됩니다.
http://www.microsoft.com/en-us/download/details.aspx?id=8781
윈도우 환경에서 네트워크 환경을 이해하는데 좋은 것 같고, 윈도우 뿐만 아니라TCP/IP 의 기본적인 내용, 서브네팅, 라우팅등 많은 내용이 기술되어 있습니다.
총 16 Chapter 까지 있고 목차만 봐도 내용이 튼실합니다.
추천드립니다.
윈도우 환경에서 네트워크 환경을 이해하는데 좋은 것 같고, 윈도우 뿐만 아니라
![]()
Figure : OpenFlow switch
|
![]()
Figure : IPsec tunneling (AES-CTR and SHA1)
|
| Format Code | Header | Default | Meaning |
|---|---|---|---|
| %n | count | y | Count of requests that completed during this iteration |
| %a | avg | y | Average response time |
| %s | sum | y | Sum of response times |
| %x | sqs | Sum of squares of response times | |
| %m | min | y | Minimum response time |
| %M | max | y | Maximum response time |
| %h | med | y | Median response time |
| %S | stddev | y | Standard deviation of response times |
| %v | var | Variance of response times | |
| %I | iter# | Iteration number | |
| %t | elapsed | Seconds elapsed since the first iteration | |
| %T | timestamp | y | Unix timestamp |
| %% | A literal % | ||
| \t | A tab character | ||
| \n | A newline character | ||
| 95,99 | Adds a prefix | y | A percentile indicator; see later in this section for more |
tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id |root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]tc class [ add | change | replace ] dev DEV parent qdisc-id [ classidclass-id ] qdisc [ qdisc specific parameters ]tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ]protocol protocol prio priority filtertype [ filtertype specific param‐eters ] flowid flow-idtc [ FORMAT ] qdisc show [ dev DEV ]tc [ FORMAT ] class show dev DEV
오늘은 bonding 기술에 대해서 다뤄보고자 한다. 이것은 여러개의 네트워크 인터페이스를 하나로 만들어 이더넷 카드 장애 또는 링크 Fail 에 대해 대비를 할 수 있다. 또한 로드발랜스를 구현할 수 있으며, 자연스럽게 Fault tolerance 를 보장해주어 고장 허용한계를 최소화 할 수도 있겠다. 스위치 장비 같은것에서 보면 "채널본딩", "트렁킹" 같은 기술들이 이와 이론적으로는 유사하다고 할 수 있다.
# apt-cache search ifenslave
ifenslave-2.6 - Attach and detach slave interfaces to a bonding device
# apt-get install ifenslave-2.6
# cat /etc/network/interface
auto bond0
iface bond0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254
bond_mode balance-tlb
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth0 eth1
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
Bonding Mode: transmit load balancing
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth0
MII Status: up
Link Failure Count: 1
Permanent HW addr: 84:XX:XX:XX:10:1c
Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: 84:XX:XX:XX:10:1e
결과중 Chimney 오프로드 상태가 TOE 를 가르킨다고 보면 된다. 윈도우 7 환경에서는 자동으로 설정이 되어 있지만 만약 항상 활성화 시키기 위해서는 enabled 값을 사용하면 된다. 물론 중지하기 위해서는 disabled 로도 재 설정이 가능하다. 다음과 같이 설정하면 되는데, 일반 사용자 권한으로 실행시에는 다음과 같은 실행 에러를 만나게 된다.
C:\>netsh int tcp show global
활성 상태 쿼리하는 중...
TCP 글로벌 매개 변수
----------------------------------------------
받는 쪽 배율 상태 : enabled
Chimney 오프로드 상태 : automatic
NetDMA 상태 : enabled
DCA(직접 캐시 액세스) : disabled
수신 창 자동 조정 수준 : normal
추가 정체 제어 공급자 : none
ECN 기능 : disabled
RFC 1323 타임스탬프 : disabled
** 위의 autotuninglevel 설정은 하나 이상의 프로필에 대한 로컬/정책 구성이 Window
s 배율
추론으로 다시 정의된 데 따른 결과입니다.
C:\>netsh int tcp set global chimney=enabled
IPv4에서 global 설정 명령을 실행하지 못했습니다. 요청한 작업을 수행하려면 권한
상승(관리자 권한으로 실행)이 필요합니다.
C:\Windows\system32>netsh int tcp set global chimney=enabled
확인됨
C:\Windows\system32>netsh int tcp show global
활성 상태 쿼리하는 중...
TCP 글로벌 매개 변수
----------------------------------------------
받는 쪽 배율 상태 : enabled
Chimney 오프로드 상태 : enabled
C:\>netstat -t
활성 연결
프로토콜 로컬 주소 외부 주소 상태 오프로
드 상태
TCP 192.168.40.2:1032 222.122.199.23:http CLOSE_WAIT InHost
TCP 192.168.40.2:1038 tx-in-f125:5222 ESTABLISHED InHost
TCP 192.168.40.2:1039 38.126.11.28:http CLOSE_WAIT InHost
TCP 192.168.40.2:2261 tb-in-f191:http ESTABLISHED InHost (이하 삭제)
우리가 흔히 이더넷 정보를 확인할 때 대표적인 도구가 ifconfig 다. ifconfig 를 통해 링크상태, IP 주소, 맥 주소, 통신 상태 현황등을 살펴볼 수 있다. ethtool 은 이보다 더 많은 부분을 살펴볼 수 있고, 설정도 가능하다.일목요연하게 이더넷 인터페이스에 대한 정보를 한눈에 보여준다. 자, 그럼 몇 가지 주요 옵션들에 대해서 알아보도록 하겠다. -s 옵션은 속도, Duplex 등의 값을 변경할 수 있다. 아래 예는 Auto-negotiation 기능을 Off 하는 것이다.# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: umbg
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
# ethtool -s eth0 autoneg off
본인이 사용하는 하드웨어가 각자 다르기 때문에 적절한 방법으로 사용하면 될 것이다.# modprobe e1000 Duplex=0 (0=auto-negotiate, 1=half, 2=full)
-i 는 드라이버에 대한 정보를 보여주는 것이다. e1000 드라이버를 사용하고 있고, eeprom 접근이 가능한지 여부등이 나온다.다음은 r8169 를 사용하는 곳에서 변경을 해 본 것이다.
# ethtool -s eth0 autoneg off speed 100 duplex half
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
# ethtool -i eth0
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: N/A
bus-info: 0000:00:03.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
# ethtool -S eth0
NIC statistics:
rx_packets: 10
tx_packets: 29
rx_bytes: 2145
tx_bytes: 4100
rx_broadcast: 0
tx_broadcast: 3
rx_multicast: 0
tx_multicast: 18
rx_errors: 0
tx_errors: 0
tx_dropped: 0
# ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: off
# ethtool -p eth3
# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off
# lshw -C network
*-network
description: Ethernet interface
product: 82540EM Gigabit Ethernet Controller
vendor: Intel Corporation
physical id: 3
bus info: pci@0000:00:03.0
logical name: eth0
version: 02
serial: 08:00[deleted]:d0
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 66MHz
capabilities: pm pcix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000 driverversion=7.3.21-k8-NAPI duplex=full firmware=N/A ip=10.0.2.15 latency=64 link=yes mingnt=255 multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:10 memory:f0000000-f001ffff ioport:d010(size=8)