要双向认证,那么target端需要创建一个outgoing账号和密码,并绑定到target上。注意下面的--outgoing选项,表示是从target流出的账号,即表示该target要被initiator认证。
tgtadm -L iscsi -m account -o new --user outgoing_malong --password outgoing_123456
tgtadm -L iscsi -m account -o bind -t 1 --user outgoing_malong --outgoing
查看下target上的账号信息。在信息中,outgoing的账号后面使用括号对此进行了标识。
tgt-admin -s | sed -n '/Account/,$p'
Account information:
incoming_malong
outgoing_malong (outgoing)
ACL information:
192.168.100.0/24
然后在initiator端配置CHAP双向认证。同样,此处先配置一个错误的情况以作比较。
vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP
node.session.auth.username = incoming_malong
node.session.auth.password = incoming_123456
node.session.auth.username_in = outgoing_malong
#node.session.auth.password_in = outgoing_123456
重新进行发现和关联。不过首先要登出已经登录的target。
iscsiadm -m node -Tiqn.2017-03.com.longshuai:test.disk1 -p 192.168.100.151:3260 -u
iscsiadm -m discovery -t st -p 192.168.100.151:3260
192.168.100.151:3260,1 iqn.2017-03.com.longshuai:test.disk1
iscsiadm -m node -Tiqn.2017-03.com.longshuai:test.disk1 -p 192.168.100.151:3260 -l
Logging in to [iface: default, target: iqn.2017-03.com.longshuai:test.disk1, portal: 192.168.100.151,3260] (multiple)
iscsiadm: Could not login to [iface: default, target: iqn.2017-03.com.longshuai:test.disk1, portal: 192.168.100.151,3260].
iscsiadm: initiator reported error (19 - encountered non-retryable iSCSI login failure)
iscsiadm: Could not log into all portals
它提示遇到不可重试的iscsi登录错误,因为target无法被initiator认证,initiator认为这个target是非法的target。
配置为正确的密码然后再进行发现、关联。
vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP
node.session.auth.username = incoming_malong
node.session.auth.password = incoming_123456
node.session.auth.username_in = outgoing_malong
node.session.auth.password_in = outgoing_123456
iscsiadm -m discovery -t st -p 192.168.100.151:3260
iscsiadm -m node -Tiqn.2017-03.com.longshuai:test.disk1 -p 192.168.100.151:3260 -l
tgtadm -L iscsi -m account -o new --user outgoing_user1 --password outgoing_passwd1
tgtadm -L iscsi -m account -o bind -t 1 --user outgoing_user1 --outgoing
tgtadm: this target already has an outgoing account
绑定的时候提示已经有一个outgoing账号,说明一个target的outgoing账号只能有一个。也就是说,某一个target被认证的时候是1对多的关系。
但是incoming账号并非如此。
4.6 绑定多个incoming账号tgtadm -L iscsi -m account -o new --user incoming_user1 --password incoming_passwd1
tgtadm -L iscsi -m account -o new --user incoming_user2 --password incoming_passwd2
tgtadm -L iscsi -m account -o bind -t 1 --user incoming_user1
tgtadm -L iscsi -m account -o bind -t 1 --user incoming_user2
tgt-admin -s | sed -n '/Account/,$p'
Account information:
incoming_malong
incoming_user1
incoming_user2
outgoing_malong (outgoing)
ACL information:
192.168.100.0/24用服务器C即192.168.100.6来登录一个看看。
vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP
node.session.auth.username = incoming_user1
node.session.auth.password = incoming_passwd1
node.session.auth.username_in = outgoing_malong
node.session.auth.password_in = outgoing_12345发现并关联。
iscsiadm -m node -U all
iscsiadm -m discovery -t st -p 192.168.100.151:3260
iscsiadm -m node -T iqn.2017-03.com.longshuai:test.disk1 -p 192.168.100.151:3260 -l所以,incoming账号可以有多个。
先查看下有目前有哪些用户。
tgtadm -L iscsi -m account -o show
Account list:
outgoing_user1
incoming_user2
incoming_user1
outgoing_malong
incoming_malong再查看下哪些用户是已经绑定到target上的。
tgt-admin -s | sed -n '/Account/,$p'
Account information:
incoming_malong
incoming_user1
incoming_user2
outgoing_malong (outgoing)
ACL information:
192.168.100.0/24对incoming_user1和incoming_user2进行解绑。
tgtadm -L iscsi -m account -o unbind -t 1 -u incoming_user1
tgtadm -L iscsi -m account -o unbind -t 1 -u incoming_user2对outgoing账户解绑。
tgtadm -L iscsi -m account -o unbind -t 1 -u outgoing_malong --outgoing删除多余的账户。