第三课 k8s网络基础学习-ARP和NAT
tags:
- k8s网络
- eNSP
- Proxy ARP
- DNAT
- SNAT
第一节 ARP介绍实验
- 地址解析协议ARP (Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议。
- 场景:当主机或者三层网络设备有数据包发给另外一台主机或者三层网络设备,需要知道对方的网络地址,只知道ip显然是不够的。怎么既获取ip的同时又能够获取对端网络的mac地址呢?这就需要我们的ARP协议。
- eNSP实验。
# eNSP路由器上看arp
dis arp
system-view
# 给eNSP路由器分别配置两个地址 int 是interface的简写
int G0/0/0
ip a 192.168.1.1 24
dis this
# dis int G0/0/0 看接口的一些信息
int G0/0/1
ip a 192.168.2.1 24
dis this
dis ip int b
# 右键抓包
arp -a # 看arp缓存
ping 192.168.2.2
# 我们发现mac地址是192.168.1.1 而不是192.168.2.2
# 路由器的每一个接口都是一个广播域 接口举例:G0/0/0
# arp的广播 对于pc1而言出去的数据包都要发给网关192.168.1.1 当192.168.1.2发给192.168.1.1它的arp请求就会限制在这个广播域中 不会通告给别的广播域的
# 数据包先从192.168.1.2发给路由器的接口, 然后路由器再去路由表一个个问。
arp -a
# 源ip 目的ip每次arp转发都没变 但是请求中源mac和目的mac每次转发都会变
第二节 代理(Proxy) ARP使用
- 企业内部进行子网划分时,可能会出现两个子网网络属于同一网段,但是却不属于同一物理网络的情况,两个子网网络间被路由器分隔。这时可以通过修改网络内主机的路由信息,使发往其它子网的数据先发送到连接不同子网的网关设备上,再由网关设备转发此数据报文。但是这种解决方案需要配置子网中所有主机的路由,并不便于管理和维护。(下图两个host在同一网段因为16位)
- 在网关上部署路由式Proxy ARP功能,可以有效解决子网划分带来的管理和维护方面的问题。路由式Proxy ARP的功能可以使IP地址属于同一网段却不属于同一物理网络的主机间能够相互通信,并且主机上不需要配置缺省网关,便于管理和维护。
- 路由式Proxy ARP组网如图所示。Router通过接口IF1和IF2连接两个子网网络,接口IF1和接口IF2的IP地址不在同一个网段。子网1内的主机Host_1与接口IF1的IP地址在同一网段,子网2内的主机Host_2与接口IF2的IP地址在同一网段,子网1内的主机Host_1与子网2内的主机Host_2的IP地址也在同一网段。主机Host_1和Host_2上未配置缺省网关。在Router上配置路由式Proxy ARP可以使子网1和子网2内主机间能够相互通信。
- eNSP上图实验。
# AR1 查看一下配置 配置很简单就是在接口上配置一下ip和开启prox arp就可以
dis current-configuration
# 测试上面是否能通信host1
arp -d # 清楚一下arp
ping 192.168.2.1
arp -a
# AR1上查看接口 发现上面arp中的mac地址就是这个接口的
dis int g0/0/0
- liunx的两台主机之间实现arp的实验如下所示。
# 第一台主机192.168.44.128上 eth0相当于ns0的网卡
ip link add veth0 type veth peer name eth0
ip netns add ns0
ip link set eth0 netns ns0
ip netns exec ns0 ip a add 10.1.1.10/24 dev eth0
ip netns exec ns0 ip link set eth0 up
ip netns exec ns0 ifconfig # 查看ns0中的eth0的配置
# 这里为了和calico相似 我们手动添加和calico配置一样的路由169.254.1.1
ip netns exec ns0 ip route add 169.254.1.1 dev eth0 scope link # 不给掩码就是32位的 scope link路由在同一的链路上才生效 就是一个二层
ip netns