GRE简单模拟
操作步骤
host1,host2都需要操作
1,加载ip_gre模块
2,创建点对点的tunnel链路
3,创建tunnel peer ,并启动
4,ping 包,使用tcpdump抓包
扩展
host1,host2后面连接有对应的局域网络,如果需要通讯,需要增加一下步骤
1,开启ip_forward
2,新增路由到对端的网络使用dev tunnel
网络拓扑图

host1,host2都需要操作
1,加载ip_gre模块
[root@k8s-node1 ~]# modprobe ip_gre
[root@k8s-node1 ~]# lsmod |grep ip_gre
ip_gre 22749 0
ip_tunnel 25163 1 ip_gre
gre 13144 1 ip_gre
2,创建点对点的tunnel链路;3,创建tunnel peer ,并启动
host1:
[root@k8s-node1 ~]# ip tunnel add tunnel0 mode gre remote 192.168.0.62 local 192.168.0.61 dev ens33
[root@k8s-node1 ~]# ip address add 172.16.1.1 dev tunnel0 peer 172.16.1.2/32
[root@k8s-node1 ~]# ip link set tunnel0 up
[root@k8s-node1 ~]# 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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:46:24:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.0.61/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe46:24dd/64 scope link
valid_lft forever preferred_lft forever
3: gre0@NONE: mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: tunnel0@ens33: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN group default qlen 1000
link/gre 192.168.0.61 peer 192.168.0.62
inet 172.16.1.1 peer 172.16.1.2/32 scope global tunnel0
valid_lft forever preferred_lft forever
inet6 fe80::5efe:c0a8:3d/64 scope link
valid_lft forever preferred_lft forever
host2:
[root@k8s-node2 ~]# ip tunnel add tunnel0 mode gre remote 192.168.0.61 local 192.168.0.62 dev ens33
[root@k8s-node2 ~]# ip address add 172.16.1.2 dev tunnel0 peer 172.16.1.1/32
[root@k8s-node2 ~]# ip link set dev tunnel0 up
[root@k8s-node2 ~]# 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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:12:0b:7f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.62/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe12:b7f/64 scope link
valid_lft forever preferred_lft forever
3: gre0@NONE: mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: tunnel0@ens33: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN group default qlen 1000
link/gre 192.168.0.62 peer 192.168.0.61
inet 172.16.1.2 peer 172.16.1.1/32 scope global tunnel0
valid_lft forever preferred_lft forever
inet6 fe80::5efe:c0a8:3e/64 scope link
valid_lft forever preferred_lft forever
4,ping 包,使用tcpdump抓包
host1:ping -c 5 172.16.1.2
host2:
[root@k8s-node2 ~]# tcpdump -n -i ens33 proto 47
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:04:16.587132 IP 192.168.0.61 > 192.168.0.62: GREv0, length 88: IP 172.16.1.1 > 172.16.1.2: ICMP echo request, id 1534, seq 1, length 64
22:04:16.587203 IP 192.168.0.62 > 192.168.0.61: GREv0, length 88: IP 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 1534, seq 1, length 64
22:04:17.589693 IP 192.168.0.61 > 192.168.0.62: GREv0, length 88: IP 172.16.1.1 > 172.16.1.2: ICMP echo request, id 1534, seq 2, length 64
22:04:17.589749 IP 192.168.0.62 > 192.168.0.61: GREv0, length 88: IP 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 1534, seq 2, length 64
22:04:18.592828 IP 192.168.0.61 > 192.168.0.62: GREv0, length 88: IP 172.16.1.1 > 172.16.1.2: ICMP echo request, id 1534, seq 3, length 64
22:04:18.593190 IP 192.168.0.62 > 192.168.0.61: GREv0, length 88: IP 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 1534, seq 3, length 64
22:04:19.596205 IP 192.168.0.61 > 192.168.0.62: GREv0, length 88: IP 172.16.1.1 > 172.16.1.2: ICMP echo request, id 1534, seq 4, length 64
22:04:19.596351 IP 192.168.0.62 > 192.168.0.61: GREv0, length 88: IP 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 1534, seq 4, length 64
22:04:20.599911 IP 192.168.0.61 > 192.168.0.62: GREv0, length 88: IP 172.16.1.1 > 172.16.1.2: ICMP echo request, id 1534, seq 5, length 64
22:04:20.600062 IP 192.168.0.62 > 192.168.0.61: GREv0, length 88: IP 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 1534, seq 5, length 64
扩展
host1,host2后面连接有对应的局域网络,如果需要通讯,需要增加一下步骤
1,开启ip_forward
2,新增路由到对端的网络使用dev tunnel
