BIRD: BGP Sederhana: Difference between revisions

From OnnoCenterWiki
Jump to navigationJump to search
Onnowpurbo (talk | contribs)
Onnowpurbo (talk | contribs)
No edit summary
 
(13 intermediate revisions by the same user not shown)
Line 54: Line 54:
ISP1
ISP1


ifconfig lo 1.1.1.1 netmask 255.255.255.255
  ifconfig eth1 192.168.1.1 netmask 255.255.255.0
  ifconfig eth1 192.168.1.1 netmask 255.255.255.0
  ifconfig eth2 192.168.3.1 netmask 255.255.255.0
  ifconfig eth2 192.168.3.1 netmask 255.255.255.0
Line 63: Line 62:
ISP2
ISP2


ifconfig lo 1.1.1.1 netmask 255.255.255.255
  ifconfig eth1 192.168.2.1 netmask 255.255.255.0
  ifconfig eth1 192.168.2.1 netmask 255.255.255.0
  ifconfig eth2 192.168.3.2 netmask 255.255.255.0
  ifconfig eth2 192.168.3.2 netmask 255.255.255.0
Line 71: Line 69:
ISP3
ISP3


ifconfig lo 1.1.1.1 netmask 255.255.255.255
  ifconfig eth1 192.168.1.2 netmask 255.255.255.0
  ifconfig eth1 192.168.1.2 netmask 255.255.255.0
  ifconfig eth2 192.168.2.2 netmask 255.255.255.0
  ifconfig eth2 192.168.2.2 netmask 255.255.255.0
Line 91: Line 88:
  router id 192.168.1.1;
  router id 192.168.1.1;
  protocol kernel {
  protocol kernel {
        import all;                
        import all;
        export all;  
        export all;
        learn;  
        learn;
        scan time 20;
        scan time 20;
}
filter packetdns {
  # IPs to announce ( 1.1.1.1 in this case)
  # Doesn't have to be /32. Can be lower
  if net = 1.1.1.1/32 then accept;
  }
  }
  protocol device {
  protocol device {
        import all;                
        import all;
        export all;
        export all;
        scan time 10;          # Scan interfaces every 10 seconds          
        scan time 10;          # Scan interfaces every 10 seconds
  }
  }
  protocol direct {
  protocol direct {
  interface "lo"; # Restrict network interfaces BIRD works with
        interface "lo", "eth1", "eth2", "eth3", "eth4" ; # Restrict network interfaces BIRD works with
  }
  }
  protocol bgp {                                                              
  protocol bgp {
        import all;
        import all;
        export all;
        export all;
        export filter packetdns;
        local as 10;
        local as 10;                                                      
        neighbor 192.168.1.2 as 30;
        neighbor 192.168.1.2 as 20;
  }
  }
  protocol bgp {                                                              
  protocol bgp {
        import all;
        import all;
        export all;
        export all;
        export filter packetdns;
        local as 10;
        local as 10;                                                      
        neighbor 192.168.3.2 as 20;
        neighbor 192.168.3.2 as 30;
  }
  }


  # BIRD1 di OpenWRT
  # BIRD1 di OpenWRT
Line 144: Line 135:
  log syslog all;
  log syslog all;
  router id 192.168.2.1;
  router id 192.168.2.1;
  protocol kernel {                                                            
  protocol kernel {
        learn;                 # Learn all alien routes from the kernel     
        import all;
#      persist;               # Don't remove routes on bird shutdown       
        export all;
        scan time 20;           # Scan kernel routing table every 20 seconds  
        learn;
        import all;           # Default is import all                     
        scan time 20;
        export all;             # Default is export none                     
}
  protocol device {
        import all;
        export all;
        scan time 10;          # Scan interfaces every 10 seconds
  }
  }
  protocol device {                                                            
  protocol direct {
        scan time 10;           # Scan interfaces every 10 seconds           
        interface "lo", "eth1", "eth2", "eth3", "eth4" ; # Restrict network interfaces BIRD works with
  }
  }
  protocol bgp {                                                              
  protocol bgp {
        import all;
        import all;
        export all;
        export all;
        local as 20;  
        local as 20;
        neighbor 192.168.3.1 as 10;
        neighbor 192.168.3.1 as 10;
  }
  }
  protocol bgp {                                                              
  protocol bgp {
        import all;
        import all;
        export all;
        export all;
        local as 20;
        local as 20;
        neighbor 192.168.2.2 as 30;
        neighbor 192.168.2.2 as 30;
  }
  }


