# ISCSI

Na informática, a internet Small Computer System Interface, mais conhecido pela sigla iSCSI (pronuncia-se AFI: /aɪˈskʌzi/; "aiscãzi"), é um protocolo de transporte de comandos SCSI entre um computador anfitrião (initiator) e um dispositivo de destino (target); ou seja, é um sistema padrão que usa comandos SCSI para gerenciar armazenamento de dados e transportar dados e em uma rede de computadores configurada com TCP e endereço IP. É um protocolo típicamente usado no contexto de uma SAN, sigla de Storage Area Network (Rede de área de armazenamento) mas que, ao contrário do Fibre channel, não necessita de uma infraestrutura especializada e dedicada, podendo funcionar sobre uma rede IP convencional.
Por carregar comandos SCSI por IPs de redes, o iSCSI é usado para facilitar a transferência de dados pelas intranets e para gerenciar armazenamento sobre longas distâncias. O iSCSI pode ser usado para transmitir dados em LANs, WANs, ou na Internet e pode permitir o armazenamento de dados e sua recuperação independente da localização.
Diferente do Fibre Channel, que requer um cabeamento específico, o iSCSI pode rodar por longas distâncias usando uma infraestrutura de rede existente. iSCSI foi lançado pela IBM e pela Cisco em 1998 e foi apresentado como proposta de padrão em março de 2000.

## Conceitos

Em essência, o iSCSI permite que dois hosts negociem e então troquem comandos SCSI usando redes IP. Fazendo isso, o protocolo provê o uso de uma área de armazenamento de alto desempenho emulada sobre uma ampla gama de redes, assim, criando uma Rede de armazenamento (SAN).
Diferente de alguns protocolos SAN, iSCSI não necessita de cabeamento dedicado; pode ser rodado usando uma infraestrutura IP existente. Como resultado, iSCSI é frequentemente visto como uma alternativa de baixo custa ao Fibre Channel, que necessita de uma infraestrutura dedicada exceto em sua forma forma FCoE (Fibre Channel sobre Ethernet). No entanto, a performance de uma implementação iSCSI SAN pode ser severamente degradada se não for operada numa rede dedicada ou subrede (LAN ou VLAN), devido à disputa por uma quantidade de largura de banda fixa.
Embora iSCSI possa comunicar-se com tipos arbitrários de dispositivos SCSI , administradores de sistemas quase sempre o usam para permitir que computadores de servidores (tal como servidores de banco de dados) acessem volumes no disco em arranjos de armazenamento. iSCSI SANs têm frequentemente um de dois objetivos:

### Consolidação de armazenamento

Organizações movem diferentes recursos de armazenamento de servidores pelas suas redes para localizações centrais, normalmente para data centers; isto permite uma maior eficiência na alocação de armazenamento, enquanto o próprio armazenamento não fica mais preso a um servidor particular. Em um ambiente SAN, um servidor pode ser alocado em um novo volume de disco sem nenhuma mudança no hardware ou cabeamento.

### Recuperação de desastres

Organizações espelham os recursos de armazenamento de um data center para um data center remoto, que pode servir como um backup rápido no caso de uma queda prolongada. Em particular, iSCSI SANs permitem que arranjos de discos inteiros possam ser migrados através de uma WAN com mudanças mínimas de configuração, em efeito tornando o armazenamento "rotacional" da mesma maneira que o tráfego de rede.

### Anfitrião

Um anfitrião funciona como um cliente iSCSI. Um anfitrião tipicamente serve o mesmo propósito a um computador enquanto um adaptador de barramento SCSI, exceto isso, ligaria o cabeamento físico de dispositivos SCSI (como discos rígidos e trocadores de fita), um anfitrião iSCSI envia comandos SCSI por uma rede IP. Um anfitrião está dividido em duas grandes categorias:
Um software anfitrião usa o código para implementar iSCSI. Tipicamente, isto acontece em um driver de dispositivo que está residido no kernel que usa uma placa de rede existente (NIC) e uma pilha de rede para emular dispositivos SCSI para um computador comunicando-se pelo protocolo iSCSI. Softwares anfitriões estão disponíveis para os sistemas operacionais mais populares e são os métodos mais comuns de implementação de iSCSI.
Um hardware anfitrião usa um hardware dedicado, tipicamente em combinação com firmware rodando naquele hardware, para implementar o iSCSI. Um hardware anfitrião reduz a sobrecarga do iSCSI, processamento TCP, interrupções Ethernet e pode melhorar a performance dos servidores que usam iSCSI. Um host adaptador de barramento iSCSI (HBA) implementa um hardware anfitrião. Um HBA típico é empacotado como uma combinação de um controlador interface de rede Ethernet Gigabit (ou 10 Gigabit), algum tipo de tecnologia de engine de descarregamento de TCP/IP e um adaptador de barramento SCSI, que é como este aparece para o sistema operacional. Um iSCSI HBA pode incluir opção de ROM PCI que possibilita o boot de um SAN iSCSI.
Uma engine de descarregamento de iSCSI, ou "placa iSOE", oferece uma alternativa para um iSCSI HBA sobrecarregado. Uma iSOE "descarrega" do host processador as operações do anfitrião iSCSI para esta interface de rede particular, liberando ciclos de CPU para as principais aplicações do host. iSCSI HBAs ou iSOEs são usadas quando o aprimoramento de performance adicional justifica o custo adicional de usar um HBA para um iSCSI, ao invés de usar um software baseado no cliente iSCSI (anfitrião). Uma iSOE pode ser implementada com serviços adicionais como uma engine de descarregamento TCP, ou "TOE" para maior redução do uso do CPU do servidor do host.

