컴퓨팅에서 iSCSI는 Internet Small Computer Systems Interface의 약자로, 데이터 저장 시설을 연결하는 IP 기반 스토리지 네트워킹 표준입니다. TCP/IP 네트워크를 통해 SCSI 명령을 전송하여 스토리지 장치에 블록 수준의 액세스를 제공합니다. iSCSI는 이너넷과 장거리 스토리지 관리를 위해 데이터 전송을 용이하게 합니다. 이는 로컬 영역 네트워크(LAN), 광역 네트워크(WAN) 또는 인터넷을 통해 데이터를 전송할 수 있으며 위치에 독립적인 데이터 저장 및 검색을 가능하게 할 수 있습니다.
이 프로토콜은 클라이언트(이니셔에이터)가 원격 서버의 스토리지 장치(타겟)에 SCSI 명령(CDB)을 보낼 수 있도록 합니다. 이는 스토리지 영역 네트워크(SAN) 프로토콜로, 조직이 스토리지를 스토리지 어레이로 통합할 수 있으면서 데이터베이스 및 웹 서버와 같은 클라이언트에게 로컬로 연결된 SCSI 디스크와 같은 환상을 제공합니다. 주로 Fibre Channel과 경쟁하지만 전통적인 Fibre Channel과 달리 전용 케이블이 필요한 경우가 많은 Fibre Channel과 달리 iSCSI는 기존 네트워크 인프라를 사용하여 장거리에서 실행할 수 있습니다.
기본 포트: 3260
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
열거
iSCSI 서비스 확인
iSCSI 서비스는 TCP 포트 3260을 사용합니다. 따라서, 해당 포트가 열려 있는지 확인해야 합니다. 다음 명령어를 사용하여 포트 스캔을 수행할 수 있습니다.
nmap-p3260<target_ip>
iSCSI 서버 정보 수집
iSCSI 서버에 대한 정보를 수집하는 것은 중요합니다. 다음 명령어를 사용하여 iSCSI 서버의 정보를 확인할 수 있습니다.
iscsiadm-mdiscovery-tsendtargets-p<target_ip>
위 명령어를 실행하면 iSCSI 서버의 IP 주소와 포트 번호를 얻을 수 있습니다.
iSCSI 서버 연결
iSCSI 서버에 연결하기 위해 다음 명령어를 사용할 수 있습니다.
iscsiadm-mnode-T<target_name>-p<target_ip>-l
위 명령어에서 <target_name>은 iSCSI 서버의 이름이고, <target_ip>는 iSCSI 서버의 IP 주소입니다.
iSCSI 서버 인증 우회
iSCSI 서버에 연결할 때 인증을 우회해야 하는 경우, 다음 명령어를 사용할 수 있습니다.
참고: 대상이 발견되면 다른 IP 주소로 나열될 수 있습니다. 이는 iSCSI 서비스가 NAT 또는 가상 IP를 통해 노출되는 경우에 발생하는 경향이 있습니다. 이러한 경우 iscsiadmin은 연결에 실패합니다. 이를 해결하기 위해 두 가지 수정이 필요합니다. 하나는 발견 활동으로 자동으로 생성된 노드의 디렉토리 이름을 수정하는 것이고, 다른 하나는 이 디렉토리에 포함된 default 파일을 수정하는 것입니다.
예를 들어, 123.123.123.123의 3260 포트에서 iSCSI 대상에 연결하려고 합니다. iSCSI 대상을 노출하는 서버는 실제로 192.168.1.2에 있지만 NAT를 통해 노출됩니다. isciadm은 공용 주소 대신 내부 주소를 등록합니다.
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/을 /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/로 이름을 변경합니다.
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default 내에서 node.conn[0].address 설정을 192.168.1.2 대신 123.123.123.123으로 변경합니다. 다음과 같은 명령을 사용하여 이 작업을 수행할 수 있습니다. sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default
더 많은 정보를 얻기 위해선 --login/--logout 매개변수를 사용하지 않고도 찾을 수 있습니다.
iscsiadm-mnode--targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe"-p123.123.123.123:3260# BEGIN RECORD 2.0-873node.name=iqn.1992-05.com.emc:fl1001433000190000-3-vnxenode.tpgt=1node.startup=manualnode.leading_login=Noiface.hwaddress=<empty>iface.ipaddress=<empty>iface.iscsi_ifacename=defaultiface.net_ifacename=<empty>iface.transport_name=tcpiface.initiatorname=<empty>iface.bootproto=<empty>iface.subnet_mask=<empty>iface.gateway=<empty>iface.ipv6_autocfg=<empty>iface.linklocal_autocfg=<empty>iface.router_autocfg=<empty>iface.ipv6_linklocal=<empty>iface.ipv6_router=<empty>iface.state=<empty>iface.vlan_id=0iface.vlan_priority=0iface.vlan_state=<empty>iface.iface_num=0iface.mtu=0iface.port=0node.discovery_address=192.168.xx.xxnode.discovery_port=3260node.discovery_type=send_targetsnode.session.initial_cmdsn=0node.session.initial_login_retry_max=8node.session.xmit_thread_priority=-20node.session.cmds_max=128node.session.queue_depth=32node.session.nr_sessions=1node.session.auth.authmethod=Nonenode.session.auth.username=<empty>node.session.auth.password=<empty>node.session.auth.username_in=<empty>node.session.auth.password_in=<empty>node.session.timeo.replacement_timeout=120node.session.err_timeo.abort_timeout=15node.session.err_timeo.lu_reset_timeout=30node.session.err_timeo.tgt_reset_timeout=30node.session.err_timeo.host_reset_timeout=60node.session.iscsi.FastAbort=Yesnode.session.iscsi.InitialR2T=Nonode.session.iscsi.ImmediateData=Yesnode.session.iscsi.FirstBurstLength=262144node.session.iscsi.MaxBurstLength=16776192node.session.iscsi.DefaultTime2Retain=0node.session.iscsi.DefaultTime2Wait=2node.session.iscsi.MaxConnections=1node.session.iscsi.MaxOutstandingR2T=1node.session.iscsi.ERL=0node.conn[0].address=192.168.xx.xxnode.conn[0].port=3260node.conn[0].startup=manualnode.conn[0].tcp.window_size=524288node.conn[0].tcp.type_of_service=0node.conn[0].timeo.logout_timeout=15node.conn[0].timeo.login_timeout=15node.conn[0].timeo.auth_timeout=45node.conn[0].timeo.noop_out_interval=5node.conn[0].timeo.noop_out_timeout=5node.conn[0].iscsi.MaxXmitDataSegmentLength=0node.conn[0].iscsi.MaxRecvDataSegmentLength=262144node.conn[0].iscsi.HeaderDigest=Nonenode.conn[0].iscsi.DataDigest=Nonenode.conn[0].iscsi.IFMarker=Nonode.conn[0].iscsi.OFMarker=No# END RECORD