Kubernetes1.11 + Calico3.1 BGPルータによる外部公開(VyOS)

# はじめに

前回、BGPモードで Kubernertes 1.11 + Calico3.1 の環境を構築しました。
https://qiita.com/sugimount/items/481c8e4bba4be98835d7

今回は、仮想ルータ VyOS を使用して、BGPルータを作成し、外部のNWから直接PodNetworkへアクセスする環境を構成します。



# 構成

- Master1台
- Node2台
- BGPルータ1台 (VyOS 1.1.8)
- Client1台



![006.png](https://qiita-image-store.s3.amazonaws.com/0/104247/d3cc3087-a574-fe12-d3aa-6cb995447609.png)



なお、上記の環境はすべてKVM上の仮想マシンとして作成しています。



# 仮想ルータ (VyOS 1.1.8) の構成

## Install

VyOSは、Vyatatから派生したオープンソースのネットワークOSです。L3ルータ、BGPルータ、Firewall、VPN などの機能を提供します。
BGPルータとして、VyOS を利用します。

https://vyos.io/



以下のファイルを使用します

- vyos-1.1.8-amd64.iso



KVM上で適切なNWを使用してVyOSを作成します

```
virt-install \
 --connect qemu:///system \
 --name calico-k8s-vyos \
 --memory 4096 \
 --disk size=100,bus=virtio \
 --vcpus 4 \
 --graphics vnc,listen=0.0.0.0,keymap=ja \
 --cdrom=/root/vyos/vyos-1.1.8-amd64.iso \
 --network virtualport_type=openvswitch,source=mgmt,source_mode=bridge,model=virtio  \
 --network virtualport_type=openvswitch,source=bgp,source_mode=bridge,model=virtio  \
 --network virtualport_type=openvswitch,source=ext_bgp,source_mode=bridge,model=virtio  \
 --clock offset=utc \
 --dry-run
```



一定時間後、Login プロンプトが表示されます。以下情報でログインが出来ます。

ID : vyos

Pass : vyos 

![004.png](https://qiita-image-store.s3.amazonaws.com/0/104247/2e3f61f0-9358-a953-5e5c-82f1db16b3d1.png)



ログインして、以下コマンドでインストールを行う
基本デフォルトのままOKを押せば進む。ディスクの上書きを実施しても良いかの確認は[YES]を入力する。  

```
install system

省略

Done ! と表示されれば終了
```



一度シャットダウンして、起動しなおす

```
poweroff
```



起動

```
virsh start calico-k8s-vyos
```







## SSH用IPアドレスの設定

起動が完了したら、Install時に設定した ID, Pass でログイン。

設定モードに入る

```
configure
```



Interfaceの確認。MacAddressを基にKVMで設定したInterfaceと紐づけを行う

![005.png](https://qiita-image-store.s3.amazonaws.com/0/104247/33e4a490-07aa-f410-43b1-fdf90851fe54.png)


IPアドレスの設定を行う

```
set interface ethernet eth0 address 10.44.194.65/24
set interface ethernet eth1 address 192.168.217.254/24
set interface ethernet eth2 address 192.168.216.254/24
```



gateway や DNS を設定する

```
set system gateway-address 10.44.194.254
set system name-server 8.8.8.8
```



SSHアクセスを許可する

```
set service ssh port 22
```



設定を反映 (いわゆる runnning-configに反映 )

```
commit
```



問題ないようであれば、設定を保存 (いわゆる copy run startup-config)

```
save
```



設定したInterfaceに対してSSHを行う事が出来ます



## BGPルータ用設定

configureモードでない場合は、移行します

```
configure
```



BGPには、AS番号とよばれる、各ASを識別する番号を割り当てます。
ローカル環境なので、プライベートAS番号から選択する必要があります。今回はわかりやすさのために、65000 を採用します。

```
edit protocols bgp 65000
```



ルータIDを指定します。任意のID (ipv4) を指定します

```
set parameters router-id 192.168.217.254
```



VyOSがBGPルート情報を交換したいBGPピアを指定します。
Kubernetesクラスタの全サーバを指定する必要があります。
現段階では、Calico側は設定していませんが、Calico側のAS番号も65000とします。

```
set neighbor 192.168.217.1 remote-as 65000 # to master01
set neighbor 192.168.217.2 remote-as 65000 # to node01
set neighbor 192.168.217.3 remote-as 65000 # to node02
```



次に、BGPのトポロジーはフルメッシュではなく、VyOS側がBGPルートリフレクターとなることで、ピア数が増えることを抑えます。
なお、今回の検証環境ではフルメッシュでも何も問題ないですが、Node数がめちゃくちゃ増えると問題になりえると思います

```
set neighbor 192.168.217.1 route-reflector-client
set neighbor 192.168.217.2 route-reflector-client
set neighbor 192.168.217.3 route-reflector-client
```





次に、BGPルータの外側に存在するNWを、Calico側へアドバタイズする設定を行います

```
set network 192.168.216.0/24
```





設定を保存します

```
exit
commit
save
```



VyOSが認識しているBGPの状態を確認します
Calico側で設定を入れていないため、BGPピアはまだ張られていません

```
vyos@vyos:~$ show ip bgp 
No BGP network exists
vyos@vyos:~$ 
vyos@vyos:~$ show ip bgp summary 
BGP router identifier 192.168.217.254, local AS number 65000
IPv4 Unicast - max multipaths: ebgp 1 ibgp 1
RIB entries 0, using 0 bytes of memory
Peers 3, using 13 KiB of memory

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.217.1   4 65000       0       1        0    0    0 never    Active     
192.168.217.2   4 65000       0       1        0    0    0 never    Active     
192.168.217.3   4 65000       0       1        0    0    0 never    Active     

Total number of neighbors 3
```



# Calico側の構成

Calico側でBGPの操作を行う際には、calicoctl コマンドを使用します。
前回のCalico設定の中で Pod として calicoctl を導入しています。これのsh を立ち上げ各種操作を行います

```
[root@calico-k8s-master01 ~(default kubernetes-admin)]# kubectl get pods -o wide --all-namespaces | grep calicoctl
kube-system   calicoctl                                          1/1       Running   0          9h        192.168.204.102   calico-k8s-node02.maas
```



sh起動

```
kubectl exec -it -n kube-system calicoctl /bin/sh
```



現在のCalico側の状態を確認

```
~ # calicoctl get nodes -o wide
NAME                       ASN         IPV4               IPV6   
calico-k8s-master01.maas   (unknown)   192.168.217.1/24          
calico-k8s-node01.maas     (unknown)   192.168.217.2/24          
calico-k8s-node02.maas     (unknown)   192.168.217.3/24          

~ # 
~ # calicoctl get bgpPeer -o wide
NAME   PEERIP   NODE   ASN   

~ # 
~ # calicoctl get ippool -o wide
NAME                  CIDR          NAT    IPIPMODE   DISABLED   
default-ipv4-ippool   10.1.4.0/22   true   Never      false      

~ # 
~ # calicoctl get bgpConfiguration -o wide
NAME   LOGSEVERITY   MESHENABLED   ASNUMBER   

```

command memo

```
calicoctl get nodes -o wide
calicoctl get bgpPeer -o wide
calicoctl get ippool -o wide
calicoctl get bgpConfiguration -o wide
```





下記の情報を指定します。なお、外部BGPルータ(VyOS)をルートリフレクターにしない場合は、BGPピアをフルメッシュ(nodeToNodeMeshEnabled を true)にする必要があります。

- Calico側にAS番号などを指定します。VyOSと番号を合わせます。

```
cat << EOF | calicoctl create -f -
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
  name: default
spec:
  logSeverityScreen: Info
  nodeToNodeMeshEnabled: false
  asNumber: 65000
EOF
```



実行例

```
~ # cat << EOF | calicoctl create -f -
> apiVersion: projectcalico.org/v3
> kind: BGPConfiguration
> metadata:
>   name: default
> spec:
>   logSeverityScreen: Info
>   nodeToNodeMeshEnabled: false
>   asNumber: 65000
> EOF
Successfully created 1 'BGPConfiguration' resource(s)
```



ASNumber や bgpConfigration が追加されていることが確認できます

```
~ # calicoctl get nodes -o wide
NAME                       ASN       IPV4               IPV6   
calico-k8s-master01.maas   (65000)   192.168.217.1/24          
calico-k8s-node01.maas     (65000)   192.168.217.2/24          
calico-k8s-node02.maas     (65000)   192.168.217.3/24          

~ # 
~ # calicoctl get bgpPeer -o wide
NAME   PEERIP   NODE   ASN   

~ # 
~ # calicoctl get ippool -o wide
NAME                  CIDR          NAT    IPIPMODE   DISABLED   
default-ipv4-ippool   10.1.4.0/22   true   Never      false      

~ # 
~ # calicoctl get bgpConfiguration -o wide
NAME      LOGSEVERITY   MESHENABLED   ASNUMBER   
default   Info          false         65000      

```



次に、Calico側がVyOSとピアを張るための設定を行います

```
cat << EOF | calicoctl create -f -
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  name: bgppeer-vyos
spec:
  peerIP: 192.168.217.254
  asNumber: 65000
EOF
```



実行例

```
~ # cat << EOF | calicoctl create -f -
> apiVersion: projectcalico.org/v3
> kind: BGPPeer
> metadata:
>   name: bgppeer-vyos
> spec:
>   peerIP: 192.168.217.254
>   asNumber: 65000
> EOF
Successfully created 1 'BGPPeer' resource(s)
```



BGP peer の resource が追加されています

```
~ # calicoctl get nodes -o wide
NAME                       ASN       IPV4               IPV6   
calico-k8s-master01.maas   (65000)   192.168.217.1/24          
calico-k8s-node01.maas     (65000)   192.168.217.2/24          
calico-k8s-node02.maas     (65000)   192.168.217.3/24          

~ # 
~ # calicoctl get bgpPeer -o wide
NAME           PEERIP            NODE       ASN     
bgppeer-vyos   192.168.217.254   (global)   65000   

~ # 
~ # calicoctl get ippool -o wide
NAME                  CIDR          NAT    IPIPMODE   DISABLED   
default-ipv4-ippool   10.1.4.0/22   true   Never      false      

~ # 
~ # calicoctl get bgpConfiguration -o wide
NAME      LOGSEVERITY   MESHENABLED   ASNUMBER   
default   Info          false         65000      

~ # calicoctl get workloadEndpoint -o wide --all-namespaces
NAMESPACE     NAME                                                                         WORKLOAD                                NODE                       NETWORKS       INTERFACE         PROFILES          NATS   
default       calico--k8s--node01.maas-k8s-nginx--test--58586b9f9c--xnk24-eth0             nginx-test-58586b9f9c-xnk24             calico-k8s-node01.maas     10.1.7.0/32    cali077d865b238   kns.default              
default       calico--k8s--node02.maas-k8s-nginx--test--58586b9f9c--xsv9k-eth0             nginx-test-58586b9f9c-xsv9k             calico-k8s-node02.maas     10.1.5.0/32    cali055e6aad924   kns.default              
demo1         calico--k8s--node01.maas-k8s-centos--deployment--7d7d7bcb56--w6pc8-eth0      centos-deployment-7d7d7bcb56-w6pc8      calico-k8s-node01.maas     10.1.7.2/32    cali92ab0c0f7cb   kns.demo1                
demo1         calico--k8s--node02.maas-k8s-centos--deployment--7d7d7bcb56--td2c5-eth0      centos-deployment-7d7d7bcb56-td2c5      calico-k8s-node02.maas     10.1.5.2/32    cali70d800951ac   kns.demo1                
kube-system   calico--k8s--master01.maas-k8s-coredns--78fcdf6894--5m2qn-eth0               coredns-78fcdf6894-5m2qn                calico-k8s-master01.maas   10.1.6.64/32   cali8247ce56ac4   kns.kube-system          
kube-system   calico--k8s--master01.maas-k8s-coredns--78fcdf6894--k5tf4-eth0               coredns-78fcdf6894-k5tf4                calico-k8s-master01.maas   10.1.6.65/32   cali8a44dca6d04   kns.kube-system          
kube-system   calico--k8s--node01.maas-k8s-kubernetes--dashboard--6d4bc79449--z6jdg-eth0   kubernetes-dashboard-6d4bc79449-z6jdg   calico-k8s-node01.maas     10.1.7.3/32    calib200f7ce985   kns.kube-system   
```



# Kubernertesクラスタ側で確認

VyOSで、外側のNW(192.168.216.0/24)をアドバタイズ設定したことにより、Kubernetesクラスタの全てのルーティングテーブルに反映されている

```
[root@calico-k8s-master01 ~(default kubernetes-admin)]# ip r
default via 10.44.194.254 dev ens4 
10.1.5.0/26 via 192.168.217.3 dev ens5 proto bird       <-------------- VyOSをルートリフレクターにすることにより、他NodeへのRouteがアドバタイズされている
10.1.6.64 dev cali8247ce56ac4 scope link 
blackhole 10.1.6.64/26 proto bird 
10.1.6.65 dev cali8a44dca6d04 scope link 
10.1.7.0/26 via 192.168.217.2 dev ens5 proto bird       <-------------- VyOSをルートリフレクターにすることにより、他NodeへのRouteがアドバタイズされている
10.44.194.0/24 dev ens4 proto kernel scope link src 10.44.194.67 
169.254.0.0/16 dev ens3 scope link metric 1002 
169.254.0.0/16 dev ens4 scope link metric 1003 
169.254.0.0/16 dev ens5 scope link metric 1004 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.204.0/24 dev ens3 proto kernel scope link src 192.168.204.100 
192.168.216.0/24 via 192.168.217.254 dev ens5 proto bird      <-------------- 外側のNW(192.168.216.0/24)がBGPによりアドバタイズされている
192.168.217.0/24 dev ens5 proto kernel scope link src 192.168.217.1 
```

```
[root@calico-k8s-node01 ~]# ip r
default via 10.44.194.254 dev ens4 
10.1.5.0/26 via 192.168.217.3 dev ens5 proto bird        <-------------- VyOSをルートリフレクターにすることにより、他NodeへのRouteがアドバタイズされている
10.1.6.64/26 via 192.168.217.1 dev ens5 proto bird        <-------------- VyOSをルートリフレクターにすることにより、他NodeへのRouteがアドバタイズされている
10.1.7.0 dev cali077d865b238 scope link 
blackhole 10.1.7.0/26 proto bird 
10.1.7.2 dev cali92ab0c0f7cb scope link 
10.1.7.3 dev calib200f7ce985 scope link 
10.44.194.0/24 dev ens4 proto kernel scope link src 10.44.194.68 
169.254.0.0/16 dev ens3 scope link metric 1002 
169.254.0.0/16 dev ens4 scope link metric 1003 
169.254.0.0/16 dev ens5 scope link metric 1004 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.204.0/24 dev ens3 proto kernel scope link src 192.168.204.101 
192.168.216.0/24 via 192.168.217.254 dev ens5 proto bird      <-------------- 外側のNW(192.168.216.0/24)がBGPによりアドバタイズされている
192.168.217.0/24 dev ens5 proto kernel scope link src 192.168.217.2 
```

```
[root@calico-k8s-node02 ~]# ip r
default via 10.44.194.254 dev ens4 
10.1.5.0 dev cali055e6aad924 scope link 
blackhole 10.1.5.0/26 proto bird
10.1.5.2 dev cali70d800951ac scope link 
10.1.6.64/26 via 192.168.217.1 dev ens5 proto bird         <-------------- VyOSをルートリフレクターにすることにより、他NodeへのRouteがアドバタイズされている
10.1.7.0/26 via 192.168.217.2 dev ens5 proto bird         <-------------- VyOSをルートリフレクターにすることにより、他NodeへのRouteがアドバタイズされている
10.44.194.0/24 dev ens4 proto kernel scope link src 10.44.194.69 
169.254.0.0/16 dev ens3 scope link metric 1002 
169.254.0.0/16 dev ens4 scope link metric 1003 
169.254.0.0/16 dev ens5 scope link metric 1004 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.204.0/24 dev ens3 proto kernel scope link src 192.168.204.102 
192.168.216.0/24 via 192.168.217.254 dev ens5 proto bird       <-------------- 外側のNW(192.168.216.0/24)がBGPによりアドバタイズされている
192.168.217.0/24 dev ens5 proto kernel scope link src 192.168.217.3 
```





# 仮想BGPルータ側で確認

Calico側からアドバタイズされた情報を確認できます。
Kubeadmで指定したPodNetworkのセグメント('10.1.4.0/22')から、Kubernetesの各Nodeに /26 で分割されて割り当てられており、それがVyOS側に通知されています。
NextHop が、BGPルータと接続できるKubernetesNodeのNICとなっています

```
vyos@vyos:~$ show ip bgp 
BGP table version is 0, local router ID is 192.168.217.254
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*>i10.1.5.0/26      192.168.217.3                 100      0 i
*>i10.1.6.64/26     192.168.217.1                 100      0 i
*>i10.1.7.0/26      192.168.217.2                 100      0 i
*> 192.168.216.0    0.0.0.0                  1         32768 i

Total number of prefixes 4
```



bgp summary でも同様に確認できます

```
vyos@vyos:~$ show ip bgp summary 
BGP router identifier 192.168.217.254, local AS number 65000
IPv4 Unicast - max multipaths: ebgp 1 ibgp 1
RIB entries 5, using 480 bytes of memory
Peers 3, using 13 KiB of memory

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.217.1   4 65000       4      11        0    0    0 00:02:26        1
192.168.217.2   4 65000       5      11        0    0    0 00:02:26        1
192.168.217.3   4 65000       5      11        0    0    0 00:02:26        1

Total number of neighbors 3
```



VyOSでRoute情報を確認します
BGPでCalico側からアドバタイズされたルート情報が反映されています

```
vyos@vyos:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       I - ISIS, B - BGP, > - selected route, * - FIB route

S>* 0.0.0.0/0 [1/0] via 10.44.194.254, eth0
B>* 10.1.5.0/26 [200/0] via 192.168.217.3, eth1, 00:07:32   <------ Calicoからアドバタイズされたルート情報 node02
B>* 10.1.6.64/26 [200/0] via 192.168.217.1, eth1, 00:07:32  <------ Calicoからアドバタイズされたルート情報 master01
B>* 10.1.7.0/26 [200/0] via 192.168.217.2, eth1, 00:07:32   <------ Calicoからアドバタイズされたルート情報 node01
C>* 10.44.194.0/24 is directly connected, eth0
C>* 127.0.0.0/8 is directly connected, lo
C>* 192.168.216.0/24 is directly connected, eth2
C>* 192.168.217.0/24 is directly connected, eth1
```



# Client側から、Podへ直接アクセスできるか確認

Client側のIPアドレス、ルーティングテーブル確認

```
[root@calico-k8s-client ~]# 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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:35:8f:61 brd ff:ff:ff:ff:ff:ff
    inet 10.44.194.63/24 brd 10.44.194.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::8e1c:c996:22b2:d484/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:46:89:51 brd ff:ff:ff:ff:ff:ff
    inet 192.168.216.1/24 brd 192.168.216.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::daa4:b33e:3e71:101f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@calico-k8s-client ~]# 
[root@calico-k8s-client ~]# ip r
default via 10.44.194.254 dev eth0 proto static metric 100 
10.1.4.0/22 via 192.168.216.254 dev eth1 proto static metric 101 
10.44.194.0/24 dev eth0 proto kernel scope link src 10.44.194.63 metric 100 
192.168.216.0/24 dev eth1 proto kernel scope link src 192.168.216.1 metric 101 
```



今回は簡単のために、PodNetworkに通信する用のStaticRouteを設定している

```
[root@calico-k8s-client ~]# cat /etc/sysconfig/network-scripts/route-eth1 
ADDRESS0=10.1.4.0
NETMASK0=255.255.252.0
GATEWAY0=192.168.216.254
```



Podの一覧を確認

```
[root@calico-k8s-master01 ~(default kubernetes-admin)]# kubectl get pods -o wide --all-namespaces
NAMESPACE     NAME                                               READY     STATUS    RESTARTS   AGE       IP                NODE
default       nginx-test-58586b9f9c-xnk24                        1/1       Running   0          11h       10.1.7.0          calico-k8s-node01.maas
default       nginx-test-58586b9f9c-xsv9k                        1/1       Running   0          11h       10.1.5.0          calico-k8s-node02.maas
demo1         centos-deployment-7d7d7bcb56-td2c5                 1/1       Running   0          11h       10.1.5.2          calico-k8s-node02.maas
demo1         centos-deployment-7d7d7bcb56-w6pc8                 1/1       Running   0          11h       10.1.7.2          calico-k8s-node01.maas
kube-system   calico-etcd-jc5st                                  1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   calico-kube-controllers-84fd4db7cd-pxndj           1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   calico-node-4wbfq                                  2/2       Running   0          12h       192.168.204.101   calico-k8s-node01.maas
kube-system   calico-node-8zwjd                                  2/2       Running   0          12h       192.168.204.102   calico-k8s-node02.maas
kube-system   calico-node-cqcvb                                  2/2       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   calicoctl                                          1/1       Running   0          12h       192.168.204.102   calico-k8s-node02.maas
kube-system   coredns-78fcdf6894-5m2qn                           1/1       Running   0          12h       10.1.6.64         calico-k8s-master01.maas
kube-system   coredns-78fcdf6894-k5tf4                           1/1       Running   0          12h       10.1.6.65         calico-k8s-master01.maas
kube-system   etcd-calico-k8s-master01.maas                      1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   kube-apiserver-calico-k8s-master01.maas            1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   kube-controller-manager-calico-k8s-master01.maas   1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   kube-proxy-mrj59                                   1/1       Running   0          12h       192.168.204.102   calico-k8s-node02.maas
kube-system   kube-proxy-pvnk8                                   1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   kube-proxy-rznnx                                   1/1       Running   0          12h       192.168.204.101   calico-k8s-node01.maas
kube-system   kube-scheduler-calico-k8s-master01.maas            1/1       Running   0          12h       192.168.204.100   calico-k8s-master01.maas
kube-system   kubernetes-dashboard-6d4bc79449-z6jdg              1/1       Running   0          9h        10.1.7.3          calico-k8s-node01.maas
```





Podに対して直接Pingがとどく

```
[root@calico-k8s-client ~]# ping 10.1.7.0
PING 10.1.7.0 (10.1.7.0) 56(84) bytes of data.
64 bytes from 10.1.7.0: icmp_seq=1 ttl=62 time=1.01 ms
^C
--- 10.1.7.0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.019/1.019/1.019/0.000 ms
[root@calico-k8s-client ~]# ping 10.1.5.0
PING 10.1.5.0 (10.1.5.0) 56(84) bytes of data.
64 bytes from 10.1.5.0: icmp_seq=1 ttl=62 time=0.575 ms
64 bytes from 10.1.5.0: icmp_seq=2 ttl=62 time=0.624 ms
^C
--- 10.1.5.0 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.575/0.599/0.624/0.034 ms
[root@calico-k8s-client ~]# ping 10.1.5.2
PING 10.1.5.2 (10.1.5.2) 56(84) bytes of data.
64 bytes from 10.1.5.2: icmp_seq=1 ttl=62 time=0.683 ms
64 bytes from 10.1.5.2: icmp_seq=2 ttl=62 time=0.556 ms
^C
--- 10.1.5.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.556/0.619/0.683/0.068 ms
[root@calico-k8s-client ~]# ping 10.1.7.2
PING 10.1.7.2 (10.1.7.2) 56(84) bytes of data.
64 bytes from 10.1.7.2: icmp_seq=1 ttl=62 time=0.560 ms
64 bytes from 10.1.7.2: icmp_seq=2 ttl=62 time=0.433 ms
^C
--- 10.1.7.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.433/0.496/0.560/0.067 ms
[root@calico-k8s-client ~]# 
```



同様に、nginxに対して、httpも取得することが出来る

```
[root@calico-k8s-client ~]# curl http://10.1.7.0/
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
```





# 参考URL

vyos系

http://knowledge.sakura.ad.jp/tech/278/

http://enog.jp/wp-content/uploads/2015/09/enog34_vyos-bgp_0904.pdf



Calico系

https://docs.projectcalico.org/v3.1/getting-started/kubernetes/

https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/calico

https://docs.projectcalico.org/v3.1/usage/configuration/bgp



Calico NW Customize

https://www.n-novice.com/entry/2018/05/06/130151#Calico%E5%AE%9F%E8%A3%85%E8%A6%81%E4%BB%B6