### Destino

A especificação iSCSI refere-se aos recursos de armazenamento localizados em um servidor iSCSI (mais geralmente, uma das muitas potencias instâncias de nós de armazenamento de iSCSI rodando naquele servidor) como um destino.
"Destino iSCSI" não deve ser confundido com o termo "iSCSI" já que o último é um protocolo e não uma instância de servidor de armazenamento.
Um destino iSCSI é normalmente uma rede dedicada de dispositivos conectados a um armazenamento em disco rígido, mas pode ser também um computador de propósito geral, desde que tenha iniciadores, softwares para fornecerem um destino iSCSI estão disponíveis para todos os principais sistemas operacionais.

## Segurança
### Autenticação

Anfitriões iSCSI e destinos provam suas identidades para o outro usando o protocolo CHAP, que inclui um mecanismo para prevenir senhas cleartext de aparecerem no fio. Propriamente, o protocolo CHAP é vulnerável à ataques de dicionário, spoofing, ou ataques de reflexão. Se seguidas com cuidado, as regras para o uso do CHAP no iSCSI previnem a maioria destes ataques.
Adicionalmente, como em todos os protocolos baseados em IP, o IPsec pode operar na camada de rede. O protocolo de negociação é designado para acomodar outros esquemas de autenticação, embora problemas de interoperabilidade limitem sua implantação.

### Isolamento lógico de rede

Para assegurar que apenas anfitriões válidos conectem-se a arranjos de armazenamento, administradores mais comumente rodam iSCSI sobre redes backchannel isoladas. Nesta arquitetura de implantação, apenas o gerenciamento de portas de arranjos de armazenamento estão expostos à rede de propósito geral, e o próprio protocolo iSCSI é rodado sobre seguimentos de rede dedicados ou LANs virtuais (VLAN). Isto reduz problemas de autenticação; usuários não autorizados não são fisicamente provisionados para iSCSI, e assim não podem falar com arranjos de armazenamento. No entanto, ele também cria um problema de confiança transitiva, em que um único host comprometido com um disco iSCSi pode ser usado para atacar recursos de armazenamento para outros hosts.

### Isolamento físico de rede

Enquanto iSCSI pode ser isolado logicamente das redes gerais usando somente VLANs, ele ainda não é diferente de nenhum outro equipamento de rede e pode usar qualquer cabo ou porta contanto que haja um caminho de sinal completado entre origem e destino. Apenas um único erro de cabeamento por um técnico de rede inexperiente pode comprometer a barreira entre a separação lógica, e uma bridging acidental pode não ser detectada imediatamente porque ela não causa erros de rede.
A fim de diferenciar futuros iSCSIs da rede regular e prevenir erros de cabeamento durante mudanças de conectores, administradores podem implementar auto-definição codificação de cores e normas de rotulagem, tal como somente usar cabos amarelos para conexões iSCSI e apenas cabos azuis para redes regulares, e claramente rotulando portas e swicthes usados apenas para iSCSI.
Enquanto iSCSi puder ser implementado apenas como um cluster VLAN de portas em um switch multi-portas que é também usado para rede de uso geral, o administrador pode ao invés disso escolher usar switches dedicados somente à VLANs iSCSI separados fisicamente, para prevenir futuramente a possibilidade de um cabo conectado incorretamente estar ligado ao port bridging errado da barreira lógica.

### Autorização

Como o iSCSi tem como objetivo consolidar o armazenamento para muitos servidores num único arranjo de armazenamento, implantações iSCSi requerem estratégias para prevenir anfitriões não relatados de acessar recursos de armazenamento. Como um exemplo patológico, um único arranjo de armazenamento de uma empresa pode segurar dados para servidores regulados variadamente pelo Ato Sarbanes-Oxley para contabilidade corporativa, HIPAA para informações de benefícios de saúde, e PCI DSS para processamento de cartões de crédito. Durante uma auditoria, sistemas de armazenamento devem demonstar controles para assegurar que um servidor sob um regime não possa acessar os ativos de armazenamento de um servidor em outro.
Tipicamente, arranjos de armazenamento iSCSi mapeiam explicitamente anfitriões para específicos LUNs de destinos; um anfitrião não autentica-se para um arranjo de armazenamento, mas faz isto para o ativo de armazenamento específico que ele pretende usar. No entanto, como as LUNs de destino para comandos SCSI são expressas tanto no protocolo de negociação iSCSI quanto no protocolo SCSI subjacente, cuidado deve ser tomado para assegurar que o controle de acesso esteja sendo providenciado constantemente.

### Confidencialidade e integridade

Para a maior parte, iSCSI opera como um protocolo cleartext que não provê proteção criptográfica para dados em movimento durante transações SCSI. Como resultado, um invasor que pode escutar o tráfego Ethernet iSCSI pode:
* Reconstruir e copiar os arquivos e arquivos de sistemas sendo transferidos no fio
* Alterar os conteúdos dos arquivos injetando pacotes iSCSI falsos
* Corromper arquivos de sistema sendo acessados por anfitriões, deixando servidores expostos à falhas de software em um código de sistema de arquivos mal testado.
Estes problemas não ocorrem somente com o iSCSI, mas também aplicam-se a qualquer protocolo SAN sem qualquer segurança criptográfica. Protocolos de segurança baseados em IP, tal como o IPsec, podem prover proteção criptográfica baseada em padrões para este tráfego, geralmente a uma penalidade de performance severa.