# GNS3에서 제공하는 다양한 Appliance 를 사용해보자
0. GNS3 Appliance 사용하기
사용하고자 하는 appliance 를 선택 후 *.gns3a 다운로드 이후 GNS3에서 File - Import appliances 로 등록하자
 
 
1. vyOS v
리눅스(Debian) 기반에 라우팅, 방화벽, VPN 기능을 제공함, CLI는 주니퍼와 유사하며, Quagga 라우팅 엔진을 사용함

 
 
1.1 구성도
일반적인 방화벽 구성이며 웹서버 1대와 웹단말 1대를 구성함

 
 
1.2 vyos 설치
vyos)
기본 계정은 vyos/vyos 임
최초 로그인 시 vyos 설치 필요(install image)
기본 암호 변경 : qwe123
설치 완료 후 reboot - Yes

 
재부팅 이후 vyos 로그인하여 운영모드 접근 및 시스템정보 확인(show version)

 
 
1.3 기본설정
설정모드 진입
configure

 
인터페이스 IP 설정
set interfaces ethernet eth0 address '192.168.254.50/24'
set interfaces ethernet eth0 description 'OUTSIDE'
set interfaces ethernet eth1 address '172.16.0.1/24'
set interfaces ethernet eth1 description 'INSIDE'
set interfaces ethernet eth2 address '172.17.0.1/24'
set interfaces ethernet eth2 description 'DMZ
commit
 
인터페이스 IP 확인
run show interfaces
run show interfaces ethernet eth0
run show interfaces ethernet eth0

 
 
외부 디폴트 라우팅 설정
set protocols static route 0.0.0.0/0 next-hop 192.168.254.254
commit
run show ip route

 
 
vyos 접근을 위한 SSH 활성화
set service ssh port '22'
commit
 
 
INSIDE 사용자를 위한 DHCP 서버 설정
set service dhcp-server disabled 'false'
set service dhcp-server shared-network-name LAN subnet 172.16.0.0/24 default-router '172.16.0.1'
set service dhcp-server shared-network-name LAN subnet 172.16.0.0/24 dns-server '172.16.0.1'
set service dhcp-server shared-network-name LAN subnet 172.16.0.0/24 domain-name 'internal-network'
set service dhcp-server shared-network-name LAN subnet 172.16.0.0/24 lease '86400'
set service dhcp-server shared-network-name LAN subnet 172.16.0.0/24 start 172.16.0.11 stop '172.16.0.100'
commit
 
run show dhcp server leases

 
webterm 단말에서 dhcp 로 자동할당받은 IP 확인

 
 
vyos에 DNS forwarder 설정
set service dns forwarding cache-size '0'
set service dns forwarding listen-on 'eth1'
set service dns forwarding listen-on 'eth2'
set service dns forwarding name-server '168.126.63.1'
set service dns forwarding name-server '8.8.8.8'
commit
 
run show dns forwarding nameservers
run show dns forwarding statistics

 
webterm 단말의 dns 서버IP 주소 확인

 
 
1.4 NAT
INSIDE 사용자들의 외부 접속을 위한 NAT masquerading 설정(SNAT)
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '172.16.0.0/24'
set nat source rule 100 translation address masquerade
commit
 
run show nat source rules  
run show nat source translations detail : IP 변환 정보 확인

 
webterm 단말에서 외부 인터넷 접속 확인

 
 
DMZ에 172.17.0.100 웹서버(tcp80,443)에 접속을 위한 DNAT 설정
set nat destination rule 10 description 'Port Forward: HTTP to 172.17.0.100'
set nat destination rule 10 destination port '80,443'
set nat destination rule 10 inbound-interface 'eth0'
set nat destination rule 10 protocol 'tcp'
set nat destination rule 10 translation address '172.17.0.100'
commit
 
run show nat destination rules
run show nat destination translations detail

 
외부에서 vyos 의 eth0 IP에 tcp 80, 443 으로 접속하여 DMZ웹서버 접속 확인
내부에 wordpress 는 gns3의 wordpress appliance 를 사용함

 
 
1.5 Firewall 방화벽
vyos는 Linux Netfilter 를 패킷필터 기능으로 사용함 : 인터페이스에 정책 설정, zone 기반 정책 설정
방화벽 정책의 입력 방향 : in(패킷인 인입되어 지나갈때), out(패킷이 빠져나갈때), local(vyos 자신을 목적지로 향할때)
 
eth0에 인입 시 방화벽 정책 설정
기본정책은 차단, 내부에서 외부 접속 시 연결 및 관련 접속은 허용
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'
 