Line 184: Line 179:


edit
edit


  log syslog all;
  log syslog all;
  router id 192.168.1.2;
  router id 192.168.1.2;
  protocol kernel {                                                            
  protocol kernel {
        learn;                 # Learn all alien routes from the kernel     
        import all;
#      persist;               # Don't remove routes on bird shutdown       
        export all;
        scan time 20;           # Scan kernel routing table every 20 seconds  
        learn;
        import all;           # Default is import all                     
        scan time 20;
        export all;             # Default is export none                     
}
  protocol device {
        import all;
        export all;
        scan time 10;          # Scan interfaces every 10 seconds
  }
  }
  protocol device {                                                            
  protocol direct {
        scan time 10;           # Scan interfaces every 10 seconds           
        interface "eth1", "eth2", "eth3", "eth4" ; # Restrict network interfaces BIRD works with
  }
  }
  protocol bgp {                                                              
  protocol bgp {
         import all;
         import all;
         export all;
         export all;
         local as 30;  
         local as 30;
         neighbor 192.168.1.1 as 10;
         neighbor 192.168.1.1 as 10;
  }
  }
  protocol bgp {                                                              
  protocol bgp {
         import all;
         import all;
         export all;
         export all;
Line 210: Line 208:
         neighbor 192.168.2.2 as 20;
         neighbor 192.168.2.2 as 20;
  }
  }


  # BIRD1 di OpenWRT
  # BIRD1 di OpenWRT
Line 230: Line 227:


  show interfaces
  show interfaces
show protocols
  show protocols all bgp1
  show protocols all bgp1
  show ip route
  show protocols all bgp2
 
  show route
 
  show route [<prefix>|for <prefix>|for <ip>] [table <t>] [filter <f>|where <cond>]
      [all] [primary]  [filtered] [(export|preexport|noexport) <p>] [protocol <p>] [stats|count]


==Referensi==
==Referensi==
Line 250: Line 245:
* [[Cisco]]
* [[Cisco]]
* [[Juniper]]
* [[Juniper]]
* [[BIRD: Routing]]
* [[BIRD1]]
* [[BIRD2]]
* [[IPv6]]
* [[IPv6]]


Line 260: Line 256:
* [[IPv6: Cisco]]
* [[IPv6: Cisco]]
* [[IPv6: Juniper]]
* [[IPv6: Juniper]]
* [[IPv6: BIRD: Routing]]
* [[IPv6: BIRD1]]
* [[IPv6: BIRD2]]
* [[IPv6]]
* [[IPv6]]

Latest revision as of 03:25, 18 January 2019


Ada tiga (3) ISP

ISP1:

IP 192.168.1.1/24 menuju ISP3
IP 192.168.3.1/24 menuju ISP2
AS 10
IP 10.100.100.0/24
IP 10.100.200.0/24

ISP2

IP 192.168.2.1/24 - menuju ISP3
IP 192.168.3.2/24 - menuju ISP1
AS 20
IP 10.10.10.0/24
IP 10.10.20.0/24

ISP3 (kita)

IP 192.168.1.2/24 - menuju ISP1
IP 192.168.2.2/24 - menuju ISP2
AS 30
IP 10.1.1.0/24
IP 10.1.2.0/24 


Sambungan

R1
e1 --> R3 e1
e2 --> R2 e2 
e3 --> LAN 10.100.100.0/24
e4 --> LAN 10.100.200.0/24
R2
e1 --> R3 e2
e2 --> R1 e2
e3 --> LAN 10.10.10.0/24
e4 --> LAN 10.10.20.0/24
R3
e1 --> R1 e1
e2 --> R2 e1
e3 --> LAN 10.1.1.0/24
e4 --> LAN 10.1.2.0/24


Setup connection

Pastikan semua ifconfig bersih, lakukan langkah BIRD: dari OpenWRT


