network-utility 1.1.49 → 1.1.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/document/bgp-CR16010H-F.md +12 -8
  3. data/document/bgp-CR16018-F.md +12 -8
  4. data/document/bgp-CR19000-20.md +12 -8
  5. data/document/bgp-M6000-16E.md +8 -8
  6. data/document/bgp-M6000-18S.md +8 -8
  7. data/document/bgp-M6000-8.md +8 -8
  8. data/document/bgp-M6000-8E.md +8 -8
  9. data/document/bgp-MA5200G-8.md +12 -8
  10. data/document/bgp-ME60-16.md +12 -8
  11. data/document/bgp-ME60-X16.md +12 -8
  12. data/document/bgp-NE40E-X16.md +12 -8
  13. data/document/bgp-NE40E-X16A.md +12 -8
  14. data/document/bgp-NE40E-X8.md +12 -8
  15. data/document/bgp-NE40E.md +12 -8
  16. data/document/bgp-NE5000E-20.md +12 -8
  17. data/document/bgp-NE5000E-X16.md +12 -8
  18. data/document/bgp-NE5000E-X16A.md +12 -8
  19. data/document/bgp-NE80E.md +12 -8
  20. data/document/bgp-T8000-18.md +24 -0
  21. data/document/config.md +45 -44
  22. data/document/if-ALCATEL7750.md +174 -12
  23. data/document/if-CRS-16.md +54 -2
  24. data/document/if-Nokia7750.md +174 -12
  25. data/document/isis-NE5000E-20.md +141 -0
  26. data/document/isis-NE5000E-X16.md +141 -0
  27. data/document/isis-NE5000E-X16A.md +141 -0
  28. data/document/pool-ALCATEL7750.md +20 -0
  29. data/document/pool-CR16010H-F.md +108 -0
  30. data/document/pool-CR16018-F.md +108 -0
  31. data/document/pool-Nokia7750.md +20 -0
  32. data/document/pool-V6000.md +126 -0
  33. data/document/pool-VNE9000.md +63 -0
  34. data/document/static-ALCATEL7750.md +32 -0
  35. data/document/static-CR16010H-F.md +2 -2
  36. data/document/static-CR16018-F.md +2 -2
  37. data/document/static-CRS-16.md +40 -0
  38. data/document/static-Nokia7750.md +32 -0
  39. data/document/static-V6000.md +34 -0
  40. data/document/static-VNE9000.md +28 -0
  41. data/network.rb +1 -1
  42. data/utility/ipv4_address.rb +16 -0
  43. metadata +16 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87a2c40dc55ff364724dc90384cd06e9123a7f05297d8f0cbb24bb16527f1f47
4
- data.tar.gz: 31fd42d93460454b47f2d19cb17994b70df4c321adb5e52ba139bcc944860fd5
3
+ metadata.gz: ffbfd5f7583f8cd4803f3b16b7050a092e04e098fad10bc86e35a74e044e11b2
4
+ data.tar.gz: dd9c4d153ca4b7c48319e6f63d292e63ea76ebf84de6852d56bb753fd83e6d3a
5
5
  SHA512:
6
- metadata.gz: 96c015a31778be4bb777de5a280e5594049d982687fa7c41059f3cc87ee4a04f3cc305fcb98f7a1f503409292e2247fb3d64d061a55b4fa7f1d1f601ada78c0c
7
- data.tar.gz: cb2c2145341cfca5cf15ad4b492b16aa9c09e883efc85e7e752019a38c4126235198966b3700b37d028575fa1c52ceee07e96f0776cde3b089ba26e4aefc9300
6
+ metadata.gz: ac53ddc98af79f3380eb24fac3af97e833c4db7635f234abf53ddd1174101f1066bb2434b943f8fa97174682cce66ea716c57ec582140022f14613ef2c0173cc
7
+ data.tar.gz: 6965acd893ee53ea1cdf4b245f53302d6c8700197ab216f3316fb14881b8ee1f99d2cbc723a0f0ce5d14209a3bac9c675bdd6a71b8a4fa1b679a52ec6f337c2f
@@ -9,15 +9,19 @@ module CR16010H_F
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n address-family ipv4 unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module CR16018_F
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n address-family ipv4 unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module CR19000_20
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n address-family ipv4 unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,14 +9,14 @@ module M6000_16E
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].split("\n").each do|line|
13
- if line.include?('network ')
14
- items = line.split(" ")
15
- ip1,ip2 = items[1].include?(':') ? items[1].split("/") : items[1..2]
16
- ip, mask = ip1.include?(":") ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
17
- network = ip.network_with mask
18
- start_ip, end_ip = ip.range_with mask
19
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ segment = 配置散列['bgp']
13
+ segment.split("\n").each do|line|
14
+ if line.include?('network ') && line.strip.split(' ').size > 2
15
+ words = line.split(' ')
16
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
17
+ network = address.network_with netmask
18
+ route_map = words.index('route-map') ? words[words.index('route-map')+1] : ''
19
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_map ]
20
20
  end
21
21
  end
22
22
  return ranges
