Unicast RPF บนขอบ


10

Unicast RPF ควรจะป้องกันไม่ให้แหล่งที่อยู่ที่แตกต่างจากสิ่งที่พวกเขาควรจะได้รับอนุญาต ในขณะที่อ่านเอกสารของ Cisco สำหรับ URPF ฉันสังเกตเห็นว่ามีตัวเลือกที่อนุญาตให้ใช้ในอินเทอร์เฟซอัปลิงค์โดยปล่อยให้มันไปตามตารางเส้นทาง

คำถามของฉันคือถ้าเป็นไปตามเส้นทางเริ่มต้นจะไม่อนุญาตให้ใช้แหล่งที่อยู่ทั้งหมดหรือไม่ URPF จะได้ประโยชน์อะไรบ้าง ณ จุดนั้น?

ฉันแน่ใจว่าฉันพลาดบางสิ่งบางอย่างดังนั้นฉันจึงชอบจุดหนึ่งในทิศทางที่ถูกต้อง

คำตอบ:


15

ฟังก์ชัน Unicast Reverse Path Forwarding (RPF) ในโหมดที่แตกต่างกันสามโหมดและอาจช่วยลดเวกเตอร์การโจมตีของเราเตอร์โดยเฉพาะจากที่อยู่ IP ปลอมแปลง

โหมดเข้มงวด

(config-if)#ip verify unicast source reachable-via rx

ในโหมดเข้มงวดเราเตอร์จะตรวจสอบและตรวจสอบที่อยู่ IP ต้นทางของแพ็คเก็ตขาเข้าเทียบกับตาราง Forwarding Information Base (FIB) สำหรับเส้นทางที่ตรงกัน หากเส้นทางไปยังที่อยู่ IP ต้นทางนั้นสามารถเข้าถึงได้ผ่านทางอินเตอร์เฟสที่ได้รับบนแพ็คเก็ตจะได้รับ โดยค่าเริ่มต้นเส้นทางเริ่มต้นจะไม่ได้รับการพิจารณาในโหมดเข้มงวด (ตามที่กำหนดไว้ข้างต้น)

ตัวเลือกโหมดเข้มงวด:

ตามการกำหนดค่าของโหมดเข้มงวด Unicast RPF บนอินเทอร์เฟซที่กำหนดเราเตอร์ไม่สามารถ ping ตัวเองบนอินเทอร์เฟซนั้นอีกต่อไป:

#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)

การตรวจสอบ 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

พฤติกรรมนี้สามารถเปลี่ยนแปลงได้โดยการเพิ่มallow-self-pingไวยากรณ์:

(config-if)#ip verify unicast source reachable-via rx allow-self-ping

นอกจากนี้ตามที่กล่าวถึงในคำถามของคุณโหมดเข้มงวดสามารถอนุญาตให้ตรวจสอบที่อยู่ IP ต้นทางของแพ็คเก็ตขาเข้ากับเส้นทางเริ่มต้นได้ สิ่งนี้เปิดใช้งานโดยไวยากรณ์allow-default:

ในโหมดเข้มงวดการเพิ่มไวยากรณ์allow-defaultด้วยตัวเองจะป้องกันการรับจากที่อยู่ IP ของแพ็คเก็ตขาเข้าที่มีเส้นทางออกผ่านอินเตอร์เฟสที่แตกต่างจากที่ได้รับ นี่คือสมมติว่าไม่มีการเข้าถึงรายการหรือเส้นทางโมฆะที่กำหนดค่าบนเราเตอร์ ที่อยู่ที่สามารถกำหนดเส้นทางได้ทั้งหมดซึ่งเข้าถึงได้จากอินเทอร์เฟซที่ได้รับจะตรงกับเส้นทางที่เฉพาะเจาะจงหรือเส้นทางเริ่มต้น

อย่างไรก็ตามหากคุณต้องใช้เส้นทางที่เป็นโมฆะเส้นทางที่เฉพาะเจาะจงที่สุดจะได้รับการประเมินก่อนที่การตรวจสอบ URPF จะไปที่เส้นทางเริ่มต้นและจะทำหน้าที่เป็นบัญชีดำสำหรับช่วง IP ที่เป็นอันตรายที่ทราบ

ตัวอย่าง -การรับส่งข้อมูลทั้งหมดที่มาจาก 3.0.0.0/8 จะถูกทิ้งโดยการตรวจสอบ 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)

นอกจากนี้คุณสามารถระบุ Access-Control List (ACL) แทนการเพิ่มallow-defaultไวยากรณ์เพื่อให้ได้รายการที่มีโครงสร้างของที่อยู่ที่อนุญาตและปฏิเสธ ที่อยู่ที่สามารถเข้าถึงได้จากส่วนต่อประสานที่ได้รับมาและถูกจับคู่ใน ACL ที่กำหนดจะถูกปล่อยหรืออนุญาตตามนั้น