위(1.4) DMZ WebServer로 접속하기 위한 DNAT 트래픽 허용, 아래 IP는 web server의 ip를 직접 지정
set firewall name OUTSIDE-IN rule 20 action 'accept'
set firewall name OUTSIDE-IN rule 20 destination address '172.17.0.100'
set firewall name OUTSIDE-IN rule 20 destination port '80,443'
set firewall name OUTSIDE-IN rule 20 protocol 'tcp'
set firewall name OUTSIDE-IN rule 20 state new 'enable'
 
위에서 설정한 방화벽 정책을 eth0 인입에 적용하기
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
commit
 
확인
run show firewall summary
run show firewall
run show firewall statistics
 
 
eth0(vyos)을 목적지로 하는 방화벽 정책 설정
기본정책은 차단, 관련 접속 허용, icmp/ssh 허용
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'
 
위에서 설정한 방화벽 정책을 eth0 으로 향할때 적용하기
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'
commit
 
확인
run show firewall summary
run show firewall
run show firewall statistics

 

 
 
1.6 VPN
vyos는 openvpn 기능과 IPSec Site-to-Site 기능과 L2TP over IPSec 기능을 제공함.
여기에서는 L2TP over IPSec 테스트해봄 : 윈도우와 Mac 에서 내장된 VPN Client 로 접속 가능하여 간편함
 
eth0 IPSec 기본 설정
set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
 
L2TP VPN 설정 : VPN단말 할당 IP 대역 지정(101~150), 인증 공유키 설정(qwe123), 접속사용자계정 설정(user1/user1)
set vpn l2tp remote-access outside-address 192.168.254.50
set vpn l2tp remote-access client-ip-pool start 172.16.0.101
set vpn l2tp remote-access client-ip-pool stop 172.16.0.150
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret qwe123
set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username user1 password user1
 
eth0(vyos)을 목적지로 하는 방화벽 정책에 IPSec VPN 트래픽 허용 정책 설정
set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'esp'
set firewall name OUTSIDE-LOCAL rule 41 action 'accept'
set firewall name OUTSIDE-LOCAL rule 41 destination port '500'
set firewall name OUTSIDE-LOCAL rule 41 protocol 'udp'
set firewall name OUTSIDE-LOCAL rule 42 action 'accept'
set firewall name OUTSIDE-LOCAL rule 42 destination port '4500'
set firewall name OUTSIDE-LOCAL rule 42 protocol 'udp'
set firewall name OUTSIDE-LOCAL rule 43 action 'accept'
set firewall name OUTSIDE-LOCAL rule 43 destination port '1701'
set firewall name OUTSIDE-LOCAL rule 43 ipsec 'match-ipsec'
set firewall name OUTSIDE-LOCAL rule 43 protocol 'udp'
 
확인
run show vpn remote-access

 
 
윈도우단말에서 L2TP VPN 접속 설정
신규접속 설정 : 목적지 IP 설정 - vyos의 외부인터페이스(eth0)의 IP 지정

 
보안 설정 : VPN종류(L2TP/IPSec), 고급설정(인증 공유키: qwe123)

 
윈도우단말에서 L2TP VPN 접속 접속
아래에 이름과 암호(user1/user1)를 입력 후 연결

 
연결 후 가상인터페이스가 생성되고 IP는 설정된 IP중에서 받아옴(=PPP 어댑터)

 
내부 IP들과 통신이되고 DMZ Web 서버 IP를 직접 입력해서 접속 가능함

 
설정을 저장 : 재부팅 이후에도 적용
save
 

1.8 모니터링
전체 인터페이스 혹은 지정된 인터페이스에 접속 flow 정보를 실시간으로 출력
monitor interfaces ethernet eth0 flow
 
지정된 인터페이스의 패킷을 캡쳐(=tshark)
monitor interfaces ethernet eth0 traffic
 
 
## 참고링크


Posted by 쏠라구구
# GNS3에서 제공하는 다양한 Appliance 사용해보자
 
0. GNS3 Appliance 사용하기
사용하고자 하는 appliance 선택 *.gns3a 다운로드 이후 GNS3에서 File - Import appliances 등록하자
 
 
1. FRR v4.0
오픈소스 라우터SW이며 2018.3월에 v4.0 출시되었음
BGP EVPN 제공하며, EIGRP(rfc 7868) 지원함(아직 완벽하지 않음)

 
 
1.1 구성도
Cisco IOS 라우터 2대와 FRR라우터 1대로 OSPF, EIGRP 구성

 
 
1.2 OSPF 설정
Cisco1)
conf t
 ip routing
 int lo0
  ip address 192.168.1.1 255.255.255.255
 int f0/0
  ip address 192.168.12.1 255.255.255.0
  no shut
 !
 router ospf 1
  network 192.168.1.1 0.0.0.0 area 0
  network 192.168.12.0 0.0.0.255 area 0
 
