본문 바로가기

HS/Round A Round

Round A Round - 4 - Kubevirt Network

이전 포스팅에서 제대로 파악하지 못했던 네트워크의 짝을 찾아본다.

 

제대로 이해하기가 어렵다. Skydive를 통해서 네트워크 토폴로지를 불러와본다.

실제 운영 중인 virt-launcher이다. cali785~는 calico를 통해 생성된 veth interface이다. 이 인터페이스는 노드에 존재한다.

[root@s1 ~]# ifconfig | grep 786
calic7070017865: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1440

그리고 얘는 virt-launcher의 eth0번과 페어다. 이제 슬슬 감이 잡힌다. eth0은 k6t-eth0번과 layer2로 묶여있고 k6t-eth0은 브릿지이다. 얘는 vnet0에게 패킷을 전달한다.

[root@12f4ff47 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
4: eth0@if496: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue master k6t-eth0 state UP group default 
    link/ether 2e:fa:47:5c:de:ba brd ff:ff:ff:ff:ff:ff link-netnsid 0
5: k6t-eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default 
    link/ether 2e:fa:47:5c:de:ba brd ff:ff:ff:ff:ff:ff
    inet 169.254.75.10/32 brd 169.254.75.10 scope global k6t-eth0
       valid_lft forever preferred_lft forever
6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc pfifo_fast master k6t-eth0 state UNKNOWN group default qlen 1000
    link/ether fe:fa:47:de:19:26 brd ff:ff:ff:ff:ff:ff

vneth0 인터페이스는 VM과 연결되어 있다(eth0번). 따라서.... 네트워크 시에는 다음과 같은 플로우로 들어가는 것이다. 노드에서 VM에 접근하려고 할 때

node interface -> calico -> Pod의 calico veth -> 브릿지 -> vnet0(tap) -> VM 인터페이스

 

보기엔 쉬워보이는데 이해하긴 엄청 어렵다. skydive 아니면 힘들었을듯..^^... 본 블로그에는 조금 더 정리해서 올려야겠다.