Unicast Reverse Path Forwarding (RPF) działa w trzech różnych trybach i może potencjalnie pomóc w zmniejszeniu wektora ataku routera, szczególnie ze sfałszowanych adresów IP.
tryb ścisły
(config-if)#ip verify unicast source reachable-via rx
W trybie ścisłym router sprawdza i sprawdza źródłowy adres IP pakietu przychodzącego na podstawie tabeli FIB (Forwarding Information Base) pod kątem pasującej trasy. Jeśli trasa do tego źródłowego adresu IP jest osiągalna przez interfejs, na którym został odebrany , pakiet zostanie odebrany. Domyślnie trasa domyślna nie jest rozważana w trybie ścisłym (jak skonfigurowano powyżej).
Opcje trybu ścisłego:
Po skonfigurowaniu trybu ścisłego Unicast RPF na danym interfejsie router nie może już pingować się na tym interfejsie:
#sh ip int bri | ex unas|Int
FastEthernet0/0 11.0.11.1
#ping 11.0.11.1
.....
Success rate is 0 percent (0/5)
Weryfikacja porzuconych pakietów URPF:
#show ip int fa0/0 | i ^ [1-9]+ verification drops
5 verification drops
#show ip traffic | i unicast
0 no route, 5 unicast RPF, 0 forced drop
To zachowanie można zmienić, dodając allow-self-ping
składnię:
(config-if)#ip verify unicast source reachable-via rx allow-self-ping
Dodatkowo, jak wspomniano w pytaniu, tryb ścisły może umożliwić sprawdzanie źródłowych adresów IP pakietu względem domyślnej trasy. Jest to możliwe dzięki składni allow-default
:
W trybie ścisłym dodanie samej składni allow-default
zapobiegnie tylko odebraniu przychodzącego źródłowego adresu IP pakietu, który ma trasę przez inny interfejs niż odebrany. Zakłada się, że na routerze nie ma skonfigurowanych list dostępu ani tras zerowych. Wszystkie adresowalne adresy źródłowe, które są osiągalne przez interfejs, który otrzymują, będą albo pasować do określonych tras, albo do trasy domyślnej.
Jeśli jednak zastosujesz trasy zerowe, najbardziej konkretna trasa zostanie oceniona jako pierwsza, zanim kontrola URPF przejdzie do trasy domyślnej i będzie działać jako czarna lista (listy) dla znanych złośliwych zakresów adresów IP.
Przykład - cały ruch pochodzący z 3.0.0.0/8 zostanie odrzucony przez kontrolę URPF:
(config-if)#ip verify unicast source reachable-via rx allow-default
(config)#ip route 3.0.0.0 255.0.0.0 null 0
Bad-Source-RTR#ping 11.0.11.1 so l1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.0.11.1, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
.....
Success rate is 0 percent (0/5)
Ponadto można określić listę kontroli dostępu (ACL) zamiast dodawać allow-default
składnię w celu uzyskania uporządkowanej listy dozwolonych i odrzuconych adresów. Adresy, które są osiągalne poza interfejsem, na którym zostały odebrane i które są dopasowane do zdefiniowanej listy ACL, są odpowiednio usuwane lub dozwolone.
!
access-list 23 permit 3.0.0.0 0.255.255.255
access-list 23 deny 4.0.0.0 0.255.255.255 log
access-list 23 permit any
!
(config)#int fa0/0
(config-if)#ip verify unicast source reachable-via rx 23
Na koniec możesz określić listę ACL za pomocą allow-default
składni, ale nie przyniesie to żadnego efektu. Pakiety nie będą sprawdzane pod kątem list ACL określonych za pomocą allow-default
opcji.
#ip verify unicast source reachable-via rx allow-default ?
<1-199> A standard IP access list number
<1300-2699> A standard IP expanded access list number
Loose Mode
R1(config-if)#ip verify unicast source reachable-via any
W trybie swobodnym router sprawdza źródłowy adres IP pakietu przychodzącego i porównuje go z tabelą FIB pod kątem pasującej trasy. Jeśli droga do tego źródłowego adresu IP jest osiągalna, pakiet może zostać odebrany, niezależnie od interfejsu, na którym został odebrany. Domyślnie trasa domyślna nie jest uwzględniana w trybie swobodnym (jak skonfigurowano powyżej).
Tryb luźny i tryb ścisły mają podobne opcje konfiguracji; Główne różnice to zastosowana składnia ( any
vs. rx
) i to, czy źródłowy adres IP pakietu przychodzącego jest osiągalny poprzez interfejs, na którym został odebrany.
(config-if)#ip verify unicast source reachable-via any ?
<1-199> A standard IP access list number
<1300-2699> A standard IP expanded access list number
allow-default Allow default route to match when checking source address
allow-self-ping Allow router to ping itself (opens vulnerability in
verification)
Tryb VRF
Tryb VRF może wykorzystywać tryb luźny lub ścisły w danym VRF i ocenia źródłowy adres IP pakietu przychodzącego na podstawie tabeli VRF skonfigurowanej dla sąsiada eBGP.
Odniesienia:
biała księga Cisco URPF
Zrozumienie przewodnika konfiguracji URPF Unicast Reverse Path Forwarding