FRR)
기본접속계정(frr/frr)이며 로그인 시 vtysh 자동실행되어 frr 모드로 진입함
conf t
 int ens3
  ip address 192.168.12.2/24
  no shut
 int ens4
  ip address 192.168.23.2/24
  no shut
 !
 router ospf
  network 192.168.12.0/24 area 0
 
확인)
frr라우터에서 Cisco1 OSPF 네이버 상태 확인 라우팅 테이블 정보 확인

 
1.3 EIGRP 설정
Cisco2)
conf t
 ip routing
 int lo0
  ip address 192.168.3.3 255.255.255.255
 int f0/0
  ip address 192.168.23.3 255.255.255.0
  no shut
 
 router eigrp 1
  no auto-summary
  network 192.168.3.3 0.0.0.0
  network 192.168.23.3 0.0.0.255
 
FRR)
conf t
 router eigrp 1
  network 192.168.23.0/24
 
확인)
frr라우터에서 Cisco2 EIGRP 네이버 상태 확인 라우팅 테이블 정보 확인

 
 
1.4 FRR에서 OSPF <-> EIGRP 재분배
EIGRP -> OSPF : OK
OSPF -> EIGRP : fail, OSPF 네트워크정보가 EIGRP 재분배 되지 않음, 아직 eigrp 완벽하게 구현되지 않음
FRR)
conf t
 router ospf
  redistribute connected
  redistribute eigrp
 !
 router eigrp 1
  redistribute connected
  redistribute eigrp
 
FRR확인)
OSPF 정보를 EIGRP 재분배했음에도 불구하고 eigrp topology 재분배된 네트워크가 없음

 
Cisco1확인)
FRR에서 eigrp 정보를 OSPF 재분배는 되었으므로 Cisco1에서 EIGRP 네트워크 정보가 라우팅테이블에서 확인됨

 
 
## 참고링크
Posted by 쏠라구구

Cumulus PTM

Routing & Switching 2018.05.09 01:33
# 동적인 케이블링 확인 PTM (Prescriptive Topology Manager)
topology.dot 파일에 caling 구성을 동적으로 일치를 확인함 (LLDP 사용), BFP 활용하여 forwarding path 장애 확인 가능함.
FRRouting 연동 가능함. 물리적인 인터페이스만 지원되며 가상/논리 인터페이스는 미지원.


 
# 구성도
간단히 CL 3대를 사용하여 구성

 
# 기본설정
MSTP(RSTP) LLDP 기본 활성화됨
 
CL1)
net add hostname CL1
net add interface swp1,swp3
net add bridge
net add bridge bridge ports swp1,swp3
 
CL2)
net add hostname CL2
net add interface swp1,swp2
net add bridge
net add bridge bridge ports swp1,swp2
 
CL3)
net add hostname CL3
net add interface swp2,swp3
net add bridge
net add bridge bridge ports swp2,swp3
 
CL1~CL3)
net pending
net commit
netshow interface
sudo lldpcli show neighbors

 
# PTM 설정
/etc/ptm.d/topology.dot 파일에 Cabling 연결 정보 설정 후 ptmd 서비스재시작으로 적용
 
CL1)
sudo sh -c "echo 'graph G {
    "CL1":"swp1" -- "CL2":"swp1";
    "CL1":"swp3" -- "CL3":"swp3";
}' >> /etc/ptm.d/topology.dot"
 
CL2)
sudo sh -c "echo 'graph G {
    "CL2":"swp1" -- "CL1":"swp1";
    "CL2":"swp2" -- "CL3":"swp2";
}' >> /etc/ptm.d/topology.dot"
 
CL3)
sudo sh -c "echo 'graph G {
    "CL3":"swp2" -- "CL2":"swp2";
    "CL3":"swp3" -- "CL1":"swp3";
}' >> /etc/ptm.d/topology.dot"
 
CL1~CL3)
sudo systemctl restart ptmd.service
sudo ptmctl 혹은 sudo ptmctl -l
sudo ptmctl -d

 
## PTM Cabling Plan fail 확인
CL1에 /etc/ptm.d/topology.dot 파일에 CL3:swp3 => CL3:swp4로 잘못연결로 변경 후 ptmd 재시작 후 확인
 
CL1)
sudo nano /etc/ptm.d/topology.dot
--------------------
CL1:swp3 -- CL3:swp4;
--------------------
sudo systemctl restart ptmd.service
sudo ptmctl -d
### 아래 처럼 CL1:swp4 아니므로 fail 되었음을 있음



# 참고링크


Posted by 쏠라구구


티스토리 툴바