여기를 시도해 보겠습니다. 나는 BGP 타입의 패킷에 대한 경험이 없다. 그러나 당신이 scapy/layers에 제공 한 링크에서 bgp.py 파일을 복사했다. 이 보여 그때 사용할 수
BGPAuthenticationData : BGP Authentication Data
BGPErrorSubcodes : BGP Error Subcodes
BGPHeader : BGP header
BGPNotification : BGP Notification fields
BGPOpen : BGP Open Header
BGPOptionalParameter : BGP Optional Parameters
BGPPathAttribute : BGP Attribute fields
BGPUpdate : BGP Update fields
말 LS (BGPUpdate) : LS를 사용하여() 나는 다음을 발견
withdrawn_len : ShortField = (None)
withdrawn : FieldListField = ([])
tp_len : ShortField = (None)
total_path : PacketListField = ([])
nlri : FieldListField = ([])
을하고이 패킷 생성 할 수 있었다 :
pkt = pkt = IP()/TCP()/BGPUpdate()
pkt.show()
###[ IP ]###
version = 4
ihl = None
tos = 0x0
len = None
id = 1
flags =
frag = 0
ttl = 64
proto = tcp
chksum = None
src = 127.0.0.1
dst = 127.0.0.1
\options \
###[ TCP ]###
sport = ftp_data
dport = http
seq = 0
ack = 0
dataofs = None
reserved = 0
flags = S
window = 8192
chksum = None
urgptr = 0
options = {}
###[ BGP Update fields ]###
withdrawn_len= None
withdrawn = []
tp_len = None
\total_path\
nlri = []
을
다른 유형의 BGP 레이어/패킷이 모두 어디에 사용되는지 또는 커뮤니티 번호가 설정 될지 확실하지 않습니다. BGPPathAttribute (type = x)에있을 수 있습니다. 유형 5는 커뮤니티 값에 해당하는 "LOCAL_PREF"입니다. 사용해보기 Link.
pkt = BGPPathAttribute(type=5)
pkt.show()
###[ BGP Attribute fields ]###
flags = Transitive
type = LOCAL_PREF
attr_len = None
value = ''
어쨌든 조금 도움이 되었으면합니다.
편집 : 잊어 버렸습니다. 또한 "bgp"를 scapy/config.py의 load_layers 섹션에 추가했습니다. 이렇게하면 :
load_layers = ["l2", "inet", "dhcp", "dns", "dot11", "gprs", "hsrp", "inet6", "ir", "isakmp", "l2tp",
"mgcp", "mobileip", "netbios", "netflow", "ntp", "ppp", "radius", "rip", "rtp",
"sebek", "skinny", "smb", "snmp", "tftp", "x509", "bluetooth", "dhcp6", "llmnr", "sctp", "vrrp",
"ipsec","bgp"]
BGP는 TCP를 사용하므로 OSPF와 같은 방식의 패킷이 아닙니다. BGP 데이터 그램은 TCP 세그먼트에 포함됩니다. –
답장을 보내 주셔서 감사합니다! bgp.py 파일을 내 scapy layers 폴더로 옮겼지만 ls()를 사용할 때 나타나지 않습니다. 재건축과 같이 내가 놓치고있는 단계가 있습니까? –
@JamesButler 죄송합니다. 내 대답을 편집했습니다. – Noob123