!
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

สุดท้ายคุณสามารถระบุ ACL ด้วยallow-defaultไวยากรณ์ แต่จะไม่มีผลใด ๆ แพ็กเก็ตจะไม่ถูกตรวจสอบกับ ACL ที่ระบุด้วยallow-defaultตัวเลือก

#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

โหมดหลวม

R1(config-if)#ip verify unicast source reachable-via any

ในโหมดหลวมเราเตอร์จะตรวจสอบที่อยู่ IP ต้นทางของแพ็คเก็ตขาเข้าและตรวจสอบกับตาราง FIB สำหรับเส้นทางที่ตรงกัน หากเส้นทางไปยังที่อยู่ IP ต้นทางนั้นสามารถเข้าถึงได้แพ็กเก็ตสามารถรับได้โดยไม่คำนึงถึงอินเตอร์เฟสที่ได้รับ โดยค่าเริ่มต้นเส้นทางเริ่มต้นจะไม่ได้รับการพิจารณาในโหมดหลวม (ตามที่กำหนดไว้ด้านบน)

โหมดหลวมและโหมดเข้มงวดมีตัวเลือกการกำหนดค่าที่คล้ายกัน ความแตกต่างที่สำคัญคือไวยากรณ์ที่ใช้ ( anyเทียบกับrx) และที่อยู่ IP ต้นทางของแพ็กเก็ตขาเข้านั้นสามารถเข้าถึงได้ผ่านทางอินเตอร์เฟสที่ได้รับมาหรือไม่

(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)

โหมด VRF

โหมด VRF สามารถใช้ประโยชน์จากโหมดหลวมหรือโหมดเข้มงวดใน VRF ที่กำหนดและจะประเมินที่อยู่ IP ต้นทางของแพ็คเก็ตขาเข้าเทียบกับตาราง VRF ที่กำหนดค่าสำหรับเพื่อนบ้าน eBGP


เอกสารอ้างอิง: เอกสารทางเทคนิค
Cisco URPF การ
ทำความเข้าใจ Unicast Reverse Path Forwarding
URPF คู่มือการกำหนดค่า


สิ่งที่เกี่ยวกับการใช้งานจริง? มันทำให้รู้สึกถึงความแตกต่างในการอัปลิงค์ของคุณหรือไม่?
codey

3
@codey ฉันจะไม่เรียกใช้ uRPF ที่อัปลิงค์เท่านั้นที่ลูกค้าเผชิญกับอินเตอร์เฟส one.time, +1, ทำงานได้ดี, คำตอบที่มั่นคง, ฉันอยากจะชี้ให้เห็นว่าเส้นทางคงที่ไปที่ null0 ในบางแพลตฟอร์มที่ไม่ใช่ของซิสโก้จะไม่ทำให้โหมด 'หลวม' ล้มเหลว บางทีแทนที่จะ 'ตอบกลับ' คุณควรใช้ 'รับ' เช่นแพ็คเก็ตที่ล้มเหลวจะไม่ได้รับ RPF ควรเปลี่ยน 'เทียบกับตารางเส้นทาง' (RIB) เป็น 'เทียบกับตารางการส่งต่อ' (FIB) เนื่องจากมีรสชาติของ uRPF เรียกว่า 'เป็นไปได้หลวม / เข้มงวด' ซึ่งตรวจสอบกับ RIB (ซิสโก้ไม่รองรับพวกเขาจึงตรวจสอบกับ FIB เท่านั้น)
ytti

@ytti เมื่อฉันดูเอกสารของ Cisco มันก็พูดกับตารางเส้นทาง ฉันไม่ได้พูดว่าถูกต้อง แต่แปลกที่พวกเขาจะพูดว่าถ้ามันเป็นแค่ FIB
codey

ลองนึกภาพกรณีที่ลูกค้าประกาศคำนำหน้า BGP 192.0.2.0/24 คุณยังมีเส้นทางแบบคงที่สำหรับการชี้ไปที่หลัก หากอินเทอร์เฟซลูกค้ามี uRPF / เข้มงวดคุณจะปล่อยแพ็คเก็ตจากลูกค้าที่มีแหล่งที่อยู่ 192.0.2.42 แม้ว่าใน RIB (ตารางเส้นทาง) รายการนี้มีอยู่มันไม่ได้ / ดีที่สุด / เข้าและจากนั้นไม่ได้อยู่ใน FIB อย่างไรก็ตามหากคุณเรียกใช้ 'uRPF / เข้มงวดเป็นไปได้' แพ็คเก็ตจะไม่ลดลง (JunOS สนับสนุนเป็นไปได้ดังนั้นเอกสารจะให้ข้อมูลเพิ่มเติม)
ytti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.