@@ -9,14 +9,14 @@ module M6000_18S
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].split("\n").each do|line|
13
- if line.include?('network ')
14
- items = line.split(" ")
15
- ip1,ip2 = items[1].include?(':') ? items[1].split("/") : items[1..2]
16
- ip, mask = ip1.include?(":") ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
17
- network = ip.network_with mask
18
- start_ip, end_ip = ip.range_with mask
19
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ segment = 配置散列['bgp']
13
+ segment.split("\n").each do|line|
14
+ if line.include?('network ') && line.strip.split(' ').size > 2
15
+ words = line.split(' ')
16
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
17
+ network = address.network_with netmask
18
+ route_map = words.index('route-map') ? words[words.index('route-map')+1] : ''
19
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_map ]
20
20
  end
21
21
  end
22
22
  return ranges
@@ -9,14 +9,14 @@ module M6000_8
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].split("\n").each do|line|
13
- if line.include?('network ')
14
- items = line.split(" ")
15
- ip1,ip2 = items[1].include?(':') ? items[1].split("/") : items[1..2]
16
- ip, mask = ip1.include?(":") ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
17
- network = ip.network_with mask
18
- start_ip, end_ip = ip.range_with mask
19
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ segment = 配置散列['bgp']
13
+ segment.split("\n").each do|line|
14
+ if line.include?('network ') && line.strip.split(' ').size > 2
15
+ words = line.split(' ')
16
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
17
+ network = address.network_with netmask
18
+ route_map = words.index('route-map') ? words[words.index('route-map')+1] : ''
19
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_map ]
20
20
  end
21
21
  end
22
22
  return ranges
@@ -9,14 +9,14 @@ module M6000_8E
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].split("\n").each do|line|
13
- if line.include?('network ')
14
- items = line.split(" ")
15
- ip1,ip2 = items[1].include?(':') ? items[1].split("/") : items[1..2]
16
- ip, mask = ip1.include?(":") ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
17
- network = ip.network_with mask
18
- start_ip, end_ip = ip.range_with mask
19
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ segment = 配置散列['bgp']
13
+ segment.split("\n").each do|line|
14
+ if line.include?('network ') && line.strip.split(' ').size > 2
15
+ words = line.split(' ')
16
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
17
+ network = address.network_with netmask
18
+ route_map = words.index('route-map') ? words[words.index('route-map')+1] : ''
19
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_map ]
20
20
  end
21
21
  end
22
22
  return ranges
@@ -9,15 +9,19 @@ module MA5200G_8
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module ME60_16
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module ME60_X16
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE40E_X16
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE40E_X16A
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE40E_X8
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE40E
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE5000E_20
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE5000E_X16
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE5000E_X16A
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -9,15 +9,19 @@ module NE80E
9
9
 
10
10
  def 宣告网段解析 配置散列
11
11
  ranges = []
12
- 配置散列['bgp'].first.split("\n").each do|line|
13
- if line.include?('network ') && line.split(' ').size > 2
14
- ip1,ip2 = line.split(' ')[1..2]
15
- ip, mask = line.split(' ')[1].include?(':') ? IP.v6("#{ip1}/#{ip2}") : IP.v4("#{ip1}/#{ip2}")
16
- network = ip.network_with mask
17
- start_ip, end_ip = ip.range_with mask
18
- ranges << [ 'bgp', network.to_s, end_ip.to_s ]
12
+ 配置散列['bgp'].each do|segment|
13
+ bgps = segment.match_paragraph("\n ipv4-family unicast", "\n #")
14
+ bgps.each do|bgp|
15
+ bgp.split("\n").each do|line|
16
+ if line.include?('network ') && line.strip.split(' ').size > 2
17
+ words = line.split(' ')
18
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
19
+ network = address.network_with netmask
20
+ route_policy = words.index('route-policy') ? words[words.index('route-policy')+1] : ''
21
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_policy ]
22
+ end
23
+ end
19
24
  end
20
- # puts [hostname]+line.split(' ') if line.include?('network ') && line.split(' ').size == 2
21
25
  end
22
26
  return ranges
23
27
  end
@@ -0,0 +1,24 @@
1
+ # T8000-18 BGP
2
+
3
+ ```ruby
4
+ @sign << ['T8000-18', '宣告网段解析']
5
+
6
+ module T8000_18
7
+ module_function
8
+
9
+ def 宣告网段解析 配置散列
10
+ ranges = []
11
+ segment = 配置散列['bgp']
12
+ segment.split("\n").each do|line|
13
+ if line.include?('network ') && line.strip.split(' ').size > 2
14
+ words = line.split(' ')
15
+ address, netmask = line.split(' ')[1].include?(':') ? IP.v6("#{words[1]}/#{words[2]}") : IP.v4("#{words[1]}/#{words[2]}")
16
+ network = address.network_with netmask
17
+ route_map = words.index('route-map') ? words[words.index('route-map')+1] : ''
18
+ ranges << [ 'bgp', network.to_s, netmask.to_s, route_map ]
19
+ end
20
+ end
21
+ return ranges
22
+ end
23
+ end
24
+ ```