Configuration Properties
This category of questions enables you to retrieve and process the contents of device configurations in a vendor-agnostic manner (except where the question itself is vendor-specific). Batfish organizes configuration content into several sub-categories.
Node Properties
Returns configuration settings of nodes.
Lists global settings of devices in the network. Settings that are specific to interfaces, routing protocols, etc. are available via other questions.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
||
properties |
Include properties matching this regex. |
True |
Invocation
[5]:
result = bf.q.nodeProperties().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
AS_Path_Access_Lists |
Names of AS path access lists |
Set of str |
Authentication_Key_Chains |
Names of authentication keychains |
Set of str |
Community_Match_Exprs |
Names of expressions for matching a community |
Set of str |
Community_Set_Exprs |
Names of expressions representing a community-set |
Set of str |
Community_Set_Match_Exprs |
Names of expressions for matching a ommunity-set |
Set of str |
Community_Sets |
Names of community-sets |
Set of str |
Configuration_Format |
Configuration format of the node |
str |
DNS_Servers |
Configured DNS servers |
Set of str |
DNS_Source_Interface |
Source interface to use for communicating with DNS servers |
str |
Default_Cross_Zone_Action |
Default action (PERMIT, DENY) for traffic that traverses firewall zones (null for non-firewall nodes) |
str |
Default_Inbound_Action |
Default action (PERMIT, DENY) for traffic destined for this node |
str |
Domain_Name |
Domain name of the node |
str |
Hostname |
Hostname of the node |
str |
IKE_Phase1_Keys |
Names of IKE Phase 1 keys |
Set of str |
IKE_Phase1_Policies |
Names of IKE Phase 1 policies |
Set of str |
IKE_Phase1_Proposals |
Names of IKE Phase 1 proposals |
Set of str |
IP6_Access_Lists |
(Deprecated) Names of IPv6 filters (ACLs, firewall rule sets) |
Set of str |
IP_Access_Lists |
Names of IPv4 filters (ACLs, firewall rule sets) |
Set of str |
IPsec_Peer_Configs |
Names of IPSec peers |
Set of str |
IPsec_Phase2_Policies |
Names of IPSec Phase 2 policies |
Set of str |
IPsec_Phase2_Proposals |
Names of IPSec Phase 2 proposals |
Set of str |
Interfaces |
Names of interfaces |
Set of str |
Logging_Servers |
Configured logging servers |
Set of str |
Logging_Source_Interface |
Source interface for communicating with logging servers |
str |
NTP_Servers |
Configured NTP servers |
Set of str |
NTP_Source_Interface |
Source interface for communicating with NTP servers |
str |
PBR_Policies |
Names of policy-based routing (PBR) policies |
Set of str |
Route6_Filter_Lists |
(Deprecated) Names of structures that filter IPv6 routes (e.g., prefix lists) |
Set of str |
Route_Filter_Lists |
Names of structures that filter IPv4 routes (e.g., prefix lists) |
Set of str |
Routing_Policies |
Names of policies that manipulate routes (e.g., route maps) |
Set of str |
SNMP_Source_Interface |
Source interface to use for communicating with SNMP servers |
str |
SNMP_Trap_Servers |
Configured SNMP trap servers |
Set of str |
TACACS_Servers |
Configured TACACS servers |
Set of str |
TACACS_Source_Interface |
Source interface to use for communicating with TACACS servers |
str |
VRFs |
Names of VRFs present on the node |
Set of str |
Zones |
Names of firewall zones on the node |
Set of str |
Print the first 5 rows of the returned Dataframe
[6]:
result.head(5)
[6]:
Node | AS_Path_Access_Lists | Authentication_Key_Chains | Community_Match_Exprs | Community_Set_Exprs | Community_Set_Match_Exprs | Community_Sets | Configuration_Format | DNS_Servers | DNS_Source_Interface | Default_Cross_Zone_Action | Default_Inbound_Action | Domain_Name | Hostname | IKE_Phase1_Keys | ... | Interfaces | Logging_Servers | Logging_Source_Interface | NTP_Servers | NTP_Source_Interface | PBR_Policies | Route6_Filter_Lists | Route_Filter_Lists | Routing_Policies | SNMP_Source_Interface | SNMP_Trap_Servers | TACACS_Servers | TACACS_Source_Interface | VRFs | Zones | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | as2border2 | [] | [] | ['as1_community', 'as2_community', 'as3_community'] | [] | ['as1_community', 'as2_community', 'as3_community'] | [] | CISCO_IOS | [] | None | PERMIT | PERMIT | lab.local | as2border2 | [] | ... | ['Ethernet0/0', 'GigabitEthernet0/0', 'GigabitEthernet1/0', 'GigabitEthernet2/0', 'Loopback0'] | [] | None | ['18.18.18.18'] | None | [] | [] | ['101', '103', 'inbound_route_filter', 'outbound_routes', '~MATCH_SUPPRESSED_SUMMARY_ONLY:default~'] | ['as1_to_as2', 'as2_to_as1', 'as2_to_as3', 'as3_to_as2', '~BGP_COMMON_EXPORT_POLICY:default~', '~BGP_PEER_EXPORT_POLICY:default:10.23.21.3~', '~BGP_PEER_EXPORT_POLICY:default:2.1.2.1~', '~BGP_PEER_EXPORT_POLICY:default:2.1.2.2~', '~BGP_REDISTRIBUTION_POLICY:default~', '~OSPF_EXPORT_POLICY:default:1~', '~RESOLUTION_POLICY~', '~suppress~rp~summary-only~'] | None | [] | [] | None | ['default'] | [] |
1 | as1border1 | [] | [] | ['as1_community', 'as2_community', 'as3_community'] | [] | ['as1_community', 'as2_community', 'as3_community'] | [] | CISCO_IOS | [] | None | PERMIT | PERMIT | lab.local | as1border1 | [] | ... | ['Ethernet0/0', 'GigabitEthernet0/0', 'GigabitEthernet1/0', 'Loopback0'] | [] | None | [] | None | [] | [] | ['101', '102', '103', 'default_list', 'inbound_route_filter'] | ['as1_to_as2', 'as1_to_as3', 'as2_to_as1', 'as3_to_as1', '~BGP_COMMON_EXPORT_POLICY:default~', '~BGP_PEER_EXPORT_POLICY:default:1.10.1.1~', '~BGP_PEER_EXPORT_POLICY:default:10.12.11.2~', '~BGP_PEER_EXPORT_POLICY:default:3.2.2.2~', '~BGP_PEER_EXPORT_POLICY:default:5.6.7.8~', '~BGP_REDISTRIBUTION_POLICY:default~', '~OSPF_EXPORT_POLICY:default:1~', '~RESOLUTION_POLICY~'] | None | [] | [] | None | ['default'] | [] |
2 | as3border2 | [] | [] | ['as1_community', 'as2_community', 'as3_community'] | [] | ['as1_community', 'as2_community', 'as3_community'] | [] | CISCO_IOS | [] | None | PERMIT | PERMIT | lab.local | as3border2 | [] | ... | ['Ethernet0/0', 'GigabitEthernet0/0', 'GigabitEthernet1/0', 'Loopback0'] | [] | None | ['18.18.18.18', '23.23.23.23'] | None | [] | [] | ['101', '102', '103', 'inbound_route_filter'] | ['as1_to_as3', 'as2_to_as3', 'as3_to_as1', 'as3_to_as2', '~BGP_COMMON_EXPORT_POLICY:default~', '~BGP_PEER_EXPORT_POLICY:default:10.13.22.1~', '~BGP_PEER_EXPORT_POLICY:default:3.10.1.1~', '~BGP_REDISTRIBUTION_POLICY:default~', '~OSPF_EXPORT_POLICY:default:1~', '~RESOLUTION_POLICY~'] | None | [] | [] | None | ['default'] | [] |
3 | as1border2 | [] | [] | ['as1_community', 'as2_community', 'as3_community', 'as4_community'] | [] | ['as1_community', 'as2_community', 'as3_community', 'as4_community'] | [] | CISCO_IOS | [] | None | PERMIT | PERMIT | lab.local | as1border2 | [] | ... | ['Ethernet0/0', 'GigabitEthernet0/0', 'GigabitEthernet1/0', 'GigabitEthernet2/0', 'Loopback0'] | [] | None | ['18.18.18.18', '23.23.23.23'] | None | [] | [] | ['101', '102', '103', 'as4-prefixes', 'inbound_route_filter'] | ['as1_to_as2', 'as1_to_as3', 'as1_to_as4', 'as2_to_as1', 'as3_to_as1', 'as4_to_as1', '~BGP_COMMON_EXPORT_POLICY:default~', '~BGP_PEER_EXPORT_POLICY:default:1.10.1.1~', '~BGP_PEER_EXPORT_POLICY:default:10.13.22.3~', '~BGP_PEER_EXPORT_POLICY:default:10.14.22.4~', '~BGP_REDISTRIBUTION_POLICY:default~', '~OSPF_EXPORT_POLICY:default:1~', '~RESOLUTION_POLICY~'] | None | [] | [] | None | ['default'] | [] |
4 | as2dept1 | [] | [] | ['as2_community'] | [] | ['as2_community'] | [] | CISCO_IOS | [] | None | PERMIT | PERMIT | lab.local | as2dept1 | [] | ... | ['Ethernet0/0', 'GigabitEthernet0/0', 'GigabitEthernet1/0', 'GigabitEthernet2/0', 'GigabitEthernet3/0', 'Loopback0'] | [] | None | [] | None | [] | [] | ['102'] | ['as2_to_dept', 'dept_to_as2', '~BGP_COMMON_EXPORT_POLICY:default~', '~BGP_PEER_EXPORT_POLICY:default:2.34.101.3~', '~BGP_PEER_EXPORT_POLICY:default:2.34.201.3~', '~BGP_REDISTRIBUTION_POLICY:default~', '~RESOLUTION_POLICY~'] | None | [] | [] | None | ['default'] | [] |
5 rows × 37 columns
Print the first row of the returned Dataframe
[7]:
result.iloc[0]
[7]:
Node as2border2
AS_Path_Access_Lists []
Authentication_Key_Chains []
Community_Match_Exprs ['as1_community', 'as2_community', 'as3_community']
Community_Set_Exprs []
Community_Set_Match_Exprs ['as1_community', 'as2_community', 'as3_community']
Community_Sets []
Configuration_Format CISCO_IOS
DNS_Servers []
DNS_Source_Interface None
Default_Cross_Zone_Action PERMIT
Default_Inbound_Action PERMIT
Domain_Name lab.local
Hostname as2border2
IKE_Phase1_Keys []
IKE_Phase1_Policies []
IKE_Phase1_Proposals []
IP6_Access_Lists []
IP_Access_Lists ['101', '103', 'INSIDE_TO_AS3', 'OUTSIDE_TO_INSIDE']
IPsec_Peer_Configs []
IPsec_Phase2_Policies []
IPsec_Phase2_Proposals []
Interfaces ['Ethernet0/0', 'GigabitEthernet0/0', 'GigabitEthernet1/0', 'GigabitEthernet2/0', 'Loopback0']
Logging_Servers []
Logging_Source_Interface None
NTP_Servers ['18.18.18.18']
NTP_Source_Interface None
PBR_Policies []
Route6_Filter_Lists []
Route_Filter_Lists ['101', '103', 'inbound_route_filter', 'outbound_routes', '~MATCH_SUPPRESSED_SUMMARY_ONLY:default~']
Routing_Policies ['as1_to_as2', 'as2_to_as1', 'as2_to_as3', 'as3_to_as2', '~BGP_COMMON_EXPORT_POLICY:default~', '~BGP_PEER_EXPORT_POLICY:default:10.23.21.3~', '~BGP_PEER_EXPORT_POLICY:default:2.1.2.1~', '~BGP_PEER_EXPORT_POLICY:default:2.1.2.2~', '~BGP_REDISTRIBUTION_POLICY:default~', '~OSPF_EXPORT_POLICY:default:1~', '~RESOLUTION_POLICY~', '~suppress~rp~summary-only~']
SNMP_Source_Interface None
SNMP_Trap_Servers []
TACACS_Servers []
TACACS_Source_Interface None
VRFs ['default']
Zones []
Name: 0, dtype: object
Interface Properties
Returns configuration settings of interfaces.
Lists interface-level settings of interfaces. Settings for routing protocols, VRFs, and zones etc. that are attached to interfaces are available via other questions.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
interfaces |
Include interfaces matching this specifier. |
True |
||
properties |
Include properties matching this specifier. |
True |
||
excludeShutInterfaces |
Exclude interfaces that are shutdown. |
bool |
True |
Invocation
[10]:
result = bf.q.interfaceProperties().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Interface |
Interface |
|
Access_VLAN |
VLAN number when the switchport mode is access (null otherwise) |
int |
Active |
Whether the interface is active |
bool |
Admin_Up |
Whether the interface is administratively enabled |
bool |
All_Prefixes |
All IPv4 addresses assigned to the interface |
List of str |
Allowed_VLANs |
Allowed VLAN numbers when the switchport mode is trunk |
str |
Auto_State_VLAN |
For VLAN interfaces, whether the operational status depends on member switchports |
bool |
Bandwidth |
Nominal bandwidth in bits/sec, used for protocol cost calculations |
float |
Blacklisted |
Whether the interface is considered down for maintenance |
bool |
Channel_Group |
Name of the aggregated interface (e.g., a port channel) to which this interface belongs |
str |
Channel_Group_Members |
For aggregated interfaces (e.g., a port channel), names of constituent interfaces |
List of str |
DHCP_Relay_Addresses |
IPv4 addresses to which incoming DHCP requests are relayed |
List of str |
Declared_Names |
Any aliases explicitly defined for this interface |
List of str |
Description |
Configured interface description |
str |
Encapsulation_VLAN |
Number for VLAN encapsulation |
int |
HSRP_Groups |
HSRP group identifiers |
Set of str |
HSRP_Version |
HSRP version that will be used |
str |
Inactive_Reason |
Reason why interface is inactive |
str |
Incoming_Filter_Name |
Name of the input IPv4 filter |
str |
MLAG_ID |
MLAG identifier of the interface |
int |
MTU |
Layer3 MTU of the interface |
int |
Native_VLAN |
Native VLAN when switchport mode is trunk |
int |
Outgoing_Filter_Name |
Name of the output IPv4 filter |
str |
PBR_Policy_Name |
Name of policy-based routing (PBR) policy |
str |
Primary_Address |
Primary IPv4 address along with the prefix length |
str |
Primary_Network |
Primary IPv4 subnet, in canonical form |
str |
Proxy_ARP |
Whether proxy ARP is enabled |
bool |
Rip_Enabled |
Whether RIP is enabled |
bool |
Rip_Passive |
Whether interface is in RIP passive mode |
bool |
Spanning_Tree_Portfast |
Whether spanning-tree portfast feature is enabled |
bool |
Speed |
Link speed in bits/sec |
float |
Switchport |
Whether the interface is configured as switchport |
bool |
Switchport_Mode |
Switchport mode (ACCESS, DOT1Q_TUNNEL, DYNAMIC_AUTO, DYNAMIC_DESIRABLE, FEX_FABRIC, MONITOR, NONE, TAP, TOOL, TRUNK) for switchport interfaces |
str |
Switchport_Trunk_Encapsulation |
Encapsulation type (DOT1Q, ISL, NEGOTIATE) for switchport trunk interfaces |
str |
VRF |
Name of the VRF to which the interface belongs |
str |
VRRP_Groups |
All VRRP groups to which the interface belongs |
List of int |
Zone_Name |
Name of the firewall zone to which the interface belongs |
str |
Print the first 5 rows of the returned Dataframe
[11]:
result.head(5)
[11]:
Interface | Access_VLAN | Active | Admin_Up | All_Prefixes | Allowed_VLANs | Auto_State_VLAN | Bandwidth | Blacklisted | Channel_Group | Channel_Group_Members | DHCP_Relay_Addresses | Declared_Names | Description | Encapsulation_VLAN | ... | Outgoing_Filter_Name | PBR_Policy_Name | Primary_Address | Primary_Network | Proxy_ARP | Rip_Enabled | Rip_Passive | Spanning_Tree_Portfast | Speed | Switchport | Switchport_Mode | Switchport_Trunk_Encapsulation | VRF | VRRP_Groups | Zone_Name | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | as1border1[Ethernet0/0] | None | False | False | [] | True | 10000000.0 | False | None | [] | [] | ['Ethernet0/0'] | None | None | ... | None | None | None | None | True | False | False | False | 10000000.0 | False | NONE | DOT1Q | default | [] | None | |
1 | as1border1[GigabitEthernet0/0] | None | True | True | ['1.0.1.1/24'] | True | 1000000000.0 | False | None | [] | [] | ['GigabitEthernet0/0'] | None | None | ... | None | None | 1.0.1.1/24 | 1.0.1.0/24 | True | False | False | False | 1000000000.0 | False | NONE | DOT1Q | default | [123] | None | |
2 | as1border1[GigabitEthernet1/0] | None | True | True | ['10.12.11.1/24'] | True | 1000000000.0 | False | None | [] | [] | ['GigabitEthernet1/0'] | None | None | ... | None | None | 10.12.11.1/24 | 10.12.11.0/24 | True | False | False | False | 1000000000.0 | False | NONE | DOT1Q | default | [] | None | |
3 | as1border1[Loopback0] | None | True | True | ['1.1.1.1/32'] | True | 8000000000.0 | None | None | [] | [] | ['Loopback0'] | None | None | ... | None | None | 1.1.1.1/32 | 1.1.1.1/32 | True | False | False | False | None | False | NONE | DOT1Q | default | [] | None | |
4 | as1border2[Ethernet0/0] | None | False | False | [] | True | 10000000.0 | False | None | [] | [] | ['Ethernet0/0'] | None | None | ... | None | None | None | None | True | False | False | False | 10000000.0 | False | NONE | DOT1Q | default | [] | None |
5 rows × 37 columns
Print the first row of the returned Dataframe
[12]:
result.iloc[0]
[12]:
Interface as1border1[Ethernet0/0]
Access_VLAN None
Active False
Admin_Up False
All_Prefixes []
Allowed_VLANs
Auto_State_VLAN True
Bandwidth 10000000.0
Blacklisted False
Channel_Group None
Channel_Group_Members []
DHCP_Relay_Addresses []
Declared_Names ['Ethernet0/0']
Description None
Encapsulation_VLAN None
HSRP_Groups []
HSRP_Version None
Inactive_Reason Administratively down
Incoming_Filter_Name None
MLAG_ID None
MTU 1500
Native_VLAN None
Outgoing_Filter_Name None
PBR_Policy_Name None
Primary_Address None
Primary_Network None
Proxy_ARP True
Rip_Enabled False
Rip_Passive False
Spanning_Tree_Portfast False
Speed 10000000.0
Switchport False
Switchport_Mode NONE
Switchport_Trunk_Encapsulation DOT1Q
VRF default
VRRP_Groups []
Zone_Name None
Name: 0, dtype: object
BGP Process Configuration
Returns configuration settings of BGP processes.
Reports configuration settings for each BGP process on each node and VRF in the network. This question reports only process-wide settings. Peer-specific settings are reported by the bgpPeerConfiguration question.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
||
properties |
Include properties matching this regex. |
True |
Invocation
[15]:
result = bf.q.bgpProcessConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
VRF |
VRF |
str |
Router_ID |
Router ID |
str |
Confederation_ID |
Externally visible autonomous system number for the confederation |
int |
Confederation_Members |
Set of autonomous system numbers visible only within this BGP confederation |
str |
Multipath_EBGP |
Whether multipath routing is enabled for EBGP |
bool |
Multipath_IBGP |
Whether multipath routing is enabled for IBGP |
bool |
Multipath_Match_Mode |
Which AS paths are considered equivalent (EXACT_PATH, FIRST_AS, PATH_LENGTH) when multipath BGP is enabled |
str |
Neighbors |
All peers configured on this process, identified by peer address (for active and dynamic peers) or peer interface (for BGP unnumbered peers) |
Set of str |
Route_Reflector |
Whether any BGP peer in this process is configured as a route reflector client, for ipv4 unicast address family |
bool |
Tie_Breaker |
Tie breaking mode (ARRIVAL_ORDER, CLUSTER_LIST_LENGTH, ROUTER_ID) |
str |
Print the first 5 rows of the returned Dataframe
[16]:
result.head(5)
[16]:
Node | VRF | Router_ID | Confederation_ID | Confederation_Members | Multipath_EBGP | Multipath_IBGP | Multipath_Match_Mode | Neighbors | Route_Reflector | Tie_Breaker | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | as1border1 | default | 1.1.1.1 | None | None | True | True | EXACT_PATH | ['3.2.2.2', '1.10.1.1', '5.6.7.8', '10.12.11.2'] | False | ARRIVAL_ORDER |
1 | as1border2 | default | 1.2.2.2 | None | None | True | True | EXACT_PATH | ['10.14.22.4', '1.10.1.1', '10.13.22.3'] | False | ARRIVAL_ORDER |
2 | as1core1 | default | 1.10.1.1 | None | None | True | True | EXACT_PATH | ['1.1.1.1', '1.2.2.2'] | True | ARRIVAL_ORDER |
3 | as2border1 | default | 2.1.1.1 | None | None | True | True | EXACT_PATH | ['2.1.2.1', '2.1.2.2', '10.12.11.1'] | False | ARRIVAL_ORDER |
4 | as2border2 | default | 2.1.1.2 | None | None | True | True | EXACT_PATH | ['2.1.2.1', '2.1.2.2', '10.23.21.3'] | False | ARRIVAL_ORDER |
Print the first row of the returned Dataframe
[17]:
result.iloc[0]
[17]:
Node as1border1
VRF default
Router_ID 1.1.1.1
Confederation_ID None
Confederation_Members None
Multipath_EBGP True
Multipath_IBGP True
Multipath_Match_Mode EXACT_PATH
Neighbors ['3.2.2.2', '1.10.1.1', '5.6.7.8', '10.12.11.2']
Route_Reflector False
Tie_Breaker ARRIVAL_ORDER
Name: 0, dtype: object
BGP Peer Configuration
Returns configuration settings for BGP peerings.
Reports configuration settings for each configured BGP peering on each node in the network. This question reports peer-specific settings. Settings that are process-wide are reported by the bgpProcessConfiguration question.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
||
properties |
Include properties matching this regex. |
True |
Invocation
[20]:
result = bf.q.bgpPeerConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
VRF |
VRF |
str |
Local_AS |
Local AS number |
int |
Local_IP |
Local IPv4 address (null for BGP unnumbered peers) |
str |
Local_Interface |
Local Interface |
str |
Confederation |
Confederation AS number |
int |
Remote_AS |
Remote AS numbers with which this peer may establish a session |
str |
Remote_IP |
Remote IP |
str |
Description |
Configured peer description |
str |
Route_Reflector_Client |
Whether this peer is a route reflector client |
bool |
Cluster_ID |
Cluster ID of this peer (null for peers that are not route reflector clients) |
str |
Peer_Group |
Name of the BGP peer group to which this peer belongs |
str |
Import_Policy |
Names of import policies to be applied to routes received by this peer |
Set of str |
Export_Policy |
Names of export policies to be applied to routes exported by this peer |
Set of str |
Send_Community |
Whether this peer propagates communities |
bool |
Is_Passive |
Whether this peer is passive |
bool |
Print the first 5 rows of the returned Dataframe
[21]:
result.head(5)
[21]:
Node | VRF | Local_AS | Local_IP | Local_Interface | Confederation | Remote_AS | Remote_IP | Description | Route_Reflector_Client | Cluster_ID | Peer_Group | Import_Policy | Export_Policy | Send_Community | Is_Passive | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | as1border1 | default | 1 | None | None | None | 666 | 3.2.2.2 | None | False | None | bad-ebgp | [] | [] | False | False |
1 | as1border1 | default | 1 | 1.1.1.1 | None | None | 1 | 1.10.1.1 | None | False | None | as1 | [] | [] | True | False |
2 | as1border1 | default | 1 | None | None | None | 555 | 5.6.7.8 | None | False | None | xanadu | [] | [] | False | False |
3 | as1border1 | default | 1 | 10.12.11.1 | None | None | 2 | 10.12.11.2 | None | False | None | as2 | ['as2_to_as1'] | ['as1_to_as2'] | True | False |
4 | as1border2 | default | 1 | 10.14.22.1 | None | None | 4 | 10.14.22.4 | None | False | None | as4 | ['as4_to_as1'] | ['as1_to_as4'] | False | False |
Print the first row of the returned Dataframe
[22]:
result.iloc[0]
[22]:
Node as1border1
VRF default
Local_AS 1
Local_IP None
Local_Interface None
Confederation None
Remote_AS 666
Remote_IP 3.2.2.2
Description None
Route_Reflector_Client False
Cluster_ID None
Peer_Group bad-ebgp
Import_Policy []
Export_Policy []
Send_Community False
Is_Passive False
Name: 0, dtype: object
HSRP Properties
Returns configuration settings of HSRP groups.
Lists information about HSRP groups on interfaces.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
interfaces |
Include interfaces matching this specifier. |
True |
||
virtualAddresses |
Include only groups with at least one virtual address matching this specifier. |
True |
||
excludeShutInterfaces |
Exclude interfaces that are shutdown. |
bool |
True |
Invocation
[25]:
result = bf.q.hsrpProperties().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Interface |
Interface |
|
Group_Id |
HSRP Group ID |
int |
Virtual_Addresses |
Virtual Addresses |
Set of str |
Source_Address |
Source Address used for HSRP messages |
str |
Priority |
HSRP router priority |
int |
Preempt |
Whether preemption is allowed |
bool |
Active |
Whether the interface is active |
bool |
Print the first 5 rows of the returned Dataframe
[26]:
result.head(5)
[26]:
Interface | Group_Id | Virtual_Addresses | Source_Address | Priority | Preempt | Active | |
---|---|---|---|---|---|---|---|
0 | br2[GigabitEthernet0/2] | 12 | ['192.168.1.254'] | 192.168.1.2/24 | 100 | False | True |
1 | br1[GigabitEthernet0/2] | 12 | ['192.168.1.254'] | 192.168.1.1/24 | 110 | False | True |
Print the first row of the returned Dataframe
[27]:
result.iloc[0]
[27]:
Interface br2[GigabitEthernet0/2]
Group_Id 12
Virtual_Addresses ['192.168.1.254']
Source_Address 192.168.1.2/24
Priority 100
Preempt False
Active True
Name: 0, dtype: object
OSPF Process Configuration
Returns configuration parameters for OSPF routing processes.
Returns the values of important properties for all OSPF processes running across the network.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
||
properties |
Include properties matching this specifier. |
True |
Invocation
[30]:
result = bf.q.ospfProcessConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
VRF |
VRF name |
str |
Process_ID |
Process ID |
str |
Areas |
All OSPF areas for this process |
Set of str |
Reference_Bandwidth |
Reference bandwidth in bits/sec used to calculate interface OSPF cost |
float |
Router_ID |
Router ID of the process |
str |
Export_Policy_Sources |
Names of policies that determine which routes are exported into OSPF |
Set of str |
Area_Border_Router |
Whether this process is at the area border (with at least one interface in Area 0 and one in another area) |
bool |
Print the first 5 rows of the returned Dataframe
[31]:
result.head(5)
[31]:
Node | VRF | Process_ID | Areas | Reference_Bandwidth | Router_ID | Export_Policy_Sources | Area_Border_Router | |
---|---|---|---|---|---|---|---|---|
0 | as2border1 | default | 1 | ['1'] | 100000000.0 | 2.1.1.1 | [] | False |
1 | as2core1 | default | 1 | ['1'] | 100000000.0 | 2.1.2.1 | [] | False |
2 | as2dist1 | default | 1 | ['1'] | 100000000.0 | 2.1.3.1 | [] | False |
3 | as2dist2 | default | 1 | ['1'] | 100000000.0 | 2.1.3.2 | [] | False |
4 | as1border2 | default | 1 | ['1'] | 100000000.0 | 1.2.2.2 | [] | False |
Print the first row of the returned Dataframe
[32]:
result.iloc[0]
[32]:
Node as2border1
VRF default
Process_ID 1
Areas ['1']
Reference_Bandwidth 100000000.0
Router_ID 2.1.1.1
Export_Policy_Sources []
Area_Border_Router False
Name: 0, dtype: object
OSPF Interface Configuration
Returns OSPF configuration of interfaces.
Returns the interface level OSPF configuration details for the interfaces in the network which run OSPF.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
properties |
Include properties matching this specifier. |
True |
Invocation
[35]:
result = bf.q.ospfInterfaceConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Interface |
Interface |
|
VRF |
VRF name |
str |
Process_ID |
Process ID |
str |
OSPF_Area_Name |
OSPF area to which the interface belongs |
int |
OSPF_Enabled |
Whether OSPF is enabled |
bool |
OSPF_Passive |
Whether interface is in OSPF passive mode |
bool |
OSPF_Cost |
OSPF cost if explicitly configured |
int |
OSPF_Network_Type |
Type of OSPF network associated with the interface |
str |
OSPF_Hello_Interval |
Interval in seconds between sending OSPF hello messages |
int |
OSPF_Dead_Interval |
Interval in seconds before a silent OSPF neighbor is declared dead |
int |
Print the first 5 rows of the returned Dataframe
[36]:
result.head(5)
[36]:
Interface | VRF | Process_ID | OSPF_Area_Name | OSPF_Enabled | OSPF_Passive | OSPF_Cost | OSPF_Network_Type | OSPF_Hello_Interval | OSPF_Dead_Interval | |
---|---|---|---|---|---|---|---|---|---|---|
0 | as1core1[GigabitEthernet1/0] | default | 1 | 1 | True | False | 1 | BROADCAST | 10 | 40 |
1 | as1core1[GigabitEthernet0/0] | default | 1 | 1 | True | False | 1 | BROADCAST | 10 | 40 |
2 | as2dist1[Loopback0] | default | 1 | 1 | True | False | 1 | BROADCAST | 10 | 40 |
3 | as3core1[GigabitEthernet0/0] | default | 1 | 1 | True | False | 1 | BROADCAST | 10 | 40 |
4 | as3core1[GigabitEthernet1/0] | default | 1 | 1 | True | False | 1 | BROADCAST | 10 | 40 |
Print the first row of the returned Dataframe
[37]:
result.iloc[0]
[37]:
Interface as1core1[GigabitEthernet1/0]
VRF default
Process_ID 1
OSPF_Area_Name 1
OSPF_Enabled True
OSPF_Passive False
OSPF_Cost 1
OSPF_Network_Type BROADCAST
OSPF_Hello_Interval 10
OSPF_Dead_Interval 40
Name: 0, dtype: object
OSPF Area Configuration
Returns configuration parameters of OSPF areas.
Returns information about all OSPF areas defined across the network.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
Invocation
[40]:
result = bf.q.ospfAreaConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
VRF |
VRF |
str |
Process_ID |
Process ID |
str |
Area |
Area number |
str |
Area_Type |
Area type |
str |
Active_Interfaces |
Names of active interfaces |
Set of str |
Passive_Interfaces |
Names of passive interfaces |
Set of str |
Print the first 5 rows of the returned Dataframe
[41]:
result.head(5)
[41]:
Node | VRF | Process_ID | Area | Area_Type | Active_Interfaces | Passive_Interfaces | |
---|---|---|---|---|---|---|---|
0 | as2dist2 | default | 1 | 1 | NONE | ['GigabitEthernet0/0', 'GigabitEthernet1/0', 'Loopback0'] | [] |
1 | as2border2 | default | 1 | 1 | NONE | ['GigabitEthernet1/0', 'GigabitEthernet2/0', 'Loopback0'] | [] |
2 | as3core1 | default | 1 | 1 | NONE | ['GigabitEthernet0/0', 'GigabitEthernet1/0', 'Loopback0'] | [] |
3 | as2core1 | default | 1 | 1 | NONE | ['GigabitEthernet0/0', 'GigabitEthernet1/0', 'GigabitEthernet2/0', 'GigabitEthernet3/0', 'Loopback0'] | [] |
4 | as1border2 | default | 1 | 1 | NONE | ['GigabitEthernet1/0', 'Loopback0'] | [] |
Print the first row of the returned Dataframe
[42]:
result.iloc[0]
[42]:
Node as2dist2
VRF default
Process_ID 1
Area 1
Area_Type NONE
Active_Interfaces ['GigabitEthernet0/0', 'GigabitEthernet1/0', 'Loopback0']
Passive_Interfaces []
Name: 0, dtype: object
Multi-chassis LAG
Returns MLAG configuration.
Lists the configuration settings for each MLAG domain in the network.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
mlagIds |
Include MLAG IDs matching this specifier. |
True |
Invocation
[45]:
result = bf.q.mlagProperties().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node name |
str |
MLAG_ID |
MLAG domain ID |
str |
Peer_Address |
Peer’s IP address |
str |
Local_Interface |
Local interface used for MLAG peering |
|
Source_Interface |
Local interface used as source-interface for MLAG peering |
Print the first 5 rows of the returned Dataframe
[46]:
result.head(5)
[46]:
Node | MLAG_ID | Peer_Address | Local_Interface | Source_Interface | |
---|---|---|---|---|---|
0 | dc1-bl1a | DC1_BL1 | 10.255.252.11 | dc1-bl1a[Port-Channel3] | dc1-bl1a[Vlan4094] |
1 | dc1-bl1b | DC1_BL1 | 10.255.252.10 | dc1-bl1b[Port-Channel3] | dc1-bl1b[Vlan4094] |
2 | dc1-l2leaf5a | DC1_L2LEAF5 | 10.255.252.19 | dc1-l2leaf5a[Port-Channel3] | dc1-l2leaf5a[Vlan4094] |
3 | dc1-l2leaf5b | DC1_L2LEAF5 | 10.255.252.18 | dc1-l2leaf5b[Port-Channel3] | dc1-l2leaf5b[Vlan4094] |
4 | dc1-l2leaf6a | DC1_L2LEAF6 | 10.255.252.23 | dc1-l2leaf6a[Port-Channel3] | dc1-l2leaf6a[Vlan4094] |
Print the first row of the returned Dataframe
[47]:
result.iloc[0]
[47]:
Node dc1-bl1a
MLAG_ID DC1_BL1
Peer_Address 10.255.252.11
Local_Interface dc1-bl1a[Port-Channel3]
Source_Interface dc1-bl1a[Vlan4094]
Name: 0, dtype: object
IP Owners
Returns where IP addresses are attached in the network.
For each device, lists the mapping from IPs to corresponding interface(s) and VRF(s).
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
ips |
Restrict output to only specified IP addresses. |
True |
||
duplicatesOnly |
Restrict output to only IP addresses that are duplicated (configured on a different node or VRF) in the snapshot. |
bool |
False |
False |
Invocation
[50]:
result = bf.q.ipOwners().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node hostname |
str |
VRF |
VRF name |
str |
Interface |
Interface name |
str |
IP |
IP address |
str |
Mask |
Network mask length |
int |
Active |
Whether the interface is active |
bool |
Print the first 5 rows of the returned Dataframe
[51]:
result.head(5)
[51]:
Node | VRF | Interface | IP | Mask | Active | |
---|---|---|---|---|---|---|
0 | as2dist2 | default | Loopback0 | 2.1.3.2 | 32 | True |
1 | as2dist1 | default | Loopback0 | 2.1.3.1 | 32 | True |
2 | as2dept1 | default | GigabitEthernet1/0 | 2.34.201.4 | 24 | True |
3 | as2dept1 | default | Loopback0 | 2.1.1.2 | 32 | True |
4 | as3border2 | default | GigabitEthernet1/0 | 3.0.2.1 | 24 | True |
Print the first row of the returned Dataframe
[52]:
result.iloc[0]
[52]:
Node as2dist2
VRF default
Interface Loopback0
IP 2.1.3.2
Mask 32
Active True
Name: 0, dtype: object
Named Structures
Returns named structure definitions.
Return structures defined in the configurations, represented in a vendor-independent JSON format.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
structureTypes |
Include structures of this type. |
True |
||
structureNames |
Include structures matching this name or regex. |
str |
True |
|
ignoreGenerated |
Whether to ignore auto-generated structures. |
bool |
True |
True |
indicatePresence |
Output if the structure is present or absent. |
bool |
True |
Invocation
[55]:
result = bf.q.namedStructures().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
Structure_Type |
Structure type |
str |
Structure_Name |
Structure name |
str |
Structure_Definition |
Structure definition |
dict |
Print the first 5 rows of the returned Dataframe
[56]:
result.head(5)
[56]:
Node | Structure_Type | Structure_Name | Structure_Definition | |
---|---|---|---|---|
0 | as1border1 | Community_Set_Match_Expr | as1_community | {'expr': {'class': 'org.batfish.datamodel.routing_policy.communities.CommunityMatchRegex', 'communityRendering': {'class': 'org.batfish.datamodel.routing_policy.communities.ColonSeparatedRendering'}, 'regex': '(,|\{|\}|^|$| )1:'}} |
1 | as1border2 | Community_Set_Match_Expr | as1_community | {'expr': {'class': 'org.batfish.datamodel.routing_policy.communities.CommunityMatchRegex', 'communityRendering': {'class': 'org.batfish.datamodel.routing_policy.communities.ColonSeparatedRendering'}, 'regex': '(,|\{|\}|^|$| )1:'}} |
2 | as2border1 | Community_Set_Match_Expr | as1_community | {'expr': {'class': 'org.batfish.datamodel.routing_policy.communities.CommunityMatchRegex', 'communityRendering': {'class': 'org.batfish.datamodel.routing_policy.communities.ColonSeparatedRendering'}, 'regex': '(,|\{|\}|^|$| )1:'}} |
3 | as2border2 | Community_Set_Match_Expr | as1_community | {'expr': {'class': 'org.batfish.datamodel.routing_policy.communities.CommunityMatchRegex', 'communityRendering': {'class': 'org.batfish.datamodel.routing_policy.communities.ColonSeparatedRendering'}, 'regex': '(,|\{|\}|^|$| )1:'}} |
4 | as3border1 | Community_Set_Match_Expr | as1_community | {'expr': {'class': 'org.batfish.datamodel.routing_policy.communities.CommunityMatchRegex', 'communityRendering': {'class': 'org.batfish.datamodel.routing_policy.communities.ColonSeparatedRendering'}, 'regex': '(,|\{|\}|^|$| )1:'}} |
Print the first row of the returned Dataframe
[57]:
result.iloc[0]
[57]:
Node as1border1
Structure_Type Community_Set_Match_Expr
Structure_Name as1_community
Structure_Definition {'expr': {'class': 'org.batfish.datamodel.routing_policy.communities.CommunityMatchRegex', 'communityRendering': {'class': 'org.batfish.datamodel.routing_policy.communities.ColonSeparatedRendering'}, 'regex': '(,|\{|\}|^|$| )1:'}}
Name: 0, dtype: object
Defined Structures
Lists the structures defined in the network.
Lists the structures defined in the network, along with the files and line numbers in which they are defined.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
filename |
Include structures defined in the given file. |
str |
True |
|
nodes |
Include files used to generate nodes whose name matches this specifier. |
True |
.* |
|
names |
Include structures whose name matches this string or regex. |
str |
True |
.* |
types |
Include structures whose vendor-specific type matches this string or regex. |
str |
True |
.* |
Invocation
[60]:
result = bf.q.definedStructures().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Structure_Type |
Vendor-specific type of the structure |
str |
Structure_Name |
Name of the structure |
str |
Source_Lines |
File and line numbers where the structure is defined |
Print the first 5 rows of the returned Dataframe
[61]:
result.head(5)
[61]:
Structure_Type | Structure_Name | Source_Lines | |
---|---|---|---|
0 | extended ipv4 access-list line | OUTSIDE_TO_INSIDE: permit ip any any | configs/as2border1.cfg:[137] |
1 | extended ipv4 access-list line | blocktelnet: deny tcp any any eq telnet | configs/as2core1.cfg:[122] |
2 | interface | GigabitEthernet1/0 | configs/as1core1.cfg:[69, 70, 71] |
3 | route-map-clause | as3_to_as2 1 | configs/as3border1.cfg:[146, 147, 148, 149] |
4 | extended ipv4 access-list | 101 | configs/as2border2.cfg:[140, 141] |
Print the first row of the returned Dataframe
[62]:
result.iloc[0]
[62]:
Structure_Type extended ipv4 access-list line
Structure_Name OUTSIDE_TO_INSIDE: permit ip any any
Source_Lines configs/as2border1.cfg:[137]
Name: 0, dtype: object
Referenced Structures
Lists the references in configuration files to vendor-specific structures.
Lists the references in configuration files to vendor-specific structures, along with the line number, the name and the type of the structure referenced, and configuration context in which each reference occurs.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include files used to generate nodes whose name matches this specifier. |
True |
||
names |
Include structures whose name matches this string or regex. |
str |
True |
|
types |
Include structures whose vendor-specific type matches this string or regex. |
str |
True |
Invocation
[65]:
result = bf.q.referencedStructures().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Structure_Type |
Type of structure referenced |
str |
Structure_Name |
The referenced structure |
str |
Context |
Configuration context in which the reference appears |
str |
Source_Lines |
Lines where reference appears |
Print the first 5 rows of the returned Dataframe
[66]:
result.head(5)
[66]:
Structure_Type | Structure_Name | Context | Source_Lines | |
---|---|---|---|---|
0 | bgp neighbor | 1.10.1.1 (VRF default) | bgp neighbor self ref | configs/as1border1.cfg:[92, 111] |
1 | bgp neighbor | 10.12.11.2 (VRF default) | bgp neighbor self ref | configs/as1border1.cfg:[114] |
2 | bgp neighbor | 3.2.2.2 (VRF default) | bgp neighbor self ref | configs/as1border1.cfg:[112] |
3 | bgp neighbor | 5.6.7.8 (VRF default) | bgp neighbor self ref | configs/as1border1.cfg:[113] |
4 | bgp peer-group | as1 | bgp neighbor peer-group | configs/as1border1.cfg:[91] |
Print the first row of the returned Dataframe
[67]:
result.iloc[0]
[67]:
Structure_Type bgp neighbor
Structure_Name 1.10.1.1 (VRF default)
Context bgp neighbor self ref
Source_Lines configs/as1border1.cfg:[92, 111]
Name: 0, dtype: object
Undefined References
Identifies undefined references in configuration.
Finds configurations that have references to named structures (e.g., ACLs) that are not defined. Such occurrences indicate errors and can have serious consequences in some cases.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Look for undefined references on nodes matching this name or regex. |
True |
.* |
Invocation
[70]:
result = bf.q.undefinedReferences().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
File_Name |
File containing reference |
str |
Struct_Type |
Type of struct reference is supposed to be |
str |
Ref_Name |
The undefined reference |
str |
Context |
Context of undefined reference |
str |
Lines |
Lines where reference appears |
Print the first 5 rows of the returned Dataframe
[71]:
result.head(5)
[71]:
File_Name | Struct_Type | Ref_Name | Context | Lines | |
---|---|---|---|---|---|
0 | configs/as2core2.cfg | route-map | filter-bogons | bgp inbound route-map | configs/as2core2.cfg:[110] |
Print the first row of the returned Dataframe
[72]:
result.iloc[0]
[72]:
File_Name configs/as2core2.cfg
Struct_Type route-map
Ref_Name filter-bogons
Context bgp inbound route-map
Lines configs/as2core2.cfg:[110]
Name: 0, dtype: object
Unused Structures
Returns nodes with structures such as ACLs, routemaps, etc. that are defined but not used.
Return nodes with structures such as ACLs, routes, etc. that are defined but not used. This may represent a bug in the configuration, which may have occurred because a final step in a template or MOP was not completed. Or it could be harmless extra configuration generated from a master template that is not meant to be used on those nodes.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Look for unused structures on nodes matching this name or regex. |
True |
.* |
Invocation
[75]:
result = bf.q.unusedStructures().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Structure_Type |
Vendor-specific type of the structure |
str |
Structure_Name |
Name of the structure |
str |
Source_Lines |
File and line numbers where the structure is defined |
Print the first 5 rows of the returned Dataframe
[76]:
result.head(5)
[76]:
Structure_Type | Structure_Name | Source_Lines | |
---|---|---|---|
0 | bgp peer-group | as3 | configs/as1border1.cfg:[85] |
1 | expanded community-list | as1_community | configs/as1border1.cfg:[121] |
2 | ipv4 prefix-list | inbound_route_filter | configs/as1border1.cfg:[131, 132] |
3 | bgp peer-group | as2 | configs/as1border2.cfg:[87] |
4 | expanded community-list | as1_community | configs/as1border2.cfg:[123] |
Print the first row of the returned Dataframe
[77]:
result.iloc[0]
[77]:
Structure_Type bgp peer-group
Structure_Name as3
Source_Lines configs/as1border1.cfg:[85]
Name: 0, dtype: object
VLAN Properties
Returns configuration settings of switched VLANs.
Lists information about implicitly and explicitly configured switched VLANs.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
interfaces |
Include interfaces matching this specifier. |
True |
||
vlans |
Include VLANs in this space. |
str |
True |
|
excludeShutInterfaces |
Exclude interfaces that are shutdown. |
bool |
True |
Invocation
[80]:
result = bf.q.switchedVlanProperties().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
VLAN_ID |
VLAN_ID |
int |
Interfaces |
Switched interfaces carrying traffic for this VLAN |
Set of Interface |
VXLAN_VNI |
VXLAN VNI with which this VLAN is associated |
int |
Print the first 5 rows of the returned Dataframe
[81]:
result.head(5)
[81]:
Node | VLAN_ID | Interfaces | VXLAN_VNI | |
---|---|---|---|---|
0 | dc1-bl1b | 250 | [dc1-bl1b[Port-Channel3], dc1-bl1b[Vlan250]] | 20250 |
1 | dc1-leaf1a | 210 | [dc1-leaf1a[Vlan210]] | 20210 |
2 | dc1-leaf1a | 211 | [dc1-leaf1a[Vlan211]] | 20211 |
3 | dc1-leaf2a | 3764 | [dc1-leaf2a[Port-Channel3]] | None |
4 | dc1-leaf2b | 3789 | [dc1-leaf2b[Port-Channel3]] | None |
Print the first row of the returned Dataframe
[82]:
result.iloc[0]
[82]:
Node dc1-bl1b
VLAN_ID 250
Interfaces [dc1-bl1b[Port-Channel3], dc1-bl1b[Vlan250]]
VXLAN_VNI 20250
Name: 0, dtype: object
VRRP Properties
Returns configuration settings of VRRP groups.
Lists information about VRRP groups on interfaces.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this specifier. |
True |
||
interfaces |
Include interfaces matching this specifier. |
True |
||
virtualAddresses |
Include only groups with at least one virtual address matching this specifier. |
True |
||
excludeShutInterfaces |
Exclude interfaces that are shutdown. |
bool |
True |
Invocation
[85]:
result = bf.q.vrrpProperties().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Interface |
Interface |
|
Group_Id |
VRRP Group ID |
int |
Virtual_Addresses |
Virtual Addresses |
Set of str |
Source_Address |
Source Address used for VRRP messages |
str |
Priority |
VRRP router priority |
int |
Preempt |
Whether preemption is allowed |
bool |
Active |
Whether the interface is active |
bool |
Print the first 5 rows of the returned Dataframe
[86]:
result.head(5)
[86]:
Interface | Group_Id | Virtual_Addresses | Source_Address | Priority | Preempt | Active | |
---|---|---|---|---|---|---|---|
0 | br1[GigabitEthernet0/2] | 12 | ['192.168.1.254'] | 192.168.1.1/24 | 110 | True | True |
1 | br2[GigabitEthernet0/2] | 12 | ['192.168.1.254'] | 192.168.1.2/24 | 100 | True | True |
Print the first row of the returned Dataframe
[87]:
result.iloc[0]
[87]:
Interface br1[GigabitEthernet0/2]
Group_Id 12
Virtual_Addresses ['192.168.1.254']
Source_Address 192.168.1.1/24
Priority 110
Preempt True
Active True
Name: 0, dtype: object
A10 Virtual Server Configuration
Returns Virtual Server configuration of A10 devices.
Lists all the virtual-server to service-group to server mappings in A10 configurations.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
||
virtualServerIps |
Include virtual servers whose IP match this specifier. |
True |
Invocation
[90]:
result = bf.q.a10VirtualServerConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
Virtual_Server_Name |
Virtual Server Name |
str |
Virtual_Server_Enabled |
Virtual Server Enabled |
bool |
Virtual_Server_IP |
Virtual Server IP |
str |
Virtual_Server_Port |
Virtual Server Port |
int |
Virtual_Server_Port_Enabled |
Virtual Server Port Enabled |
bool |
Virtual_Server_Type |
Virtual Server Type |
str |
Virtual_Server_Port_Type_Name |
Virtual Server Port Type Name |
str |
Service_Group_Name |
Service Group Name |
str |
Service_Group_Type |
Service Group Type |
str |
Servers |
List of Servers. Each item is a 4-tuple: Server Name, Port, IP Address, and Active Status. |
Set of List of str |
Source_NAT_Pool_Name |
Source NAT Pool Name |
str |
Print the first 5 rows of the returned Dataframe
[91]:
result.head(5)
[91]:
Node | Virtual_Server_Name | Virtual_Server_Enabled | Virtual_Server_IP | Virtual_Server_Port | Virtual_Server_Port_Enabled | Virtual_Server_Type | Virtual_Server_Port_Type_Name | Service_Group_Name | Service_Group_Type | Servers | Source_NAT_Pool_Name | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | lb42 | VS_TCP_80 | True | 10.0.0.1 | 80 | True | TCP | None | SG_TCP_80 | TCP | [['SERVER1', '80', '10.1.10.11', 'active'], ['SERVER2', '80', '10.1.10.12', 'inactive']] | None |
Print the first row of the returned Dataframe
[92]:
result.iloc[0]
[92]:
Node lb42
Virtual_Server_Name VS_TCP_80
Virtual_Server_Enabled True
Virtual_Server_IP 10.0.0.1
Virtual_Server_Port 80
Virtual_Server_Port_Enabled True
Virtual_Server_Type TCP
Virtual_Server_Port_Type_Name None
Service_Group_Name SG_TCP_80
Service_Group_Type TCP
Servers [['SERVER1', '80', '10.1.10.11', 'active'], ['SERVER2', '80', '10.1.10.12', 'inactive']]
Source_NAT_Pool_Name None
Name: 0, dtype: object
F5 BIG-IP VIP Configuration
Returns VIP configuration of F5 BIG-IP devices.
Lists all the VIP to server IP mappings contained in F5 BIP-IP configurations.
Inputs
Name |
Description |
Type |
Optional |
Default Value |
---|---|---|---|---|
nodes |
Include nodes matching this name or regex. |
True |
Invocation
[95]:
result = bf.q.f5BigipVipConfiguration().answer().frame()
Return Value
Name |
Description |
Type |
---|---|---|
Node |
Node |
str |
VIP_Name |
Virtual Service Name |
str |
VIP_Endpoint |
Virtual Service Endpoint |
str |
Servers |
Servers |
Set of str |
Description |
Description |
str |
Print the first 5 rows of the returned Dataframe
[96]:
result.head(5)
[96]:
Node | VIP_Name | VIP_Endpoint | Servers | Description | |
---|---|---|---|---|---|
0 | f5bigip | /Common/virtual1 | 192.0.2.1:80 TCP | ['10.0.0.1:80'] | virtual1 is cool |
1 | f5bigip | /Common/virtual2 | 192.0.2.2:80 TCP | ['10.0.0.2:80'] | pool2 is lame |
2 | f5bigip | /Common/virtual3 | 192.0.2.3:80 TCP | ['10.0.0.4:80', '10.0.0.3:80'] |
Print the first row of the returned Dataframe
[97]:
result.iloc[0]
[97]:
Node f5bigip
VIP_Name /Common/virtual1
VIP_Endpoint 192.0.2.1:80 TCP
Servers ['10.0.0.1:80']
Description virtual1 is cool
Name: 0, dtype: object