<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Hello everyone, I'm writing you because i have a problem with the implementation of BGP on 4 peer in 4 different AS in line.<br></div>I use bird 2.0.1, and the four peer is virtualized on my pc<br></div>The 4 peer is in this form<br><br></div><div>AS2                              AS4                               AS3                              AS1<br></div>H0 ------------------------------- H1 -------------------------------- H2 ------------------------------ H3<br></div><div>   eth1                      eth1    eth2                      eth2  eth1                       eth1<br></div>The same configuration without H3 work perfectly, but with H3, H1 and H2 can't comunicate, they stay in the connect state, it's like they never bee reachable for the connection, but if i ping the 2 interface i get a replay.<br><br></div>the address of my peer is:<br><br></div>H0.eth1: <a href="http://10.0.0.1/8">10.0.0.1/8</a><br></div>H1.eth1: <a href="http://10.0.1.1/8">10.0.1.1/8</a><br></div>H1.eth2: <a href="http://10.0.1.2/8">10.0.1.2/8</a><br></div>H2.eth1: <a href="http://10.0.2.1/8">10.0.2.1/8</a><br></div>H2.eth2: <a href="http://10.0.2.2/8">10.0.2.2/8</a><br></div>H3.eth1: <a href="http://10.0.3.1/8">10.0.3.1/8</a><br><br></div>the 4 configuration of bird is:<br><br></div>H0<br><br>log "fileLogh0_0.log" all;<br>debug protocols all;<br>router id 200.0.0.2;<br>protocol kernel {<br>    metric 0;<br>    learn;<br>    ipv4 {<br>                import all;<br>                export all;<br>        };<br>}<br>protocol direct {<br>}<br>protocol device {<br>    scan time 2;<br>}<br>function avoid_crappy_prefixes()<br> {<br>            if net.len < 8 then return false;<br>            if net.len > 24 then return false;<br>            return true;<br>  }<br><br>  filter bgp_in {<br>            if avoid_crappy_prefixes() then accept;<br>            else reject;<br>  }<br><br><br>  protocol bgp h0_0_h1_1 {<br>            local as 2;<br>            neighbor 10.0.1.1 as 4;<br>            ipv4{<br>                import filter bgp_in;<br>                export all;<br>            };<br>            connect retry time 3;<br>            source address 10.0.0.1;<br>    }<br><br></div>H1<br><br>log "fileLogh1_1.log" all;<br>debug protocols all;<br>router id 200.0.0.4;<br>protocol kernel {<br>    metric 0;<br>    learn;<br>    ipv4 {<br>                import all;<br>                export all;<br>        };<br>}<br>protocol direct {<br>}<br>protocol device {<br>    scan time 2;<br>}<br>function avoid_crappy_prefixes()<br> {<br>            if net.len < 8 then return false;<br>            if net.len > 24 then return false;<br>            return true;<br>  }<br><br>  filter bgp_in {<br>            if avoid_crappy_prefixes() then accept;<br>            else reject;<br>  }<br>protocol bgp h1_1_h0_0 {<br>            local as 4;<br>            neighbor 10.0.0.1 as 2;<br>            ipv4{<br>                import filter bgp_in;<br>                export all;<br>            };<br>            connect retry time 3;<br>            source address 10.0.1.1;<br> }<br><br>protocol bgp h1_1_h2_2 {<br>            local as 4;<br>            neighbor 10.0.2.2 as 3;<br>            ipv4{<br>                import filter bgp_in;<br>                export all;<br>            };<br>            connect retry time 3;<br>            source address 10.0.1.2;<br>}<br><br></div>H2:<br><br>log "fileLogh2_2.log" all;<br>debug protocols all;<br>router id 200.0.0.3;<br>protocol kernel {<br>    metric 0;<br>    learn;<br>    ipv4 {<br>                import all;<br>                export all;<br>        };<br>}<br>protocol direct {<br>}<br>protocol device {<br>    scan time 2;<br>}<br>function avoid_crappy_prefixes()<br> {<br>            if net.len < 8 then return false;<br>            if net.len > 24 then return false;<br>            return true;<br>  }<br><br>  filter bgp_in {<br>            if avoid_crappy_prefixes() then accept;<br>            else reject;<br>  }<br>protocol bgp h2_2_h3_3 {<br>            local as 3;<br>            neighbor 10.0.3.1 as 1;<br>            ipv4{<br>                import filter bgp_in;<br>                export all;<br>            };<br>            connect retry time 3;<br>            source address 10.0.2.1;<br>}<br><br>protocol bgp h2_2_h1_1 {<br>            local as 3;<br>            neighbor 10.0.1.2 as 4;<br>            ipv4{<br>                import filter bgp_in;<br>                export all;<br>            };<br>            connect retry time 3;<br>            source address 10.0.2.2;<br>}<br><br><br></div>H3<br><br>log "fileLogh3_3.log" all;<br>debug protocols all;<br>router id 200.0.0.1;<br>protocol kernel {<br>    metric 0;<br>    learn;<br>    ipv4 {<br>                import all;<br>                export all;<br>        };<br>}<br>protocol direct {<br>}<br>protocol device {<br>    scan time 2;<br>}<br>function avoid_crappy_prefixes()<br> {<br>            if net.len < 8 then return false;<br>            if net.len > 24 then return false;<br>            return true;<br>  }<br><br>  filter bgp_in {<br>            if avoid_crappy_prefixes() then accept;<br>            else reject;<br>  }<br>protocol bgp h3_3_h2_2 {<br>            local as 1;<br>            neighbor 10.0.2.1 as 3;<br>            ipv4{<br>                import filter bgp_in;<br>                export all;<br>            };<br>            connect retry time 3;<br>            source address 10.0.3.1;<br>}<br><br><br></div>This are the file .conf, using the command "show protocols" for every peer i get this results:<br><br></div>H0<br>BIRD 2.0.1 ready.<br>Name       Proto      Table      State  Since         Info<br>kernel1    Kernel     master4    up     17:18:55.370  <br>direct1    Direct     ---        up     17:18:55.370  <br>device1    Device     ---        up     17:18:55.370  <br>h0_0_h1_1  BGP        ---        up     17:19:00.115  Established <br><br></div>H1<br>BIRD 2.0.1 ready.<br>Name       Proto      Table      State  Since         Info<br>kernel1    Kernel     master4    up     17:18:55.370  <br>direct1    Direct     ---        up     17:18:55.370  <br>device1    Device     ---        up     17:18:55.370  <br>h1_1_h0_0  BGP        ---        up     17:19:00.115  Established   <br>h1_1_h2_2  BGP        ---        start  17:18:55.370  Connect  <br><br></div>H2<br>BIRD 2.0.1 ready.<br>Name       Proto      Table      State  Since         Info<br>kernel1    Kernel     master4    up     17:18:55.370  <br>direct1    Direct     ---        up     17:18:55.370  <br>device1    Device     ---        up     17:18:55.370  <br>h2_2_h3_3  BGP        ---        up     17:19:00.114  Established   <br>h2_2_h1_1  BGP        ---        start  17:18:55.370  Connect     <br><br></div>H3<br>BIRD 2.0.1 ready.<br>Name       Proto      Table      State  Since         Info<br>kernel1    Kernel     master4    up     17:18:55.353  <br>direct1    Direct     ---        up     17:18:55.353  <br>device1    Device     ---        up     17:18:55.353  <br>h3_3_h2_2  BGP        ---        up     17:19:00.114  Established   <br><br><br></div>Using a ping from H1.eth2 to 10.0.2.2 i get the replay from peer 2<br><br></div>but in the log of H1 i founded that:<br><br>2018-03-06 17:11:57.854 <TRACE> h1_1_h2_2: Connecting to 10.0.2.2 from local address 10.0.1.2<br>2018-03-06 17:11:59.462 <TRACE> device1: Scanning interfaces<br>2018-03-06 17:12:00.128 <TRACE> h1_1_h2_2: Connecting to 10.0.2.2 from local address 10.0.1.2<br>2018-03-06 17:12:01.462 <TRACE> device1: Scanning interfaces<br>2018-03-06 17:12:02.960 <TRACE> h1_1_h2_2: Connecting to 10.0.2.2 from local address 10.0.1.2<br>2018-03-06 17:12:03.462 <TRACE> device1: Scanning interfaces<br><br></div>peer H1 try to estabilish a connection with H2 without success<br></div><div>the same for peer H2<br></div><div>using tcp dump i found that it consider 10.0.2.2 unreachable after some arpe request that didn't get answered.<br><br></div><div>without H3 it works perfectly but i want to work with it, sorry if i'm annoying.<br><br></div><div>Thanks if you will answer me with some idea/explanation<br></div><div>Mattia<br></div><div><div><div><div><div><div><div><div><div><div><br></div></div></div></div></div></div></div></div></div></div></div>