前言
华为新版本的数通模拟器ENSP Pro目前已发布多个版本。其NE设备可以满足SRv6特性,解决了部分HCIE考生对于SRv6环境练习的需求问题。但是网页上进行操作让人十分不便,特别是网页会话和设备连接的会话超时让使用体验不太理想。
根据华为eNSP Pro V100R001C10版本发布通知描述的版本上线内容描述,此版本可以支持支持通过CRT、Xshell等终端工具登录模拟网元。
尽管已支持第三方终端工具登录模拟网元,但界面上并没有提供任何设置入口。
Virtual box环境
根据官方文档「链接」的描述可知
数通模拟器用网卡3(net2)映射模拟设备管理网口,用于外部工具通过管理网口登录模拟设备。
如果是virtual box安装,按照文档「链接」进行简单配置即可实现宿主机本地通过第三方终端工具登录模拟网元。
Linux环境
- 虚拟网卡设置
按照文档内容添加用于连接管理网口的虚拟网卡:
ip tuntap add tap1 mode tap
ip address add 192.168.10.1/24 dev tap1
ip link set tap1 up
注意以上有坑:
经过实际测试,虚拟网卡的网段似乎只能支持192.168.x.x。
- 启动虚拟机
如果是图形界面登录系统可以在终端中运行以下命令:
qemu-system-x86_64 smp 20 -m 48G -cpu host -accel kvm -hda /home/bitcat/eNSP-Pro_V100R001C10_Software_X8664_release.qcow2 \
-device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp:192.168.123.123:8443-:8443 \
-device e1000,netdev=net1 -netdev tap,id=net1,ifname=tap0,script=no,downscript=no \
-device e1000,netdev=net2 -netdev tap,id=net2,ifname=tap1,script=no,downscript=no
##192.168.123.123为宿主机IP(运行ENSP Pro的linux系统)
如果是SSH登录,运行以下命令:
nohup qemu-system-x86_64 -nographic -smp 20 -m 48G -cpu host -accel kvm -hda /home/bitcat/eNSP-Pro_V100R001C10_Software_X8664_release.qcow2 \
-device e1000,netdev=net0 -netdev user,id=net0,hostfwd=192.168.123.123:$IP:8443-:8443 \
-device e1000,netdev=net1 -netdev tap,id=net1,ifname=tap0,script=no,downscript=no \
-device e1000,netdev=net2 -netdev tap,id=net2,ifname=tap1,script=no,downscript=no &
- 模拟网元配置
配置管理地址
NE设备的管理接口为GigabitEthernet0/0/0,其他设备的管理接口为MEth0/0/0,为管理接口配置与上一步添加的虚拟网卡同一子网的IP地址。
interface GigabitEthernet0/0/0
ip address 192.168.10.201 24
interface MEth0/0/0
ip address 192.168.10.101 24
安装WEAKEA包(NE设备无需安装)
install feature-software WEAKEA
配置AAA、用户接口、telnet服务端(略)
- 实现远程登录
完成以上配置后,你就可以在宿主机上telnet登录。
因为模拟网元设备无法与外界网络进行通信,因此无法在其他电脑上使用第三个终端工具登录,离远程登录还有一步。
在宿主机上通过iptables进行端口转发,将发往本机特定端口的数据转发至指定的IP:port。
iptables -t nat -A PREROUTING -p tcp --dport 23101 -j DNAT --to-destination 192.168.10.101:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.101 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23102 -j DNAT --to-destination 192.168.10.102:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.102 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23103 -j DNAT --to-destination 192.168.10.103:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.103 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23104 -j DNAT --to-destination 192.168.10.104:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.104 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23105 -j DNAT --to-destination 192.168.10.105:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.105 --dport 23 -j MASQUERADE
- 第三方终端登录
自此,你就愉快的在其他电脑上通过第三方终端工具登录ENSP Pro的模拟网元设备,不用担心会话频繁超时的烦恼了。
Linux一键脚本
#!/bin/bash
ip tuntap add tap1 mode tap
ip address add 192.168.10.1/24 dev tap1
ip link set tap1 up
IP=$(hostname -I | awk '{print $1}')
nohup qemu-system-x86_64 -nographic -smp 20 -m 48G -cpu host -accel kvm -hda /home/bitcat/eNSP-Pro_V100R001C10_Software_X8664_release.qcow2 \
-device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp:$IP:8443-:8443 \
-device e1000,netdev=net1 -netdev tap,id=net1,ifname=tap0,script=no,downscript=no \
-device e1000,netdev=net2 -netdev tap,id=net2,ifname=tap1,script=no,downscript=no &
iptables -t nat -A PREROUTING -p tcp --dport 23101 -j DNAT --to-destination 192.168.10.101:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.101 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23102 -j DNAT --to-destination 192.168.10.102:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.102 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23103 -j DNAT --to-destination 192.168.10.103:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.103 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23104 -j DNAT --to-destination 192.168.10.104:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.104 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23105 -j DNAT --to-destination 192.168.10.105:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.105 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23106 -j DNAT --to-destination 192.168.10.106:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.106 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23107 -j DNAT --to-destination 192.168.10.107:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.107 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23108 -j DNAT --to-destination 192.168.10.108:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.108 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23109 -j DNAT --to-destination 192.168.10.109:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.109 --dport 23 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 23110 -j DNAT --to-destination 192.168.10.110:23
iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.110 --dport 23 -j MASQUERADE
注意以root权限运行。
本文暂时没有评论,来添加一个吧(●'◡'●)