æ»æå±¥æŽ
æŽå²çã«ããããã¯ãŒã¯ã«åãããã¹ãŠã®UDPãã©ãã£ãã¯ã¯ã«ãŒã¿ãŒã§ãããã¯ãããŸãã æ»æã®æåã®æ³¢ïŒ17:22ïŒã¯ãã¢ãããªã³ã¯ã«ãŒã¿ãŒããã®ãŠããã£ã¹ããã±ããã®ã¹ã±ãžã¥ãŒã«ã§ããUDPãã©ãã£ãã¯ã®ã¿ã§ããã
ã«ãŒã¿ã«æ¥ç¶ãããã¹ã€ããããŒãããã®ãŠããã£ã¹ããã±ããã®ã°ã©ãïŒ
ãã¹ãŠã®ãã©ãã£ãã¯ãã«ãŒã¿ãŒãã£ã«ã¿ãŒã®ããã§ããããšã瀺ããŸãã ã«ãŒã¿ãŒã®ã¢ãããªã³ã¯äžã®ãŠããã£ã¹ããã±ããã®ãããŒã¯40äžä»¶å¢å ããUDPãã±ããã«ããæ»æã¯17:33ãŸã§ããç¶ããŸããã§ããã ãã®åŸãæ»æè ã¯æŠç¥ãå€æŽããUDPæ»æã«å ããŠãã«ãŒã¿ãŒèªäœã ãã§ãªããæ»æããããµãŒããŒã«ãTCP SYNæ»æãè¿œå ããŸããã ã°ã©ããããããããã«ãã«ãŒã¿ãŒãéåžžã«æªããªã£ããããzabbixãžã®SNMPã®éä¿¡ãåæ¢ããŸããã SYNã®æ³¢ã®åŸããã¢ãšã®BGPã»ãã·ã§ã³ã¯ã«ãŒã¿ãŒã®ããŒãã§èœã¡å§ããŸããïŒåããŒããã3ã€ã®ã¢ãããªã³ã¯ã䜿çšããŠãipv4ãšipv6ã®å®å šãªãã¥ãŒãååŸããŸãïŒãæ²åçãªãšã³ããªããã°ã«è¡šç€ºãããŸããïŒ
Jun 27 17:35:07 ROUTER rpd[1408]: bgp_hold_timeout:4035: NOTIFICATION sent to ip.ip.ip.ip (External AS 1111): code 4 (Hold Timer Expired Error), Reason: holdtime expired for ip.ip.ip.ip (External AS 1111), socket buffer sndcc: 19 rcvcc: 0 TCP state: 4, snd_una: 1200215741 snd_nxt: 1200215760 snd_wnd: 15358 rcv_nxt: 4074908977 rcv_adv: 4074925361, hold timer out 90s, hold timer remain 0s Jun 27 17:35:33 ROUTER rpd[1408]: bgp_hold_timeout:4035: NOTIFICATION sent to ip.ip.ip.ip (External AS 1111): code 4 (Hold Timer Expired Error), Reason: holdtime expired for ip.ip.ip.ip (External AS 1111), socket buffer sndcc: 38 rcvcc: 0 TCP state: 4, snd_una: 244521089 snd_nxt: 244521108 snd_wnd: 16251 rcv_nxt: 3829118827 rcv_adv: 3829135211, hold timer out 90s, hold timer remain 0s Jun 27 17:37:26 ROUTER rpd[1408]: bgp_hold_timeout:4035: NOTIFICATION sent to ip.ip.ip.ip (External AS 1111): code 4 (Hold Timer Expired Error), Reason: holdtime expired for ip.ip.ip.ip (External AS 1111), socket buffer sndcc: 19 rcvcc: 0 TCP state: 4, snd_una: 1840501056 snd_nxt: 1840501075 snd_wnd: 16384 rcv_nxt: 1457490093 rcv_adv: 1457506477, hold timer out 90s, hold timer remain 0s
åŸã§å€æããããã«ãæ»æåŸãTCP SYNæ³¢ã«ããã«ãŒã¿ãŒã®ã«ãŒãã£ã³ã°ãšã³ãžã³ã®è² è·ãå¢å ãããã®åŸãã¹ãŠã®BGPã»ãã·ã§ã³ãäœäžããã«ãŒã¿ãŒã¯åç¬ã§äœæ¥ã埩å ã§ããŸããã§ããã ã«ãŒã¿ãŒãžã®æ»æã¯æ°åéç¶ããŸããããè¿œå ã®è² è·ãåå ã§ãã«ãŒã¿ãŒã¯3ã€ã®ã¢ãããªã³ã¯ããã®å®å šãªãã¥ãŒãåŠçã§ãããã»ãã·ã§ã³ãåã³äžæããŸããã ãã¹ãŠã®BGPã»ãã·ã§ã³ã亀äºã«äžããããšã«ãã£ãŠã®ã¿äœæ¥ã埩å ã§ããŸããã ããã«æ»æããµãŒããŒèªäœã«è¡ããŸããã
ãã³ããã¹ããšæ»æã®åç
æ»æã®æšçãšããŠããžã¥ãããŒMX80ã¯æŠéã«ãŒã¿ãŒãšåããã¡ãŒã ãŠã§ã¢ããŒãžã§ã³ã§äœ¿çšãããŸããã æ»æè ãšããŠã10Gbã«ãŒããšubuntuãµãŒããŒ+ quaggaãã€ã³ã¹ããŒã«ããããµãŒããŒã䜿çšãããŸããã ãã©ãã£ãã¯ãžã§ãã¬ãŒã¿ãŒã¯ãhping3ãŠãŒãã£ãªãã£åŒã³åºããåããã¹ã¯ãªããã§ããã ãã©ãã£ãã¯ã®ãããŒã¹ããã®æ害ãªåœ±é¿ã確èªãããããã¹ã¯ãªããã¯äžæçãªäžæã䌎ããã©ãã£ãã¯ãçæããŸããã30ç§ã®æ»æ-2ç§ã®æ»æãªãã ãŸããå®éšã®çŽç²ãã®ããã«ãã«ãŒã¿ãŒãšãµãŒããŒã®éã§BGPã»ãã·ã§ã³ãçºçããŸããã ãã®ãšãã«ã€ã³ã¹ããŒã«ãããããã«ã«ãŒã¿ãŒã®æ§æã§ã¯ãBGPããã³SSHããŒãã¯ã«ãŒã¿ãŒã®ãã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹/ã¢ãã¬ã¹ã§éãããŠããããã£ã«ã¿ãªã³ã°ãããŠããŸããã§ããã åæ§ã®æ§æãã¹ã¿ã³ãã«ãŒã¿ãŒã«è»¢éãããŸããã
æåã®ãã¹ããã§ãŒãºã¯ãã«ãŒã¿ãŒã®BGPïŒ179ïŒããŒãã«å¯ŸããTCP SYNæ»æã§ããã IPãœãŒã¹ã¢ãã¬ã¹ã¯ãæ§æå ã®ãã¢ã¢ãã¬ã¹ãšäžèŽããŸãã ã¢ãããªã³ã¯ã§ã¯uPRFãæå¹ã«ãªã£ãŠããªããããIPã¢ãã¬ã¹ã®ã¹ããŒãã£ã³ã°ã¯é€å€ãããŸããã§ããã ã»ãã·ã§ã³ã確ç«ãããŸããã ã¯ã¢ãã¬åŽããïŒ
BGP router identifier 9.4.8.2, local AS number 9123 RIB entries 3, using 288 bytes of memory Peers 1, using 4560 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 9.4.8.1 4 1234 1633 2000 0 0 0 00:59:56 0 Total number of neighbors 1
ãžã¥ãããŒã®åŽããïŒ
user@MX80> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 2 1 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 9.4.8.2 4567 155 201 0 111 59:14 1/2/2/0 0/0/0/0
æ»æã®éå§åŸïŒ13:52ïŒã1.2 Mppsã®ãã©ãã£ãã¯ãã«ãŒã¿ãŒã«å°éããŸãã
ãŸãã¯380MbpsïŒ
ã«ãŒã¿ã®CPU REããã³CPU FEã®è² è·ãå¢å ããŸãã
ã¿ã€ã ã¢ãŠãïŒ90ç§ïŒåŸãBGPã»ãã·ã§ã³ã¯ã¯ã©ãã·ã¥ããäžæããªããªããŸããã
7æ4æ¥13:54:01 MX80 rpd [1407]ïŒbgp_hold_timeoutïŒ4035ïŒ9.4.8.2ã«éä¿¡ãããNOTIFICATIONïŒå€éšAS 4567ïŒïŒã³ãŒã4ïŒä¿çã¿ã€ããŒã®æéåããšã©ãŒïŒãçç±ïŒ9.4.8.2ïŒå€éšAS 4567ã®ããŒã«ãã¿ã€ã æéåãïŒ ïŒããœã±ãããããã¡ãŒsndccïŒ38 rcvccïŒ0 TCPç¶æ ïŒ4ãsnd_unaïŒ3523671294 snd_nxtïŒ3523671313 snd_wndïŒ114 rcv_nxtïŒ1556791630 rcv_advïŒ1556808014ãã¿ã€ããŒã90ç§ä¿æãã¿ã€ããŒã0ã«ä¿æ
ã«ãŒã¿ã¯ãBGPããŒãã§çä¿¡TCP SYNã®åŠçã§ããžãŒã§ãããã»ãã·ã§ã³ã確ç«ã§ããŸããã ããŒãã«ã¯å€ãã®ããã±ãŒãžããããŸãïŒ
ãŠãŒã¶ãŒ@ MX80> ç£èŠãã©ãã£ãã¯ã€ã³ã¿ãŒãã§ã€ã¹ge-1 / 0/0 ã«ãŠã³ã20
13ïŒ55ïŒ39.219155 IP 9.4.8.2.2097> 9.4.8.1.bgpïŒS 1443462200ïŒ1443462200ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219169 IP 9.4.8.2.27095> 9.4.8.1.bgpïŒS 295677290ïŒ295677290ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219177 IP 9.4.8.2.30114> 9.4.8.1.bgpïŒS 380995480ïŒ380995480ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219184 IP 9.4.8.2.57280> 9.4.8.1.bgpïŒS 814209218ïŒ814209218ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219192 IP 9.4.8.2.2731> 9.4.8.1.bgpïŒS 131350916ïŒ131350916ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219199 IP 9.4.8.2.2261> 9.4.8.1.bgpïŒS 2145330024ïŒ2145330024ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219206 IP 9.4.8.2.z39.50> 9.4.8.1.bgpã§ïŒS 1238175350ïŒ1238175350ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219213 IP 9.4.8.2.2098> 9.4.8.1.bgpïŒS 1378645261ïŒ1378645261ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219220 IP 9.4.8.2.30115> 9.4.8.1.bgpïŒS 19257188ââ35ïŒ19257188ââ35ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219227 IP 9.4.8.2.27096> 9.4.8.1.bgpïŒS 286229321ïŒ286229321ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219235 IP 9.4.8.2.2732> 9.4.8.1.bgpïŒS 1469740166ïŒ1469740166ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219242 IP 9.4.8.2.57281> 9.4.8.1.bgpïŒS 1179645542ïŒ1179645542ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219254 IP 9.4.8.2.2262> 9.4.8.1.bgpïŒS 1507663512ïŒ1507663512ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219262 IP 9.4.8.2.914c / g> 9.4.8.1.bgpïŒS 1219404184ïŒ1219404184ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219269 IP 9.4.8.2.2099> 9.4.8.1.bgpïŒS 577616492ïŒ577616492ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219276 IP 9.4.8.2.267> 9.4.8.1.bgpïŒS 1257310851ïŒ1257310851ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219283 IP 9.4.8.2.27153> 9.4.8.1.bgpïŒS 1965427542ïŒ1965427542ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219291 IP 9.4.8.2.30172> 9.4.8.1.bgpïŒS 1446880235ïŒ1446880235ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219297 IP 9.4.8.2.57338> 9.4.8.1.bgpïŒS 206377149ïŒ206377149ïŒ0ïŒwin 512
13ïŒ55ïŒ39.219305 IP 9.4.8.2.2789> 9.4.8.1.bgpïŒS 838483872ïŒ838483872ïŒ0ïŒwin 512
2çªç®ã®ãã¹ããã§ãŒãºã¯ãã«ãŒã¿ãŒã®BGPïŒ179ïŒããŒãã«å¯ŸããTCP SYNæ»æã§ãã éä¿¡å IPã¢ãã¬ã¹ã¯ã©ã³ãã ã«éžæãããã«ãŒã¿ãŒæ§æã§æå®ããããã¢ã¢ãã¬ã¹ãšäžèŽããŸããã§ããã ãã®æ»æã¯ãã«ãŒã¿ãŒã«åã圱é¿ãåãŒããŸããã ãã°ã®çµ±äžãããçµè«ã§èšäºãåŒã䌞ã°ããªãããã«ãè² è·ã°ã©ãã®ã¿ã瀺ããŸãã
ã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠãæ»æã®éå§ã®ç¬éãã¯ã£ãããšèŠããŸãã BGPã»ãã·ã§ã³ãèœã¡ãå埩ã«å€±æããŸããã
ãã«ä¿è·REã«ãŒã¿ãŒã®æŠå¿µ
ãžã¥ãããŒã®æ©åšã®æ©èœã¯ãã«ãŒãã£ã³ã°ãšã³ãžã³ïŒREïŒãšãã±ãã転éãšã³ãžã³ïŒPFEïŒã®éã§ã¿ã¹ã¯ãåé¢ããããšã§ãã PFEã¯ãäºåã«åœ¢æãããã¹ããŒã ã«åŸã£ãŠãã£ã«ã¿ãªã³ã°ããã³ã«ãŒãã£ã³ã°ããããšã«ãããééãããã©ãã£ãã¯ã®ãããŒå šäœãåŠçããŸãã REã¯ãã«ãŒã¿ãŒïŒtracerouteãpingãsshïŒãžã®çŽæ¥åŒã³åºããåŠçãããµãŒãã¹ãµãŒãã¹ïŒBGPãNTPãDNSãSNMPïŒã®ãã±ãããåŠçããPFEã«ãŒã¿ãŒã®ãã©ãã£ãã¯ã®ãã£ã«ã¿ãªã³ã°ããã³ã«ãŒãã£ã³ã°ã¹ããŒã ãäœæããŸãã
ã«ãŒã¿ãä¿è·ããäž»ãªç®çã¯ãREå®ãŠã®ãã¹ãŠã®ãã©ãã£ãã¯ããã£ã«ã¿ãªã³ã°ããããšã§ãã ãã£ã«ã¿ãŒãäœæãããšãDDOSæ»æã«ãã£ãŠäœæãããè² è·ãCPU REããã«ãŒã¿ãŒã®CPU PFEã«è»¢éã§ããŸããããã«ãããREã¯å®éã®ãã±ããã®ã¿ãåŠçããä»ã®ãã©ãã£ãã¯ã«CPUæéã浪費ããŸããã ä¿è·ãæ§ç¯ããã«ã¯ããã£ã«ã¿ãªã³ã°ã®å¯Ÿè±¡ã決å®ããå¿ èŠããããŸãã IPv4çšã®ãã£ã«ã¿ãŒãèšè¿°ããããã®ã¹ããŒã ã¯ã Douglas Hanks Jr.ã®æ¬ããåŒçšãããŠããŸãã -Day One BookïŒMãMXãããã³Tã·ãªãŒãºã®ã«ãŒãã£ã³ã°ãšã³ãžã³ã®ä¿è· ã ç§ã®å Žåãã«ãŒã¿ãŒã®åè·¯ã¯æ¬¡ã®ãšããã§ããã
IPv4
- BGP-éä¿¡å ããã³å®å IPã§ãã±ããããã£ã«ã¿ãªã³ã°ããŸããéä¿¡å IPã¯bgpãã€ããŒãªã¹ãã®ããããã§ãã tcpã§ç¢ºç«ãããæ¥ç¶ã®ã¿ãèš±å¯ããŸããã€ãŸãããã£ã«ã¿ãŒã¯ãã®ããŒãã«å°çãããã¹ãŠã®SYNãæåŠããBGPã»ãã·ã§ã³ã¯èªåããã®ã¿éå§ããŸãïŒBGPã¢ãããªã³ã¯ãã€ããŒã¯ããã·ãã¢ãŒãã§åäœããŸãïŒã
- TACACS +-éä¿¡å ããã³å®å IPã§ãã±ããããã£ã«ã¿ãªã³ã°ããŸããéä¿¡å IPã¯å éšãããã¯ãŒã¯ããã®ã¿ååŸã§ããŸãã 垯åå¹ ã1Mb / sã«å¶éããŸãã
- SNMP-éä¿¡å ããã³å®å IPã§ãã±ããããã£ã«ã¿ãªã³ã°ããŸããéä¿¡å IPã¯ãæ§æå ã®snmp-clientsãªã¹ãã®ããããã§ãã
- SSH-ä»»æã®ãããã¯ãŒã¯ããããã€ã¹ãžã®ç·æ¥ã¢ã¯ã»ã¹ãå¿ èŠãªãããå®å IPã§ãã±ããããã£ã«ã¿ãªã³ã°ããŸããçºä¿¡å IPã¯ä»»æã§ãã 垯åå¹ ã5Mb / sã«å¶éããŸãã
- NTP-éä¿¡å ããã³å®å IPã§ãã±ããããã£ã«ã¿ãªã³ã°ããŸããéä¿¡å IPã¯ãæ§æntpãµãŒããŒãªã¹ãã®ããããã§ãã 垯åå¹ ã1Mb / sã«å¶éããŸãïŒåŸã§ãããå€ã512Kb / sã«æžå°ããŸããïŒã
- DNS-éä¿¡å IPãšå®å IPã§ãã±ããããã£ã«ã¿ãªã³ã°ããŸããéä¿¡å IPã¯ãDNSãµãŒããŒæ§æã®ãªã¹ãã®ããããã§ãã 垯åå¹ ã1Mb / sã«å¶éããŸãã
- ICMP-ãã±ããããã£ã«ã¿ãªã³ã°ããã«ãŒã¿ãŒã«å±ããã¢ãã¬ã¹ã«ã®ã¿æž¡ããŸãã 垯åå¹ ã5Mb / sã«å¶éããŸãïŒåŸã§ãããå€ã1Mb / sã«æžãããŸããïŒã
- TRACEROUTE-ãã±ããããã£ã«ã¿ãªã³ã°ããTTLã1ã®ãã±ããã®ã¿ãééãããã«ãŒã¿ãŒã«å±ããã¢ãã¬ã¹ã«ã®ã¿ééãããŸãã 垯åå¹ ã1Mb / sã«å¶éããŸãã
IPv6ã«ããã°ãç§ã®å Žåããã£ã«ã¿ãŒã¯BGPãNTPãICMPãDNSãããã³tracerouteã«ã®ã¿é©çšãããŸããã å¯äžã®éãã¯ãICMPãã©ãã£ãã¯ã®ãã£ã«ã¿ãªã³ã°ã§ããIPv6ã¯ããžãã¹ç®çã§ICMPã䜿çšããããã§ãã ä»ã®ãããã³ã«ã¯IPv6ã¢ãã¬ãã·ã³ã°ã䜿çšããŸããã§ããã
ã¹ãã«ãã§ãã¯ã®æ§æ
juniperã§ãã£ã«ã¿ãŒãäœæããããã®äŸ¿å©ãªããŒã«-prefix-listããããŸããããã«ããããã£ã«ã¿ãŒçœ®æã®ããã«IPã¢ãã¬ã¹/ãµããããã®ãªã¹ããåçã«ã³ã³ãã€ã«ã§ããŸãã ããšãã°ãèšå®ã§æå®ããããã€ããŒã®ipv4 BGPã¢ãã¬ã¹ã®ãªã¹ããäœæããã«ã¯ã次ã®æ§é ã䜿çšãããŸãã
prefix-list BGP-neighbors-v4 { apply-path "protocols bgp group <*> neighbor <*.*>"; }
ã³ã³ãã€ã«çµæã®ãªã¹ãïŒ
show configuration policy-options prefix-list BGP-neighbors-v4 | ç¶æ¿ã衚瀺ãã
##
## apply-pathã¯æ¬¡ã®ããã«æ¡åŒµãããŸããã
## 1.1.1.1/32;
## 2.2.2.2/32;
## 3.3.3.3/32;
##
apply-path "protocols bgp group <*> neighbor <*ã*>";
ãã¹ãŠã®ãã£ã«ã¿ãŒã®åçãã¬ãã£ãã¯ã¹ãªã¹ããäœæããŸãã
/* ipv4 BGP */ prefix-list BGP-neighbors-v4 { apply-path "protocols bgp group <*> neighbor <*.*>"; } /* ipv6 BGP */ prefix-list BGP-neighbors-v6 { apply-path "protocols bgp group <*> neighbor <*:*>"; } /* ipv4 NTP */ prefix-list NTP-servers-v4 { apply-path "system ntp server <*.*>"; } /* ipv6 NTP */ prefix-list NTP-servers-v6 { apply-path "system ntp server <*:*>"; } /* ipv4 */ prefix-list LOCALS-v4 { apply-path "interfaces <*> unit <*> family inet address <*>"; } /* ipv6 */ prefix-list LOCALS-v6 { apply-path "interfaces <*> unit <*> family inet6 address <*>"; } /* ipv4 SNMP */ prefix-list SNMP-clients { apply-path "snmp client-list <*> <*>"; } prefix-list SNMP-community-clients { apply-path "snmp community <*> clients <*>"; } /* TACACS+ */ prefix-list TACPLUS-servers { apply-path "system tacplus-server <*>"; } /* */ prefix-list INTERNAL-locals { /* - */ 192.168.0.1/32; } /* , SSH */ prefix-list MGMT-locals { apply-path "interfaces fxp0 unit 0 family inet address <*>"; } /* */ prefix-list rfc1918 { 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; } /* Loopback */ prefix-list localhost-v6 { ::1/128; } prefix-list localhost-v4 { 127.0.0.0/8; } /* ipv4 BGP */ prefix-list BGP-locals-v4 { apply-path "protocols bgp group <*> neighbor <*.*> local-address <*.*>"; } /* ipv6 BGP */ prefix-list BGP-locals-v6 { apply-path "protocols bgp group <*> neighbor <*:*> local-address <*:*>"; } /* ipv4 DNS */ prefix-list DNS-servers-v4 { apply-path "system name-server <*.*>"; } /* ipv6 DNS */ prefix-list DNS-servers-v6 { apply-path "system name-server <*:*>"; }
垯åå¹ ãå¶éããããã«ããªãµãŒãäœæããŸãã
/* 1Mb */ policer management-1m { apply-flags omit; if-exceeding { bandwidth-limit 1m; burst-size-limit 625k; } /* */ then discard; } /* 5Mb */ policer management-5m { apply-flags omit; if-exceeding { bandwidth-limit 5m; burst-size-limit 625k; } /* */ then discard; } /* 512Kb */ policer management-512k { apply-flags omit; if-exceeding { bandwidth-limit 512k; burst-size-limit 25k; } /* */ then discard; }
以äžã®ãã³ããŒã¢ã³ãããŒã¹ããã®äžã§ãæçµä¿è·ãªãã·ã§ã³ã®ãã£ã«ã¿ãŒã®æ§æïŒNTPããã³ICMPãã©ãã£ãã¯ã®ã¹ã«ãŒãããã®ãããå€ãåæžãããŸããããããå€ãäžããçç±ã«ã€ããŠã¯ããã¹ãã®ã»ã¯ã·ã§ã³ã§è©³ãã説æããŸãïŒã ipv4ãã£ã«ã¿ãŒãæ§æããŸãã
IPv4ãã£ã«ã¿ãŒ
/* BGP */ filter accept-bgp { interface-specific; term accept-bgp { from { source-prefix-list { BGP-neighbors-v4; } destination-prefix-list { BGP-locals-v4; } /* . . */ tcp-established; protocol tcp; port bgp; } then { count accept-bgp; accept; } } } /* SSH */ filter accept-ssh { apply-flags omit; term accept-ssh { from { destination-prefix-list { MGMT-locals; } protocol tcp; destination-port ssh; } then { /* */ policer management-5m; count accept-ssh; accept; } } } /* SNMP */ filter accept-snmp { apply-flags omit; term accept-snmp { from { source-prefix-list { SNMP-clients; SNMP-community-clients; } destination-prefix-list { /* */ INTERNAL-locals; } protocol udp; destination-port [ snmp snmptrap ]; } then { count accept-snmp; accept; } } } /* ICMP */ filter accept-icmp { apply-flags omit; /* ICMP */ term discard-icmp-fragments { from { is-fragment; protocol icmp; } then { count discard-icmp-fragments; discard; } } term accept-icmp { from { protocol icmp; icmp-type [ echo-reply echo-request time-exceeded unreachable source-quench router-advertisement parameter-problem ]; } then { /* */ policer management-1m; count accept-icmp; accept; } } } /* traceroute */ filter accept-traceroute { apply-flags omit; term accept-traceroute-udp { from { destination-prefix-list { LOCALS-v4; } protocol udp; /* TTL = 1 */ ttl 1; destination-port 33434-33450; } then { /* */ policer management-1m; count accept-traceroute-udp; accept; } } term accept-traceroute-icmp { from { destination-prefix-list { LOCALS-v4; } protocol icmp; /* TTL = 1 */ ttl 1; icmp-type [ echo-request timestamp time-exceeded ]; } then { /* */ policer management-1m; count accept-traceroute-icmp; accept; } } term accept-traceroute-tcp { from { destination-prefix-list { LOCALS-v4; } protocol tcp; /* TTL = 1 */ ttl 1; } then { /* */ policer management-1m; count accept-traceroute-tcp; accept; } } } /* DNS */ filter accept-dns { apply-flags omit; term accept-dns { from { source-prefix-list { DNS-servers-v4; } destination-prefix-list { LOCALS-v4; } protocol udp; source-port 53; } then { /* */ policer management-1m; count accept-dns; accept; } } } /* */ filter discard-all { apply-flags omit; term discard-ip-options { from { ip-options any; } then { /* */ count discard-ip-options; log; discard; } } term discard-TTL_1-unknown { from { ttl 1; } then { /* */ count discard-TTL_1-unknown; log; discard; } } term discard-tcp { from { protocol tcp; } then { /* */ count discard-tcp; log; discard; } } term discard-udp { from { protocol udp; } then { /* */ count discard-udp; log; discard; } } term discard-icmp { from { destination-prefix-list { LOCALS-v4; } protocol icmp; } then { /* */ count discard-icmp; log; discard; } } term discard-unknown { then { /* */ count discard-unknown; log; discard; } } } /* TACACS+ */ filter accept-tacacs { apply-flags omit; term accept-tacacs { from { source-prefix-list { TACPLUS-servers; } destination-prefix-list { INTERNAL-locals; } protocol [ tcp udp ]; source-port [ tacacs tacacs-ds ]; tcp-established; } then { /* */ policer management-1m; count accept-tacacs; accept; } } } /* NTP */ filter accept-ntp { apply-flags omit; term accept-ntp { from { source-prefix-list { NTP-servers-v4; localhost-v4; } destination-prefix-list { localhost-v4; LOCALS-v4; } protocol udp; destination-port ntp; } then { /* */ policer management-512k; count accept-ntp; accept; } } } /* */ filter accept-common-services { term protect-TRACEROUTE { filter accept-traceroute; } term protect-ICMP { filter accept-icmp; } term protect-SSH { filter accept-ssh; } term protect-SNMP { filter accept-snmp; } term protect-NTP { filter accept-ntp; } term protect-DNS { filter accept-dns; } term protect-TACACS { filter accept-tacacs; } }
ipv6ã®åæ§ã®ãã£ã«ã¿ãŒïŒ
IPv6ãã£ã«ã¿ãŒ
/* BGP */ filter accept-v6-bgp { interface-specific; term accept-v6-bgp { from { source-prefix-list { BGP-neighbors-v6; } destination-prefix-list { BGP-locals-v6; } tcp-established; next-header tcp; port bgp; } then { count accept-v6-bgp; accept; } } } /* ICMP */ filter accept-v6-icmp { apply-flags omit; term accept-v6-icmp { from { next-header icmp6; /* , ipv6 icmp */ icmp-type [ echo-reply echo-request time-exceeded router-advertisement parameter-problem destination-unreachable packet-too-big router-solicit neighbor-solicit neighbor-advertisement redirect ]; } then { policer management-1m; count accept-v6-icmp; accept; } } } /* traceroute */ filter accept-v6-traceroute { apply-flags omit; term accept-v6-traceroute-udp { from { destination-prefix-list { LOCALS-v6; } next-header udp; destination-port 33434-33450; hop-limit 1; } then { policer management-1m; count accept-v6-traceroute-udp; accept; } } term accept-v6-traceroute-tcp { from { destination-prefix-list { LOCALS-v6; } next-header tcp; hop-limit 1; } then { policer management-1m; count accept-v6-traceroute-tcp; accept; } } term accept-v6-traceroute-icmp { from { destination-prefix-list { LOCALS-v6; } next-header icmp6; icmp-type [ echo-reply echo-request router-advertisement parameter-problem destination-unreachable packet-too-big router-solicit neighbor-solicit neighbor-advertisement redirect ]; hop-limit 1; } then { policer management-1m; count accept-v6-traceroute-icmp; accept; } } } /* DNS */ filter accept-v6-dns { apply-flags omit; term accept-v6-dns { from { source-prefix-list { DNS-servers-v6; } destination-prefix-list { LOCALS-v6; } next-header udp; source-port 53; } then { policer management-1m; count accept-v6-dns; accept; } } } /* NTP */ filter accept-v6-ntp { apply-flags omit; term accept-v6-ntp { from { source-prefix-list { NTP-servers-v6; localhost-v6; } destination-prefix-list { localhost-v6; LOCALS-v6; } next-header udp; destination-port ntp; } then { policer management-512k; count accept-v6-ntp; accept; } } } /* */ filter discard-v6-all { apply-flags omit; term discard-v6-tcp { from { next-header tcp; } then { count discard-v6-tcp; log; discard; } } term discard-v6-udp { from { next-header udp; } then { count discard-v6-udp; log; discard; } } term discard-v6-icmp { from { destination-prefix-list { LOCALS-v6; } next-header icmp6; } then { count discard-v6-icmp; log; discard; } } term discard-v6-unknown { then { count discard-v6-unknown; log; discard; } } } /* */ filter accept-v6-common-services { term protect-TRACEROUTE { filter accept-v6-traceroute; } term protect-ICMP { filter accept-v6-icmp; } term protect-NTP { filter accept-v6-ntp; } term protect-DNS { filter accept-v6-dns; } }
次ã«ãlo0.0ãµãŒãã¹ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ã«ã¿ãŒãé©çšããå¿ èŠããããŸãã JunOSã§ã¯ããã®ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠPFEãšREã®éã§ããŒã¿ã転éããŸãã æ§æã¯æ¬¡ã®åœ¢åŒãåããŸãã
lo0 { unit 0 { family inet { filter { input-list [ accept-bgp accept-common-services discard-all ]; } } family inet6 { filter { input-list [ accept-v6-bgp accept-v6-common-services discard-v6-all ]; } } } }
ã€ã³ã¿ãŒãã§ã€ã¹ã®å ¥åãªã¹ãã§ãã£ã«ã¿ãŒãæå®ãããé åºã¯éåžžã«éèŠã§ãã input-listã§æå®ããããã£ã«ã¿ãŒãå·Šããå³ã«ééããããšã«ãããåããã±ãŒãžã®æå¹æ§ããã§ãã¯ãããŸãã
ãã£ã«ã¿ãŒè©Šéš
ãã£ã«ã¿ãŒãé©çšããåŸãåãã¹ã¿ã³ãã§äžé£ã®ãã¹ããå®æœããŸããã åãã¹ãã®åŸããã¡ã€ã¢ãŠã©ãŒã«ã«ãŠã³ã¿ãŒã¯ã¯ãªã¢ãããŸããã ã«ãŒã¿ã®éåžžã®ïŒæ»æãªãã®ïŒè² è·ã¯ã11ïŒ06-11:08ã®ã°ã©ãã«è¡šç€ºãããŸãã ãã¹ãæéå šäœã®ppsãã£ãŒãïŒ
ãã¹ãæéå šäœã®CPUã°ã©ãïŒ
5 Mb / sã®ãã©ãã£ãã¯ãããå€ã§ã®icmpãã©ãããã¹ããæåã«å®è¡ãããŸããïŒãã£ãŒã10:21-10:24ïŒã ãã£ã«ã¿ãŒã«ãŠã³ã¿ãŒãšã°ã©ãã«ã¯ãã©ãã£ãã¯ã®åž¯åå¹ å¶éã衚瀺ãããŸããããã®ã¹ããªãŒã ã§ããè² è·ãå¢å ãããã®ã«ååã ã£ãããããããå€ã¯1Mb / sã«æžå°ããŸããã ã«ãŠã³ã¿ãŒïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 0 0 accept-icmp-lo0.0-i 47225584 1686628 accept-ntp-lo0.0-i 152 2 accept-snmp-lo0.0-i 174681 2306 accept-ssh-lo0.0-i 38952 702 accept-traceroute-icmp-lo0.0-i 0 0 accept-traceroute-tcp-lo0.0-i 841 13 accept-traceroute-udp-lo0.0-i 0 0 discard-TTL_1-unknown-lo0.0-i 0 0 discard-icmp-lo0.0-i 0 0 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 0 0 discard-tcp-lo0.0-i 780 13 discard-udp-lo0.0-i 18743 133 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-ntp-lo0.0-i 0 0 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-5m-accept-icmp-lo0.0-i 933705892 33346639 management-5m-accept-ssh-lo0.0-i 0 0
1 Mb / sã®ãã©ãã£ãã¯ãããå€ã§ç¹°ãè¿ãicmpãã©ãããã¹ãïŒã°ã©ã10:24-10:27ïŒã REã«ãŒã¿ãŒã®è² è·ã¯19ïŒ ãã10ïŒ ã«äœäžããPFEã®è² è·ã¯30ïŒ ã«äœäžããŸããã ã«ãŠã³ã¿ãŒïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 0 0 accept-icmp-lo0.0-i 6461448 230766 accept-ntp-lo0.0-i 0 0 accept-snmp-lo0.0-i 113433 1497 accept-ssh-lo0.0-i 33780 609 accept-traceroute-icmp-lo0.0-i 0 0 accept-traceroute-tcp-lo0.0-i 0 0 accept-traceroute-udp-lo0.0-i 0 0 discard-TTL_1-unknown-lo0.0-i 0 0 discard-icmp-lo0.0-i 0 0 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 0 0 discard-tcp-lo0.0-i 360 6 discard-udp-lo0.0-i 12394 85 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-icmp-lo0.0-i 665335496 23761982 management-1m-accept-ntp-lo0.0-i 0 0 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-5m-accept-ssh-lo0.0-i 0 0
次ã®ãã¹ãã¯ãå€éšã®ïŒæ§æã«å«ãŸããŠããªãïŒIPã¢ãã¬ã¹ããã®ã«ãŒã¿ãŒã®BGPããŒãã®ãã©ããã§ããïŒãã£ãŒã10:29-10:36ïŒã ã«ãŠã³ã¿ãŒãããããããã«ããã©ããå šäœãå»æ£tcpãã£ã«ã¿ãŒREã«èœã¡çããPFEã®è² è·ã®ã¿ãå¢å ããŸããã REã®è² è·ã¯å€æŽãããŠããŸããã ã«ãŠã³ã¿ãŒïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 824 26 accept-icmp-lo0.0-i 0 0 accept-ntp-lo0.0-i 0 0 accept-snmp-lo0.0-i 560615 7401 accept-ssh-lo0.0-i 33972 585 accept-traceroute-icmp-lo0.0-i 0 0 accept-traceroute-tcp-lo0.0-i 1088 18 accept-traceroute-udp-lo0.0-i 0 0 discard-TTL_1-unknown-lo0.0-i 0 0 discard-icmp-lo0.0-i 0 0 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 0 0 discard-tcp-lo0.0-i 12250785600 306269640 discard-udp-lo0.0-i 63533 441 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-icmp-lo0.0-i 0 0 management-1m-accept-ntp-lo0.0-i 0 0 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-5m-accept-ssh-lo0.0-i 0 0
ã»ãã·ã§ã³ã¯èœã¡ãŸããïŒ
user@MX80# run show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 2 1 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 9.4.8.2 4567 21 22 0 76 8:49 1/2/2/0 0/0/0/0
4çªç®ã®ãã©ãããã¹ããå®è¡ãããŸããïŒã°ã©ã10:41-10:46ïŒãNTPããŒããžã®UDPïŒãã£ã«ã¿ãŒèšå®ã§ã¯ããã®ããŒãã§ã®çžäºäœçšã¯ã«ãŒã¿ãŒæ§æã§æå®ããããµãŒããŒã«å¶éãããŸãïŒãã¹ã±ãžã¥ãŒã«ã«ãããšãè² è·ã¯PFEã«ãŒã¿ãŒã§ã®ã¿28ïŒ ãŸã§äžæããŸããã«ãŠã³ã¿ãŒïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 0 0 accept-icmp-lo0.0-i 0 0 accept-ntp-lo0.0-i 0 0 accept-snmp-lo0.0-i 329059 4344 accept-ssh-lo0.0-i 22000 388 accept-traceroute-icmp-lo0.0-i 0 0 accept-traceroute-tcp-lo0.0-i 615 10 accept-traceroute-udp-lo0.0-i 0 0 discard-TTL_1-unknown-lo0.0-i 0 0 discard-icmp-lo0.0-i 0 0 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 0 0 discard-tcp-lo0.0-i 0 0 discard-udp-lo0.0-i 1938171670 69219329 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-icmp-lo0.0-i 0 0 management-1m-accept-ntp-lo0.0-i 0 0 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-5m-accept-ssh-lo0.0-i 0 0
5åç®ã®ãã©ãããã¹ããå®è¡ãããŸããïŒãã£ãŒã10:41-11:04ïŒãIPã¹ããŒãã£ã³ã°ã䜿çšããNTPããŒããžã®UDPãREè² è·ã¯12ïŒ å¢å ããPFEè² è·ã¯22ïŒ ã«å¢å ããŸãããã«ãŠã³ã¿ãŒã«ãããšããã©ããã1 Mb / sã®ãããå€ã«ããã£ãŠããããšã¯æããã§ãããããã¯REã®è² è·ãå¢ããã®ã«ååã§ãããã©ãã£ãã¯ã®ãããå€ã¯æçµçã«512Kb / sã«æžå°ããŸãããã«ãŠã³ã¿ãŒïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 0 0 accept-icmp-lo0.0-i 0 0 accept-ntp-lo0.0-i 34796804 1242743 accept-snmp-lo0.0-i 630617 8324 accept-ssh-lo0.0-i 20568 366 accept-traceroute-icmp-lo0.0-i 0 0 accept-traceroute-tcp-lo0.0-i 1159 19 accept-traceroute-udp-lo0.0-i 0 0 discard-TTL_1-unknown-lo0.0-i 0 0 discard-icmp-lo0.0-i 0 0 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 0 0 discard-tcp-lo0.0-i 0 0 discard-udp-lo0.0-i 53365 409 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-icmp-lo0.0-i 0 0 management-1m-accept-ntp-lo0.0-i 3717958468 132784231 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-5m-accept-ssh-lo0.0-i 0 0
IPã¹ããŒãã£ã³ã°ã䜿çšããNTPããŒããžã®UDPã®ç¹°ãè¿ããã¹ãïŒ11:29-11:34以äžã®ãã£ãŒãäžïŒããã ãããã©ãã£ãã¯ã®ãããå€ã¯512Kb / sã§ããè² è·ã°ã©ãïŒ
ã«ãŠã³ã¿ãŒïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 0 0 accept-icmp-lo0.0-i 0 0 accept-ntp-lo0.0-i 21066260 752363 accept-snmp-lo0.0-i 744161 9823 accept-ssh-lo0.0-i 19772 347 accept-traceroute-icmp-lo0.0-i 0 0 accept-traceroute-tcp-lo0.0-i 1353 22 accept-traceroute-udp-lo0.0-i 0 0 discard-TTL_1-unknown-lo0.0-i 0 0 discard-icmp-lo0.0-i 0 0 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 0 0 discard-tcp-lo0.0-i 0 0 discard-udp-lo0.0-i 82745 602 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-512k-accept-ntp-lo0.0-i 4197080384 149895728 management-5m-accept-ssh-lo0.0-i 0 0
ãããã«
å®æœãããã¹ãŠã®ãã¹ãã®çµæãDDOSæ»æã«èæ§ã®ããREãã©ãã£ãã¯ãã£ã«ã¿ãŒã®æ§æãååŸããããšãã§ããŸãããçŸæç¹ã§ã¯ããã®æ§æã¯ãã§ã«æŠéã«ãŒã¿ãŒã«é©çšãããŠãããåé¡ã¯ç¹å®ãããŠããŸãããæŠéMX80ã®ã«ãŠã³ã¿ãŒã«ãããšïŒ
Filter: lo0.0-i Counters: Name Bytes Packets accept-v6-bgp-lo0.0-i 31091878 176809 accept-v6-icmp-lo0.0-i 1831144 26705 accept-v6-ntp-lo0.0-i 0 0 accept-v6-traceroute-icmp-lo0.0-i 0 0 accept-v6-traceroute-tcp-lo0.0-i 48488 684 accept-v6-traceroute-udp-lo0.0-i 0 0 discard-v6-icmp-lo0.0-i 0 0 discard-v6-tcp-lo0.0-i 0 0 discard-v6-udp-lo0.0-i 0 0 discard-v6-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-v6-icmp-lo0.0-i 0 0 management-1m-accept-v6-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-v6-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-v6-traceroute-udp-lo0.0-i 0 0 management-512k-accept-v6-ntp-lo0.0-i 0 0 Filter: lo0.0-i Counters: Name Bytes Packets accept-bgp-lo0.0-i 135948400 698272 accept-dns-lo0.0-i 374 3 accept-icmp-lo0.0-i 121304849 1437305 accept-ntp-lo0.0-i 87780 1155 accept-snmp-lo0.0-i 1265470648 12094967 accept-ssh-lo0.0-i 2550011 30897 accept-tacacs-lo0.0-i 702450 11657 accept-traceroute-icmp-lo0.0-i 28824 636 accept-traceroute-tcp-lo0.0-i 75378 1361 accept-traceroute-udp-lo0.0-i 47328 1479 discard-TTL_1-unknown-lo0.0-i 27790 798 discard-icmp-lo0.0-i 26400 472 discard-icmp-fragments-lo0.0-i 0 0 discard-ip-options-lo0.0-i 35680 1115 discard-tcp-lo0.0-i 73399674 1572144 discard-udp-lo0.0-i 126386306 694603 discard-unknown-lo0.0-i 0 0 Policers: Name Bytes Packets management-1m-accept-dns-lo0.0-i 0 0 management-1m-accept-icmp-lo0.0-i 38012 731 management-1m-accept-tacacs-lo0.0-i 0 0 management-1m-accept-traceroute-icmp-lo0.0-i 0 0 management-1m-accept-traceroute-tcp-lo0.0-i 0 0 management-1m-accept-traceroute-udp-lo0.0-i 0 0 management-512k-accept-ntp-lo0.0-i 0 0 management-5m-accept-ssh-lo0.0-i 0 0
å»æ£ãã£ã«ã¿ãŒã«ãå·Šãã®ãã©ãã£ãã¯ãã©ãã ãèç©ãããŠãããã確èªã§ããŸãã
ã³ã¡ã³ãã®ãã¹ãŠã®è³ªåã«çããŠããããã§ãã