OpenFlow General TunnelSupport
OpenFlow 1.4に向けて提案された拡張
● actionにencap, decapを追加し、フローエントリを使ってトンネリングを実現
● gre protocol, gre key, vxlen vniなどのmatchとset-fieldを追加
● 実装されないと仕様に入らない
→入らないまま現在に至る
● OpenFlow 1.5で定数がかぶっていて、reviseが必要
● LagopusはOpenFlow 1.3用に作ってあるので、ひとまずそのまま適用してみる
○ トンネル対象はGRE, MPLS PW, VXLAN
3.
decap, encap
例としてGRE tunnelのケース。push,popに似ている。
ethernet IP GRE tunneled ethrenet packet
ethrenet packet
decap ether
decap ip
decap gre
encap gre
encap ip
encap ether
Tunnelデモ: Linux側設定
Network NamespaceにそれぞれI/Fを割り振り、片方にGREを設定。
sudoip netns add NET0
sudo ip netns add NET1
sudo ip link set veth1 netns NET0
sudo ip link set veth3 netns NET1
sudi ip netns exec NET0 arp -i veth1 -s 10.1.0.2 xx:xx:xx:xx:xx:xx pub
sudo ip netns exec NET0 ip addr add 10.1.0.1/24 dev veth1
sudo ip netns exec NET0 ip link add gr0 type gretap key 1 local 10.1.0.1 remote 10.1.0.2
sudo ip netns exec NET0 ip addr add 172.21.1.1/24 dev gr0
sudo ip netns exec NET1 ip addr add 172.21.1.2/24 dev veth3
sudo ip netns exec NET0 ping 172.21.1.2で応答がないことを確認