diff --git "a/gso/migrations/versions/2024-10-03_b3cda39379a0_update_g\303\251ant_ip_model.py" "b/gso/migrations/versions/2024-10-03_b3cda39379a0_update_g\303\251ant_ip_model.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4f4cbd6eb54170979a25ec24470943f02e6a6b0a
--- /dev/null
+++ "b/gso/migrations/versions/2024-10-03_b3cda39379a0_update_g\303\251ant_ip_model.py"
@@ -0,0 +1,29 @@
+"""Update GÉANT IP model.
+
+Revision ID: b3cda39379a0
+Revises: 289e5334848f
+Create Date: 2024-10-03 15:47:51.942674
+
+"""
+import sqlalchemy as sa
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision = 'b3cda39379a0'
+down_revision = '289e5334848f'
+branch_labels = None
+depends_on = None
+
+
+def upgrade() -> None:
+    conn = op.get_bind()
+    conn.execute(sa.text("""
+INSERT INTO product_block_relations (in_use_by_id, depends_on_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('NRENAccessPort')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('ServiceBindingPort')))
+    """))
+
+
+def downgrade() -> None:
+    conn = op.get_bind()
+    conn.execute(sa.text("""
+DELETE FROM product_block_relations WHERE product_block_relations.in_use_by_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('NRENAccessPort')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('ServiceBindingPort'))
+    """))
diff --git a/gso/products/product_blocks/geant_ip.py b/gso/products/product_blocks/geant_ip.py
index 2f7bf5fbe4567e68ec1fb884ed02d955a79f04e8..c6f941795a29c2edc3c069db46c405af1ecf57a5 100644
--- a/gso/products/product_blocks/geant_ip.py
+++ b/gso/products/product_blocks/geant_ip.py
@@ -5,6 +5,11 @@ from orchestrator.types import SubscriptionLifecycle
 from pydantic import Field
 
 from gso.products.product_blocks.edge_port import EdgePortBlock, EdgePortBlockInactive, EdgePortBlockProvisioning
+from gso.products.product_blocks.service_binding_port import (
+    ServiceBindingPort,
+    ServiceBindingPortInactive,
+    ServiceBindingPortProvisioning,
+)
 from gso.utils.shared_enums import APType
 
 
@@ -15,6 +20,7 @@ class NRENAccessPortInactive(
 
     nren_ap_type: APType | None = None
     geant_ip_ep: EdgePortBlockInactive
+    geant_ip_sbp: ServiceBindingPortInactive
 
 
 class NRENAccessPortProvisioning(NRENAccessPortInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
@@ -22,6 +28,7 @@ class NRENAccessPortProvisioning(NRENAccessPortInactive, lifecycle=[Subscription
 
     nren_ap_type: APType
     geant_ip_ep: EdgePortBlockProvisioning
+    geant_ip_sbp: ServiceBindingPortProvisioning
 
 
 class NRENAccessPort(NRENAccessPortProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
@@ -29,8 +36,10 @@ class NRENAccessPort(NRENAccessPortProvisioning, lifecycle=[SubscriptionLifecycl
 
     #: The type of Access Port
     nren_ap_type: APType
-    #: The list of Edge Ports where this service terminates.
+    #: The Edge Port where this :term:`NREN` Access Port terminates.
     geant_ip_ep: EdgePortBlock
+    #: The corresponding :term:`SBP` of this Access Port.
+    geant_ip_sbp: ServiceBindingPort
 
 
 class GeantIPBlockInactive(