A service packet forwarding method, applied to a first service function forwarder, SFF, for a communications network, wherein the first SFF is any SFF connected to one or more first virtual resource modules, the communications network further comprises one or more second SFFs, and each second SFF is connected to one or more second virtual resource modules, or each second SFF is connected to one or more second virtual resource modules, and the first SFF is also connected to one or more second virtual resource modules; the first virtual resource module is a virtual resource module for implementing a first service function, and the second virtual resource module is a virtual resource module for implementing a second service function; and the method comprises: receiving, by the first SFF, a packet sent by one first virtual resource module connected to the first SFF; determining, by the first SFF, the second service function based on the packet; wherein the packet carries a field used to indicate a currently to-be-processed Segment Identifier, SID, which indicates a service function; wherein the first SFF is configured to store a correspondence between each service function and the SID; obtaining, by the first SFF, configuration information of the second virtual resource module for implementing the second service function; wherein the configuration information of the second virtual resource module comprises an identifier and a weight of each second virtual resource module connected to the first SFF, an identifier of each of the one or more second SFFs, and a weight of a second virtual resource module connected to each second SFF; and forwarding, by the first SFF based on the configuration information of the second virtual resource module, the packet to one second virtual resource module connected to the first SFF or one of the one or more second SFFs; wherein the forwarding, by the first SFF based on the configuration information of the second virtual resource module, the packet to one second virtual resource module connected to the first SFF or one of the one or more second SFFs comprises: forwarding, by the first SFF based on the identifier and the weight of each second virtual resource module connected to the first SFF, the identifier of each of the one or more second SFFs, and the weight of the second resource module connected to each second SFF, the packet to the one second virtual resource module connected to the first SFF or the one of the one or more second SFFs. receiving, by the first SFF, a packet sent by one first virtual resource module connected to the first SFF; determining, by the first SFF, the second service function based on the packet; wherein the packet carries a field used to indicate a currently to-be-processed Segment Identifier, SID, which indicates a service function; wherein the first SFF is configured to store a correspondence between each service function and the SID; obtaining, by the first SFF, configuration information of the second virtual resource module for implementing the second service function; wherein the configuration information of the second virtual resource module comprises an identifier and a weight of each second virtual resource module connected to the first SFF, an identifier of each of the one or more second SFFs, and a weight of a second virtual resource module connected to each second SFF; and forwarding, by the first SFF based on the configuration information of the second virtual resource module, the packet to one second virtual resource module connected to the first SFF or one of the one or more second SFFs; wherein the forwarding, by the first SFF based on the configuration information of the second virtual resource module, the packet to one second virtual resource module connected to the first SFF or one of the one or more second SFFs comprises: forwarding, by the first SFF based on the identifier and the weight of each second virtual resource module connected to the first SFF, the identifier of each of the one or more second SFFs, and the weight of the second resource module connected to each second SFF, the packet to the one second virtual resource module connected to the first SFF or the one of the one or more second SFFs.