使用的系统
我们使用两台主机
第一台主机
主机名为freebsd,IP地址为192.168.0.22
➜ ~ uname -a
FreeBSD freebsd 14.1-RELEASE-p7 FreeBSD 14.1-RELEASE-p7 GENERIC amd64
➜ ~ hostname
freebsd
➜ ~ ifconfig
vmx0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=4e403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether 00:0c:29:a1:dc:4d
inet 192.168.0.22 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
vmx1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=4e403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether 00:0c:29:a1:dc:57
inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
第二台主机
主机名为freebsd_node2,IP地址为192.168.0.18
root@freebsd_node2:~ # uname -a
FreeBSD freebsd_node2 14.3-RELEASE FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC amd64
root@freebsd_node2:~ # hostname
freebsd_node2
root@freebsd_node2:~ # ifconfig
vmx0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=4e403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether 00:0c:29:fe:34:6c
inet 192.168.0.18 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
vmx1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=4e403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether 00:0c:29:fe:34:76
inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
创建网卡
在第一台主机上操作如下
创建隧道
➜ ~ ifconfig gif0 create
➜ ~ ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> metric 0 mtu 1280
options=80000<LINKSTATE>
groups: gif
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
# 创建一个隧道,本端192.168.0.22,对端192.168.0.18
➜ ~ ifconfig gif0 tunnel 192.168.0.22 192.168.0.18
# 在隧道之下建立一个私有网络,本端10.1.1.1,对端10.1.1.2
➜ ~ ifconfig gif0 10.1.1.1 10.1.1.2
查看下gif0接口信息
➜ ~ ifconfig gif0
gif0: flags=1008051<UP,POINTOPOINT,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 1280
options=80000<LINKSTATE>
tunnel inet 192.168.0.22 --> 192.168.0.18
inet 10.1.1.1 --> 10.1.1.2 netmask 0xff000000
groups: gif
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
在第二台主机下进行如下操作
root@freebsd_node2:~ # ifconfig gif0 create
root@freebsd_node2:~ # ifconfig gif0 tunnel 192.168.0.18 192.168.0.22
root@freebsd_node2:~ # ifconfig gif0 10.1.1.2 10.1.1.1
查看下gif0接口信息
root@freebsd_node2:~ # ifconfig gif0
gif0: flags=1008051<UP,POINTOPOINT,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 1280
options=80000<LINKSTATE>
tunnel inet 192.168.0.18 --> 192.168.0.22
inet 10.1.1.2 --> 10.1.1.1 netmask 0xff000000
groups: gif
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
测试
在第一台主机上ping第二台主机
➜ ~ ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2): 56 data bytes
64 bytes from 10.1.1.2: icmp_seq=0 ttl=64 time=4.442 ms
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=3.295 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.671 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=0.617 ms
64 bytes from 10.1.1.2: icmp_seq=4 ttl=64 time=0.469 ms
64 bytes from 10.1.1.2: icmp_seq=5 ttl=64 time=0.519 ms
^C
--- 10.1.1.2 ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.469/1.669/4.442/1.591 ms
在第二台主机上ping第一台主机
root@freebsd_node2:~ # ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1): 56 data bytes
64 bytes from 10.1.1.1: icmp_seq=0 ttl=64 time=2.654 ms
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.716 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.600 ms
64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=2.459 ms
64 bytes from 10.1.1.1: icmp_seq=4 ttl=64 time=0.699 ms
64 bytes from 10.1.1.1: icmp_seq=5 ttl=64 time=0.627 ms
^C
--- 10.1.1.1 ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.600/1.292/2.654/0.896 ms