每个机器有一个网络接口interface,用于网络通讯。IP地址有2个,一个是真实的IP地址,一个是WireGuard隧道内的逻辑地址Source IP。有一个秘钥路由表cryptokey routing table。秘钥路由表保存了本地网络接口的公钥和私钥。其他机器peer的公钥和逻辑地址范围。
WireGuard的数据转发机制是秘钥路由机制。数据通过接口向外发送时,要检查数据包的目标逻辑地址,使用对应的peer的公钥加密。接口接收到加密数据时,使用peer的公钥解密后,要检查数据包的逻辑地址是否符合对应的逻辑地址范围,如果不符合要丢弃。