vRouter5600(Virtual Router Appliance)로 전환시 주의점 Part2
다음은 vRouter 5400과 vRouter 5600의 차이점을 설명하고 있습니다.
앞서 언급 한 바와 같이, 불행히도 공식 마이그레이션 가이드 같은 것은 존재하지 않기 때문에 전반적인 포괄적인 가이드를 하기에는 어려운 상황입니다.
5. 인터페이스
vRouter 5600에서는 컨트롤 플레인과 데이터 플레인이 분리된 DPDK를 이용하기 때문에 인터페이스가 아래처럼 각각 변경되었습니다.
- eth0, eth1, eth2, eth3 -> dp0s0, dp0s1, dp0s2, dp0s3
- bond0, bond1 -> dp0bond0, dp0bond1
그리고 vRouter 5400에서 eth0과 eth2이 bond0으로 eth1과 eth3가 bond1으로 각각 LACP로 구성하고 있던 것처럼,
vRouter 5600에서는 dp0s0와 dp0s2이 dp0bond0으로 dp0s1과 dp0s3이 dp0bond1으로 각각 LACP 구성하고 다음과 같이 옵션이 변경되었습니다.
- hash-policy -> vRouter 5600에서는 폐지
- mode 802.3ad -> mode lacp
또한 VRRP는 다음과 같이 변경됩니다.
- rfc3768-compatibility -> rfc-compatibility
- VRRP 광고 간격을 나타내는 advertisement 값은 vRouter 5400에서는 bond0/bond1에 주문 후 생성된 초기 구성에서 명시적으로 1 초에 설정되어 있습니다.
vRouter 5600에서는 dp0bond0/dp0bond1에 주문 직후의 초기 구성은 설정되어 있지 않지만, 기본값은 1 초이므로 동작은 동일합니다.
하지만 명시적으로 설정해 줄 것을 권장합니다.
# show interfaces bonding bond0
address 10.132.50.92/26
hash-policy layer3+4
mode 802.3ad
vif 1449 {
address 192.168.0.1/24
vrrp {
vrrp-group 1 {
advertise-interval 1
preempt false
priority 254
sync-group vgroup1
virtual-address 10.132.14.145/28
virtual-address 10.133.101.113/28
virtual-address 10.132.176.1/26
}
}
}
vrrp {
vrrp-group 1 {
advertise-interval 1
preempt false
priority 254
rfc3768-compatibility
sync-group vgroup1
virtual-address 10.132.50.84/26
}
}
# show interfaces bonding dp0bond0
bonding dp0bond0 {
address 10.132.50.92/26
mode lacp
vif 1449 {
address 192.168.0.1/24
vrrp {
vrrp-group 1 {
advertise-interval 1
preempt false
priority 254
sync-group vgroup1
virtual-address 10.132.14.145/28
virtual-address 10.133.101.113/28
virtual-address 10.132.176.1/26
}
}
}
vrrp {
vrrp-group 1 {
advertise-interval 1
preempt false
priority 254
rfc-compatibility
sync-group vgroup1
virtual-address 10.132.50.84/26
}
}
}
또한 VRRP인터페이스는 RFC 규격에 따라 bondXvX 에서 dp0vrrpX 로 변경되어 있습니다. 이것은 show vrrp명령을 실행하는 것으로 확인할 수 있습니다.
$ show vrrp
RFC Addr Last Sync
Interface Group State Compliant Owner Transition Group
--------- ----- ----- --------- ----- ---------- -----
bond0 1 MASTER yes no 5s vgroup1
bond0.1449 1 MASTER no no 5s vgroup1
bond1 1 MASTER yes no 5s vgroup1
bond1.1438 1 MASTER no no 7s vgroup1
$ show vrrp detail | grep interface
Virtual MAC interface: bond0v1
Virtual MAC interface: bond1v1
$ show vrrp
RFC Addr Last Sync
Interface Group State Compliant Owner Transition Group
--------- ----- ----- --------- ----- ---------- -----
dp0bond0 1 MASTER dp0vrrp2 no 5h2m59s vgroup1
dp0bond0.1449 1 MASTER no no 5h2m59s vgroup1
dp0bond1 1 MASTER dp0vrrp1 no 5h2m59s vgroup1
dp0bond1.1438 1 MASTER no no 5h2m59s vgroup1
$ show vrrp detail|grep interface
Virtual MAC interface: dp0vrrp2
Virtual MAC interface: dp0vrrp1
- VIF의 설정 방법은 기존과 동일합니다. rfc-compatibility는 native interface에만 설정하고 VIF는 TAG VLAN이므로 설정하지 않는다는것도 vRouter 5400 때와 동일합니다. (설정하면 VIP의 Arp Resolution이 실패합니다)
- Vyatta의 vrrp-group 번호와 sync-group 번호도 vRouter 5400 때와 동일하게, IBM Cloud에서 할당 해 준 것을 최대한 이용해야 합니다. 사용자가 변경 했을 때, 만약 Vyatta의 HA 구성이 여러 세트로 준비 된 경우 나중에 도입 된 다른 세트의 vRouter에 할당 된 vrrp-group 번호가 중복되어 vrrp의 flapping이 발생하여 통신 불가에 빠질 수 있습니다. 만약 사용자가 독자적으로 할당할 경우 중복이 일어나지 않도록 주의해야 합니다.
set interfaces bonding bond0 vif 1449 address 192.168.0.1/24
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 advertise-interval 1
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 preempt false
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 priority 254
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 sync-group vgroup1
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.14.145/28
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.133.101.113/28
set interfaces bonding bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.176.1/26
set interfaces bonding dp0bond0 vif 1449 address 192.168.0.1/24
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 advertise-interval 1
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 preempt false
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 priority 254
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 sync-group vgroup1
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.14.145/28
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.133.101.113/28
set interfaces bonding dp0bond0 vif 1449 vrrp vrrp-group 1 virtual-address 10.132.176.1/26
6. SSH 서비스
vRouter 5400에서는 SSH 포트는 하나만 설정 가능했습니다. 그러나 vRouter 5600에서는 여러개의 포트를 설정 가능합니다. 만약 하나만 사용한다면 사용하지 않는 포트는 명시적으로 제거해야 합니다.
# set service ssh port 22
# set service ssh port 20022
# commit
# show service ssh
port 20022
# set service ssh port 22
# set service ssh port 20022
# commit
# show service ssh
ssh {
port 20022
port 22
}
7. Firewall
vRouter 5400에서는 iptables 기반 (커널 기반) 이었지만, vRouter 5600에서는 사용자 영역(User Space)에서 제어하도록 구현되어 있습니다. 따라서 규칙의 설정 방법과 해석이 vRouter 5400과는 크게 변경되어 있습니다.
Vyatta에서 Firewall은 반드시 사용하는 기능이므로 여기가 마이그레이션중 제일 어려운 곳이라고 생각됩니다.
7.1 설정 방법
vRouter 5400에서 set firewall로 설정하고 있었지만, vRouter 5600에서 set security firewall설정합니다.
# set firewall
Possible completions:
all-ping Policy for handling of all IPv4 ICMP echo requests
broadcast-ping
Policy for handling broadcast IPv4 ICMP echo and timestamp requests
config-trap SNMP trap generation on firewall configuration changes
> group Firewall group
ip-src-route Policy for handling IPv4 packets with source route option
+> ipv6-name IPv6 firewall rule-set name
ipv6-receive-redirects
Policy for handling received ICMPv6 redirect messages
ipv6-src-route
Policy for handling IPv6 packets with routing extension header
log-martians Policy for logging IPv4 packets with invalid addresses
+> name IPv4 firewall rule-set name
receive-redirects
Policy for handling received IPv4 ICMP redirect messages
send-redirects
Policy for sending IPv4 ICMP redirect messages
source-validation
Policy for source validation by reversed path, as specified in RFC3704
> state-policy Global firewall state-policy
syn-cookies Policy for using TCP SYN cookies with IPv4
vyatta@vga02# set security firewall
Possible Completions:
all-ping Policy for handling of all IPv4 ICMP echo requests
broadcast-ping Policy for handling broadcast IPv4 ICMP echo requests
config-trap SNMP trap generation on firewall configuration changes
> global-state-policy Configure global state parameters for firewall
+> name Firewall ruleset
> session-log Session logging
syn-cookies Policy for using TCP SYN cookies with IPv4
tcp-strict Enable tcp strict stateful firewall rule
그리고 vRouter 5400는 하나의 인터페이스에 대한 in/out/local을 하나씩만 firewall을 설정할 수 있었지만, vRouter 5600에서는 다음 처럼 여러 개 지정할 수있게 되었습니다.
# set interfaces bonding bond1 firewall in INTERNET-TO-LOCAL
# set interfaces bonding bond1 firewall in INTERNET
# set interfaces bonding bond1 firewall in SERVICE-ALLOW
# commit
# show interfaces bonding bond1 firewall
local {
name SERVICE-ALLOW
}
# set interfaces bonding dp0bond1 firewall in INTERNET-TO-LOCAL
# set interfaces bonding dp0bond1 firewall in INTERNET
# set interfaces bonding dp0bond1 firewall in SERVICE-ALLOW
# commit
# show interfaces bonding dp0bond1 firewall
firewall {
in INTERNET-TO-LOCAL
in INTERNET
in SERVICE-ALLOW
}
7.2 인터페이스 기반 규칙 해석 순서
vRouter는 인터페이스 기반의 방화벽(Firewall)과 영역기반(zone-based) 방화벽이 있습니다. 인터페이스 기반의 방화벽은 vRouter 5400에서는 아래와 같이 iptable의 CHAIN과 동일하게 DNAT -> 방화벽(IN/OUT) -> SNAT 순서로 패킷이 처리되고 있습니다.
하지만, vRouter 5600에서는 다음과 같이 DNAT 전에 IN-방화벽이 먼저 평가됩니다.
Vyatta(로컬프로세스)에 대상 패킷이 도달하기 위해 IN-방화벽과 LOCAL-방화벽을 모두 통과해야만 한다는 것을 주의해야 합니다.
따라서 LOCAL로 접근하기 위해서는, vRouter 5400에서 기존 LOCAL-방화벽 설정을 IN-방화벽에 반영시킬 필요가 있습니다.
※ 앞서 얘기한 바와 같이 하나의 인터페이스에 여러개의 설정을 반영시킬 수 있기 때문에 vRouter 5400에서 LOCAL-방화벽으로 지정했던 정책을 vRouter 5600에서 IN-방화벽으로 지정하고 LOCAL-방화벽은 사용하지 않도록 해도 충분할 수 있습니다.
7.3 state policy의 global 옵션 설정
vRouter 5400에서는 iptables에서 사용하던 established/related 상태에 대한 설정을 global 수준에서만 지정 가능했습니다.
vRouter 5600에서는 TCP/UDP/ICMP 마다 stateful할지 여부를 지정할 수 있습니다.
# set firewall state-policy
Possible completions:
> established Global firewall policy for packets part of an established connection
> invalid Global firewall policy for packets part of an invalid connection
> related Global firewall policy for packets part of a related connection
# set firewall state-policy established action accept
# set firewall state-policy related action accept
# set firewall state-policy invalid action drop
# set security firewall global-state-policy
Possible Completions:
icmp enable icmp state monitoring for firewall
tcp enable tcp state monitoring for firewall
udp enable udp state monitoring for firewall
# set security firewall global-state-policy tcp
# set security firewall global-state-policy udp
# set security firewall global-state-policy icmp
7.4 stateful firewall
vRouter 5400에서는 iptables에서 사용하던 established/related 상태에 대한 설정을 지정할 수 있었습니다. 또한 새 세션의 지정에 대해서는 new라는 상태를 이용했습니다.
vRouter 5600에서는 stateful하기 위해 단순히 state enable을 지정합니다. 새 세션의 지정에 관해서는 TCP에 관해서는 TCP Flag를 이용합니다.
# set firewall name INTERNET-TO-LOCAL default-action drop
# set firewall name INTERNET-TO-LOCAL rule 10 action accept
# set firewall name INTERNET-TO-LOCAL rule 10 state established enable
# set firewall name INTERNET-TO-LOCAL rule 10 state related enable
# set firewall name INTERNET-TO-LOCAL rule 20 action accept
# set firewall name INTERNET-TO-LOCAL rule 20 protocol vrrp
# set firewall name INTERNET-TO-LOCAL rule 30 action accept
# set firewall name INTERNET-TO-LOCAL rule 30 destination port 20022
# set firewall name INTERNET-TO-LOCAL rule 30 protocol tcp
# set firewall name INTERNET-TO-LOCAL rule 30 state new enable
# set interfaces bonding bond1 firewall local name INTERNET-TO-LOCAL
# set security firewall name INTERNET-TO-LOCAL default-action drop
# set security firewall name INTERNET-TO-LOCAL rule 10 action accept
# set security firewall name INTERNET-TO-LOCAL rule 10 state enable
# set security firewall name INTERNET-TO-LOCAL rule 10 protocol tcp
# set security firewall name INTERNET-TO-LOCAL rule 20 action accept
# set security firewall name INTERNET-TO-LOCAL rule 20 protocol vrrp
# set security firewall name INTERNET-TO-LOCAL rule 30 action accept
# set security firewall name INTERNET-TO-LOCAL rule 30 destination port 20022
# set security firewall name INTERNET-TO-LOCAL rule 30 protocol tcp
# set security firewall name INTERNET-TO-LOCAL rule 30 tcp flags SYN,!ACK,!FIN,!RST
# set interfaces bonding dp0bond1 firewall in INTERNET-TO-LOCAL
7.5 여러개의 port를 설정 하는 방법
vRouter 5400에서는 destination port를 직접 쓸 수 있습니다. (iptables의 multiport 옵션에 해당)
vRouter 5600에서는 명시적으로 port-group을 작성해서 사용 해야합니다.
# set firewall name INTERNET-TO-LOCAL rule 30 destination port 80,443,10000-10010
# set resources group port-group HTTPGROUP port 80
# set resources group port-group HTTPGROUP port 443
# set resources group port-group HTTPGROUP port 10000-10010
# set security firewall name INTERNET-TO-LOCAL rule 30 destination port HTTPGROUP
7.6 QOS / Traffic policy
5400에서는 QOS / Traffic policy 설정시 set traffic-policy를 사용했습니다.
5600에서는 set policy qos를 사용하거나 firewall rule에서 설정할 수 있습니다.
# set traffic-policy
Possible completions:
+> drop-tail Drop tail queue (FIFO) policy
+> fair-queue Fair queuing policy
+> limiter Traffic input limiting policy
+> network-emulator
Network emulator policy
+> priority-queue
Priority queuing based policy
+> random-detect
Weighted Random Early Detect policy
+> rate-control Rate limiting policy
+> round-robin Deficit round robin based policy
+> shaper Traffic shaping based policy
# set policy qos name xxx shaper
Possible Completions:
bandwidth Bandwidth limit
burst Burst size in bytes
+> class Class number
default Qos profile for default traffic
description Description for this QoS policy
frame-overhead Framing overhead
period Enforcement period (ms)
+> profile QoS traffic profile
+> traffic-class Traffic Class
# set security firewall name INTERNET-TO-LOCAL rule 40 police
Possible Completions:
bandwidth Bandwidth limit
burst Burst size in bytes
ratelimit Ratelimit in packets/second.
> then Result for packets over police limit
8. NAT
예전에는 NAT는 set nat xxx로 설정했지만 앞으로는 set service nat xxx로 설정합니다.
# set nat
Possible completions:
> destination Destination NAT settings
> source Source NAT settings
# set service nat
Possible Completions:
<Enter> Execute the current command
> destination Destination NAT settings
> ipv6-to-ipv4 IPv6 to IPv4 NAT settings
> source Source NAT settings
9. IPsec VPN
- vRouter 5400에서 set vpn로 설정했던 것을 vRouter 5600에서는 set security vpn로 설정합니다.
- IKEv2를 지원합니다. set security vpn ipsec ike-group IKEGROUP1 ike-version 2
- IKE 실행 모드는 Main mode와 Aggressive mode의 2가지가 있습니다만, vRouter 5600에서도 Aggressive mode는 지원하지 않는 것 같습니다. 따라서 vRouter 5400 때와 마찬가지로 상대 기종에서는 Aggressive mode를 비활성화해야 합니다.
- vRouter 5400에서는 ipsec-interfaces 의 지정이 필요했지만, vRouter 5600에서는 필요없습니다.
- Site-to-Site VPN을 이용할 때는 prefix 지정으로 터널을 설정하는 방법과, VTI인터페이스를 설정하고 별도 라우팅을 설정하는 방법이 있습니다.
- zone-based firewall을 이용하고있는 경우에는 prefix 지정 터널은 잘 동작하지 않는 것 같습니다. 만약 zone-based firewall을 이용하고있는 경우에는 VTI를 사용합시다.
- prefix지정 VPN터널에서 흐르는 트래픽은 송신 원본 인터페이스가 불분명 하기 때문에 zone-based firewall에 의해 drop될 가능성이 있습니다.
# set vpn ipsec
Possible completions:
auto-update Set auto-update interval for IPsec daemon.
disable-uniqreqids
Option to disable requirement for unique IDs in the Security Database
+> esp-group Name of Encapsulating Security Payload (ESP) group
+> ike-group Name of Internet Key Exchange (IKE) group
> ipsec-interfaces
Interface to use for VPN [REQUIRED]
> logging IPsec logging
> nat-networks Network Address Translation (NAT) networks
nat-traversal
Network Address Translation (NAT) traversal
+> profile VPN IPSec Profile
> site-to-site Site to site VPN
# set security vpn ipsec
Possible Completions:
<Enter> Execute the current command
auto-update Set auto-update interval for IPsec daemon. [Deprecated]
disable-uniqreqids <No help text available> [Deprecated]
+> esp-group Name of Encapsulating Security Payload (ESP) group
+> ike-group Name of Internet Key Exchange (IKE) group
> logging IPsec logging
> nat-networks Network Address Translation (NAT) networks
nat-traversal Network Address Translation (NAT) traversal [Deprecated]
+> profile VPN IPSec Profile
> site-to-site Site to site VPN
10. OpenVPN
OpenVPN에 대한 설정 방법은 기본적으로 변경이 없습니다.
# set interfaces openvpn vtun0
Possible completions:
> auth OpenVPN authentication method
> bridge-group Interface to be added to a bridge group
> client-bundle
Generate SSL-VPN Client Bundles
client-cert-not-required
Client certificates not required
description Description for the interface
device-type OpenVPN interface device-type
disable Interface to be disabled
encryption Data encryption algorithm option
> firewall Firewall options
hash Hashing algorithm option
> ip IPv4 routing parameters
> ipv6 IPv6 routing parameters
+> local-address
Local IP address of tunnel
local-host Local IP address to accept connections (all if not set)
local-port Local port number to accept connections
mode OpenVPN mode of operation
+ openvpn-option
Additional OpenVPN options
> policy Policy route options
protocol OpenVPN communication protocol
redirect Incoming packet redirection destination
remote-address
IP address of remote end of tunnel
> remote-configuration
Configure openvpn remote configuration
+ remote-host Remote host to connect to (dynamic if not set)
remote-port Remote port number to connect to
> replace-default-route
OpenVPN tunnel to be used as the default route
> server Server-mode options
shared-secret-key-file
File containing the secret key shared with remote end of tunnel
> tls Transport Layer Security (TLS) options
> traffic-policy
Traffic-policy for interface
set interfaces openvpn vtun0
Possible Completions:
<Enter> Execute the current command
> auth OpenVPN authentication method
> client-bundle Generate SSL-VPN Client Bundles
client-cert-not-required Client certificates not required
description Description for the interface
device-type OpenVPN interface device-type
disable Interface to be disabled
encryption Data encryption algorithm option
> firewall Firewall options
hash Hashing algorithm option
> ip IPv4 parameters
> ipv6 IPv6 parameters
local-address Local IP address or network address
local-host Local IP address to accept connections (all if not set)
local-port Local port number to accept connections
mode OpenVPN mode of operation
+ openvpn-option Additional OpenVPN options
protocol OpenVPN communication protocol
remote-address IP address of remote end of tunnel
> remote-configuration Configure openvpn remote configuration
+ remote-host Remote host to connect to (dynamic if not set)
remote-port Remote port number to connect to
> replace-default-route OpenVPN tunnel to be used as the default route
> server Server-mode options
shared-secret-key-file File containing the secret key shared with remote end of tunnel
> tls Transport Layer Security (TLS) options
11. conntrack module
vRouter 5400에서는 다음과 같이 conntrak모듈을 사용합니다.
# set system conntrack expect-table-size xxx
# set system conntrack hash-size xxxx
# set system conntrack table-size xxx
12. root가되는 방법 / sudo 대해
vRouter 5400에서는 sudo -s 로 암호없이 root 사용자 수있었습니다. 그러나 vRouter 5600에서는 vyatta 사용자가 sudo를 실행할 권한이 없습니다. 이것은 vRouetr5600에 admin보다 더 상위의 권한 수준으로 superuser가 만들어졌기 때문입니다. vRouter 5400 처럼 vyatta 사용자가 sudo를 실행하기 위해서는 superuser로 변경해야 합니다.
# set system login user vyatta level
Possible completions:
admin Administrators
operator Operators
# set system login user vyatta level
Possible Completions:
admin
operator
superuser
$ sudo ls -l
[sudo] password for vyatta:
Sorry, user vyatta is not allowed to execute '/bin/ls -l' as root on vga02.ibm.com.
# set system login user vyatta level superuser
# commit
(ssh의 로그아웃/로그인을 해서 세션을 새로 맺음)
$ show login
login : vyatta
level : Superuser
user : vyatta
groups : users adm systemd-journal vyattacfg vyattaadm wireshark
$ sudo ls -l
[sudo] password for vyatta:
total 4
-rw-r----- 1 vyatta users 402 Jul 21 17:09 id_rsa.pub
그러나 sudo 실행시 비밀번호 입력을 요구하게됩니다. 비밀번호 입력없이 sudo를 실행하기 위해서는 /etc/sudoers를 편집해야 합니다.
시스템 설정을 직접 편집 하는 것은 vRouter의 지원 범위를 벗어나지 만, 아무래도 비밀번호 입력없이 sudo를 실행해야 한다면 다음 단계를 수행하면 됩니다.
(반복하지만 vRouter의 지원 대상에서 제외 되므로 이 변경 작업으로 인한 어떤 문제가 발생하더라도 책임 지지 않습니다!).
재부팅시 설정이 사라지지 않겠지만, 버전 업 등을 행한 경우 이 정보는 유실 되어 재구성이 필요할 수 있습니다.
$ su -
Password:
# visudo
(下記を追記して保存)
vyatta ALL=(ALL:ALL) NOPASSWD:ALL
# cat /etc/sudoers|grep vyatta
vyatta ALL=(ALL:ALL) NOPASSWD:ALL
참고 : 버그
- Version 5.2R5S3 에서 # set system login user vyatta level superuser를 한 번 설정 한 후 다시 # set system login user vyatta level superuser로 admin을 복원해도 $ show login 명령의 출력 결과는 Superuser 상태가되어 버리는 표시 버그가 있습니다. "Bug ID : VRVDR-37958"로 등록되어 있으며 vRouter 5600 17.2 이상 (Yountville)에서 수정 예정입니다.
13. SSL/TLS의 버전
vRouter 5400에서는 TLS1.0 만을 지원하고 있으며, SSLv3, TLS1.1, TLS1.2은 지원하지 않습니다.
vRouter 5600에서는 TLS1.0, TLS1.1, TLS1.2을 지원하고 있으며, SSLv3는 지원하지 않습니다.
14. tcpdump
tcpdump를 캡처 할 때 어떤 인터페이스의 통신인지를 확인하는 것이 귀찮을 때 -i any를 사용하는 일이 자주 있습니다.vRouter 5400에서는 그렇게 해도 문제가 없었습니다만,
vRouter 5600에서 -i any 사용은 vRouter가 보낸 패킷은 캡처하고 주는데, vRouter를 통한 패킷(dataplane 이용)은 캡처를 하지 않으므로, 명시적으로 인터페이스를 지정할 필요가 있습니다.
# tcpdump -D
1..spathintf [Up, Running]
2.dp0s0 [Up, Running]
3.dp0bond0 [Up, Running]
4.dp0s1 [Up, Running]
5.dp0bond1 [Up, Running]
6.dp0vrrp1 [Up, Running]
7.dp0s2 [Up, Running]
8.dp0vrrp2 [Up, Running]
9.dp0s3 [Up, Running]
10.dp0bond1.1438 [Up, Running]
11.dp0bond0.1449 [Up, Running]
12.any (Pseudo-device that captures on all interfaces) [Up, Running]
13.lo [Up, Running, Loopback]
14.nflog (Linux netfilter log (NFLOG) interface)
15.nfqueue (Linux netfilter queue (NFQUEUE) interface)
16.usbmon1 (USB bus number 1)
17.usbmon2 (USB bus number 2)
# tcpdump -i any icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
# tcpdump -i dp0s1 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0s1, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
# tcpdump -i dp0s3 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
# tcpdump -i dp0bond1 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0bond1, link-type EN10MB (Ethernet), capture size 262144 bytes
19:06:01.1499973371 IP 126.211.xx.xx > 161.202.121.202: ICMP echo request, id 25179, seq 837, length 64
19:06:01.1499973660 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25179, seq 837, length 64
19:06:01.1499974001 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25179, seq 837, length 64
19:06:01.1499974034 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25179, seq 837, length 64
19:06:02.1500013612 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 838, length 64
19:06:02.1500013922 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 838, length 64
19:06:02.1500014498 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 838, length 64
19:06:02.1500014539 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 838, length 64
19:06:03.1500013463 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 839, length 64
19:06:03.1500013483 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 25540, seq 839, length 64
19:06:03.1500013870 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 839, length 64
19:06:03.1500014086 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 25540, seq 839, length 64
^C
12 packets captured
0 packets received by filter
0 packets dropped by kernel
# tcpdump -i dp0bond1.1438 icmp -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dp0bond1.1438, link-type EN10MB (Ethernet), capture size 262144 bytes
17:08:07.1500209525 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 184, length 64
17:08:07.1500210181 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 184, length 64
17:08:08.1500213757 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 185, length 64
17:08:08.1500214394 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 185, length 64
17:08:09.1500224574 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 186, length 64
17:08:09.1500225213 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 186, length 64
17:08:10.1500219418 IP 126.211.xx.xx > 161.202.xx.xx: ICMP echo request, id 43428, seq 187, length 64
17:08:10.1500219745 IP 161.202.xx.xx > 126.211.xx.xx: ICMP echo reply, id 43428, seq 187, length 64
^C
8 packets captured
0 packets received by filter
0 packets dropped by kernel