ISP1

ifconfig eth1 192.168.1.1 netmask 255.255.255.0
ifconfig eth2 192.168.3.1 netmask 255.255.255.0
ifconfig eth3 10.100.100.1 netmask 255.255.255.0
ifconfig eth4 10.100.200.1 netmask 255.255.255.0


ISP2

ifconfig eth1 192.168.2.1 netmask 255.255.255.0
ifconfig eth2 192.168.3.2 netmask 255.255.255.0
ifconfig eth3 10.10.10.1 netmask 255.255.255.0
ifconfig eth4 10.10.20.1 netmask 255.255.255.0

ISP3

ifconfig eth1 192.168.1.2 netmask 255.255.255.0
ifconfig eth2 192.168.2.2 netmask 255.255.255.0
ifconfig eth3 10.1.1.1 netmask 255.255.255.0
ifconfig eth4 10.1.2.1 netmask 255.255.255.0

BGP Peering

Consider that IP connectivity between ISPs edge routers and Our Core router is already set up and working properly. So we can start to establish BGP peering to both ISPs.

ISP1

# vi /usr/local/etc/bird6.conf  # BIRD appliance di GNS3
vi /etc/bird.conf               # BIRD1 di OpenWRT

edit

log syslog all;
router id 192.168.1.1;
protocol kernel {
        import all;
        export all;
        learn;
        scan time 20;
}
protocol device {
        import all;
        export all;
        scan time 10;           # Scan interfaces every 10 seconds
}
protocol direct {
        interface "lo", "eth1", "eth2", "eth3", "eth4" ; # Restrict network interfaces BIRD works with
}
protocol bgp {
        import all;
        export all;
        local as 10;
        neighbor 192.168.1.2 as 30;
}
protocol bgp {
        import all;
        export all;
        local as 10;
        neighbor 192.168.3.2 as 20;
}


# BIRD1 di OpenWRT
killall zebra
killall bgpd
killall watchquagga
killall ospfd
killall ospf6d
killall ripd
killall ripngd
killall bird4
bird4

ISP2

# vi /usr/local/etc/bird6.conf  # BIRD appliance di GNS3
vi /etc/bird.conf               # BIRD1 di OpenWRT

edit

log syslog all;
router id 192.168.2.1;
protocol kernel {
        import all;
        export all;
        learn;
        scan time 20;
}
protocol device {
        import all;
        export all;
        scan time 10;           # Scan interfaces every 10 seconds
}
protocol direct {
        interface "lo", "eth1", "eth2", "eth3", "eth4" ; # Restrict network interfaces BIRD works with
}
protocol bgp {
        import all;
        export all;
        local as 20;
        neighbor 192.168.3.1 as 10;
}
protocol bgp {
        import all;
        export all;
        local as 20;
        neighbor 192.168.2.2 as 30;
}
# BIRD1 di OpenWRT
killall zebra
killall bgpd
killall watchquagga
killall ospfd
killall ospf6d
killall ripd
killall ripngd
killall bird4
bird4

ISP3

# vi /usr/local/etc/bird6.conf  # BIRD appliance di GNS3
vi /etc/bird.conf               # BIRD1 di OpenWRT

edit

log syslog all;
router id 192.168.1.2;
protocol kernel {
        import all;
        export all;
        learn;
        scan time 20;
}
protocol device {
        import all;
        export all;
        scan time 10;           # Scan interfaces every 10 seconds
}
protocol direct {
        interface "eth1", "eth2", "eth3", "eth4" ; # Restrict network interfaces BIRD works with
}
protocol bgp {
       import all;
       export all;
       local as 30;
       neighbor 192.168.1.1 as 10;
}
protocol bgp {
       import all;
       export all;
       local as 30;
       neighbor 192.168.2.2 as 20;
}
# BIRD1 di OpenWRT
killall zebra
killall bgpd
killall watchquagga
killall ospfd
killall ospf6d
killall ripd
killall ripngd
killall bird4
bird4

Test

birdc4

ketik

show interfaces
show protocols
show protocols all bgp1
show protocols all bgp2
show route

Referensi


Pranala Menarik