一个简单的demo,模拟IPIP之间的通信
服务器1(假设IP为192.168.1.1)
服务器2(假设IP为192.168.1.2)
- 启用IP转发
在两台服务器上启用IP转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
永久启用IP转发,可以修改/etc/sysctl.conf:
net.ipv4.ip_forward = 1
应用更改:
sysctl -p
- 配置IPIP隧道
在两台服务器上配置IPIP隧道:
服务器1配置(192.168.1.1)
创建IPIP隧道接口:
ip tunnel add ipip1 mode ipip remote 192.168.1.2 local 192.168.1.1 dev eth0
ip addr add 10.0.0.1/24 dev ipip1
ip link set ipip1 up
添加路由以通过IPIP隧道转发流量:
ip route add 10.0.0.0/24 dev ipip1
服务器2配置(192.168.1.2)
创建IPIP隧道接口:
ip tunnel add ipip1 mode ipip remote 192.168.1.1 local 192.168.1.2 dev eth0
ip addr add 10.0.0.2/24 dev ipip1
ip link set ipip1 up
添加路由以通过IPIP隧道转发流量:
ip route add 10.0.0.0/24 dev ipip1
- 验证IPIP隧道
在两台服务器上验证IPIP隧道的连接:
从服务器1 ping服务器2:
ping 10.0.0.2
从服务器2 ping服务器1:
ping 10.0.0.1
calico ipip
IPIP模式是calico的默认网络架构,其实这也是一种overlay的网络架构,但是比overlay更常用的vxlan模式相比更加轻量化。IPinIP就是把一个IP数据包又套在一个IP包里,即把 IP 层封装到 IP 层的一个 tunnel它的作用其实基本上就相当于一个基于IP层的网桥!一般来说,普通的网桥是基于mac层的,根本不需 IP,而这个 ipip 则是通过两端的路由做一个 tunnel,把两个本来不通的网络通过点对点连接起来.
实例信息
主机 | 容器 | ip |
---|---|---|
node01 7.7.250.91 | tcpdump1-6b94c59cb4-khtbb | 10.244.103.93 |
node02 7.7.250.207 | tcpdump1-6b94c59cb4-khtbb | 10.244.232.180 |
node网络结构
1.pod网络
通过kubectl exec -it tcpdump1-6b94c59cb4-khtbb – ip a进入到容器中去,查看容器内部网络
root@k8s-new-master:~/jin# kubectl exec -it tcpdump1-6b94c59cb4-khtbb -- ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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 qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
4: eth0@if1694: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1480 qdisc noqueue state UP
link/ether de:9a:ba:1c:2b:60 brd ff:ff:ff:ff:ff:ff
inet 10.244.103.93/32 scope global eth0
valid_lft forever preferred_lft forever
2.node网络
ip a 在node上查看网络可以看到
eth0网卡
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fa:16:3e:55:db:0f brd ff:ff:ff:ff:ff:ff
inet 7.7.250.91/24 brd 7.7.250.255 scope global dynamic eth0
valid_lft 80801sec preferred_lft 80801sec
inet6 fe80::f816:3eff:fe55:db0f/64 scope link
valid_lft forever preferred_lft forever
tunl0网卡
5: tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480