For those who might be interested, below is working config for Starlink based on Cisco routers (replacing original Starlink router).
Important notice, before you use Cisco as Starlink router.
Make sure you understand backplane capacity and PPS throughput for selected Cisco model and map it to typical Starlink speed (up to 300Mbps down/30Mbps up).
Important notices to evaluate prior going to IPv6 path.
1. Note that even below config contains working IPv6, at this stage none of SunSDR transceivers support IPv6, and according to EE there are no plans to get this functionality on existing HW models.
2. Note that in longer term Starlink will start to support IPv4 public on outbound interfaces, hence IPv6 config will be not needed for SunSDR purposes.
3. Note that if you wish to use existing IPv4 on SunSDR and translate in into outbound public IPv6, you have to look at IOS-XE (minimal v16.X) models (4000-series and up). Fully tested NAT46 config is below.
4. Note important restrictions for NAT46:
- Fragmented packet is not supported.
- Maximum Transmission Unit (MTU) discovery after converting to IPv6 packets is not supported.
- Virtual Routing and Forwarding-aware NAT 46 is not supported
- Both NAT44 (static, dynamic, and PAT) configuration and stateful NAT46 configurations are not supported on the same interface.
5. In common SunSDR remote topology, the outbound interface of the site, where ESDR3 PC is located must use IPv6 public address.
Basic config with IPv4 and IPv6 (works on all IOS 15.X+ models)
C2901#
ip cef
ipv6 unicast-routing
ipv6 dhcp pool V6DHCP
prefix-delegation pool V6DHCP-ipv6
dns-server 2001:4860:4860::8888
dns-server 2001:4860:4860::8844
!
ipv6 inspect name traffic ftp
ipv6 inspect name traffic udp
ipv6 inspect name traffic icmp
ipv6 cef
ipv6 cef accounting per-prefix
!
!
interface GigabitEthernet0/0
description FW_OUTSIDE_ZONE / to Starlink dish
ip address dhcp
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
no cdp enable
ipv6 address dhcp
ipv6 address autoconfig default
ipv6 enable
ipv6 nd autoconfig default-route
ipv6 dhcp client pd hint ::/60
ipv6 dhcp client pd V6DHCP-ipv6
ipv6 verify unicast reverse-path
ipv6 traffic-filter wan-in in
ipv6 traffic-filter wan-out out
!
interface GigabitEthernet0/1
description SunSDR
ip address 192.168.16.200 255.255.225.0
nat64 enable
interface GigabitEthernet0/0/0
description FW_INSIDE_ZONE / via 3750G port GE1/0/25
ip address 10.X.X.99 255.255.0.0
ip nat inside
ip virtual-reassembly in
negotiation auto
!
ip forward-protocol nd
!
no ip http server
no ip http secure-server
!
ip nat inside source list ACL-SpaceX interface GigabitEthernet0/0 overload
ip route 192.168.100.1 255.255.255.255 GigabitEthernet0/0
!
ip access-list extended ACL-SpaceX
deny ip host 10.X.X.X any
permit ip host 10.X.X.Y any
permit ip 10.X.X.0 0.0.0.255 any
!
ipv6 access-list wan-in
permit icmp any any
permit udp any any eq 546
permit tcp any any established
sequence 100 deny ipv6 any any
!
ipv6 access-list wan-out
permit icmp any any
permit tcp any any
permit udp any any
sequence 100 deny ipv6 any any
!
C2901#
Verifying
C2901#sh ip int bri
Interface IP-Address OK? Method Status Protocol
Embedded-Service-Engine0/0 unassigned YES NVRAM administratively down down
GigabitEthernet0/0 100.80.1.216 YES DHCP up up
GigabitEthernet0/1 unassigned YES NVRAM administratively down down
GigabitEthernet0/0/0 10.X.X.Z YES NVRAM up up
NVI0 100.80.1.216 YES unset up up
C2901#sh ipv6 in
Feb 13 06:18:47.073: IPv6 DHCP: Sending REQUEST to FF02::1:2 on GigabitEthernet0/0t br
Em0/0 [administratively down/down]
unassigned
GigabitEthernet0/0 [up/up]
FE80::76A2:E6FF:FE95:E9A8
2406:2D40:501:FE7A:76A2:E6FF:FE95:E9A8
GigabitEthernet0/1 [administratively down/down]
unassigned
GigabitEthernet0/0/0 [up/up]
unassigned
Loopback0 [up/up]
unassigned
NVI0 [up/up]
unassigned
C2901#
Extended config with NAT 46 (Translates IPv4 address of SunSDR to IPv6 public IP; work on all IOS XE Gibraltar 16.10.x models and above)
C4331-01#
ip cef
ipv6 unicast-routing
ipv6 dhcp pool V6DHCP
prefix-delegation pool V6DHCP-ipv6
dns-server 2001:4860:4860::8888
dns-server 2001:4860:4860::8844
!
ipv6 inspect name traffic ftp
ipv6 inspect name traffic udp
ipv6 inspect name traffic icmp
ipv6 cef
ipv6 cef accounting per-prefix
!
!
interface GigabitEthernet0/0/0
description FW_OUTSIDE_ZONE / to Starlink dish
ip address dhcp
ip virtual-reassembly in
duplex auto
speed auto
no cdp enable
ipv6 address dhcp
ipv6 address autoconfig default
ipv6 enable
ipv6 nd autoconfig default-route
ipv6 dhcp client pd hint ::/60
ipv6 dhcp client pd V6DHCP-ipv6
ipv6 verify unicast reverse-path
ipv6 traffic-filter wan-in in
ipv6 traffic-filter wan-out out
nat64 enable
nat64 settings nat46 enable
nat46 v6 prefix 2001::/96
nat46 v4 nat46_pool 192.168.116.1 192.168.116.199
!
interface GigabitEthernet0/0/1
description to SunSDR
ip address 192.168.16.201 255.255.225.0
nat64 enable
ipv6 access-list wan-in
permit icmp any any
permit udp any any eq 546
permit tcp any any established
sequence 100 deny ipv6 any any
!
ipv6 access-list wan-out
permit icmp any any
permit tcp any any
permit udp any any
sequence 100 deny ipv6 any any
!
C4331-01#
Verifying:
C4331-01# sh nat64 stat
NAT64 Statistics
Total active translations: 5 (4 static, 0 dynamic; 1 extended)
Sessions found: 2
Sessions created: 1
Expired translations: 12
Global Stats:
Packets translated (IPv4 -> IPv6)
Stateless: 240
Stateful: 1370
MAP-T: 0
NAT46: 41
Packets translated (IPv6 -> IPv4)
Stateless: 4800
Stateful: 22275
MAP-T: 0
NAT46: 67
P.S. I am also will be testing working NAT / NAT64 config for
Faucet. The results and specific SUnSDR-related config instructions will be posted here once ready.