我最近接触过一位网络工程师,他希望将他的小型网络管理职责卸载到初级技术支持人员.需要管理的具体位置在其单站点属性上作为租户的ISP,因此每天进行大量小的调整.
我认为为他写一个winform应用程序来管理现场的32个Cisco设备会很有帮助.我想最初提供的功能可以修改访问控制列表,端口VLAN分配和每个VLAN的带宽限制......在列表中添加更多,因为它被认为是有价值的.
我最初的想法是模拟与网络设备的telnet会话 ; 利用我的网络工程师熟悉的命令行/ IOS交互.我自己需要最少的时间来学习Cisco IOS惯例.
虽然在搜索解决方案时,似乎大多数人都喜欢SNMP. 那,或者,他们的具体情况将他们推向了SNMP的方向.
我想知道我是否忽略了SNMP的明显好处. 我应该使用SNMP吗?为什么或者为什么不?
我们有2个cisco手机:一个用于呼叫管理员,另一个用于他的主管.
当经理回答并将主管的电话置于静音状态时,我们需要创建一个会议.我们正在尝试使用JTApi实现它:等待事件TermConnActiveEv,然后尝试创建会议.
这是代码示例.
if (callEv instanceof TermConnActiveEv) {
CiscoCall thisCall = (CiscoCall) callEv.getCall();
TerminalConnection connection = ((TermConnActiveEv) callEv).getTerminalConnection();
if (thisCall.getState() != Call.ACTIVE)
{
System.out.println("call is not active");
return;
}
try {
CiscoCall newCall = (CiscoCall) provider.createCall();
newCall.consult(connection);
newCall.conference(thisCall);
....
Run Code Online (Sandbox Code Playgroud)
然而,PreConditionException被抛出.我们做错了什么?
我正在运行我的主机操作系统 - Win 7 x64并运行Virtual PC XP的实例.我在Guest XP VPC操作系统上运行思科ISPec VPN客户端,可以成功连接到我公司的企业网络.
我无法在主机上运行思科IPSec客户端sw,因为它是64位,思科不支持其IPSec客户端产品上的64位,而且我现在没有很多选择转移到思科的SSL VPN客户端(AnyConnect).
XP VPC Guest OS不使用NAT网络适配器,而是使用本机的物理适配器.
当Cisco客户端未在XP VPC客户操作系统上运行时,我可以从客户操作系统ping主机,反之亦然.
几个问题:
当Cisco客户端运行并连接时,来宾操作系统无法再看到主机.
当XP VPC guest虚拟机连接到VPN时,我希望能够从主机访问VPN.
对于#2,我尝试了至少一种技术,描述:xenomorph.net/use-cisco-vpn-under-vista-x64/
此技术在Cisco伪网络适配器上打开ICS.
我无法让这个工作.但是,我可能错误地遵循了说明.
我也看过:http://www.pringle.net.nz/blog/PermaLink,guid,12ee0de7-f998-4084-8b06-537b3dbd5d9a.aspx
...涉及在主机和客户操作系统之间使用Loopback适配器和桥接.我没有遵循这个,因为说明并不完全清楚.
最后,我在网上看到了有关Open64N的x64版本的参考资料,但我对于朝这个方向犹豫不决.
任何人都可以指导我做正确的方向吗?
我对ifAdminStatus和ifOperStatus有疑问.以下是使用ifAdminStatus的网络接口状态的输出:
snmpwalk -Os -c public -v 1 192.168.1.1 1.3.6.1.2.1.2.2.1.7ifAdminStatus.1 = INTEGER: up(1)
ifAdminStatus.12 = INTEGER: down(2)
ifAdminStatus.13 = INTEGER: up(1)
ifAdminStatus.14 = INTEGER: up(1)
Run Code Online (Sandbox Code Playgroud)
以下是使用ifOperStatus的相同列表:
snmpwalk -Os -c public -v 1 192.168.1.1 1.3.6.1.2.1.2.2.1.8
ifOperStatus.12 = INTEGER: down(2)
ifOperStatus.13 = INTEGER: down(2)
ifOperStatus.14 = INTEGER: down(2)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,ifAdminStatus报告#13和#14已启动但ifOperStatus报告它们都已关闭.我知道#13已启动并通过它传递数据包(这是我的PPPoE Internet连接接口).根据cisco文档" if ifAdminStatus down(2)ifOperStatus应该关闭(2). "这似乎不是这里的情况......
我的问题是 - 为什么报告的状态不同,只使用ifAdminStatus来判断接口是否已启动并运行而不是ifOperStatus是否安全?
谢谢!
这是snmpwalk的附加接口信息:
snmpwalk -Os -c public -v 1 192.168.1.1 1.3.6.1.2.1.2.2.1
[.....]
ifIndex.12 = INTEGER: 12
ifIndex.13 = INTEGER: 13
ifIndex.14 = INTEGER: 14
[.....]
ifDescr.12 = …Run Code Online (Sandbox Code Playgroud) 我试图telnet到Cisco路由器并使用pexpect发出命令.它工作,但sendline()在输出中重复.甚至在使用setecho后使用False.代码是:
'''
Created on Nov 19, 2012
@author: Amit Barik
'''
import pexpect
hostname = 'hostname'
login_cmd = 'telnet ' + hostname + '.net'
username = 'username'
password = 'pwd'
prompt = hostname + '#'
p = pexpect.spawn(login_cmd)
p.setecho(False)
p.logfile = open('Log.log', 'w+')
p.expect('Username:')
print '1',repr(p.before)
p.sendline(username)
p.expect('Password:')
print '2',repr(p.before)
p.sendline(password)
p.expect(prompt)
print '3',repr(p.before)
cmd = 'show clock'
p.sendline(cmd)
p.expect(prompt)
print 'Output for {0}'.format(cmd), repr(p.before)
Run Code Online (Sandbox Code Playgroud)
输出是:
# On Python Console
Output for show clock 'show clock\r\n00:16:40.692 UTC Tue Nov 20 …Run Code Online (Sandbox Code Playgroud) 我正在为工作建立一个自定义交换机管理器,我目前的问题更美观,但我认为这是一个很好的学习经验.为了清楚起见,我在下面发布了数组:
Array
(
[1] => FastEthernet0/1
[10] => FastEthernet0/10
[11] => FastEthernet0/11
[12] => FastEthernet0/12
[13] => FastEthernet0/13
[14] => FastEthernet0/14
[15] => FastEthernet0/15
[16] => FastEthernet0/16
[17] => FastEthernet0/17
[18] => FastEthernet0/18
[19] => FastEthernet0/19
[2] => FastEthernet0/2
[20] => FastEthernet0/20
[21] => FastEthernet0/21
[22] => FastEthernet0/22
[23] => FastEthernet0/23
[24] => FastEthernet0/24
[3] => FastEthernet0/3
[4] => FastEthernet0/4
[5] => FastEthernet0/5
[6] => FastEthernet0/6
[7] => FastEthernet0/7
[8] => FastEthernet0/8
[9] => FastEthernet0/9
[25] => Null0
)
Run Code Online (Sandbox Code Playgroud)
在我们更大的交换机上,我使用的 …
我正在构建一个小型监控解决方案,并希望了解在先前读数大于当前读数的情况下,正确/最佳行为是什么.例如,ifHCOutOctetsSNMP对象计算从Cisco路由器中的接口传输的字节数.如果此计数器重置为0,例如由于路由器重启,图形应用程序应该如何运行?在我的选项中,以下算法是正确的行为:
if [ ! $prev_val ]; then
# This reading will be used to set the baseline value for "prev_val" variable
# if "prev_val" does not already exist.
prev_val="$cur_val"
elif (( prev_val > cur_val )); then
# Counter value has set to zero.
# Use the "cur_val" variable.
echo "$cur_val"
prev_val="$cur_val"
else
# In case "cur_val" is higher than or equal to "prev_val",
# use the "cur_val"-"prev_val"
echo $(( cur_val - prev_val ))
prev_val="$cur_val"
fi
Run Code Online (Sandbox Code Playgroud)
我还根据上面的算法制作了一个小例子图:

基于此构建流量图:
reading …Run Code Online (Sandbox Code Playgroud) 我使用 AnyConnect 连接到我公司的 VPN(使用 AnyConnect 而不是 openconnect 来允许单点登录工作)。
当我运行不使用网络驱动程序“主机”的 Docker 容器时,我的 VPN 会断开连接然后重新连接。我的 VPN 连接在主机上仍然有效,并且使用网络驱动程序“主机”运行的任何容器仍然可以访问 VPN 资源。
所以一切正常。我想知道到底是什么导致了这种行为,当我知道这一点时,我可以采取什么措施来阻止它。
docker create network -d bridge my_network不会导致断开连接。只有当我使用网络时(并ip link show显示它使用我的网桥作为主设备创建了一个虚拟以太网接口),才会发生断开连接和重新连接。
我在基于 Ubuntu 的发行版上有 docker 和 Cisco AnyConnect(尽管在 OpenSuse 和 Fedora 上也看到过同样的行为)
我今天意识到,在构建容器时,它还会断开并重新连接 Linux Cisco AnyConnect 客户端。
我以前anyconnect-macos-4.8.01090-predeploy-k9.dmg安装过anyconnect,安装后只能运行一次。(然后我会连接我公司的VPN,之前安装后会自动升级到版本4.10.04065,然后连接成功)。
然而,一旦我断开连接,后续的连接总是会失败。
知道如何解决这个问题吗?我的 Mac:MacBook Pro(16 英寸,2021 年),M1 Pro 芯片
我有一个C++程序,它使用Microsoft TAPI接口从Cisco Call Manager PBX收集呼叫事件.为了获得思科活动,我从呼叫管理器下载了TSP,然后我的TAPI代码正常运行.
我可以使用Avaya AES服务器执行相同的操作吗?我看到Avaya使用TSAPI而不是TAPI,但我看不出会对我的程序产生什么影响.
cisco ×10
snmp ×2
64-bit ×1
algorithm ×1
anyconnect ×1
apple-m1 ×1
arrays ×1
avaya ×1
bash ×1
cisco-jtapi ×1
conference ×1
docker ×1
java ×1
jtapi ×1
networking ×1
pexpect ×1
php ×1
python ×1
tapi ×1
telnet ×1
virtual-pc ×1
vpn ×1
windows ×1