탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1에서 고정된 네트워크 구성을 사용하여 시스템 연결 Oracle Solaris 11.1 Information Library (한국어) |
IP 인터페이스 구성 제거(ipadm delete-ip)
IP 인터페이스 구성 사용 안함(ipadm disable-ip)
인터페이스의 주소 제거(ipadm delete-addr )
ipadm 명령을 사용하면 조정 가능 항목이라고도 하는 프로토콜 등록 정보를 구성할 수 있습니다. ipadm은 이전 릴리스에서 조정 가능 항목을 설정하는 데 주로 사용되었던 ndd 명령을 대체합니다.
TCP/IP 등록 정보는 인터페이스 기반이거나 전역일 수 있습니다. 특정 인터페이스나 영역의 모든 인터페이스에 전역적으로 등록 정보를 적용할 수 있습니다. 전역 등록 정보는 각 비전역 영역에서 다른 값을 사용할 수 있습니다. 지원되는 프로토콜 등록 정보 목록은 ipadm(1M) 매뉴얼 페이지를 참조하십시오.
일반적으로 TCP/IP 인터넷 프로토콜의 기본 값으로도 네트워크가 작동하는 데 충분합니다. 하지만 기본값이 네트워크 토폴로지에 충분하지 않은 경우 필요에 따라 이러한 등록 정보를 사용자 정의할 수 있습니다.
TCP/IP 인터페이스 등록 정보를 설정하는 데에는 세 가지 ipadm 하위 명령이 사용됩니다.
ipadm show-prop -p property protocol 명령은 프로토콜의 등록 정보 및 해당 현재 값을 표시합니다. -p property 옵션을 사용하지 않으면 프로토콜의 모든 등록 정보가 나열됩니다. 프로토콜을 지정하지 않으면 모든 프로토콜의 모든 등록 정보가 나열됩니다.
ipadm set-prop -p property =value protocol 하위 명령은 IP 인터페이스의 등록 정보에 값을 지정합니다.
ipadm reset-prop -p property protocol 하위 명령은 특정 프로토콜 등록 정보를 해당 기본값으로 재설정합니다.
주 - 등록 정보가 여러 값을 수신할 수 있는 경우 다음과 같이 += 수식자를 사용하여 등록 정보에 여러 값을 지정합니다.
ipadm set-prop -p property+=value1 [value2 value3 ...].
등록 정보의 값 세트에서 값을 하나 제거하려면 다음과 같이 -= 수식자를 사용합니다.
ipadm set-prop -p property-=value2
패킷 전달 사용에서는 인터페이스에서 패킷 전달을 사용으로 설정하는 방법을 보여줍니다. IP 인터페이스 등록 정보에 패킷 전달을 설정하면 이 기능을 선택적으로 구현할 수 있습니다. 시스템의 특정 인터페이스에서만 이 등록 정보를 사용으로 설정할 수 있습니다.
IP 인터페이스 수에 관계없이 전체 시스템에서 패킷 전달을 사용으로 설정하려는 경우, 프로토콜 등록 정보를 사용합니다. 프로토콜에서 등록 정보 이름은 IP 인터페이스와 동일한 forwarding입니다. IPv4 및 IPv6 프로토콜에서 패킷 전달을 사용으로 설정하려면 명령을 별도로 실행해야 합니다.
다음 예제에서는 시스템에서 모든 IPv4 및 IPv6 트래픽에 대해 패킷 전달을 사용으로 설정하는 방법을 보여줍니다.
# ipadm show-prop -p forwarding ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv4 forwarding rw off -- off on,off ipv6 forwarding rw off -- off on,off # # ipadm set-prop -p forwarding=on ipv4 # ipadm set-prop -p forwarding=on ipv6 # # ipadm show-prop ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv4 forwarding rw on on off on,off ipv4 ttl rw 255 -- 255 1-255 ipv6 forwarding rw on on off on,off ipv6 hoplimit rw 255 -- 255 1-255#
주 - IP 인터페이스 또는 프로토콜의 forwarding 등록 정보는 배타적이지 않습니다. 인터페이스 및 프로토콜에 대한 등록 정보를 동시에 설정할 수 있습니다. 예를 들어, 프로토콜에서 전역적으로 패킷 전달을 사용으로 설정한 후 시스템에서 각 IP 인터페이스에 대한 패킷 전달을 사용자 정의할 수 있습니다. 따라서 전역적으로 사용으로 설정되었더라도 시스템에 대해 패킷 전달을 선택적으로 적용할 수 있습니다.
TCP, UDP 및 SCTP와 같은 전송 프로토콜에서 1–1023 포트는 root 권한으로 실행되는 프로세스만 이러한 포트에 바인딩할 수 있는 권한이 부여된 기본 포트입니다. ipadm 명령을 사용하면 권한이 부여된 포트가 되도록 이 지정된 기본 범위를 초과하여 포트를 예약할 수 있습니다. 따라서 root 프로세스만 해당 포트에 바인딩할 수 있습니다. 권한이 부여된 포트를 설정하려면 다음과 같은 전송 프로토콜 등록 정보를 사용자 정의합니다.
smallest_nonpriv_port - 해당 값이 일반 사용자가 바인딩할 수 있는 포트 번호 범위를 나타내는 등록 정보입니다. 지정된 포트가 이 범위 내에 있으면 권한이 부여된 포트로 설정할 수 있습니다. 등록 정보 값을 표시하려면 ipadm show-prop 명령을 사용합니다.
extra_priv_ports - 권한이 부여된 포트를 지정하는 등록 정보입니다. 제한할 포트를 지정하려면 ipadm set-prop 하위 명령을 사용합니다. 이 등록 정보에는 여러 값을 지정할 수 있습니다.
예를 들어, TCP 포트 3001 및 3050을 root 사용자로만 액세스가 제한된 권한이 부여된 포트로 설정한다고 가정해보십시오. smallest_nonpriv_port 등록 정보는 1024가 권한이 부여되지 않은 포트에 대한 최저 포트 번호임을 나타냅니다. 따라서 지정된 포트 3001 및 3050을 권한이 부여된 포트로 변경할 수 있습니다. 이렇게 하려면 다음과 유사한 명령을 실행합니다.
# ipadm show-prop -p smallest_nonpriv_port tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp smallest_nonpriv_port rw 1024 -- 1024 1024-32768 # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 -- 2049,4045 1-65535 # ipadm set-prop -p extra_priv_ports+=3001 tcp # ipadm set-prop -p extra_priv_ports+=3050 tcp # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 3001,3050 2049,4045 1-65535 3001,3050
권한이 부여된 포트에서 포트 중 하나(예: 4045)를 제거하려면 다음 명령을 입력합니다.
# ipadm set-prop -p extra_priv_ports-=4045 tcp # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,3001 3001,3050 2049,4045 1-65535 3050
기본적으로 여러 인터페이스가 있는 시스템은 멀티홈 호스트라고도 하며, 경로 지정 테이블에서 트래픽 대상까지 가장 긴 일치 경로를 기준으로 네트워크 트래픽의 경로를 지정합니다. 대상까지의 길이가 같은 경로가 여러 개 있을 경우 Oracle Solaris는 ECMP(Equal-Cost Multi-Path) 알고리즘을 적용하여 트래픽을 해당 경로에 분산시킵니다.
이런 방식의 트래픽 분산이 적합하지 않은 경우도 있습니다. 패킷의 IP 소스 주소와 동일한 서브넷에 없는 멀티홈 호스트의 인터페이스를 통해 IP 패킷이 전송될 수 있습니다. 또한 송신 패킷이 특정 수신 요청(예: ICMP 에코 요청)에 대한 응답인 경우 요청과 응답이 동일한 인터페이스를 순회할 수 없습니다. 이러한 트래픽 경로 지정 구성을 비대칭 경로 지정이라고 합니다. 인터넷 서비스 공급자가 RFC 3704(http://rfc-editor.org/rfc/bcp/bcp84.txt)에 설명된 대로 진입 필터링을 구현하는 경우 비대칭 경로 지정 구성으로 인해 공급자가 송신 패킷을 삭제할 수도 있습니다.
RFC 3704는 인터넷에서 서비스 거부 공격을 제한하기 위한 것입니다. 이 의도를 준수하려면 네트워크에서 대칭 경로 지정을 구성해야 합니다. Oracle Solaris에서 IP hostmodel 등록 정보를 사용하면 이 요구 사항을 충족할 수 있습니다. 이 등록 정보는 멀티홈 호스트를 통해 수신 또는 전송된 IP 패킷의 동작을 제어합니다.
hostmodel 등록 정보는 세 가지 가능한 값 중 하나를 가질 수 있습니다.
RFC 1122에 정의된 강력한 ES(엔드 시스템) 모델에 해당합니다. 이 값은 대칭 경로 지정을 구현합니다.
RFC 1122에 정의된 약한 ES 모델에 해당합니다. 이 값에서는 멀티홈 호스트가 비대칭 경로 지정을 사용합니다.
기본 경로를 사용하여 패킷 경로 지정을 구성합니다. 경로 지정 테이블에 대상 경로가 여러 개 있는 경우 기본 경로는 송신 패킷의 IP 소스 주소가 구성된 인터페이스를 사용하는 경로입니다. 해당 경로가 없는 경우 송신 패킷은 패킷의 IP 대상에 대한 가장 긴 일치 경로를 사용합니다.
다음 예제에서는 멀티홈 호스트에서 IP 패킷의 대칭 경로 지정을 구현하는 방법을 보여줍니다.
# ipadm set-prop -p hostmodel=strong ip # ipadm show-prop -p hostmodel ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv6 hostmodel rw strong -- weak strong, src-priority, weak ipv4 hostmodel rw strong -- weak strong, src-priority, weak
네트워크 혼잡은 네트워크가 수용할 수 있는 것보다 많은 수의 패킷을 노드가 전송할 때 일반적으로 라우터 버퍼 오버플로우의 형태로 발생합니다. 여러 알고리즘에서 전송 시스템에 대한 제어를 설정하여 트래픽 혼잡을 방지합니다. 이러한 알고리즘은 Oracle Solaris에서 지원되며 운영 체제에 쉽게 추가하거나 직접 플러그인할 수 있습니다.
다음 표에서는 지원되는 알고리즘을 나열하고 설명합니다.
|
혼잡 제어는 다음과 같은 제어 관련 TCP 등록 정보를 설정하여 사용으로 설정됩니다. 이러한 등록 정보는 TCP용으로 나열되지만 해당 등록 정보로 사용으로 설정되는 제어 방식은 SCTP 트래픽에도 적용됩니다.
cong_enabled – 현재 시스템에서 운영되는 콤마로 구분된 알고리즘 목록을 포함합니다. 알고리즘을 추가 또는 제거하여 사용하려는 알고리즘만 사용으로 설정할 수 있습니다. 이 등록 정보는 여러 값을 포함할 수 있습니다. 따라서 적용하려는 변경 사항에 따라 += 수식자 또는 -= 수식자를 사용해야 합니다.
cong_default – 응용 프로그램에서 소켓 옵션에 명시적으로 알고리즘을 지정하지 않을 때 기본적으로 사용되는 알고리즘입니다. 현재까지 cong_default 등록 정보 값은 전역 및 비전역 영역에 모두 적용됩니다.
프로토콜에 혼잡 제어를 위한 알고리즘을 추가하려면 다음 명령을 실행합니다.
# ipadm set-prop -p cong_enabled+=algorithm tcp
알고리즘을 제거하려면 다음 명령을 실행합니다.
# ipadm set-prop -p cong_enabled-=algorithm tcp
기본 알고리즘을 바꾸려면 다음 명령을 실행합니다.
# ipadm set-prop -p cong_default=algorithm tcp
주 - 알고리즘을 추가 또는 제거할 때 따라야 할 시퀀스 규칙은 없습니다. 알고리즘을 등록 정보에 추가하기 전 알고리즘을 제거할 수 있습니다. 하지만 cong_default 등록 정보는 항상 알고리즘이 정의되어 있어야 합니다.
다음 예제에서는 혼잡 제어를 구현하기 위해 수행할 수 있는 단계를 보여줍니다. 이 예제에서 TCP 프로토콜의 기본 알고리즘은 newreno에서 cubic으로 변경됩니다. 그런 후 vegas 알고리즘이 사용으로 설정된 알고리즘 목록에서 제거됩니다.
# ipadm show-prop -p cong_default,cong_enabled tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp cong_default rw newreno -- newreno - tcp cong_enabled rw newreno,cubic, -- newreno newreno,cubic, highspeed, highspeed,vegas vegas # ipadm set-prop -p cong_enabled-=vegas tcp # ipadm set-prop -p cong_default=cubic tcp # ipadm show-prop -p cong_default,confg_enabled tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp cong_default rw cubic -- newreno - tcp cong_enabled rw newreno,cubic, -- newreno newreno,cubic, highspeed highspeed,vegas
TCP 수신 버퍼 크기는 TCP 등록 정보 recv_buf(기본값 128KB)를 사용하여 설정됩니다. 하지만 응용 프로그램은 사용 가능한 대역폭을 동일하게 사용하지 않습니다. 따라서 연결 대기 시간에 따라 기본 크기를 변경해야 할 수 있습니다. 예를 들어, Oracle Solaris의 보안 셸 기능을 사용하면 데이터 스트림에서 수행되는 추가 체크섬 및 암호화 프로세스로 인해 대역폭 사용에 대한 오버헤드가 발생합니다. 따라서 버퍼 크기를 늘려야 할 수 있습니다. 마찬가지로, 대량 전송 보류를 수행하는 응용 프로그램이 대역폭을 효율적으로 사용하도록 하려면 동일한 버퍼 크기 조정이 필요합니다.
다음과 같이 BDP(대역폭 지연 곱)를 예상하여 사용할 올바른 수신 버퍼 크기를 계산할 수 있습니다.
BDP = available_bandwidth * connection-latency
연결 대기 시간 값을 가져오려면 ping -s host를 사용합니다. 대역폭 사용을 예상하려면 uperf 및 iperf 도구를 사용합니다.
적합한 수신 버퍼 크기는 BDP 값에 가깝습니다. 하지만 대역폭 사용은 다양한 옵션에 따라 달라질 수 있습니다. 공유 기반구조 또는 응용 프로그램 수 및 대역폭 사용을 경합하는 사용자로 인해 예상값이 변경될 수 있습니다.
버퍼 크기 값을 변경하려면 다음 구문을 사용하십시오.
# ipdadm set-prop -p recv_buf=value tcp
다음 예제에서는 버퍼 크기를 164KB로 늘리는 방법을 보여줍니다.
# ipadm show-prop -p recv_buf tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp recv_buf rw 128000 -- 128000 2048-1048576 # ipadm set-prop -p recv_buf=164000 tcp # ipadm show-prop -p recv_buf tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp recv_buf rw 164000 -- 164000 2048-1048576
선호 크기는 각 상황에 따라 달라지므로 버퍼 크기에 대해 선호되는 설정 값은 특정되지 않습니다. 다음은 고유한 특정 조건에서 각 네트워크에 대해 서로 다른 BDP 값을 보여 주는 사례입니다.
BDP = 128 MBps * 0.001 s = 128 kB
BDP = 128 MBps * 0.1 s = 12.8 MB
BDP = 2.6 MBps * 0.175 = 470 kB
BDP를 계산할 수 없으면 다음과 같은 관측값을 지침으로 사용하십시오.
LAN 기반 대량 전송의 경우 버퍼 크기의 기본값인 128KB로도 충분합니다.
대부분의 WAN 배포에서 수신 버퍼 크기는 2MB 범위 내에 있어야 합니다.
주의 - TCP 수신 버퍼 크기를 늘리면 여러 네트워크 응용 프로그램의 메모리 사용 공간이 늘어납니다. |