Last active
April 22, 2019 09:20
-
-
Save ahyt910/971d481bec1555bc7f15bb335b1559f7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### `edges(*, nodes=\".*\", remoteNodes=\".*\", edgeType, question_name)`\n", | |
"主観ノードから指定のプロトコルで接続された対向ノードを調査します。\n", | |
"\n", | |
"params:\n", | |
" - nodes: 主観ノードをホスト名で指定(正規表現可)\n", | |
" - remoteNodes: 対向ノードをホスト名で指定(正規表現可)\n", | |
" - edgeType: ネイバータイプを以下から選択 \n", | |
" - bgp\n", | |
" - eigrp\n", | |
" - ipsec\n", | |
" - isis\n", | |
" - layer1\n", | |
" - layer2\n", | |
" - layer3\n", | |
" - ospf\n", | |
" - rip\n", | |
" - vxlan" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# ?bfq.edges" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'example_snapshot'" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"%run startup.py\n", | |
"load_questions()\n", | |
"NETWORK_NAME = \"example_network\"\n", | |
"SNAPSHOT_NAME = \"example_snapshot\"\n", | |
"SNAPSHOT_PATH = \"networks/example\"\n", | |
"\n", | |
"bf_set_network(NETWORK_NAME)\n", | |
"bf_init_snapshot(SNAPSHOT_PATH, name=SNAPSHOT_NAME, overwrite=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"主観ノードから全ネイバーを取得する場合" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Interface</th>\n", | |
" <th>IPs</th>\n", | |
" <th>Remote_Interface</th>\n", | |
" <th>Remote_IPs</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>as2border1[GigabitEthernet2/0]</td>\n", | |
" <td>['2.12.12.1']</td>\n", | |
" <td>as2core2[GigabitEthernet1/0]</td>\n", | |
" <td>['2.12.12.2']</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>as2border1[GigabitEthernet0/0]</td>\n", | |
" <td>['10.12.11.2']</td>\n", | |
" <td>as1border1[GigabitEthernet1/0]</td>\n", | |
" <td>['10.12.11.1']</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>as2border1[GigabitEthernet1/0]</td>\n", | |
" <td>['2.12.11.1']</td>\n", | |
" <td>as2core1[GigabitEthernet0/0]</td>\n", | |
" <td>['2.12.11.2']</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Interface IPs \\\n", | |
"0 as2border1[GigabitEthernet2/0] ['2.12.12.1'] \n", | |
"1 as2border1[GigabitEthernet0/0] ['10.12.11.2'] \n", | |
"2 as2border1[GigabitEthernet1/0] ['2.12.11.1'] \n", | |
"\n", | |
" Remote_Interface Remote_IPs \n", | |
"0 as2core2[GigabitEthernet1/0] ['2.12.12.2'] \n", | |
"1 as1border1[GigabitEthernet1/0] ['10.12.11.1'] \n", | |
"2 as2core1[GigabitEthernet0/0] ['2.12.11.2'] " | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(nodes=\"as2border1\").answer().frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"主観ノードからBGPネイバーのみを取得する場合" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Node</th>\n", | |
" <th>IP</th>\n", | |
" <th>AS_Number</th>\n", | |
" <th>Remote_Node</th>\n", | |
" <th>Remote_IP</th>\n", | |
" <th>Remote_AS_Number</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>as2border1</td>\n", | |
" <td>2.1.1.1</td>\n", | |
" <td>2</td>\n", | |
" <td>as2core1</td>\n", | |
" <td>2.1.2.1</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>as2border1</td>\n", | |
" <td>10.12.11.2</td>\n", | |
" <td>2</td>\n", | |
" <td>as1border1</td>\n", | |
" <td>10.12.11.1</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>as2border1</td>\n", | |
" <td>2.1.1.1</td>\n", | |
" <td>2</td>\n", | |
" <td>as2core2</td>\n", | |
" <td>2.1.2.2</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Node IP AS_Number Remote_Node Remote_IP Remote_AS_Number\n", | |
"0 as2border1 2.1.1.1 2 as2core1 2.1.2.1 2 \n", | |
"1 as2border1 10.12.11.2 2 as1border1 10.12.11.1 1 \n", | |
"2 as2border1 2.1.1.1 2 as2core2 2.1.2.2 2 " | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(nodes=\"as2border1\", edgeType=\"bgp\").answer().frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"主観ノードからOSPFネイバーのみを取得する場合" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Interface</th>\n", | |
" <th>Remote_Interface</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>as2border1[GigabitEthernet1/0]</td>\n", | |
" <td>as2core1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>as2border1[GigabitEthernet2/0]</td>\n", | |
" <td>as2core2[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Interface Remote_Interface\n", | |
"0 as2border1[GigabitEthernet1/0] as2core1[GigabitEthernet0/0]\n", | |
"1 as2border1[GigabitEthernet2/0] as2core2[GigabitEthernet1/0]" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(nodes=\"as2border1\", edgeType=\"ospf\").answer().frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"主観ノードが対向ノードと接続されているか確認する場合" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Interface</th>\n", | |
" <th>IPs</th>\n", | |
" <th>Remote_Interface</th>\n", | |
" <th>Remote_IPs</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>as2border1[GigabitEthernet0/0]</td>\n", | |
" <td>['10.12.11.2']</td>\n", | |
" <td>as1border1[GigabitEthernet1/0]</td>\n", | |
" <td>['10.12.11.1']</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Interface IPs \\\n", | |
"0 as2border1[GigabitEthernet0/0] ['10.12.11.2'] \n", | |
"\n", | |
" Remote_Interface Remote_IPs \n", | |
"0 as1border1[GigabitEthernet1/0] ['10.12.11.1'] " | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(nodes=\"as2border1\", remoteNodes=\"as1border1\").answer().frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"主観ノードが対向ノードと指定のタイプで接続されているか確認する場合" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Interface</th>\n", | |
" <th>Remote_Interface</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"Empty DataFrame\n", | |
"Columns: [Interface, Remote_Interface]\n", | |
"Index: []" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(nodes=\"as2border1\", remoteNodes=\"as1border1\", edgeType=\"ospf\").answer().frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"全OSPFネイバーの組み合わせを確認する場合" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Interface</th>\n", | |
" <th>Remote_Interface</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>as2dist2[GigabitEthernet0/0]</td>\n", | |
" <td>as2core2[GigabitEthernet2/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>as2core2[GigabitEthernet2/0]</td>\n", | |
" <td>as2dist2[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>as2dist1[GigabitEthernet1/0]</td>\n", | |
" <td>as2core2[GigabitEthernet3/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>as2core1[GigabitEthernet1/0]</td>\n", | |
" <td>as2border2[GigabitEthernet2/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>as2dist2[GigabitEthernet1/0]</td>\n", | |
" <td>as2core1[GigabitEthernet3/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>as2core2[GigabitEthernet1/0]</td>\n", | |
" <td>as2border1[GigabitEthernet2/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>as2dist1[GigabitEthernet0/0]</td>\n", | |
" <td>as2core1[GigabitEthernet2/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>as3core1[GigabitEthernet1/0]</td>\n", | |
" <td>as3border1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>as2core1[GigabitEthernet0/0]</td>\n", | |
" <td>as2border1[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>as2core2[GigabitEthernet0/0]</td>\n", | |
" <td>as2border2[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>as3core1[GigabitEthernet0/0]</td>\n", | |
" <td>as3border2[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>as2border1[GigabitEthernet1/0]</td>\n", | |
" <td>as2core1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>as2border2[GigabitEthernet1/0]</td>\n", | |
" <td>as2core2[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>as2border1[GigabitEthernet2/0]</td>\n", | |
" <td>as2core2[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>as2core1[GigabitEthernet2/0]</td>\n", | |
" <td>as2dist1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>as1border1[GigabitEthernet0/0]</td>\n", | |
" <td>as1core1[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>as2core2[GigabitEthernet3/0]</td>\n", | |
" <td>as2dist1[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>as3border2[GigabitEthernet1/0]</td>\n", | |
" <td>as3core1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>as1border2[GigabitEthernet1/0]</td>\n", | |
" <td>as1core1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>as1core1[GigabitEthernet0/0]</td>\n", | |
" <td>as1border2[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>as1core1[GigabitEthernet1/0]</td>\n", | |
" <td>as1border1[GigabitEthernet0/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>as2border2[GigabitEthernet2/0]</td>\n", | |
" <td>as2core1[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>as2core1[GigabitEthernet3/0]</td>\n", | |
" <td>as2dist2[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23</th>\n", | |
" <td>as3border1[GigabitEthernet0/0]</td>\n", | |
" <td>as3core1[GigabitEthernet1/0]</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Interface Remote_Interface\n", | |
"0 as2dist2[GigabitEthernet0/0] as2core2[GigabitEthernet2/0] \n", | |
"1 as2core2[GigabitEthernet2/0] as2dist2[GigabitEthernet0/0] \n", | |
"2 as2dist1[GigabitEthernet1/0] as2core2[GigabitEthernet3/0] \n", | |
"3 as2core1[GigabitEthernet1/0] as2border2[GigabitEthernet2/0]\n", | |
"4 as2dist2[GigabitEthernet1/0] as2core1[GigabitEthernet3/0] \n", | |
"5 as2core2[GigabitEthernet1/0] as2border1[GigabitEthernet2/0]\n", | |
"6 as2dist1[GigabitEthernet0/0] as2core1[GigabitEthernet2/0] \n", | |
"7 as3core1[GigabitEthernet1/0] as3border1[GigabitEthernet0/0]\n", | |
"8 as2core1[GigabitEthernet0/0] as2border1[GigabitEthernet1/0]\n", | |
"9 as2core2[GigabitEthernet0/0] as2border2[GigabitEthernet1/0]\n", | |
"10 as3core1[GigabitEthernet0/0] as3border2[GigabitEthernet1/0]\n", | |
"11 as2border1[GigabitEthernet1/0] as2core1[GigabitEthernet0/0] \n", | |
"12 as2border2[GigabitEthernet1/0] as2core2[GigabitEthernet0/0] \n", | |
"13 as2border1[GigabitEthernet2/0] as2core2[GigabitEthernet1/0] \n", | |
"14 as2core1[GigabitEthernet2/0] as2dist1[GigabitEthernet0/0] \n", | |
"15 as1border1[GigabitEthernet0/0] as1core1[GigabitEthernet1/0] \n", | |
"16 as2core2[GigabitEthernet3/0] as2dist1[GigabitEthernet1/0] \n", | |
"17 as3border2[GigabitEthernet1/0] as3core1[GigabitEthernet0/0] \n", | |
"18 as1border2[GigabitEthernet1/0] as1core1[GigabitEthernet0/0] \n", | |
"19 as1core1[GigabitEthernet0/0] as1border2[GigabitEthernet1/0]\n", | |
"20 as1core1[GigabitEthernet1/0] as1border1[GigabitEthernet0/0]\n", | |
"21 as2border2[GigabitEthernet2/0] as2core1[GigabitEthernet1/0] \n", | |
"22 as2core1[GigabitEthernet3/0] as2dist2[GigabitEthernet1/0] \n", | |
"23 as3border1[GigabitEthernet0/0] as3core1[GigabitEthernet1/0] " | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(edgeType=\"ospf\").answer().frame()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"---\n", | |
"正規表現でノードを指定する場合(ホスト名でAS番号が識別できる場合のみ使用可能)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe tex2jax_ignore\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Interface</th>\n", | |
" <th>IPs</th>\n", | |
" <th>Remote_Interface</th>\n", | |
" <th>Remote_IPs</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>as1border1[GigabitEthernet1/0]</td>\n", | |
" <td>['10.12.11.1']</td>\n", | |
" <td>as2border1[GigabitEthernet0/0]</td>\n", | |
" <td>['10.12.11.2']</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Interface IPs \\\n", | |
"0 as1border1[GigabitEthernet1/0] ['10.12.11.1'] \n", | |
"\n", | |
" Remote_Interface Remote_IPs \n", | |
"0 as2border1[GigabitEthernet0/0] ['10.12.11.2'] " | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bfq.edges(nodes=\"as1.*\", remoteNodes=\"as2.*\").answer().frame()" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment