vagrant 및 VirtualBox를 사용하여 IOSXRv 시작
본고는 VirtualBox와vagrant의 사전 설치를 전제로 한다.IOSXRv 이미지 파일은 Cisco 웹 사이트에서 얻을 수 있지만 Cisco의 파트너가 될 수 있습니다.Service Contract는 com ID에서 미리 설정해야 합니다.
다음은 다음 소프트웨어를 이용하여 동작을 확인한다.
IOSXRv의 base 이미지 만들기
iosxrv-k9-demo-5.3.3.더블 클릭 등을 통해ova 이미지 파일을 시작합니다.
ova 확장자가 VirtualBox와 연결된 환경이라면 가상 컴포지팅 가져오기를 시작합니다.
여기서는 CPU를 1로, RAM을 2048MB 정도로 설정합니다.네트워크 어댑터는 초기 상태에서 8개로 제작되지만, MgmtEth의 최초가 되는 것 이외에 필요한 손상 체크 상자를 제거합니다.마지막으로
インポート
를 클릭합니다.원활한 가져오기가 완료되면 NamedPipe 기구의 콘솔을 추가로 활용하기 위해 제작된 이미지 클릭
設定(S)
.아래 그림처럼 シリアルポート
탭을 선택하고 ポートモード(M)
선택ホストにパイプ
, 취소存在するパイプ/ソケットに接続(C)
의 검사를 취소하고 パス/アドレス(P)
란에 기록\\.\pipe\iosxrv
합니다.그러면 콘솔에 연결하기 위해서는 Named Pipe에 연결해야 합니다.
를 사용하여 NamedPipe를 TCP 포트Named Pipe TCP Proxy로 변환할 수 있습니다.웹 사이트에서 소프트웨어 설치를 다운로드합니다.
Named Pipe TCP Proxy가 시작된 후 설정된 화면은 다음과 같습니다
\\.\pipe\iosxrv
프록시9001/tcp
.그리고 이 상태에서 VirtualBox에서 클릭
com.cisco.ios-xrv
이미지起動(T)
를 클릭한 다음에 WSL 등 단말기부터 다음과 같은 방식9001/tcp
으로 텔넷에 접근하여 시작 로그를 컨트롤러로 흐르게 한다.프롬프트가 표시될 때까지 기다립니다
Enter root-system username:
.$ telnet localhost 9001
GNU GRUB version 2.00
+--------------------------------------------------------------------------+
|IOS XRv |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+--------------------------------------------------------------------------+
Use the ^ and v keys to select which entry is highlighted.
Press enter to boot the selected OS, `e' to edit the commands
before booting or `c' for a command-line. ESC to return
previous menu.
...snip...
루트-System으로 설정된usename/secret은 모두 vagrant
로 설정되었습니다.이usename/secret을admin-config로 설정하여vagrant에서 접근하는 데 사용합니다.!!!!!!!!!!!!!!!!!!!! NO root-system username is configured. Need to configure root-system username. !!!!!!!!!!!!!!!!!!!!
--- Administrative User Dialog ---
Enter root-system username: vagrant
Enter secret:
VM에 로그인하려면 여기서 잠시 기다려야 합니다.알림이 다음과 같이 표시되면 설정된 사용자가 로그인할 수 있습니다
vagrant
.User Access Verification
Username: vagrant
Password:
RP/0/0/CPU0:ios#
이제 IOSXRv 이미지의 초기 구성에 들어가겠습니다.RP/0/0/CPU0:ios#configure
RP/0/0/CPU0:ios(config)#hostname iosxrv
RP/0/0/CPU0:ios(config)#aaa authentication login default local
RP/0/0/CPU0:ios(config)#ssh server v2
RP/0/0/CPU0:ios(config)#ssh server logging
RP/0/0/CPU0:ios(config)#telnet vrf default ipv4 server max-servers 15
RP/0/0/CPU0:ios(config)#interface MgmtEth 0/0/CPU0/0 ipv4 address dhcp
RP/0/0/CPU0:ios(config)#no interface MgmtEth 0/0/CPU0/0 shutdown
RP/0/0/CPU0:ios(config)#commit
RP/0/0/CPU0:ios(config)#exit
외부로부터의 ssh 접근을 위해 IOSXRv 이미지에 키 쌍을 만들어야 하기 때문에 잊지 마세요.RP/0/0/CPU0:iosxrv#crypto key generate rsa
The name for the keys will be: the_default
Choose the size of the key modulus in the range of 512 to 4096 for your General Purpose Keypair. Choosing a key modulus greater than 512 may take a few minutes.
How many bits in the modulus [1024]:
Generating RSA keys ...
Done w/ crypto generate keypair
[OK]
설정이 모두 완료되면 다음과 같습니다.RP/0/0/CPU0:iosxrv#show running-config
Building configuration...
!! IOS XR Configuration 5.3.3
!! No configuration change since last restart
!
hostname iosxrv
telnet vrf default ipv4 server max-servers 15
aaa authentication login default local
interface MgmtEth0/0/CPU0/0
ipv4 address dhcp
!
ssh server v2
ssh server logging
end
RP/0/0/CPU0:iosxrv#admin show running-config
Building configuration...
!! IOS XR Admin Configuration 5.3.3
username vagrant
group root-system
secret 5 $1$gszu$edh0GNZQTZe7mfx8QNBk.1
!
end
RP/0/0/CPU0:iosxrv#show crypto key mypubkey rsa
Key label: the_default
Type : RSA General purpose
Size : 1024
Created : 00:00:00 UTC Mon May 10 2021
Data :
30819F30 0D06092A 864886F7 0D010101 05000381 8D003081 89028181 00CE553D
F00E7081 DCA54B0A 1CC81CAE 038B289E 802D295C CEAB8244 3D8A0C2C 706CD6D2
FEDC0EA7 2A928F02 41D1F82D B0E41E57 292575E5 81F9FC78 3399D649 E6C248D0
76B06369 F1EA3DCB B9BA8F39 89C4A0C4 63B3529D 42A9BC83 102A4FBB 938C4CD0
836BA6A9 E35D089B 349F65E5 4D37F482 1C187E36 88B92D11 54241F28 A5020301
0001
IOSXRv base 이미지에서 vagrant box 파일 만들기
IOSXRv 이미지는 box 파일을 만들 때 VirtualBox에서 shoutdown을 미리 진행해야 합니다.
먼저 box 파일을 만드는 데 필요한 Vagrantfile을 만듭니다.
$ cat <<EOL> embedded_vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.boot_timeout = 400
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
end
EOL
이어서 다음 명령으로 IOSXRv 이미지에서box 파일을 만듭니다.$ vagrant pacakge --base com.cisco.ios-xrv --output iosxrv-k9-demo-5.3.3.box --vagrantfile embedded_vagrantfile
==> com.cisco.ios-xrv: Exporting VM...
==> com.cisco.ios-xrv: Compressing package to: /tmp/iosxrv/iosxrv-k9-demo-5.3.3.box
==> com.cisco.ios-xrv: Packaging additional file: embedded_vagrantfile
이 박스 파일을vagrant에 등록합니다.박스 이름은 여기iosxrv/5.3.3
입니다.$ vagrant box add iosxrv-k9-demo-5.3.3.box --name iosxrv/5.3.3
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'iosxrv/5.3.3' (v0) for provider:
box: Unpacking necessary files from: file:///tmp/iosxrv/iosxrv-k9-demo-5.3.3.box
==> box: Successfully added box 'iosxrv/5.3.3' (v0) for 'virtualbox'!
$ vagrant box list
iosxrv/5.3.3 (virtualbox, 0)
vagrant에서 IOSXRv 이미지 시작하기
VM을 시작할 때도 Vagrantfile이 필요하기 때문에 이것을 먼저 만듭니다.
IOSXRv의 버전이 (가능한 경우) 6.0.0보다 오래된 경우, IOSXRv 이미지에서 만든 키 쌍의algorithm
aes256-cbc, aes192-cbc, aes128-cbc
표준상vagrant의Net::SSH
는 지원되지 않습니다.따라서 Vagrantfile 시작 부분에 임시 및 강제 지원이 포함됩니다.$ cat <<EOL> Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
class Net::SSH::Transport::Algorithms
DEFAULT_ALGORITHMS[:encryption].unshift('aes256-cbc', 'aes192-cbc', 'aes128-cbc')
end
Vagrant.configure(2) do |config|
config.vm.box = "iosxrv/5.3.3"
config.vm.boot_timeout = 400
config.vm.synced_folder ".", "/vagrant", disabled: true
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
end
EOL
IOSXRv 이미지를 시작합니다.그림이 정상적으로 시작되기 전에 시간이 좀 걸리기 때문에 인내심을 가지고 기다려야 한다.내 환경은 3~4분 정도 걸린다.
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'iosxrv/5.3.3'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: iosxrv_default_1620643366529_81167
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: password
순조롭게 시작하면vagrant에서 ssh로 로그인할 수 있습니다.비밀번호는 당연히
vagrant
입니다.$ vagrant ssh
==> default: The machine you're attempting to SSH into is configured to use
==> default: password-based authentication. Vagrant can't script entering the
==> default: password for you. If you're prompted for a password, please enter
==> default: the same password you have configured in the Vagrantfile.
[email protected]'s password:
RP/0/0/CPU0:iosxrv#
그러면 Mgmt 인터페이스에 설정된 IPv4 주소를 확인합니다.RP/0/0/CPU0:iosxrv#show ipv4 interface MgmtEth 0/0/CPU0/0 brief
Interface IP-Address Status Protocol
MgmtEth0/0/CPU0/0 192.168.33.191 Up Up
호스트 PC에서 Mgmt 인터페이스에 설정된 IPv4 주소에 액세스할 수 있습니다.텔넷에 연결해 보았습니다. 아래와 같습니다.사용자name/password는
vagrant/vagrant
일 수도 있지만 IOSXRv 이미지의 기본값cisco/cisco
에 로그인할 수도 있습니다.$ telnet 192.168.33.191
Trying 192.168.33.191...
Connected to 192.168.33.191.
Escape character is '^]'.
IMPORTANT: READ CAREFULLY
Welcome to the Demo Version of Cisco IOS XRv (the "Software").
The Software is subject to and governed by the terms and conditions
of the End User License Agreement and the Supplemental End User
License Agreement accompanying the product, made available at the
time of your order, or posted on the Cisco website at
www.cisco.com/go/terms (collectively, the "Agreement").
As set forth more fully in the Agreement, use of the Software is
strictly limited to internal use in a non-production environment
solely for demonstration and evaluation purposes. Downloading,
installing, or using the Software constitutes acceptance of the
Agreement, and you are binding yourself and the business entity
that you represent to the Agreement. If you do not agree to all
of the terms of the Agreement, then Cisco is unwilling to license
the Software to you and (a) you may not download, install or use the
Software, and (b) you may return the Software as more fully set forth
in the Agreement.
Please login with any configured user/password, or cisco/cisco
User Access Verification
Username: cisco
Password:
RP/0/0/CPU0:iosxrv#
이후 넷conf 설정을 추가하거나 자신의 취향에 따라 검증할 수 있다.부팅된 VM을 중지, 제거하는 방법은 다음과 같습니다.
$ vagrant halt
$ vagrant destroy -f
Enjoy! 🎉
Reference
이 문제에 관하여(vagrant 및 VirtualBox를 사용하여 IOSXRv 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/haccht/articles/7af746e41eec62텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)