linux网络基础

同pod间的容器通讯

pod内容器共享同一网络名称空间,因此同一pod间的容器通过lo网卡直接通讯

同主机容器的网络通讯

docker(默认docker0)和flannel(cni0) 中使用二层网桥进行通讯
1. 创建网络名称空间
ip netns add n1
ip netns add n2
2. 创建veth-peer
ip link add veth1 type veth peer name veth2
ip link add veth3 type veth peer name veth4
3.
ip link set veth1 name eth0 netns n1
ip link set veth3 name eth0 netns n2
4.
ip netns exec n1 ip address add 172.168.100.1/24 dev eth0
ip netns exec n2 ip address add 172.168.100.2/24 dev eth0
ip netns exec n1 ip link set up dev eth0
ip netns exec n2 ip link set up dev eth0
ip netns exec n1 ip link set up dev lo
ip netns exec n2 ip link set up dev lo
5. 创建网桥
ip link add br0 type bridge
ip address add 172.168.100.3/24 dev br0
ip link set veth2 master br0
ip link set veth4 master br0
ip link set veth2 up
ip link set veth4 up
ip link set br0 up
6. ping
ip netns exec n1 ping 172.168.100.2

不同主机间的网络通讯

多数cni插件都为了实现不同主机pod通讯。
1.host-gw
2.vxlan
3.ipip
4.bgp
5.ipvlan
6.macvlan
7.sr-iov

host-gw

主机 eth0 br0
host1 10.4.7.250/24 172.168.99.3
host2 10.4.7.252/24 172.168.100.3

host1上执行

#1. 创建网络名称空间
ip netns add n1
ip netns add n2
#2. 创建veth-peer
ip link add veth1 type veth peer name veth2
ip link add veth3 type veth peer name veth4
#3.
ip link set veth1 name eth0 netns n1
ip link set veth3 name eth0 netns n2
#4.
ip netns exec n1 ip address add 172.168.99.1/24 dev eth0
ip netns exec n2 ip address add 172.168.99.2/24 dev eth0
ip netns exec n1 ip link set up dev eth0
ip netns exec n2 ip link set up dev eth0
ip netns exec n1 ip link set up dev lo
ip netns exec n2 ip link set up dev lo
#5. 创建网桥
ip link add br0 type bridge
ip address add 172.168.99.3/24 dev br0
ip link set veth2 master br0
ip link set veth4 master br0
ip link set veth2 up
ip link set veth4 up
ip link set br0 up
#6. ping
ip netns exec n1 ping 172.168.99.2
ip netns exec n1 ip route add 172.168.100.0/24 via 172.168.99.3
ip netns exec n2 ip route add 172.168.100.0/24 via 172.168.99.3
ip route add 172.168.100.0/24 via 10.4.7.252 dev eth0
ip netns exec n1 ping 172.168.100.1
ip netns exec n1 ping 172.168.100.2
ip netns exec n1 ping 172.168.100.3

主机2上执行

1. 创建网络名称空间
ip netns add n1
ip netns add n2
2. 创建veth-peer
ip link add veth1 type veth peer name veth2
ip link add veth3 type veth peer name veth4
3.
ip link set veth1 name eth0 netns n1
ip link set veth3 name eth0 netns n2
4.
ip netns exec n1 ip address add 172.168.100.1/24 dev eth0
ip netns exec n2 ip address add 172.168.100.2/24 dev eth0
ip netns exec n1 ip link set up dev eth0
ip netns exec n2 ip link set up dev eth0
ip netns exec n1 ip link set up dev lo
ip netns exec n2 ip link set up dev lo
5. 创建网桥
ip link add br0 type bridge
ip address add 172.168.100.3/24 dev br0
ip link set veth2 master br0
ip link set veth4 master br0
ip link set veth2 up
ip link set veth4 up
ip link set br0 up
6. ping
ip netns exec n1 ping 172.168.100.2
ip netns exec n1 ip route add 172.168.99.0/24 via 172.168.100.3
ip netns exec n2 ip route add 172.168.99.0/24 via 172.168.100.3
ip route add 172.168.99.0/24 via 10.4.7.250
posted @   mingtian是吧  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
历史上的今天:
2021-04-26 简历
点击右上角即可分享
微信分享提示