사람들은 네트워크의 모든 스위치 (또는 장치의 하위 집합)에 VLAN을 추가해야하는 필요성을 어떻게 처리합니까? 현재 주당 약 6 개의 새로운 VLAN을 추가하고 있으며 네트워크가 성장함에 따라 매우 번거롭고 위험한 작업이되고 있습니다.
사람들은 네트워크의 모든 스위치 (또는 장치의 하위 집합)에 VLAN을 추가해야하는 필요성을 어떻게 처리합니까? 현재 주당 약 6 개의 새로운 VLAN을 추가하고 있으며 네트워크가 성장함에 따라 매우 번거롭고 위험한 작업이되고 있습니다.
답변:
다음은 Perl에서 장치 목록 (tellist.txt라는 파일의 각 줄에 하나씩)을 텔넷으로 연결하고 일부 명령을 구성하기위한 기본 스크립트 템플릿입니다. 정확히 당신이하고있는 일에 따라 좋은 시작을 제공해야합니다.
use Net::Telnet::Cisco;
# read in a list of devices
my @devicelist;
open(DATA, "<devicelist.txt") || die "Can't open file!";
while (<DATA>) {
chomp;
push( @devicelist, $_);
}
# loop through the devices
foreach $hostname (@devicelist)
{
# telnet to device
my $cs = Net::Telnet::Cisco->new(Host => $hostname);
# login, go enable, disable paging, go into config mode
$cs->login( "username", "password" );
$cs->enable( "enable_password" );
$cs->cmd( 'terminal length 0' );
$cs->cmd( 'config t' );
# configure the device
$cs->cmd( 'vlan 100, 200, 300' );
$cs->cmd( 'interface Ethernet0' );
$cs->cmd( ' switchport access vlan 100' );
# exit config mode and write the config
$cs->cmd( 'end' );
$cs->cmd( 'wr mem' );
# close the connection
$cs->close;
}
Net :: Telnet :: Cisco에 대한 자세한 내용은 다음과 같습니다 .
몇 가지 옵션이 있다고 말할 것입니다.
구성 관리 소프트웨어를 살펴볼 가치가 있습니다 .Puppet 의 네트워크 장치 관리 는 수많은 Cisco 장치 (시스코를 사용하는 경우)에 VLAN을 쉽게 추가 할 수 있습니다.
지금 당면한 과제는 혼합 환경에 들어가는 것입니다. 내가 Cisco를 가정하고 주니퍼로 나아가고 있다고 언급합니까? 순수한 Cisco 환경 에서 암호가있는 VTP v3 은 4k 이상의 VLAN을 지원하고 지원하는 방법입니다. Juniper 세계에서 동등한 것은 GVRP 입니다.
Shane Madden, SolarWinds , HP OpenView 등에서 언급 한 Puppet과 같은 중앙 관리 방식을 사용할 수 있지만 여전히 관리 할 스크립트가 두 개 있습니다.
한 벤더에서 다른 벤더로 전환 할 때 가능한 한 간단하게 ( KISS ) 유지하려고합니다 . 적절한 하드웨어에서 VTP와 GVRP를 사용하는 것이 아마도 다른 방법이나 다른 새로운 것을 관리하기위한 잠재적 비용을 추가하지 않는 방법 일 것입니다.
VTP가 귀하의 답변 일 수 있습니다. 다른 "자동화 된"도구와 마찬가지로 위험도 있지만 적절한 계획으로 완화 할 수 있습니다. 또한 작동 방식을 이해하거나 실수로 자동화 된 도구와 마찬가지로 자신 만의 문제를 만들 수 있도록 읽어야합니다.
VTP 버전 3을 사용하는 것이 좋습니다. 잠재적 인 일부 문제를 방지하고 추가 이점을 제공 할 수 있기 때문입니다.
선택한 검색 엔진에서 "vtp 버전 3 구성"을 검색하여 수백 개의 문서를 쉽게 찾을 수 있습니다.
Solarwind 의 네트워크 구성 관리자는 IOS 장치 및 기타 장치에서 스크립트를 실행할 수 있습니다.
또한 야간 구성 백업, 변경 보고서 및 구성 감사와 같은 작업도 수행합니다. 그들의 가격은 끔찍하지는 않지만 NCM을 Orion Network Performance Monitor와 병합하고 있으며 더 이상 NCM을 별도로 실행할 수 있다고 확신하지 않습니다.
net-scp 및 net-ssh gem과 함께 루비를 사용하여 네트워크 장비로 작업을 자동화합니다. 명령을 실행하는 매우 짧은 스크립트입니다 (완제품이 아닌 발췌).
begin
Net::SSH.start(fqdn, username, :password => loginPassword) do |session|
output = ""
channel = session.open_channel do |ch|
ch.send_channel_request "shell"
ch.on_data do |ch, data|
output += data
end
ch.send_data "conf t\n\r"
#Some tasks here
ch.send_data "exit\n\r" #Exit config mode
ch.send_data "exit\n\r" #Exit device
end
# Wait for everything to complete
channel.wait
end
rescue Exception=>e
errorOutput = fqdn + ": " + e.to_s
puts errorOutput
puts output
return device
end
return output
빈 loginPassword 변수가 있어야합니다. 비어 있으면 로그인에 RSA 공개 키가 사용됩니다 (HP ProCurve 및 Cisco 15.X 플랫폼에서 지원됨).
git 및 몇 가지 짧은 스크립트를 사용하면 여러 변경 사항과 변경 사항을 가진 사람으로 모든 장비 구성을 구성 할 수 있습니다 (엔지니어가 구성을 가져 와서 작업이 완료된 후 커밋한다고 가정).
또한 말할 필요도 없지만, 경우에 따라 프로덕션 장비에서 실행하기 전에 항상 실험실에서 스크립트 작업을 테스트하십시오. 특히 명령을 실행하고 구성을 변경할 때. 테스트, 테스트, 테스트
네트워크 장치에 동일한 생성자 (예 : Cisco)를 사용하는 경우 SecureCRT가 최선의 선택입니다. 판매 시간에 여러 터미널에서 명령을 보낼 수있는 SSH 클라이언트입니다.
설정 방법 : 1. 다른 탭에서 모든 장치에 연결 2.보기로 이동 3. "채팅 창"옵션 확인 4. 창을 마우스 오른쪽 버튼으로 클릭-> "모든 탭으로 채팅 보내기"확인