Open vSwitchでGREを使うには

NiciraがVMWareに買収されたというニュースが入ってきたが、今日はGRE(Generic Routing Encapsulation)について調べてみる。

Linuxカーネルの実装とは別に、Open vSwitchはGREのユーザレベル実装を持っているようだ。ソースはdatapath/vport-gre.cかな。

使い方は簡単。GREで接続したい2ノード(IPアドレスはそれぞれ192.168.10.1と192.168.10.2)のそれぞれで、ポートgre0を追加して、set interfaceすればOK。

$ sudo ovs-vsctl add-port br0 gre0
$ sudo ovs-vsctl set interface gre0 type=gre options:remote_ip=192.168.10.2 options:pmtud=false
$ sudo ovs-vsctl show                                        
01f36f74-52d7-4726-a143-28eb85439345
    Bridge "br0"
        Port "tap0"
            Interface "tap0"
        Port "gre0"
            Interface "gre0"
                type: gre
                options: {pmtud="false", remote_ip="192.168.10.2"}
        Port "br0"
            Interface "br0"
                type: internal

対抗側も同様にして、remote_ipを192.168.10.1とする。ちなみにこのgre0はOpen vSwitchの内部的に実装されているので、ifconfigから見ることはできない。